У меня Compaq Presario CQ-61 320SQ, я использую Ubuntu 10.04, потому что после обновления до 10.10 моя мышь и тачпад не работают, сеть не работает, звук не работает ... (Мне удалось исправить большинство после почти месяца поиска в Google, но не у всех, у моих 2 рабочих столов нет проблем с 10.10), поэтому я решил вернуться к 10.04, где у меня проблема:
Скорость моего широкополосного доступа очень низкая из-за модуля ядра r8169
, я скачал хороший модуль r8101
и каждый раз при загрузке компьютера появляется rc.local
запись, чтобы это исправить.
Вопрос:
Могу ли я загрузить модуль постоянно из определенного места. Я слышал о, /etc/modules
но там мне нужно имя модуля, но я должен загрузить его по определенному пути (где путь по умолчанию для этого)?
Спасибо.
Итак, я изучил сценарий:
Она создает файл r8101.ko
в /lib/modules/`uname -r`/kernel/drivers/net
так что я думаю, пока никто не удалит этот файл, и я не обновлять ядро, возможно , добавление r8108
к /etc/modules
будет работать, и добавить r8169
в черный список ... Я дам ему попробовать.
РЕДАКТИРОВАТЬ 2:
Таким образом, я добавил r8101
к /etc/modules
и blacklist r8169
к /etc/modprobe.d/blacklist.conf
. Он все еще использует старый модуль.
radu@adu:~$ lsmod | grep r8
r8101 67626 0
r8169 34108 0
mii 4381 1 r8169
РЕДАКТИРОВАТЬ: модуль загружается с помощью этого скрипта, который идет с ним .:
#!/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
Ответы:
Итак, чтобы собрать все данные для ответа, вот оно:
После первой компиляции нового модуля, у меня был файл модуля
r8101.ko
в/lib/modules/$(uname -r)/kernel/drivers/net
.Я добавил
r8101
к/etc/modules
иblacklist r8169
к,/etc/modprobe.d/blacklist.conf
но я все еще загружался к старому модулю.Затем я запускаю,
sudo update-initramfs -u
а затем после перезапуска новый модуль был загружен, как и ожидалось (благодаря комментарию @papukaija).источник