Kernel 2.6.35-17 breaks gobi_loader

Bug #621743 reported by Shane Mc Cormack on 2010-08-21
This bug affects 14 people
Affects Status Importance Assigned to Milestone
gobi-loader (Ubuntu)
linux (Ubuntu)

Bug Description

I have an HP Compaq Mini 311c-1030SA with built in 3G card.

With kernel 2.6.35-14 I was able to use the following command to load firmware onto the 3G card (ID 03f0:241d):
sudo /lib/udev/gobi_loader -2000 /dev/ttyUSB0 /lib/firmware/gobi

This would change the usb ID to 03f0:251d and the card would then be usable

Since updating the kernel to 2.6.35-17 the gobi_loader command just hangs and does nothing. (Similar to on lucid if a patched kernel wasn't used (

I haven't got any of the inbetween kernels (-15 or -16) to test with.

Booting into the -14 kernel, loading the firmware then rebooting into the -17 kernel allows it to work as a work around as long as power isn't lost to the device.

ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: linux-image-2.6.35-17-generic 2.6.35-17.23
Regression: Yes
Reproducible: Yes
ProcVersionSignature: Ubuntu 2.6.35-17.23-generic
Uname: Linux 2.6.35-17-generic i686
NonfreeKernelModules: nvidia wl
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.23.
Architecture: i386
 **** List of CAPTURE Hardware Devices ****
 card 0: NVidia [HDA NVidia], device 0: STAC92xx Analog [STAC92xx Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 /dev/snd/controlC0: shane 1958 F.... pulseaudio
CRDA: Error: [Errno 2] No such file or directory
 Card hw:0 'NVidia'/'HDA NVidia at 0x53100000 irq 21'
   Mixer name : 'Nvidia MCP79/7A HDMI'
   Components : 'HDA:111d7605,103c3651,00100402 HDA:10de0007,10de0101,00100100'
   Controls : 18
   Simple ctrls : 10
Date: Sat Aug 21 13:37:53 2010
HibernationDevice: RESUME=UUID=93beeb55-edac-4d23-8194-13c809b5edf7
MachineType: Hewlett-Packard Compaq Mini 311-1000
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.35-17-generic root=UUID=a7aae59e-dcb4-452c-87a7-45d83eae2688 ro quiet splash
RelatedPackageVersions: linux-firmware 1.38
SourcePackage: linux 08/04/2009
dmi.bios.vendor: Hewlett-Packard
dmi.bios.version: F.02
dmi.board.asset.tag: Base Board Asset Tag 3651
dmi.board.vendor: Quanta
dmi.board.version: 49.14
dmi.chassis.type: 10
dmi.chassis.vendor: Quanta
dmi.chassis.version: N/A
dmi.modalias: dmi:bvnHewlett-Packard:bvrF.02:bd08/04/2009:svnHewlett-Packard:pnCompaqMini311-1000:pvr0394100000001C00100300000:rvnQuanta:rn3651:rvr49.14:cvnQuanta:ct10:cvrN/A: Compaq Mini 311-1000
dmi.product.version: 0394100000001C00100300000
dmi.sys.vendor: Hewlett-Packard

Shane Mc Cormack (dataforce) wrote :
Shane Mc Cormack (dataforce) wrote :

This is still a problem in 2.6.35-22-generic

fgiust (fgiust) wrote :

same problem here, adding a few debug lines to gobi loader shows that it simply hangs after sending the "QDL protocol server request"

starting goby loader
Init the device
Init step 2
Init done, sending request
QDL protocol server request sent
01 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65 64
20 70 72 6f 74 6f 63 6f 6c 20 68 73 74 00 00 00
00 04 04 30 03 0b
--> freeze, no more output

trying with a 2.6.35-22 kernel gobi loader doesn't hang and it immediately continue by uploading the firmware to the device.

fgiust (fgiust) wrote :

sorry, I meant "with a *2.6.35-14* kernel gobi loader doesn't hang..."

Nate Faerber (natefaerber) wrote :
Download full text (3.2 KiB)

I have this problem on 2.6.35-22-generic with Dell 5620 on an E6510. I'm using VZW firmware with md5sums:

05dca5d580187f5e3e5862543a35ae14 amss.mbn
88a60ed745d75fb1b92c539574ecc972 apps.mbn
5f3c042fbaeb6f074c04c8fdffd54ddb UQCN.mbn

Here is an strace that shows where it hangs:

execve("/lib/udev/gobi_loader", ["/lib/udev/gobi_loader", "-2000", "/dev/ttyUSB0", "/lib/firmware/gobi"], [/* 16 vars */]) = 0
brk(0) = 0xd94000
access("/etc/", F_OK) = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5c616db000
access("/etc/", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=105361, ...}) = 0
mmap(NULL, 105361, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f5c616c1000
close(3) = 0
access("/etc/", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\356\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1572232, ...}) = 0
mmap(NULL, 3680296, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5c6113a000
mprotect(0x7f5c612b4000, 2093056, PROT_NONE) = 0
mmap(0x7f5c614b3000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x179000) = 0x7f5c614b3000
mmap(0x7f5c614b8000, 18472, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5c614b8000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5c616c0000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5c616bf000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5c616be000
arch_prctl(ARCH_SET_FS, 0x7f5c616bf700) = 0
mprotect(0x7f5c614b3000, 16384, PROT_READ) = 0
mprotect(0x601000, 4096, PROT_READ) = 0
mprotect(0x7f5c616dd000, 4096, PROT_READ) = 0
munmap(0x7f5c616c1000, 105361) = 0
mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5c615bd000
open("/dev/ttyUSB0", O_RDWR) = 3
chdir("/lib/firmware/gobi") = 0
open("amss.mbn", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=6733876, ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_START or TCSETS, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
write(3, "~", 1) = 1
write(3, "\1QCOM high speed protocol hst\0\0\0"..., 38) = 38
write(3, "~", 1) = 1
write(3, "~", 1) = 1
write(3, "%\5,\300f\0\1\0\0\0\4\0\0xS", 15) = 15
write(3, "~", 1) = 1
write(3, "'\0\0\0\0\0\0,\300f\0\300n", 13) = 13
read(4, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\2\0(\0\1\0\0\0\0\0\260\0004\0\0\0"..., 1048576) = 1048576
write(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\2\0(...


m grachten (m-grachten) wrote :

This problem also occurs on Maverick, kernel:

Linux ash2 2.6.35-23-generic-pae #40-Ubuntu SMP Wed Nov 17 22:32:51 UTC 2010 i686 GNU/Linux

with a Qualcomm Gobi 2000 card (ID: 05c6:9204, should be changed by firmare into ID 05c6:9205), on a Lenove W510 Thinkpad.

Shane Mc Cormack (dataforce) wrote :

I've recently upgraded my netbook to Natty Alpha to test for this bug, and it still exists there.

J Boyan (ubuntu-boyan) wrote :

Same for me. Maverick 2.6.35-23-generic #41-Ubuntu SMP, with a Qualcomm Gobi 2000 card (ID: 05c6:9204, should be changed by firmare into ID 05c6:9205), on a Lenovo X201 Thinkpad, gobi_loader hangs when trying to load VZW firmware.

Brad Figg (brad-figg) on 2010-12-04
tags: added: acpi-thermal
Jochen Gruse (lpnet) wrote :

You might want to take a look at

For the initial bug reporter, the corresponding line in file
"/lib/udev/rules.d/77-mm-usb-device-blacklist.rules" would be

ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="241d", ENV{ID_MM_DEVICE_IGNORE}="1"

to force modemmanager to ignore the initial /dev/ttyUSB0 for firmware loading.

Shane Mc Cormack (dataforce) wrote :


Thank you, Adding that blacklist rule does indeed appear to fix the problem.

I'm still wondering what changed between the kernel 2.6.35-14 and 2.6.35-17 versions in maverick that caused this to stop working, but I'm glad to finally have a solution to this.

Jochen Gruse (lpnet) wrote :

Alright! Glad to have helped.

I believe that the bug depends on timing issues. Either gobi-loader became slower (bigger firmware?) or modemmanager starts faster, so that they both try to write to /dev/ttyUSB0 at the same time.

J Boyan (ubuntu-boyan) wrote :

The blacklist rule didn't help for me. With 2.6.35-22 or 2.6.35-23, I still have yet to succeed at uploading the firmware through gobi_loader. The only way for me to use my Verizon connection is to boot into Windows, connect, then reboot back into Linux, at which point the "Verizon connection" appears in the network manager and works fine. If I suspend the machine and wake it back up, then the Verizon connection is gone, and running gobi_loader manually just hangs.

Shane Mc Cormack (dataforce) wrote :

J Boyan: Did you change the vendor and product to suit your device?

J Boyan (ubuntu-boyan) wrote :

Yes, 05c6:9204. gobi_loader still hangs every time. help!

Jochen Gruse (lpnet) wrote :

@J Boyan:
Please try a cold boot, then enter

    lsusb | grep 05c6:9204

Getting a result means that your modem is still uninitialized, as you know by now... Then do a

    lsmod | grep qcserial

The number in the third column *should* be 0, but it's probably 1, which means that some process opened /dev/ttyUSB0.

In case that the number is 0, running

    sudo /lib/udev/gobi_loader -2000 /dev/ttyUSB0 /lib/firmware/gobi

should work. If it doesn't, please check the /lib/firmware/gobi directory: Are the firmware files still the same as they were when you copied them over? Still the same name (case is important!)? Any strange permissions on the files or on the directory path to these files? Perhaps you should check them with md5sum and compare with the firmware files on the windows side?

On the other hand, if the module usage (number in the third column of lsmod output) is not zero, we'll need to find the offending processes. Enter

    sudo fuser /dev/ttyUSB0

to get a list of process IDs that opened /dev/ttyUSB0.

    ps -fp <PID>

will identify the processes. If it's only gobi_loader, kill it

    pkill gobi_loader

and try the "sudo fuser" command again. I'd be willing to bet that modem-manager will make its appearance... Please post your results here!

J Boyan (ubuntu-boyan) wrote :

Thanks for the help, I really appreciate it. No luck yet. My transcript:

% lsusb | grep 05c6:9204
Bus 002 Device 003: ID 05c6:9204 Qualcomm, Inc.

% lsmod | grep qcserial
qcserial 4476 1
usb_wwan 12201 1 qcserial
usbserial 39507 4 qcserial,usb_wwan

% sudo fuser /dev/ttyUSB0
/dev/ttyUSB0: 944

% ps -fp 944
root 944 425 0 21:24 ? 00:00:00 /lib/udev/gobi_loader -2000 /dev/ttyUSB0 /

% sudo pkill gobi_loader

% sudo fuser /dev/ttyUSB0

% ps aux | grep manager
root 1061 0.0 0.0 60204 2780 ? S 21:25 0:00 /usr/sbin/modem-manager
jab 1797 0.0 0.1 311756 11644 ? Sl 21:25 0:00 gnome-power-manager
jab 2561 0.0 0.0 11336 872 pts/3 S+ 21:30 0:00 grep manager

% lsmod | grep qcserial
qcserial 4476 0
usb_wwan 12201 1 qcserial
usbserial 39507 2 qcserial,usb_wwan

% sudo /lib/udev/gobi_loader -2000 /dev/ttyUSB0 /lib/firmware/gobi

<hangs for many minutes>

% md5sum /lib/firmware/gobi/*
06f76ed398458dad7b91c2d99a85a0a7 /lib/firmware/gobi/amss.mbn
88a60ed745d75fb1b92c539574ecc972 /lib/firmware/gobi/apps.mbn
2dccbd125ddd2cb327309ba75c6054d2 /lib/firmware/gobi/UQCN.mbn

% cd '/media/Windows 7/Program Files (x86)/QUALCOMM/Images/Lenovo/1/' && md5sum *
06f76ed398458dad7b91c2d99a85a0a7 amss.mbn
88a60ed745d75fb1b92c539574ecc972 apps.mbn
2dccbd125ddd2cb327309ba75c6054d2 UQCN.mbn

% uname -a
Linux vondel 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 02:41:37 UTC 2010 x86_64 GNU/Linux

easteregg (easteregg) wrote :

i have excatly the same issue!
added the ignore rule for modemmanager, placed the right firmware, appearently, it used to work some times!
i was already online with the new modem, under win7 it works flawless.

and in maverick i got trouble to load the device. and i changed nothing since last usage a few days ago.

the gobi firmware loader just hangs up.

magellan (swissmage) wrote :

Exactly the same result as J Boyan.

Ubuntu Maverick 2.6.35-24-generic on a Lenovo Edge 11 laptop.

easteregg (easteregg) wrote :

i got i up running.
after patching the qcserial.c file to obtian the debug and gps port of the gobi 2000 gobiloader worked flawless and instantly loaded the firmware.

i will look around if its run stable now!

easteregg (easteregg) wrote :

works completly stable!

the gobi gps enable patch can be found here:

Namking (hoainam-d2004) wrote :

Thanks Josen!
My netbook is running ubuntu linux-2.6.35-24, and it has more problems with gobi wwan card.
Acording your instruction, i have solved this problem and now my wwan card working fine .

My problem is that gobi_loader conflicted with modemmanager!

I have a Dell Precision M4500 64-bit laptop using the 5620 gobi, and I have the same issue. I have been following this thread for a long time, tried all the options given, and can never get gobi to work solidly every time. For me, this is soon to become a show-stopper because I heavily depend on this communications path. In Windows 7, gobi works perfectly but I have made the transition to Maverick 64-bit, and use vmware now for all my windows needs.

If Ubuntu doesn't come up with a fix soon, or perhaps it sounds like this could even be tied back to the kernal, I'm going to have to temporarily go back to my Dell M4400 with the AT&T chipset and Lucid, how I hate to have to do that...... I love 64bit.

I will gladly be a tester for the fixes in 64-bit, if something ever comes out.


Brad Figg (brad-figg) on 2011-04-06
Changed in linux (Ubuntu):
status: New → Confirmed
Changed in gobi-loader (Ubuntu):
status: New → Confirmed

I think this bug is still affecting me in 11.04 (+ regular upgrades). I am happy to provide any logs or run things to help test. I see create GSM connection but not CDMA (but I did see create CDMA on stock 11.04 without upgrades, but after upgrades CDMA was removed)

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers