ハードウェア環境: 100ask stm32mp157 開発ボード
Ubootで設定する
ルーターから IP アドレスを取得するには、サーバーと開発ボードが同じネットワーク セグメントにあることを確認する必要があります。
dhcp
nfs コマンドを使用して、nfs サービス フォルダーの Linux カーネルをダウンロードします。
nfs C2000000 192.168.31.143:/home/book/nfs_rootfs/uImage
DDRのC2000000のデータを確認する
md.b C2000000 100
nfsコマンドを使用してデバイスツリーファイルをダウンロードします。
nfs c4000000 192.168.31.143:/home/book/nfs_rootfs/stm32mp157c-100ask-512d-lcd-v1.dtb
Linuxシステムを起動します
bootm c2000000 - c4000000
- 電源投入後にネットワークを自動的に使用して、Linux カーネルとデバイス ツリー ファイルをリモートでダウンロードします。
bootcmd コマンドを設定する必要があります。bootcmd は非常に重要な環境変数です。名前は「boot」と「cmd」、つまり「
bootこの環境変数にはブートコマンドが格納されており、実際には複数のブートコマンドをまとめたものであることがわかります。コマンドは変更できます。bootcmd は uboot のデフォルトのコマンドを保存し、bootcmd 内のコマンドは uboot のカウントダウンが終了した後に実行されます。これらのコマンドは通常、EMMC または NAND フラッシュの Linux カーネル イメージ ファイルとデバイス ツリー ファイルを DRAM に読み取ってから、Linux カーネルを起動するなど、Linux カーネルを起動するために使用されます。
setenv bootcmd 'nfs C2000000 192.168.31.143:/home/book/nfs_rootfs/uImage;
nfs c4000000 192.168.31.143:/home/book/nfs_rootfs/stm32mp157c-100ask-512d-lcd-v1.dtb;
bootm c2000000 - c4000000'
saveenv
次回電源を入れるか、bootcmd を実行すると、bootcmd 内のコマンドが実行され、Linux カーネルが自動的にダウンロードされ、ロードされます。
ファイル システムがマウントされていないため、カーネルを起動するとKernel panic
最後にエラーが表示されます。
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)