オペレーティングシステム/ハードウェア通信/リバースエンジニアドライバキャプチャ

オペレーティングシステム/ハードウェア通信/リバースエンジニアドライバキャプチャ

私の主な質問は、オープンソースコミュニティがWindowsドライバ(ビデオカードなど)をリバースエンジニアリングしてLinuxで再構築できる方法です。

私は電気工学を専攻したため、マイクロプロセッサの設計、組み立て、組み込みシステム用C言語などの講座を受講し、組み込みLinux関連作業を行いました。しかし、ハードウェアメーカーのAPIなしでLinux用のドライバを書く方法を理解しようとすると、何かが欠けているようです。

私の問題は、いくつかの新しいラップトップにはデュアルグラフィックカードが付属していることです。統合型と個別型の2種類があります。 Windowsには2つを切り替えることができるドライバソフトウェアがありますが、私が知っている限り、オープンソースや独自のドライバはありません。明らかに、私は「マッソッサ、そのメッセージをどのように書くべきですか?」のような愚かな質問をするのではありません。しかし、その仕事を通して私はいつも気になっていたことに気づきました。プロセスLinuxでハードウェアサポートを入手してください。

ベストアンサー1

もちろん、多くの可能性があります。

たとえば、USBデバイスの場合は、ドライバサポート(ネットワークのtcpdumpに似ています)を持つシステムのデバイス/コンピューティング間のUSBトラフィックを監視できます。たとえば、Windows では IIRC usbsnoop など、いくつかの USB 監視ツールを使用できます。

USBスキャナの場合は、デフォルト設定を使用してトレースを作成し、1つの設定を変更したり、別のトレースを作成して比較したり、変更内容を見つけるなどの操作を実行できます。

同様に、SCSI、Firewireなどのデバイスの内容を追跡できます。

その後、独自のドライバを分解/デバッグしてみることができます(例:IDAプロフェッショナルエディション)。

または、仮想マシンまたはエミュレータ(qemuなど)でWindowsを実行し、ブレークポイントを使用してドライバの呼び出しの前後にハードウェアの状態を確認できます。同様に、ドライバがレジスタに書き込んだり読み込んだりするのを観察できます。

おすすめ記事