某所に(JA) USB-Gigabit on CentOS 5.2という記事を書いた。
これは自鯖の話で、Athlon 64ノートPCにUSB-Gigabit Ethernetを接続していたり。
CentOS 5のカーネルは 2.6.18 のため、ドライバが対応していないので、
2.6.19から取り込むという苦肉の策。
バッファロー製品のデバイス番号が異なるので、別途改造して追加。
ただ、某所の内容では手動ですべてを行う必要があるので、
下記のようなスクリプトを用意してみました。
/sp/usb-giga 以下に 2.6.19 カーネルドライバを展開。
ソースコードは改変済みの状態で、
/sp/usb-giga/install-usb-gigabit.sh
を作成。
これは自鯖の話で、Athlon 64ノートPCにUSB-Gigabit Ethernetを接続していたり。
CentOS 5のカーネルは 2.6.18 のため、ドライバが対応していないので、
2.6.19から取り込むという苦肉の策。
バッファロー製品のデバイス番号が異なるので、別途改造して追加。
ただ、某所の内容では手動ですべてを行う必要があるので、
下記のようなスクリプトを用意してみました。
/sp/usb-giga 以下に 2.6.19 カーネルドライバを展開。
ソースコードは改変済みの状態で、
/sp/usb-giga/install-usb-gigabit.sh
を作成。
#!/bin/bash echo building usbnet and asix driver PWD=`pwd` cd /sp/usb-giga/linux-2.6.19/drivers/usb/net make -C /lib/modules/`uname -r`/build SUBDIRS=`pwd` modules echo copy drivers to /lib/module cp asix.ko usbnet.ko /lib/modules/`uname -r`/kernel/drivers/usb/net/. echo loading new drivers modprobe -r asix modprobe -r usbnet modprobe asix modprobe usbnet cd $PWD echo done.
ドライバのアップデートは基本的にカーネルバージョンが変わったときのみ
なので、カーネルアップデートをチェックする仕組みを次のようにしてみました。
/sp/auto_update.sh
#!/bin/bash VERSION_FILE=/sp/version if [ -n "$VERSION_FILE" ]; then echo `uname -r` > $VERSION_FILE fi if [ `uname -r` != `cat $VERSION_FILE` ]; then echo updating usb-gigabit ethernet driver... . /sp/usg-giga/install_usb_gigabit.sh echo done / updating usb-gigabit ethernet driver... else echo system requires no action. fi
Linux の起動時に上記のスクリプトを実行させるために
/etc/rc.local に追加。
# driver update . /sp/auto_update.sh
通常なら rpm 化してしまえば簡単だと思うのだが、
既存のドライバファイルを上書きしている関係で、依存関係とか
多少面倒そうなので rpm 化しない方法にしてみたわけです。
※コメント投稿者のブログIDはブログ作成者のみに通知されます