2013-06-22 8 views
5

ロード可能なカーネルモジュールを作成してテストしようとしています。それを挿入した後、私はrmmod xxxコマンドを使用して削除しようとしていましたが、module xxx is in useというエラーが表示され、モジュールがスタックされ、削除できません。マシン全体を再起動せずにモジュールを削除するにはどうすればよいですか? (LinuxカーネルのV 3.5.0。)ロード可能なカーネルモジュールを削除できません

注:rmmod -fプリントError: device or resource busy

+0

おそらく 'rmmod -f'ですか? –

+0

'rmmod -f'は動作しません。' ERROR:device or resource busy'を表示します。 –

+2

その後リブートします。 (そして、主なホストではなく、VMでカーネルを使いこなすことを考えてください。リブートはそれほど問題ではありません。) – Mat

答えて

8
何らかの方法でパニックにモジュール内のコードを引き起こしている私のドライバのバグやクラッシュがある場合にのみ、私に何が起こる

。私の経験では、一度これが起こるのはリブートだけです。

私が言ったように、カーネルは通常パニックになるので、挿入したりアプリケーションを実行したりしてdmesgをチェックアウトする必要があります。私は確信していませんが、ドライバがミューテックスをリリースしなければ、この動作も同様に起こる可能性があります。

1

module_exit関数が正しいことを確認してください。 MODULE_FORCE_UNLOAD = yesで「マシン全体をリブートせずにモジュールを削除する」ようにカーネルをコンパイルする必要があるかもしれません。

関連する問題