tc1100 wi-fi hardware switch: a pain in the hat under linux

A while ago I decided to fix something under my HP tc1100 hood. I had bad idea: I loaded the default  BIOS settings. Turning the tablet on I had a bad surprise: the wi-fi card was hardware disabled. Unfortunately the tc1100 has an ipw2100 card but no physical hardware switch and without a windows partition I was stuck with the wifi off. I previously had the same problem with a Toshiba nb200, but there I had more luck. The more I think about it, the more I wonder if a linux only system is good in a “Windows only” world.
Disclaimer: following the steps outlined here may brick damage or otherwise set on fire your tc1100 and/or your neighborhood. Please follow them or reproduce them on your tc1100 only if you are willing to damage it, brick it, and set the house on fire. Seriously, this is tricky stuff. I suggest you to avoid flashing the bios if everything is working. If you have to, fully charge the battery and use an external UPS to power the TC1100 just in case. Internet is full of bricked tc1100s. When in doubt, use a real Windows for the flash operation.
Dmesg  had a scaring message

eth0: Radio is disabled by RF switch

tried various ways to enab le it again. My Bios was old, so no wifi option there. I tried  from linux

$> modprobe tc1100-wmi

followed by
echo "on" > /proc/acpi/wmi/WMID/wlan
and other various way described around the net. See if they work for you before reading on:
Turning it on with ACPI

Other methods as echoing into /sys/bus/ did not work.

I.E.

$> echo 0 > /sys/bus/pci/drivers/ipw2200/000*rf_kill

or

$> echo 0 > /sys/devices/platform/tc1100-wmi/wireless

did not work.

Catting those  files again I saw they persisted showing a 2 value, meaning the hardware switch was still on. I did not try rfsiwtch, as the author suggested following one of the method outlined above. Unloading and loading the ipw2100 module did not help too.
The Tc1100 had also an old bios revision, with less options than the current one, in particular it missed the option of turning the wifi on from there.
So if you have only linux and an old bios revision, and the various method outlined above do not work for you, you have basically three ways.

  1. do not use your wifi anymore. After all, radio frequency may harm your health. Buy a tinfoil hat.
  2. Install Windows and find a way to turn it on. I didn’t. Above all, I suspect you have to hunt for the hp utilities or at least for the intel ipw2100 driver. Or better yet upgrade the Bios from there. Missing the usb  cdrom on my side, installing Windows from the usb stick may not be an easy task. Nlite may help, but again, I never tried on the tc1100.
  3. Flash the newest bios and turn it on from there. I can confirm the newest one (F.0F 2005 at this time) can turn the wifi on.

As far as I know, you cannot flash the Bios from linux on the tc1100. The HP bios utility is a Windows exe only, and already contains the winphlash utility and the Phoenix bios file and is easy to expand without installing on another pc. Finding the Bios.wph is trivial. Just use winrar or similar on the exe to expand it. But I’m not aware of a Phoenix Bios flasher under linux and had little courage to do experiments. Wine is out of question on my opinion.
The next step was trying to flash with Phlash16 and freedos. I found an usb stick that worked with the tc1100 (my kingston datatraveler 1gb doesn’t boot at all, and freezes the bios and the boot process) and  made an usb boot disk with unetbootin and freedos 1.0. Instead of using the stock image, I downloaded it, mounted under linux with

mount -t auto -o loop freedos.img /mnt/whatever

copied phlash16 and bios.wph into /mnt/whatever and dismounted the image. Then I used the custom  image with unetbooting. Choosing to boot freedos without himem.sys and other stuff (otherwise phlash will complain) I tried to flash:
phlash16 bios.wph

did not work (luckly from the start) and stopped and froze at the very beginning.
So you’re left basically with one way: windows. Install it or make a windows usb stick, boot from there and flash it. Making the stick  is a boring task and I’ll cover it on the next post. But once you have a working one, flashing is a 2 minute process.
Making a long story short, you have to:

  1. hunt for a usb stick that boots with the tc1100. It sholuld not be too big or pe2usb will complain that the partition is too big for FAT16. More on this on the next post.
  2. make it bootable using the hp or the dell utility. Then make a pebuilder/pe2usb installation. Bartpe supports usb so including the uncopressed flash utility files into the Bartpe image is not a must. You can always put those file in another usb key and run it from there. I did so.
  3. Power the TC1100 on with the usb stick inserted, press the jog dial and go to the bios. In the Bios, change the boot sequence to boot hard disk first, and expanding the hard disk tree chose with +/- to boot the usb stick  first. F10 and save the changes.
  4. rebooting, you should hopefully boot from the usb stick. If everything goes well, put on the other usb key, access it from the a43 file manager.
  5. Run WinPhlash and let it work. Don’t power off the tc1100 until the update is ok.
  6. If everything is ok, access the BIOS, and you should find an option to switch the BIOS on.
  7. Reboot in linux. Everything works hopefully. It did for me.

What if everything goes bad? You’re basically stuffed. You may try the Phoenix crisis recovery floppy, with an external floppy, but luckly I didn’t have to, so I cannot speak of it.
I a word, if you have a tc1100, don’t make it Linux only. A little Windows XP installation around may not harm if you have some problems and Linux is not listening.

Advertisements

4 thoughts on “tc1100 wi-fi hardware switch: a pain in the hat under linux

  1. Had this happen with Ubuntu 11. I was able to:

    echo 1 > /sys/devices/platform/tc1100-wmi/wireless

    and this enabled wifi. YMMV. But i think a lot has been done with the 1100 on linux sice you posted this.

    cheers

Comments are closed.