DKMSドライバ再インストール

スポンサーリンク
スポンサーリンク

サーバ落ちてた

epgstationやmirakurunのPM2のステータスだけ見てて「今日も大丈夫だな」と思っていたら、つい先日再起動していた頃から録画が失敗していました。
どうも再起動の際にドライバを壊したらしくデバイスが見えなくなっていました。

ドライバの再インストール

DKMSにて管理されているドライバは「buildしてinstall」では進みません。
パッケージ管理されておりbuildしようがinstallしようが「もう作成されてます」でコマンドが帰ってきてしまいます。ではどのようにすればよいのでしょうか。

今回は管理されているドライバが壊れた時とはmodprobeで登録できない状態の場合です。

ERROR: could not insert 'pt1_drv': Exec format error

という感じにファイルが壊れた感じですね。

まずはクリーンな環境にする

まずはdkmsのコマンド一覧の中から使えそうな奴をピックアップして実行してみます。
まずはuninstall。


で登録した際に作業したフォルダで設定開始です。

$ cd pt1
$ REVISION=`hg log -r tip | sed -n -e '1s/.*://p'`

ここではリビジョンを取得するためにコマンドを叩いています。
DKMSへの登録までは済んでいるのでまずはインストールできるか確認してみます。

$ sudo dkms add -m pt1_drv -v $REVISION
$ sudo dkms build -m pt1_drv -v $REVISION
$ sudo dkms install -m pt1_drv -v $REVISION

どれを取っても「もう登録、インストールされているよー」と返事が返ってきます。なのでまずはinstallモジュールをアンインストールしてみます。

$ sudo dkms uninstall -m pt1_drv -v $REVISION

このコマンドはmodprobeで登録されているドライバをdepmodで取り出すだけでした。この後インストールとしてもまた壊れたファイルを登録してしまいます。これではいけません。
そこで完全に削除します。

$ sudo dkms remove -m pt1_drv/$REVISION --all

removeの構文が分からず試行錯誤したらこのコマンドに行きつきました。
このコマンドでbuildしたドライバの削除まで行われます。addまでは残っているので

$ sudo dkms build -m pt1_drv -v $REVISION
$ sudo dkms install -m pt1_drv -v $REVISION
$ modprobe pt1_drv

これで再導入できました。

コメント

タイトルとURLをコピーしました