Busybox LinuxはNXPのARM Cortex A7プロセッサで動作します。
ボードにはSDカードスロットとeMMC
ストレージに使用できるチップがあります。デバイスがNORフラッシュメモリから起動しています。
奇妙なことに、SDカードを挿入するとドライブをマウントできず、eMMC
パーティションの損失エラーが発生しました。再起動後、問題は消えました。 SDカードを取り外すと同じ問題が発生しますが、今回はパーティションをマウントできず、eMMC
マウント失敗エラーが発生します。
したがってeMMC
、インストールが失敗したときにデバイスがSDカードと混同されたと考えますeMMC
。
udevadm info -a -n /dev/mmcblk2
失敗(例)で実行すると、mmcblk2
次のようになります。eMMC
ATTRS{type}=="SD"
ただし、インストールが機能すると、次のレポートが表示されます。
ATTRS{type}=="MMC"
したがって、私たちはオペレーティングシステムがSDカードデバイスとデバイスを混同していると疑いますMMC
。
強制できますかATTRS{type}=="MMC"
?
それでは、どうすればいいですか?
それともこの問題を解決するためのより良い選択肢がありますか?
補足説明
dmesg when we can't mount eMMC partition 1
[ 1.981630] mmc2: MAN_BKOPS_EN bit is not set
[ 1.996222] usb 2-1: new high-speed USB device number 3 using ci_hdrc
[ 2.003347] mmc2: new DDR MMC card at address 0001
[ 2.004444] mmcblk2: mmc2:0001 R1J57L 13.8 GiB
[ 2.006353] mmcblk2boot0: mmc2:0001 R1J57L partition 1 16.0 MiB
[ 2.006672] mmcblk2boot1: mmc2:0001 R1J57L partition 2 16.0 MiB
[ 2.006912] mmcblk2rpmb: mmc2:0001 R1J57L partition 3 128 KiB
[ 2.010135] mmcblk2: p1
eMMCをマウントするときは、dmesgが有効です。
[ 1.852533] mmc2: new DDR MMC card at address 0001
[ 1.853202] mmcblk2: mmc2:0001 R1J57L 13.8 GiB
[ 1.853364] mmcblk2boot0: mmc2:0001 R1J57L partition 1 16.0 MiB
[ 1.853544] mmcblk2boot1: mmc2:0001 R1J57L partition 2 16.0 MiB
[ 1.853697] mmcblk2rpmb: mmc2:0001 R1J57L partition 3 128 KiB
[ 1.856437] mmcblk2: p1
違いは、動作しないget:mmc2:MAN_BKOPS_ENビットが設定されていないことです。 BKOPSはeMMCのパフォーマンス機能であるバックグラウンドタスクです。この質問とどのように関連しているかよくわかりません。
lsblk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk2rpmb 179:32 0 128K 0 disk
mmcblk2boot0 179:16 0 16M 1 disk
mmcblk2boot1 179:24 0 16M 1 disk
mmcblk0 179:0 0 3.8G 0 disk
`-mmcblk0p1 179:1 0 3.8G 0 part
mmcblk2 179:8 0 13.8G 0 disk
`-mmcblk2p1 179:9 0 13.8G 0 part
mmcblk2はeMMC、mmcblk0はSDカードです。
SDカードmmcblk0でudevadm infoを実行します。
udevadm info -a -n /dev/mmcblk0
ATTRS{type}=="SD"