web-dev-qa-db-ja.com

U-BootターミナルからuEnv.txtを修復しますか?

BeagleBone Blackと、Debian 8.3、Linux 4.1.15-ti-rt-r43を使用しています。

[〜#〜] edit [〜#〜]:システムは内蔵フラッシュにインストールされます

/boot/uEnv.txtを変更して、明らかに間違ったファイル名で別のdtbファイルをロードしたため、Linuxで起動しません。

PCのJ1ピン/ UART0->ターミナルプログラムを介して接続しました。 U-Bootがファイルが見つからないというメッセージを表示するので、Linuxが起動せず、U-Bootコマンドが表示されます。 「ヘルプ」と入力した後にリストされたものは、あまり役に立たないように見えました。

U-Bootコマンドを使用してシリアルコンソールからuEnv.txtを修復することは可能で、実現可能ですか。または、他に何が最善のアプローチでしょうか?


EDIT#2:このサイトでいくつかの有用なスクラップを検索しましたが、正確にはわかりませんでしたが、有用な方向に進んでいます: https:/ /www.compulab.co.il/utilite-computer/wiki/index.php/Utilite_U-Boot_User_How-To%27s U-BootコンソールでuEnv.txtの入力を実際に確認できる: "ls mmc 1 boot」、U-Bootのlsコマンドにはデバイス名+ numが必要です。どうやら私のSDカードはmmc0、内部フラッシュmmc1、面白い順序です。悲しいかな、U-Bootには編集者は言うまでもなく「猫」はいない。いくつかのコインのためにぬいぐるみの動物をつかもうとしているリモートコントロールされた腕を持つ子供のように、私のファイルを完全につかむことができません。


EDIT#3:mmc1にuEnv.txtの古いバックアップファイルがあることがわかりました。 U-Bootコマンドには、ファイルをメモリにロードするための「load」と、ファイルを保存するための「save」があります。アドレスとサイズを指定する必要があります。 「ls mmc 1 boot」コマンドで表示されるファイルサイズ。このスライドの35ページのメモリマップを見てください。 https://www.slideshare.net/chrissimmonds/embedded-linux-quick-start-guide 、RAM開始0x80000000でU-BootだけがRAMにある場合、たとえば384Mバイトでは何もないことを期待して、ファイルを98000000にロードしてそこから保存しようとしましたが、保存しました。 「ファイルに書き込めません」を返しました。残念な。

2
sktpin

OK、私はU-Bootルートをあきらめました。

BeagleBone DebianイメージのIoTバリアント(コンソールのみ、GUIなし、ダウンロードが高速)を取得しました。 「ストレッチIoT(グラフィカルデスクトップなし)」: https://beagleboard.org/latest-images

ここの手順に従いました: http://beagleboard.org/getting-started

それをフラッシュする方法のリンクがあります。つまり、そのためには追加の手順が必要です。 sdcardのブートが内部のemmcをフラッシュするのではないかと心配していました。

前述のように、SDカードが挿入されると、sdcard mmcデバイスは番号0、内部フラッシュ(emmc)は1になります。また、emmcのファイルシステムは明らかにext4です。だからあなたはそれをマウントする必要があります:

debian@beaglebone:~$ Sudo mkdir /mnt/emmc
debian@beaglebone:~$ Sudo mount -t ext4 /dev/mmcblk1p1 /mnt/emmc

次に、マウントされたemmcのブートフォルダーに移動します。

debian@beaglebone:/$ cd /mnt/emmc/boot/

そこにあるuEnv.txtをエディターで修正するか、必ず事前に作成したバックアップを修正してください;)

0
sktpin