既存のMicrosoft Surface 2(Nvidia Tegra 4 SoCを搭載したタブレット)からLinux Live USBを起動しようとしています。明らかにGPUを実行するにはSoCドライバが必要です。起動を試みることができるいくつかのライブUSBディストリビューションがあります。私が試した最初のものはDebian 10 ARM HFでした。これで、次のパッケージが必要なブートローダが心配です。
https://packages.debian.org/buster/armhf/u-boot-tegra/
もちろん、このパッケージを使用する前にディストリビューションをインストールする必要があるため、鶏と卵の問題です。それでは、そのパッケージ内のこれらのバイナリを活用するためにLive USBのブートローダをどのように修正しますか?
/usr/lib/u-boot/jetson-tk1/u-boot-tegra.bin
/usr/lib/u-boot/jetson-tk1/uboot.elf
可能であれば、Live USBのルートにあるファイルを交換しますか?
さあ、誰もが私の注意を広げようとしています。これがあなたのチャンスです。
ベストアンサー1
Surface 2はARMアーキテクチャを備えた32ビットUEFIシステムであることがわかっているので、リムーバブルメディアから起動するように指示されたら、ファームウェアは理解しているすべてのファイルシステムタイプを見つけます\EFI\boot\bootarm.efi
(少なくともFAT32ですが、Microsoftファームウェアもそうであると思います)。 NTFSを読むことができますか?ライブメディアでファイルを見つけたら、起動可能なメディアと見なし、ファイルをロードして実行する必要があります。
rEFInd
UEFIブートローダーであればいいのですが、x86プラットフォームでは32ビットハードウェアのみをサポートしているため、32ビットARMバージョンは存在しません。ただし、GRUBsystemd-boot
には32ビットARMバージョンがあるようです。
UEFIの場合、Live USBルートに適切なディレクトリを作成し、指定されたファイル名(32ビットARMの場合)を使用して、指定されたディレクトリにブートローダのコピーを配置するのと同じくらい簡単です\EFI\boot\bootarm.efi
。残りは実際にブートローダが何であるかによって異なります。 ARMバージョンのGRUBを使用している場合は、ライブメディアでカーネルファイルとinitramfsファイルを見つけることができる場所をGRUBに通知する最小のGRUB設定ファイルを作成する必要があります。私はそれについてあまり慣れていませんが、systemd-boot
通常はライブメディアの予想される場所に見つかると予想されるものを入れる必要があります。
一方、組み込みシステムを開発する場合、U-bootが重要です。ベアメタルから、カスタムファームウェアの一部としてU-Bootを使用します。ところで、あなたはそうしなかったようです。