Friday, August 22, 2008

How to activate your HP UMTS card

After starting last week (only) one time Windows on my HP Compaq 2710p the internal UMTS card (HP HS2300 HSDPA Broadband Wireless module) stopped working under Linux again. And as Seife already pointed out: there is no way to activate the card from Linux (at least with kernel version 2.6.26) or the bios. I found today some time to search for a solution since several people asked me how to reactivate the card and since there are also bugreports with this problem.

Seife gave me the hint that may the hp-wmi kernel module, which will be part of 2.6.27, could provide a way to enable/disable the card. And it does. Currently the module don't get loaded automatically, you have to load it manually (modprobe hp-wmi). As soon as you load the module the UMTS card gets enabled, also if deactivated under windows before. Since the module handle the card as WWAN I assume also CDMA cards from HP would be handled the same way.

With hp-wmi the killswitch now enable/disable the WLAN, Bluetooth and the WWAN module automatically. But the user can switch the state also via sysfs. To disable for example the WWAN device you have to do this:
  1. go to /sys/class/rf-kill
  2. find the rfkill device of the WWAN module (grep wwan */name)
  3. use 'echo 1 > rfkill3/state' to activate or 'echo 0 > rfkill3/state' to deactivate the device
I've added a kmp package (hp-wmi-kmp) for openSUSE 11.0 to my buildservice repo. Currently there is no kmp for factory but I guess a 2.6.27 kernel will be available soon (or use the kernel from here).
Tech Tags:


Clark said...

I've submitted information to try and get this module to support the newer HP laptops that only use wmi for button events.

Anonymous said...

Any idea how to activate it in Debian/Ubuntu? Thanks!

Danny said...

In the same way.

You need either a kernel >= v2.6.27 or you have to take the hp-wmi source from v2.6.27 and have to compile the kernel module manually for the kernel you currently use.

In this case you may have to patch the source (you may have to replace SW_DOCK with 0x05) to get it running.

Anonymous said...

Thanks, I was just looking for this info. Machine here is HP 6710B with wifi, BT and wwan module. rfkill works fine on all three devices individually (wifi has two switches, b43 and hp-wlan one, second one can't even be controlled if first is turned off).

There is a quirk I noticed. The power button of course turns everything off (and can't be overriden by software). If you disable device during this, when button is back on, device won't be disabled after power-on. But if you *enable* disabled device during button power-off, it gets enabled when power-on.

Anonymous said...
This comment has been removed by a blog administrator. said...

hi, there
wanted to say thanks and upate this post: As or now (2012) there exists an easier way: (using Ubuntu 11.10)
"sudo rfkill list"
will give you a list of wireless devices and show their state. "Hard blocked" means you need to flip a switch somewhere, "Soft blocked" means you can enable it with software.
Should Network Manager not do it, just use "sudo rfkill unblock " and it will start the soft-blocked device.
Success and thanks for pointing me in the right direction!