Glen
Glen is an IT Person who also plays games and occasionally writes things. He has a website at glenscott.net and tweets @memoryresident.
I recently upgraded my laptop to Ubuntu 9.10 (Karmic Koala) and among a few other niggles (mostly related to intel video support, or lack thereof) it completely broke support for my Huawei 3G (E620) modem. Fortunately the fix is fairly straightforward: install a new kernel. I went with the latest (v2.6.32 release candidate available over here at kernel.ubuntu.org ) and the problem is solved.
If you want the gory details, check the thread over at bugs.launchpad.net. I’ll distil the useful bits below.
After the upgrade, my huawei 3G modem stopped being detected by NetworkManager. I’d see the fake ‘ZeroCD’ drive try to map itself and occasionally a gnome message box would be thrown up about a failed mount attempt, but no modem.
A look in the logs revealed /var/log/messages filling up with lines like this:
kernel: option 3-1:1.2: GSM modem (1-port) converter detected kernel: usb 3-1: GSM modem (1-port) converter now attached to ttyUSB0 kernel: option 3-1:1.1: GSM modem (1-port) converter detected kernel: usb 3-1: GSM modem (1-port) converter now attached to ttyUSB1 kernel: option 3-1:1.0: GSM modem (1-port) converter detected kernel: usb 3-1: GSM modem (1-port) converter now attached to ttyUSB2 kernel: option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2 kernel: option 3-1:1.0: device disconnected kernel: option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1 kernel: option 3-1:1.1: device disconnected kernel: option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0 kernel: option 3-1:1.2: device disconnected
So the modem was being disconnected and reconnected at least a couple of times a second for some reason, and the storage device was not appearing at all.
I tried the usb_modeswitch tool which is supposed to jolt misbehaving HUAWEI (and other brand) devices out of their stupor with some undocumented SCSI/USB commands, but no success this time.
After a bit of googling, it turns out this is (was) a known bug in the way the more recent linux kernel handles the combination USB Modem/Storage device hardware (and was allowed to remain in a major release of Ubuntu which is a bit unfortunate as it seems these types of USB modems are pretty common).
There are a couple of fixes pending an official update: either install a patched version of the kernel, or temporarily disable the USB Storage kernel module which looks pretty easy and apparently worked for a few people:
# rmmod usb-storage
Untested by me: Your mileage may vary. Be warned that even if this works, by unloading the usb-storage kernel module you will lose support for any USB based storage devices, so this is strictly a temporary workaround. I thought I’d try the more permanent and possibly dangerous (?) kernel solution first, which worked.
sudo dpkg -i ./linux-headers-2.6.32-020632rc8_2.6.32-020632rc8_all.deb
sudo dpkg -i ./linux-image-2.6.32-020632rc8-generic_2.6.32-020632rc8_amd64.deb
After this, provided everything worked, you’re a reboot away from your modem working again. After the boot, uname -a should reveal the newly installed kernel version. Mine is: 2.6.32-020632rc8-generic #020632rc8 SMP
Once plugged in, the modem worked instantly and my mobile broadband account connected fine. Hooray!
While lsusb output looked the same as before:
Bus 006 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
My /var/log/messages also looked a lot healthier:
kernel: USB Serial support registered for GSM modem (1-port) kernel: option 6-2:1.0: GSM modem (1-port) converter detected kernel: usb 6-2: GSM modem (1-port) converter now attached to ttyUSB0 kernel: option 6-2:1.1: GSM modem (1-port) converter detected kernel: usb 6-2: GSM modem (1-port) converter now attached to ttyUSB1 kernel: option 6-2:1.2: GSM modem (1-port) converter detected kernel: usb 6-2: GSM modem (1-port) converter now attached to ttyUSB2 kernel: usbcore: registered new interface driver option kernel: option: v0.7.2:USB Driver for GSM modems kernel: scsi 8:0:0:0: CD-ROM           HUAWEI  Mass Storage    2.31 PQ: 0 ANSI: 2 kernel: scsi 8:0:0:1: Direct-Access    HUAWEI  SD Storage      2.31 PQ: 0 ANSI: 2 kernel: sr0: scsi-1 drive kernel: Uniform CD-ROM driver Revision: 3.20 kernel: sr 8:0:0:0: Attached scsi generic sg1 type 5 kernel: sd 8:0:0:1: Attached scsi generic sg2 type 0 kernel: sd 8:0:0:1: [sdb] Attached SCSI removable disk
Additionally, with the new kernel, both the pseudo cdrom, the 3G modem, and presumably the SD storage (though I don’t use it) are working at the same time. So, problem solved.
(Another improvement I noticed with the new version of ubuntu/kernel is I can disconnect the wireless broadband account via networkmanager without nasty gnome freeze-ups. Not sure what the culprit was for this: I worked around by disconnecting the hardware to avoid freezes, but looks like this too is now solved).
For many moons I’ve been attempting to get the server functionlity of the OpenID plugin working with my wordpress install and been stumped on the following two errors:
First, any hit on the OpenID /openid/server url (I am using non-default permalinks) generated the following :
Fatal error: Call to undefined function add_options_page() in /path/to/wp-content/plugins/wp-contact-form/wp-contactform.php on line 200
This was pretty obviously a conflict with WP-Contactform. Disabling this plugin made the above error go away, so I’ll be looking for a replacement for it soon.
Once the contactform error was worked around by disabling the plugin, the following appeared:
Fatal error: Call to a member function needsSigning() on a non-object in /path/to/wp-content/plugins/openid/Auth/OpenID/Server.php on line 1495
This would happen when I tried to specify my URL (whether main blog or wordpress author url) as an openid – it would seem to be working, go through the logon process then generate the error and the authentication process would abort.
After much googling (not much out there but this was helpful, sort of) and a good period of waiting and trying new versions of the OpenID plugin as they were released, the solution / workaround turned out to be extremely simple. It was a plugin conflict (doh) and a process of elimination identified the culprit and main show stopper: the cryptographp plugin.
No idea why but once it was disabled things worked fine. I was using this plugin to generate protective captchas for my comment forms. I replaced it with Simple CAPTCHA. (Its worth noting that in the 15 minutes or so I had no CAPTCHA active, I had already received a bot comment spam – and my site isn’t heavily trafficked by any means). I might choose another solution at some point from the plethora available, but for the time being, Simple Captcha gets the job done fine.
So thats about it. In a nutshell, some seemingly unrelated plugins were conflicting, disabling them and replacing with alternatives fixed it.
Now I can use glenscott.net as an OpenID, and my visitors have a nice simple OpenID login option on comments pages =)