Saturday, June 07, 2008

EEE PC - Updating your MadWiFi driver

I've been doing a little hacking with my madwifi_g driver. I have not been at all impressed with the reception of the card. It seems my old iBook can pull in two more access points than my eee PC ,and at double the signal strength. Thinking that it could be the card, I have found a few ineffective "hacks" to control it's settings. Even though they didn't work, here they are.

Increase your transmit strength
Did you know that you can turn up the transmit power of your Atheros card? Did you know that it's all ready turned up all the way? You can check it with the following command:

ray@eee-q050805:~$ iwconfig ath0
ath0 IEEE 802.11g ESSID:"ODDREE" Nickname:""
Mode:Managed Frequency:2.462 GHz Access Point: 00:90:4C:7E:00:64
Bit Rate:5 Mb/s Tx-Power:17 dBm Sensitivity=1/1
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality=23/70 Signal level=-72 dBm Noise level=-95 dBm
Rx invalid nwid:1552 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0


Where it days Tx-Power: 17 dBm, that's your current settings. To turn it down, you would do this:

ray@eee-q050805:~$ sudo iwconfig ath0 txpower 16

The only reason to turn it down is to save on battery. Otherwise, you are just limiting your "reach" and your speed. Theoretically you could turn it up with a value of 18, but 17 is the best the card can do ... which is pretty weak.

Change your Antenna
You can also change the antenna that your card is using. It has two and the driver decides how it uses them. They call that automated balancing "diversity". If you want to force the driver to use one antenna or the other you have to turn off diversity. I wrote these three shell scripts to change the settings around - but I was never able to make it work any better. You would have to run these with sudo.

#Use antenna 1
/sbin/sysctl -w dev.wifi0.diversity=0
/sbin/sysctl -w dev.wifi0.txantenna=1
/sbin/sysctl -w dev.wifi0.rxantenna=1

#Use antenna 2
/sbin/sysctl -w dev.wifi0.diversity=0
/sbin/sysctl -w dev.wifi0.txantenna=2
/sbin/sysctl -w dev.wifi0.rxantenna=2

#Use diversity to choose
/sbin/sysctl -w dev.wifi0.diversity=1

Update your MadWifi Driver
This is not a good idea. At all. But I had to try it. If you do this procedure you may ruine your wireless driver beyond repair (not knowing your skill level in linux). That said, here is what I learned.

The madwifi_g driver and the future driver "ath5k" do not have support for the Atheros card used in the eee PC. If you download new, old, or even "svn source" it will compile cleanly and then not work at all. Digging through a forum I found a guy mentioning that the kind folks at madfifi.org have created a patch to make the code work for us eee PC users. Ths patch is also incorporated into the nightly builds for the driver releases. That means you can download it, compile it, and put it to use.

Download the latest patched source code from: http://snapshots.madwifi.org/special/

Look for the newest releast for madwifi-ng, which is labeled for ar5007 (this is the card that the eee PC uses). Download the source, and then do a 'tar -xzvf filename.tar.gz". Next, cd into that directory in a terminal, and then do a 'make'. If your make fails, ensure that you have installed the 'build-essential' package. Now do a make install. It will probably find your existing driver and offer to remove it for you. Allow it to. Then reboot. You will be using the latest driver, and probably won't notice anything different about it.

Conclusion
While not really accomplishing anything, I think I have pretty well proved that the real problem with the lack of signal strength is because the hardware sucks. For my next project, I am going to look at the specs for the other cards which fit the mini-PCI-express slot (for which there are only two or three manufactured).

When is Proxim going to give us a mini-PCI express b/g/n card?

Edit: A little more research on card strength
It seems that there are really only two other contenders for wireless which have the mini PCI express architecture. Those are the Dell Truemobile 1390 and the Intel 3945. The Intel of course uses an Intel chipset while the Dell uses the popular Broadcom chipset. Both seem to be equally compatible, but as far as "which one is better" I still can't tell.

Perhaps I am silly for wanting to know how powerful a card is as the manufacturers don't seem to really advertise these figures. Dell says "this card makes the Intenet work on the computer" (it's not tht dumb, but nearly). Intel says "15db - depending on power usage" (but doesn't tell you the max possible).

I used a Google tactic to get some information. I searched for "dell 1390 tx-power=" and "intel 3945 tx-power=". I found a lot of sad and disheartened users who couldn't get WPA to work, didn't know how to renew an IP address, etc. But what I really was looking for was a dump of their wireles card statistics. Here are two examples of what I found ...

intel 3945
wlan0 IEEE 802.11g ESSID:"xxxx"
Mode:Managed Frequency:2.462 GHz Access Point: 00:17:9A:52:1A:93
Bit Rate=54 Mb/s Tx-Power=27 dBm

dell 1390
[root@localhost ~]# iwconfig wlan0
wlan0 IEEE 802.11g ESSID:off/any
Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated
Bit Rate:54 Mb/s Tx-Power:32 dBm


If these statistics are accurate, it means that the Intel card does another 10 dBm's of power more than the Atheros card ... but the Dell TrueMobile 1390 nearly doubles up on power. With the low cost and high availibilty of the Dell card, I may need to invest in one.

1 comment:

  1. well I have the same problem with the poor wifi reception in my eee 4g surf. But the other day I had another eee in my hands which had excelent wifi - but with XP on it ?!. So my conclusion is that the drivers sux, not the hardware, so I will try to use win drivers through ndiswrapper. And you have your tx numbers a bit wrong because :
    Driver for device ath0 has been compiled with version 22
    of Wireless Extension, while this program supports up to version 20.
    Some things may be broken...

    ath0 IEEE 802.11g ESSID:"trajlala" Nickname:""
    Mode:Managed Frequency:2.417 GHz Access Point: 00:0B:6B:4D:7C:4C
    Bit Rate:54 Mb/s Tx-Power:31 dBm Sensitivity=0/3
    Retry:off RTS thr:off Fragment thr:off

    ReplyDelete