Compaq Presario CQ-61 320SQを使用しています。10.10へのアップデート後、マウスとタッチパッドが機能しなくなり、ネットワークが機能せず、サウンドが機能しないため、Ubuntu 10.04を使用しています。ほぼ1か月間グーグルで検索しましたが、すべてではありませんが、私の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
編集:モジュールは、付属のこのスクリプトを使用してロードされます。
#!/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
したがって、回答に対するすべてのデータを収集するには、次のようにします。
新しいモジュールの最初のコンパイル後、/lib/modules/$(uname -r)/kernel/drivers/net
にモジュールファイルr8101.ko
がありました。
r8101
を/etc/modules
に追加し、blacklist r8169
を/etc/modprobe.d/blacklist.conf
に追加しましたが、まだ古いモジュールを起動していました。
次にSudo update-initramfs -u
を実行し、再起動後に期待どおりに新しいモジュールがロードされました(@papukaijaコメントのおかげ)。