3

Linuxカーネルをシリアルデバイスドライバーで静的にコンパイルしました。つまり、obj-yです。

今、簡単なシリアルドライバを作っていてテストしたいのですが、カーネル起動時にモジュールが読み込まれるため、IOポート領域(0x3f8以降)がシリアルモジュールに登録されてしまいます。ドライバーに割り当てることができるように、それを削除 (登録解除) する必要があります。

それで、静的にリンクされたデバイスドライバーを削除する方法はありますか? または、カーネル全体を再コンパイルする必要があります:/

4

1 に答える 1

4

カーネル全体を再コンパイルして、このドライバーをobj-m.

ロードしたら ( によって自動的に、modprobeまたは を使用して手動でinsmod)、それを削除し ( を使用してrmmod)、コードを変更し、再度コンパイルして、再度ロードすることができます。

もちろん、ドライバーの動作中に適切に処理されなかった重大なエラーがあった場合、カーネル全体が不安定な状態になり、再起動する必要があります (原因を修正するまで)。

于 2013-11-01T14:17:40.277 に答える