Uninstall old driver or something else?

So i’ve got an interesting scenario going on with madwifi. I’ve installed the lastest snapshot for my card the proper way (I originally had an older version installed and don’t think I did it 100% correctly). When I boot into KDE4.1.4 it shows it’s loading the latest driver version, but I know it’s not because of my signal quality and speeds.

If I do an rmmod ath_pci and then a modprobe ath_pci it loads the latest driver and my signal quality is then at full strength and my speeds are at 54mbps.

Is it possible that the old driver is still hanging on somewhere? If so, is there a way to uninstall everything and start it over from scratch. I can’t use Yast because everything was compiled from source and isn’t listed there. Otherwise the only other solution I can think of is to write a little script that I initiate every time I boot into my desktop.

go to the folder you compiled it in & open a console,su to root & type

make uninstall

Andy

If you happen to have the same module twice, normally, module-init-tools take care of which driver is loaded and they always load the same module due to its location in /lib/modules/kernelversion, so I don’t really think your theory is correct.

In addition, madwifi searches and uninstalls modules found in /lib/modules/Kernelversion, so you normally only have one set of madwifi modules.

Post the following:


find /lib/modules/$(uname -r) -name "ath*.ko"

and


lsmod |grep -E 'ath_pci|ath5k'

before and after you reloaded ath_pci.

Also post the output of


/sbin/lspci -nn|grep -i net

BTW:

Why compile from source?

Binary packages (and also src.rpm if you want to compile them yourself) are available from OBS repositories.

Akoellh:

Here you go. It looks like the only difference is in “lsmod |grep -E ‘ath_pci|ath5k’” as the modules list in a different order.

BEFORE


find /lib/modules/$(uname -r) -name "ath*.ko"

/lib/modules/2.6.27.19-3.2-default/kernel/drivers/net/wireless/ath5k/ath5k.ko
/lib/modules/2.6.27.19-3.2-default/kernel/drivers/net/wireless/ath9k/ath9k.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_rate_amrr.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_pci.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_rate_minstrel.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_rate_sample.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_hal.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_rate_onoe.ko

lsmod |grep -E 'ath_pci|ath5k'

ath_pci 238968 0
wlan 239712 5 wlan_wep,wlan_scan_sta,ath_rate_sample,ath_pci
ath_hal 329520 3 ath_rate_sample,ath_pci


/sbin/lspci -nn|grep -i net

00:0a.0 Ethernet controller [0200]: nVidia Corporation MCP67 Ethernet [10de:054c] (rev a2)
03:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR242x 802.11abg Wireless PCIExpress Adapter [168c:001c] (rev 01)

AFTER

find /lib/modules/$(uname -r) -name "ath*.ko"

/lib/modules/2.6.27.19-3.2-default/kernel/drivers/net/wireless/ath5k/ath5k.ko
/lib/modules/2.6.27.19-3.2-default/kernel/drivers/net/wireless/ath9k/ath9k.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_rate_amrr.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_pci.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_rate_minstrel.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_rate_sample.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_hal.ko
/lib/modules/2.6.27.19-3.2-default/net/ath_rate_onoe.ko


lsmod |grep -E 'ath_pci|ath5k'

ath_pci 238968 0
wlan 239712 5 ath_pci,wlan_wep,wlan_scan_sta,ath_rate_sample
ath_hal 329520 3 ath_pci,ath_rate_sample

/sbin/lspci -nn|grep -i net

00:0a.0 Ethernet controller [0200]: nVidia Corporation MCP67 Ethernet [10de:054c] (rev a2)
03:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter [168c:001c] (rev 01)

As for compiling from source - I guess sometimes I just like to make things difficult for myself. Very rarely do I do it, but it seems to be the only sure way to get my wireless to work unless I want to use the default ath5k driver.

  1. You only have one set of madwifi kernel modules, so your theory “wrong driver is loaded in the beginning” can not be correct.

  2. Did you try ath5k which is already in your kernel instead? A good friend of mine has the same card and it works fine with ath5k.

  3. If you want recent drivers without having to compile from source, you can either use “compat-wireless”-kmp packages (for ath5k) or one of the recent madwifi-(free)-kmp packages from OBS.

I would never use self compiled modules without the comfort of installing them via RPM, if I self compile, I always search for an appropriate src.rpm (or build it myself, but that will not be neceessary in your case).

Maybe I’m just having a “perceived” issue and it very well could just lie with knetworkmanager which wouldn’t surprise me. Ath5k works, but barely and gives terrible performance.

If I just let ath_pci load on its own nm-tool shows low signal strength and it’s graphically represented in knetworkmanager. It also shows my speeds randomizing from 12-36mbps. I also get high ping returns every 10th or so ping on my own network.

If I reload the module nm-tool then shows high signal strength which is also graphically represented as full bars in knetworkmanager. It shows my speed sitting at 54mbps and my high ping returns every 10th or so ping go away.

It’s a head scratcher.

I would suggest to systematically deal with this problem.

Do you have a fallback (cable) if your wireless would fail during testing?

I also would not trust those graphical tools too much when it comes to XYZ-MBit, as you also loose pings also with “perfect” 54 Mbit.

Most definitely. Going wired is not an issue for me. I’m wondering if doing the uninstall and reinstall would give me any results. I also haven’t tried logging into Gnome to test against knetworkmanager. I don’t recall having this issue back with Ubuntu w/ Gnome, but then again I wasn’t as knowledgeable with Linux at that point (I still have an incredibly long way to go) as I am now to probably even notice.

Good, so I would first start in (re)moving the “hand crafted” modules, they can be found in “/lib/modules/2.6.27.19-3.2-default/net/” (You can remove the whole folder or move it somewhere else.

As I also want to get some information of my own interest out of this thread, my first suggestion would be to try a very recent ath5k from a compat-wireless-kmp package which “coincidentally” can be found in my OBS-repo.

Index of /repositories/home:/Akoellh/openSUSE_11.1_Update

Add this repo to your list and install “compat-wireless-kmp-default” via YaST or zypper.

Did you blacklist ath5k? If yes, then remove that entry too.

Re(move) the file /etc/udev/rules.d/70-persistent-net.rules and run


modprobe -r ath_pci

udevadm trigger

as root.

After that you should be running your interface as “wlan0” and with ath5k (from 2.6.29).

Reboot the machine and report back.

Looking good so far. Signal strength is even better than the madwifi as I’m now in the 90s instead of the 80s. Speed seems good as well, but haven’t done any controlled testing.

Couple of things:

modprobe -r ath_pci

gave me an error saying it couldn’t find ath_pci. Maybe since I had already moved the folder?

A simple

modprobe ath5k

after the reboot loaded the module correctly.

Here’s some extra information:

find /lib/modules/$(uname -r) -name "ath*.ko"

/lib/modules/2.6.27.19-3.2-default/updates/drivers/net/wireless/ath5k/ath5k.ko
/lib/modules/2.6.27.19-3.2-default/updates/drivers/net/wireless/ath9k/ath9k.ko
/lib/modules/2.6.27.19-3.2-default/kernel/drivers/net/wireless/ath5k/ath5k.ko
/lib/modules/2.6.27.19-3.2-default/kernel/drivers/net/wireless/ath9k/ath9k.ko

lsmod |grep -E 'ath_pci|ath5k'

ath5k 112284 0
mac80211 238608 1 ath5k
led_class 5008 1 ath5k
cfg80211 63656 2 ath5k,mac80211

Time will tell, keep it running like this, I am rather optimistic.

Yes and no, normally you have to run “depmod” before the kernel is notified about the changes, I considered that but forgot, that after installing the RPM depmod is run automatically, so this was responsible for the error.

If the module is not loaded automatically and you don´ t have a blacklist-entry for ath5k any more, first try to explicitly tell YaST to use “ath5k” in the network-configuration for the card (tab “Hardware”). If that does not help, add ath5k to /etc/sysconfig/kernel “MODULES_LOADED_ON_BOOT”.

//Edit:

Is there a file /etc/udev/rules.d/79-yast2-drivers.rules?

If yes, have a close look at it.

Looks exactly as expected.

I had removed ath5k from the blacklist, but Yast was still set to load ath_pci instead of ath5k at boot for the wireless card. Changing that fixed it not loading the module on boot. Afterwards I also added it to load on boot in “/etc/sysconfig/kernel” just for the heck of it, even though it should load on detect.

cat /etc/udev/rules.d/79-yast2-drivers.rules

ENV{MODALIAS}==“pci:v0000168Cd0000001Csv0000103Csd0000137Abc02sc00i00”, ENV{MODALIAS}=“ath5k”

One thing I did notice and it seems to be an issue with Knetworkmanager is that when the module loads on boot it will graphically only display two bars even the signal is at 98%. If I unload and reload the module it updates the graphical display of the signal strength.

Thanks for all the help with this Akoellh. I greatly appreciate it.

As I said, don’t care too much about that.

As you also helped me in giving feedback on one of my packages, this was a fair deal.

However, a piece of advice to avoid possible problems.

Normally you should be fine now during the whole rest of your 11.1’s lifetime, especially if you keep my repo in your list, as the package will be automatically updated if there is a kernel upgrade via YaST online Update (although kmp-packages normally also work after a kernel upgrade).

However, I will certainly also update the source of the package to a newer snapshot soon and as these drivers are “bleeding edge” there is a chance you catch a buggy version of ath5k.

To have a fallback, download the compat-wireless src.rpm from here:

Index of /repositories/home:/Akoellh/openSUSE_11.1_Update/src

If you have problems after getting an updated version (or after a kernel update) you can still rebuild the src.rpm against your running kernel.

rpmbuild --rebuild Filename_of_the.src.rpm

The binary packages will be found in /usr/src/packages/RPMS/i586 or /usr/src/packages/RPMS/x86_64 respectively.

As you installed madwifi from source before, you certainly have kernel-source installed, however you will also need “kernel-syms” for rebuilding this src.rpm (small but important package) so install that one too.

And of course, if you have problems with an updated snapshot, report them here so I am informed about it.

Sounds good. I’ll keep this thread bookmarked and keep you updated if anything changes. Thanks again!

Toshiba AR242x PCI Express Adapter (internal)

1- won’t connect
2- I can’t figure out how to get it to scan
3- when it does scan, it often picks the weakest signal and usually never show more than one AP, even when 10 or more are in the area.
4- SUSE 10.3 - re-installed 11.1 (formated root, but left /home partition - deleted old network wireless folders, which seemed to help slightly. even when it “says” connected, no bars and no DHCP DNS - only 10.4x.4x.1 / 255.255.255.0 no idea where these 10… IP address comes from, but no gateway nor DNS servers.

:/home/brando # find /lib/modules/$(uname -r) -name “ath*.ko”
/lib/modules/2.6.27.21-0.1-pae/kernel/drivers/net/wireless/ath9k/ath9k.ko
/lib/modules/2.6.27.21-0.1-pae/kernel/drivers/net/wireless/ath5k/ath5k.ko

:/home/brando # lsmod |grep -E ‘ath_pci|ath5k’
ath5k 94920 0
mac80211 199708 1 ath5k
led_class 3896 1 ath5k
cfg80211 23356 2 ath5k,mac80211

:/home/brando # /sbin/lspci -nn|grep -i net
02:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter [168c:001c] (rev 01)
09:06.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec:8139] (rev 10)

Best to start a new thread instead of tacking on to an old one.BTW, have you had a scan of the stickies ? lots of good info there

Andy