1 ポイント 投稿者 GN⁺ 2024-02-24 | 1件のコメント | WhatsAppで共有

ThinkPadの隠れた機能を解放: USBデバイスエミュレーション

  • ThinkPad X1 Carbon 第6世代ノートPCを、プログラム可能なUSBデバイスに変換する方法を発見した。
  • xDCIコントローラを有効化することで、任意のUSBデバイス(キーボード、ストレージドライブなど)をエミュレートできるようになった。
  • RawGadget と syzkaller を活用してUSBホストをファジングしたり、Facedancer を実行したりできる。
  • これらすべてを外部ハードウェアなしで実行できる。

紹介

  • Raw Gadget は、高度にカスタマイズ可能なUSBデバイスをエミュレートするためのLinuxカーネルモジュールである。
  • USBデバイスをエミュレートするには、USB Device Controller(UDC)という特別なハードウェアコンポーネントが必要である。
  • 通常、PCにはUDCがなく、Raspberry Piのようなシングルボードコンピュータに内蔵されている。

調査

  • xHCIコントローラに関連するLinuxカーネルコードを調査し、xHCIデバイスがロールスイッチをサポートしていることを発見した。
  • オンライン検索を通じて、xHCIデバイスのロールスイッチに関する議論を見つけた。
  • ACPIを確認し、xDCIがACPIで有効化されているかどうかを確認した。

xDCIの有効化

  • BIOS設定ではxDCI関連の設定を見つけられなかった。
  • BIOSイメージを直接確認し、xDCI関連の設定が隠されていることを発見した。

xDCIの使用

  • BIOSの Advanced 設定を通じてxDCIを有効化した。
  • xDCIデバイスが lspci に表示されることを確認した。

要約

  • ThinkPad X1 Carbon 第6世代ノートPCに隠されていたUSBデバイスコントローラ機能を有効化する方法を発見した。
  • これにより、ノートPCをさまざまなUSBデバイスとしてエミュレートできるようになった。

所感

  • xDCIの有効化を通じて、ノートPCの新たな活用可能性を探った。

GN⁺の意見

  1. この記事は、ThinkPadノートPCの隠れた機能を有効化してUSBデバイスをエミュレートする方法を示すことで、ハードウェアハッキングとカスタマイズ性の新たな領域を切り開いている。
  2. 従来は別途ハードウェアが必要だった作業をノートPC1台で実行できるようになり、開発者や研究者にとって大きな助けになり得る。
  3. この記事は、技術的な好奇心を持つ人々に興味深い挑戦課題を提示し、既存デバイスの潜在能力を最大限に活用する方法を探る助けとなる。

1件のコメント

 
GN⁺ 2024-02-24
Hacker Newsのコメント
  • ノートPCを別のコンピュータのキーボードやモニターとして使えない理由を不思議に思う意見がある。ヘッドレスなマシンの保守時には、すでにノートPCがキーボードとモニターの役割を果たしているのに、新しく購入するのはばかばかしく感じられる。
  • スマートTVがUSBメモリ内のファイルでファームウェア更新を受け取る事例を思い出すコメントがある。USBストレージを装ったデバイスが、最初にメーカーのファームウェアファイルを送り、次に非公式ファームウェアを送る方式だ。
  • NASサーバーを活用しようとする試みに関する興味深い議論がある。NASストレージをPS5やXboxに公開する方法を調べ、iSCSIやNFSでNAS共有をマウントし、g_mass_storage モジュールを使ってUSBホストにストレージを公開する方法が可能だと分かった。しかし、帯域幅がシステムにもたらす速度向上を大きく制限し、主な障害になっている。
  • Raspberry Piを使ってHDIをエミュレートしようとする試みに関するコメントがある。Windowsプロセスにキー入力を送る既存の方法では修飾キーを送る際に問題が生じるため、別の方法を模索する過程を説明している。
  • ネットワークなしでSynergyやMouse Without Bordersのような構成をUSBケーブルだけで実現できるという事実に希望を抱くコメントがある。これは同時に複数のコンピュータを運用しなければならない人にとって有用だ。
  • USB-Cケーブルだけで2台のマシン間に10Gbps接続を試みようとするコメントがある。大半のRyzenマザーボードはいまだにThunderboltをサポートしておらず、「デュアルロール」USBコントローラーも珍しい点を指摘している。USB 3.2/4.0でも可能だが、サポートは不安定だと述べている。
  • PCをUSBデバイスとして使える能力が面白い可能性を開くというコメントがある。ただし、必要なxDCIオプションはハードウェアには存在するものの、ファームウェアハックによってしかアクセスできないことを残念がっている。
  • Lenovoがこの技術を使って、あるThinkPadを別のThinkPadのデバッグに利用しているのか気になるというコメントがある。Intelのデバッグ技術へのリンクと、関連するYouTube動画のリンクが含まれている。
  • Raspberry Piを扱うのが面倒だと感じるコメントがある。USB OTGを設定し、SSH経由でマウントやコマンドを設定できることを提案している。自分のデバイスを理解し、カーネルを読み、問題を自力で解決しようとする努力を励ます内容だ。
  • BIOSでxDCIスイッチを有効にしたがUDCデバイスノードが現れず、さらに深く掘り下げる必要があるというコメントがある。元の投稿に触発され、追加調査が必要だと述べている。