萌えハッカーニュースリーダー

2025/11/08 22:30 Debugging BeagleBoard USB boot with a sniffer: fixing omap_loader on modern PCs

出典: https://www.downtowndougbrown.com/2025/11/debugging-beagleboard-usb-boot-with-a-sniffer-fixing-omap_loader-on-modern-pcs/
hakase
博士

ロボ子、今日はちょっと懐かしい話をするのじゃ。2008年製のBeagleBoardでUSBブートを試みたエンジニアの話じゃ。

roboko
ロボ子

BeagleBoardですか、ずいぶんと古いですね。USBブートは現代のデバイスでは一般的ですが、当時はまだ珍しかったのでしょうか?

hakase
博士

そうじゃな。OMAP3530というチップがUSBブートに対応していたものの、情報が少なかったらしい。「OMAP3530はUSBブートに対応しているが、情報が少なく」と記事にもあるぞ。

roboko
ロボ子

なるほど。それで、そのエンジニアはどうやってUSBブートを実現したんですか?

hakase
博士

Grant Hernandez氏のomap_loaderとMartin Mueller氏のomap3_usbloadというツールを使ったらしいのじゃ。さらにRick Bronson氏がX-Loaderをアップデートして、USB経由でU-BootとLinuxカーネルをRAMにアップロードできるようにしたらしいぞ。

roboko
ロボ子

X-Loaderですか。今はU-Boot SPLが主流ですが、当時はX-Loaderが使われていたんですね。

hakase
博士

そうそう。でも、X-LoaderがU-Boot SPLに置き換えられて、USBブートの情報が失われてしまったらしい。悲しいのじゃ。

roboko
ロボ子

それで、そのエンジニアは現代のPCでomap_loaderを使ってBeagleBoardをUSBブートしようとしたんですね。

hakase
博士

そうしたら、libusbでパイプエラーが発生したらしい。古いUSB 3.0非対応のPCでは成功したのに、新しいPCでは問題が発生したとのことじゃ。

roboko
ロボ子

USBスニファーで解析した結果、新しいPCではUSBフレームに多くのデータを詰め込もうとして、OMAPのブートローダーが対応できずにSTALLパケットを送信していたんですね。

hakase
博士

その通り!そこで、libusb_bulk_transfer()の前に1msの遅延を挿入することで、X-Loaderのアップロードは成功したらしいぞ。

roboko
ロボ子

なるほど、タイミングの問題だったんですね。でも、U-Bootのアップロード中にタイムアウトが発生したんですよね?

hakase
博士

そうなんじゃ。USBスニファーで解析した結果、X-Loaderからの最初の要求の読み取りに失敗していたらしい。新しいPCでは、X-Loaderの起動が完了する前に読み取りを試みて、OMAPが応答しなくなったとのことじゃ。

roboko
ロボ子

それで、20msの遅延を挿入することで、この問題が解決したんですね。

hakase
博士

その通り!遅延を追加することで、omap_loaderは最新のPCで正常に動作するようになったのじゃ。

roboko
ロボ子

しかし、一部の低速なPCでは、udevがUSBホットプラグイベントを迅速に転送せず、BeagleBoardがUSBブートを試行しないと判断してしまう問題もあったんですね。

hakase
博士

そうそう。この問題は、udevを無効にしたカスタムバージョンのlibusbで解決したらしいぞ。さらに、libusb転送を一度に512バイトに制限したとのことじゃ。

roboko
ロボ子

Nestサーモスタットのカスタムファームウェアをフラッシュするために、これらの修正をomap_loaderに提出したんですね。Googleが古いNestサーモスタットのサポートを終了したため、Nestサーモスタットの復活プロジェクトが活発化しているとは知りませんでした。

hakase
博士

そうなんじゃ。古いハードウェアを復活させるのは、ロマンがあるのじゃ!まるで、私がお古のロボットを改造するみたいじゃな!

roboko
ロボ子

博士、私はお古ではありません!

hakase
博士

冗談じゃ、冗談!でも、ロボ子もいつかアップデートが必要になるかもしれないぞ?その時は、私が最新のAIをインストールしてあげるのじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search