
私は DVB チューナー、USB チューナーを使用しています。カーネルにドライバーを追加し、登録しています。しかし、デバイスが接続されても、プローブ機能が呼び出されません。
追加すべきことはありますか? デバイス ドライバーをデバイスにマップする必要があるかなど。また、USB デバイスの種類に基づいてドライバーがどのようにロードされるかについても説明してください。使用しているカーネルは Linux 3.5 です。
答え1
お使いのデバイスがドライバーで動作することを確かにご存知ですか? そうであれば、次の手順に従ってください。
ファームウェア
一部のデバイスでは、追加のファームウェアも必要です。残念ながら、ファームウェアを抽出してインストールする方法は、デバイスによって異なります。Windows ドライバーのコピーをダウンロードし、ツールを使用してファームウェアを抽出する必要があるデバイスもあります。ここでは、Google が役立ちます。
ベンダーIDと製品IDの変更
ベンダーは、互換性のあるデバイスを認識するためにドライバーが使用するベンダー ID と製品 ID を変更することがあります。
これらの ID はドライバーにハードコードされています。幸いなことに、最新のデバイス ドライバーには、実行時にベンダー ID と製品 ID を一時的に追加する方法があります。
lsusb
デバイスの ID を取得するには、次を使用します。
# lsusb
Bus 002 Device 001: ID 1234:abcd Acme Corp DVB Tuner
デバイスを取り外し、ドライバーをアンロードします (新しい開始点を取得するため):
# rmmod acme_dvb
次に、ドライバーをロードします。
# modprobe acme_dvb
最後に、ドライバーに新しい USB ID を伝えます。
# echo 1234 abcd > sys/bus/usb/drivers/acme_dvb/new_id
正確なパスは異なる場合があることに注意してください。
デバイスを接続して、認識されているかどうかを確認します。
# dmesg
これが機能する場合は、これをドライバーのバグとして報告し、メンテナンス担当者が新しい ID を追加してくれるようにするのが正しい対応です。