Linux ドライバを無効にしたり再起動して有効にしたい場合、モジュールとしてビルドして filesystem にインストールし、modprobe(insmod)/rmmod で 有効化・無効化します。
ここでは、kernel に静的ビルドしたドライバを有効化・無効化する方法を示します。
例えば 8250 シリアルドライバがインストールされている場合、sysfs には以下のファイルがあります。"serial8250" がリンクファイルとしてあるので、ドライバは kernel に接続された状態です。
# ls /sys/bus/platform/drivers/serial8250 bind serial8250 uevent unbind
以下のように unbind に指示すると、ドライバは kernel から切り離され終了します。このドライバが供給している /dev/ttyS0 などは見えなくなります。
# echo serial8250 > /sys/bus/platform/drivers/serial8250/unbind
以下のように bind に指示すると、ドライバは kernel に再び接続され probe から処理を開始します。
# echo serial8250 > /sys/bus/platform/drivers/serial8250/bind
このように、静的ビルドでリンクしたドライバも、一度切り離して再接続することで、probe からの処理をデバッグすることができるようになります。
コメント