Ich habe ein Compaq Presario CQ-61 320SQ, ich verwende Ubuntu 10.04, da nach dem Update auf 10.10 meine Maus und mein Touchpad nicht funktionieren, das Netzwerk nicht funktioniert, der Sound nicht funktioniert ... (Ich habe die meisten Probleme behoben Nachdem ich fast einen Monat gegoogelt habe, aber nicht alle, haben meine 2 Desktops kein Problem mit 10.10.) Also habe ich beschlossen, wieder auf 10.04 zu wechseln, wo ich ein Problem habe:
Meine Breitbandgeschwindigkeit ist aufgrund des Kernelmoduls sehr niedrig. r8169
Ich habe das gute Modul heruntergeladen r8101
und jedes Mal, wenn der Computer hochfährt, einen rc.local
Eintrag, um dies zu beheben.
Frage:
Kann ich das Modul dauerhaft von einem bestimmten Ort laden? Ich habe davon gehört, /etc/modules
aber dort brauche ich den Modulnamen, aber ich muss ihn von einem bestimmten Pfad laden (wo ist der Standardpfad dafür)?
Vielen Dank.
Also habe ich das Drehbuch studiert:
Es erstellt die Datei r8101.ko
in, /lib/modules/`uname -r`/kernel/drivers/net
so dass ich denke, solange niemand diese Datei löschen wird und ich den Kernel nicht aktualisiere. Vielleicht funktioniert das Hinzufügen r8108
zu /etc/modules
und Hinzufügen r8169
zur Blacklist ... Ich werde es versuchen.
EDIT2:
Also habe ich r8101
zu /etc/modules
und blacklist r8169
zu hinzugefügt /etc/modprobe.d/blacklist.conf
. Es wird immer noch das alte Modul verwendet .:
radu@adu:~$ lsmod | grep r8
r8101 67626 0
r8169 34108 0
mii 4381 1 r8169
BEARBEITEN: Das Modul wird mit dem mitgelieferten Skript geladen:
#!/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
Antworten:
Um alle Daten zu einer Antwort zusammenzufassen, hier ist es:
Nach dem ersten Kompilieren des neuen Moduls hatte ich die Moduldatei
r8101.ko
in/lib/modules/$(uname -r)/kernel/drivers/net
.Ich habe
r8101
zu/etc/modules
undblacklist r8169
zu hinzugefügt ,/etc/modprobe.d/blacklist.conf
aber ich habe immer noch das alte Modul gebootet.Dann
sudo update-initramfs -u
starte ich und nach dem Neustart wurde das neue Modul wie erwartet geladen (dank @papukaija Kommentar).quelle