HP un2400 3G modem in Linux
From SaniWiki
This is the steps I used to get my HP un2400 mobile broadband (3G) modem to work in Ubuntu GNU/Linux 10.04 Lucid Lynx on my HP 110c-1020so.
Now also work in Ubuntu GNU/Linux 12.04 Precise Pangolin on my HP Elitebook 6930p.
Contents |
[edit] Preface
The HP un2400 module is a bit special as it needs to load its firmware on every use, and the firmware differs depending on your region/operator. I can not guarantee that these instructions will work for anyone, but I've successfully used it with the Swedish operator Telia. And I hope the instructions here will help you get your modem working even if you don't use Telia.
I've packed all of this up in a file for download. If you run install.sh in that file it will do all steps below for you using the binaries in the download.
[edit] To get the firmware/driver
I've included the firmware I use, but if you don't get it to work you've to get the firmware from a Windows installation or possibly by unpacking the drivers from the HP Softpaq installation EXE-file.
[edit] Which firmware works where
If you use these instructions and manage to get your modem working please add your operator and country based on the numbered folder your driver was in.
| Firmware dir | Country | Operator |
|---|---|---|
| 0 | ||
| Sweden | Telia | |
| Germany | Vodafone | |
| 1 | ||
| U.S.A. | Verizon | |
| 2 | ||
| 3 | ||
| 4 | ||
| NL | T-Mobile | |
| 5 | ||
| 6 | ||
| Colombia | Comcel | |
| Colombia | Tigo | |
| Finland | Saunalahti | |
| 7 | ||
| 8 | ||
| Italy | TIM | |
| 9 | ||
Or take a look: http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?lang=en&cc=us&objectID=c01738839&jumpid=reg_R1002_USEN
[edit] Windows route
Install the modem drivers and connect to the Internet with it.
Then open: c:\documents and settings\all users\Application Data\QUALCOMM\QDLService\Options.txt
Save the files pointed to in the options.txt file
[edit] Extracting from softpaq
Install the program cabextract and use it to unpack your softpaq exe.
> sudo aptitude install cabextract > cabextract <file (in my case: sp45888.exe)>
I found the firmware I got from Windows in the Qualcomm/QCImages/Source/Packages/0/ directory. I'm assuming all different firmwares exist in the numbered directories in Qualcomm/QCImages/Source/Packages/.
[edit] Installing gobi_loader to load the firmware
The gobi_loader program by Matthew Garret is the program that loads the firmware onto the modem. Just download the program from the gobi_loader homepage, I've successfully used version 0.5. Note that you might have to patch your Linux kernel to be able to use gobi_loader, the patch can be downloaded from the gobi_loader homepage.
If you're running stock Ubuntu 10.04 Lucid Lynx you need to patch the included 2.6.32 kernel. I've patched and rebuilt the kernel and included a .deb-package that you can install, I only applied Matthews patch and then built it with the generic Ubuntu configuration.
Follow the installation instructions for gobi_loader and then copy your firmware files to: /lib/firmware/gobi
[edit] Kernel modules
With the gobi_loader and patched kernel installed, and computer rebooted, you just need to enable two modules to start using your modem. qcserial and hp-wmi.
> modprobe qcserial > modprobe hp-wmi > ls /dev/ttyUSB*
If everything has worked out OK the last line should give you a list of matching devices.
qcserial is the module that talks to the modem, hp-wmi activates the hardware buttons on your keyboard, on some systems you may need to turn the modem on with a key on your keyboard.
[edit] Loading the modules at boot
To load qcserial and hp-wmi at boot write:
> sudo -s # echo qcserial >> /etc/modules # echo hp-wmi >> /etc/modules
I've scripted all these steps into the install.sh-file included in the download.
So if you run that file and everything works out fine, just reboot and you should be set.
Start the Network Manager and set your connection up.
[edit] Known problems and workarounds
[edit] The modem doesn't come back up when the computer has been suspended
There can be two things, either that the /dev/ttyUSB0 device just doesn't exist or that the device exist but the network-manager hasn't picked it up.
To make sure the network manager picks it up type: sudo killall modem-manager
If the device isn't accessible I've been able to get it to connect again by flipping the network switch on my computer, flip it to off wait a while and then flip it to on again. Wait and it usually comes up, if the ttyUSB-device is there but it doesn't show up in the network manager try the above tip for modem-manager.
[edit] The ttyUSB device gets created but nothing makes it connect
Did all go well with loading the device with drivers? Disconnect the modem by flipping the WiFi network switch to off and on again while running: tail -f /var/log/syslog
Now you can see what's happening while the device is getting loaded.
[edit] Download
un2400-linux.tbz2 37MB.
The download contains:
- The gobi_loader as an executeable
- The gobi_loader 0.5 source
- The kernel patch for 2.6.32
- The firmware files I use
- A .deb of the Linux kernel with all modules. I made it easy for myself and just packed the entire kernel up instead of figuring out which modules you need to load.
I've also included the patch I used and the source for the gobi_loader.
Untar the download and run install.sh and hopefully it'll all work after a reboot.
[edit] Holding back updates for the kernel
If you've installed a patched kernel you may not want to recompile every time Ubuntu updates the kernel. I've set my custom kernel as held so Ubuntu wont overwrite it for me:
# echo "linux-image-2.6.32-21-generic hold" | dpkg --set-selections
[edit] Update for 12.04 users
I've installed the gobi loader v07, it is working on my HP Elitebook 6930p with the un2400 gobi 1000 WWAN module, it's not necessary to patch the kernel, the only things to do are extract the drivers from the correct softpaq.exe (in my case sp48568.exe) and copy amss/apps.mbn in the right folder "/lib/firmware/gobi", then type in terminal:
> modprobe qcserial > modprobe hp-wmi > ls /dev/ttyUSB*
and:
> sudo -s # echo qcserial >> /etc/modules # echo hp-wmi >> /etc/modules
reboot your system, and that's it.
My kernel is 3.2.0-24-generic.
[edit] Sources
- http://ubuntuforums.org/archive/index.php/t-1008200.html
- This thread on Ubuntuforums has all the information I needed to get my modem working, but it's a long thread and can get confusing.
- http://www.codon.org.uk/~mjg59/gobi_loader/
- Homepage of the gobi_loader software by Matthew Garret as well as the patch to the Linux kernel
- https://help.ubuntu.com/community/Kernel/Compile
- Kernel compilation guide for Ubuntu
- http://www.debian-administration.org/articles/67
- For holding back package upgrades
- http://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?softwareitem=ob-78276-1&lc=sv&dlc=sv&cc=se&lang=sv&os=228&product=3975708
- The WWAN/modem-driver I downloaded and used to get the firmware