Mam Compaq Presario CQ-61 320SQ, używam Ubuntu 10.04, ponieważ po aktualizacji do 10.10 moja mysz i touchpad nie działają, sieć nie działa, dźwięk nie działa ... (udało mi się naprawić większość po prawie miesiącu od Google, ale nie wszystkie, moje 2 komputery nie mają problemu z 10.10), więc postanowiłem wrócić do 10.04, gdzie mam problem:
Moja prędkość szerokopasmowa jest bardzo niska z powodu modułu jądra r8169
, pobrałem dobry moduł r8101
i za każdym razem, gdy rozruch komputera ma rc.local
wpis, aby to naprawić.
Pytanie:
Czy mogę załadować moduł na stałe z określonej lokalizacji. Słyszałem o, /etc/modules
ale potrzebuję nazwy modułu, ale muszę go załadować z określonej ścieżki (gdzie jest ścieżka domyślna)?
Dziękuję Ci.
Studiowałem więc scenariusz:
Tworzy plik r8101.ko
w /lib/modules/`uname -r`/kernel/drivers/net
tak myślę, że tak długo, jak nikt nie usunie tego pliku, a ja nie aktualizować jądro, może dodanie r8108
do /etc/modules
pracy będzie, i dodać r8169
do czarnej listy ... dam jej spróbować.
EDIT2:
Więc dodałem r8101
do /etc/modules
i blacklist r8169
do /etc/modprobe.d/blacklist.conf
. Nadal używa starego modułu:
radu@adu:~$ lsmod | grep r8
r8101 67626 0
r8169 34108 0
mii 4381 1 r8169
EDYCJA: Moduł jest ładowany za pomocą tego skryptu, który został dostarczony:
#!/bin/sh
# invoke insmod with all arguments we got
# and use a pathname, as insmod doesn't look in . by default
TARGET_PATH=/lib/modules/`uname -r`/kernel/drivers/net
echo
echo "Check old driver and unload it."
check=`lsmod | grep r8169`
if [ "$check" != "" ]; then
echo "rmmod r8169"
/sbin/rmmod r8169
fi
check=`lsmod | grep r8101`
if [ "$check" != "" ]; then
echo "rmmod r8101"
/sbin/rmmod r8101
fi
echo "Build the module and install"
echo "-------------------------------" >> log.txt
date 1>>log.txt
make all 1>>log.txt || exit 1
module=`ls src/*.ko`
module=${module#src/}
module=${module%.ko}
if [ "$module" == "" ]; then
echo "No driver exists!!!"
exit 1
elif [ "$module" != "r8169" ]; then
if test -e $TARGET_PATH/r8169.ko ; then
echo "Backup r8169.ko"
if test -e $TARGET_PATH/r8169.bak ; then
i=0
while test -e $TARGET_PATH/r8169.bak$i
do
i=$(($i+1))
done
echo "rename r8169.ko to r8169.bak$i"
mv $TARGET_PATH/r8169.ko $TARGET_PATH/r8169.bak$i
else
echo "rename r8169.ko to r8169.bak"
mv $TARGET_PATH/r8169.ko $TARGET_PATH/r8169.bak
fi
fi
fi
echo "Depending module. Please wait."
depmod -a
echo "load module $module"
modprobe $module
echo "Completed."
exit 0