Rad*_*ris 13 10.04 kernel modules drivers
我有一台 Compaq Presario CQ-61 320SQ,我使用的是 Ubuntu 10.04,因为更新到 10.10 后,我的鼠标和触摸板无法工作,网络无法工作,声音也无法工作......(我设法修复了大部分他们经过将近一个月的谷歌搜索,但不是全部,我的 2 台台式机在 10.10 上没有问题)所以我决定切换回 10.04,在那里我遇到了问题:
由于内核模块r8169,我的宽带速度非常低,我下载了好的模块r8101,每次计算机启动时都有一个rc.local条目来解决这个问题。
问:
我可以从特定位置永久加载模块吗?我听说过,/etc/modules但我需要模块名称,但我必须从特定路径加载它(默认路径在哪里)?
谢谢你。
所以我研究了脚本:
它会在其中创建文件r8101.ko,/lib/modules/`uname -r`/kernel/drivers/net所以我认为只要没有人会删除该文件,并且我不更新内核,也许添加r8108到/etc/modules会起作用,并添加r8169到黑名单中......我会尝试一下。
EDIT2:
所以我说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
Run Code Online (Sandbox Code Playgroud)
编辑:模块是使用随附的脚本加载的。:
#!/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
Run Code Online (Sandbox Code Playgroud)
Rad*_*ris 12
因此,要收集所有数据以获得答案,这里是:
在第一次编译新模块后,我将模块文件r8101.ko放在/lib/modules/$(uname -r)/kernel/drivers/net.
我添加r8101到/etc/modules和blacklist r8169到/etc/modprobe.d/blacklist.conf但我仍在引导到旧模块。
然后我运行sudo update-initramfs -u,然后在重新启动后按预期加载新模块(感谢@papukaija 评论)。
| 归档时间: |
|
| 查看次数: |
37404 次 |
| 最近记录: |