Search Linux Wireless

Problem with compat-wireless for 2009-05-06

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Downloaded and tried to install compat-wireless-2009-05-06.tar.bz2. Downloaded fine. Make went fine, make install had an issue. When it would run "athenable ath5k" portion of the make install, it would go into a loop trying to mv a .ko file. I made a change to the modlib.sh file that seems to have fixed the issue. The problem was that the path modlib.sh was generating the following output:

/lib/modules/2.6.27-11-generic/updates/drivers/net/wireless/ath/ath5k/ath5k.ko
Disabling ath5k ...mv: cannot stat `/lib/modules/2.6.27-11-generic//lib/modules/2.6.27-11-generic/updates/drivers/net/wireless/ath/ath5k/ath5k.ko': No such file or directory
[ERROR]    Module is still being detected:

Notice the double use of the "/lib/modules/2.6.27-11-generic/" path in the second line of the output. I have commented out line 41 of modlib.sh and added line 42:

# mv -f /lib/modules/$VER/$CHECK /lib/modules/$VER/${CHECK}${IGNORE_SUFFIX}
       mv -f $CHECK ${CHECK}${IGNORE_SUFFIX}

This change seems to have fix athenable. I think the reason for the repeated path output is that $CHECK uses "modprobe -l" which gives a full path output for the driver file it finds, thus, "/lib/modules/$VER" is not required in line 41.

While looking at this problem, I found another in the iwl-enable script. Actually, two. The USAGE statement uses $IWL, not $IWL_NEW at line 20. Also, at line 38 (39 in attached copy) $MODULE is doing a string match with "iwl4954", not "iwl4965". I've commented out these two lines and made corrects on the line below them (lines 21 and 40 in attached copy).

I also discovered that the module_enable function in modlib.sh didn't work right. Since I'm using compat-wireless, the drivers are being installed to the "update" folder, not "kernel" in the "/lib/modules/`uname -r`" folder. However, somebody at the end of the enable_module function put in a break with a comment above it stating, "Lets only do this for the first module found". Well, that means the module in the "kernel" folder is enabled, but not the one in the the "update" folder. That means the module will not load (incompatible versions). I have commented out this break statement on line 86 (in attached copy of modlib.sh). It works fine now.

Hope these changes help.

--
Brett D. Ussher

#!/bin/bash
#
# Copyright 2007	Luis R. Rodriguez <lrodriguez@xxxxxxxxxxx>
#
# Makes sure either iwlagn (new) or iwl4965 (old)
# is enabled to be used. This allows us to choose any driver without 
# blacklisting each other.

. /usr/lib/compat-wireless/modlib.sh

if [[ $UID -ne 0 ]]; then
	echo "Run with root privileges"
	exit
fi

IWL_NEW="iwlagn"
IWL_OLD="iwl4965"

# Appended to module file at the end when we want to ignore one
#USAGE="Usage: $0 [ $IWL | $IWL_OLD ]"
USAGE="Usage: $0 [ $IWL_NEW | $IWL_OLD ]"
function enable_iwlagn {
	module_disable $IWL_OLD
	for i in $IWL_NEW; do
		module_enable $i
	done
}

# Default behavior: disables the old iwl4965 driver and enables iwlagn
if [ $# -eq 0 ]; then
	enable_iwlagn
	exit
elif [ $# -ne 1 ]; then
	echo "$USAGE"
	exit
fi

MODULE=$1
#if [ "$MODULE" == "iwl4954" ]; then
if [ "$MODULE" == "iwl4965" ]; then
	module_disable $IWL_NEW
	module_enable $IWL_OLD
elif [ "$MODULE" == "iwlagn" ]; then
	enable_iwlagn
else
	echo "$USAGE"
	exit
fi

Attachment: modlib.sh
Description: Bourne shell script


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux