Linuxのイーサネット-USBアダプタ

Linuxのイーサネット-USBアダプタ

最近Ethernet-USBアダプタを購入しました。

Linux(私の場合はUbuntu)を実行しているコンピュータに接続すると自動的に機能し、何もせずにこのインターフェイスを介してインターネット接続を表示できます。

私が疑問に思うのは、特定のドライバをインストールせずにこれがどのように機能するかです。

udevは、このデバイスが接続されているときに設定すると推測します。しかし、このUSBデバイスが実際にイーサネットへのインターフェイスとして使用され、それを介してトラフィックをルーティングできることをどのように知ることができますか?

この問題を検出して管理するコードはどこにありますか?事前にありがとう

ベストアンサー1

特定のドライバをインストールせずにどのように機能しますか?

ほとんどのディストリビューションに組み込まれているLinuxカーネルにはすでに多数のドライバが含まれています。ほとんどのイーサネット-USBアダプタは、USB記述子に次のように表示されます。CDCデバイスしたがって、標準ドライバの1つ(複数のバリエーションを含む)がほとんどのデバイスで動作します。

udevは、このデバイスが接続されているときに設定すると推測します。しかし、このUSBデバイスが実際にイーサネットへのインターフェイスとして使用され、それを介してトラフィックをルーティングできることをどのように知ることができますか?

すべてのカーネルモジュールには、使用可能なデバイスを記述するモードを含めることができます。aliasたとえば、これで始まるエイリアスmodinfo cdc_etherがかなり多く表示されますusb。残りのエイリアスは USB 記述子の値と一致します。

modules_aliasすべてのエイリアスはファイル()に収集され/lib/modules/<kernel_version>/、このファイルはカーネルで使用され、新しいデバイス(USBなど)が見つかったときにアクティブにするドライバを決定します。

ドライバ自体は、自分が表すデバイスが別のカーネル層(ネットワークインタフェースなど)で表現されていることをカーネルに通知する役割を果たします。その後、これらの上位層は異なるステップを処理し、時にはユーザ空間との対話を使用してネットワークインタフェースの初期化、ルーティング設定などを実行する。

おすすめ記事