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"