Eu tenho um Compaq Presario CQ-61 320SQ, estou usando o Ubuntu 10.04 porque após a atualização para 10.10 meu mouse e touchpad não funcionarão, a rede não funcionará, o som não funcionará ... (consegui conserto a maioria deles depois de quase um mês pesquisando, mas não todos, meus 2 Desktops não têm problema com 10.10) então eu decidi voltar para o 10.04, onde eu tenho um problema:
Minha velocidade de banda larga é muito baixa porque o módulo do kernel r8169
, eu baixei o módulo bom r8101
e toda vez que o computador inicializa tem uma entrada rc.local
para consertar isso.
Pergunta:
Posso carregar o módulo permanentemente de um local específico. Eu ouvi sobre /etc/modules
mas lá eu preciso do nome do módulo, mas eu tenho que carregá-lo de um caminho específico (onde é o caminho padrão para isso)?
Obrigado.
Então eu estudei o roteiro:
Ele cria o arquivo r8101.ko
em /lib/modules/'uname -r'/kernel/drivers/net
, então acho que enquanto ninguém excluir esse arquivo, e eu não atualizar o kernel, talvez adicionar r8108
a /etc/modules
funcione e adicionar r8169
to blacklist ... Eu vou tentar.
EDIT2:
Então, adicionei r8101
a /etc/modules
e blacklist r8169
a /etc/modprobe.d/blacklist.conf
.
Ainda usa o antigo módulo.:
radu@adu:~$ lsmod | grep r8
r8101 67626 0
r8169 34108 0
mii 4381 1 r8169
EDIT: O módulo é carregado usando este script que o acompanha.:
#!/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