Linux에서 nand 또는 emmc 파티션에 액세스할 수 없습니다.

Linux에서 nand 또는 emmc 파티션에 액세스할 수 없습니다.

나는 buildroot와 Linux로 실행되는 i.mx6 기반 보드를 가지고 있습니다. 보드에는 nand와 emmc의 두 가지 메모리가 있습니다. nand 자체에는 완전한 rootfs와 커널이 있습니다. 이제 SD 카드에서 부팅합니다. 부팅 로그에서 nand 및 emmc 파티션이 감지된 것을 볼 수 있습니다.

[    3.440294] 5 ofpart partitions found on MTD device gpmi-nand
[    3.446084] Creating 5 MTD partitions on "gpmi-nand":
[    3.451148] 0x000000000000-0x000000200000 : "boot"
[    3.456431] 0x000000200000-0x000000500000 : "scratch"
[    3.461632] 0x000000500000-0x000000b00000 : "kernel"
[    3.467091] 0x000000b00000-0x000001100000 : "recovery"
[    3.472521] 0x000001100000-0x000010000000 : "rootfs"
[    3.481312] gpmi-nand 112000.gpmi-nand: driver registered.

그리고 emmc

[    4.318175]  mmcblk0: p1 p2

NAND 장치가 등록되어 나타나는 것을 볼 수 있습니다 /dev/mtd*. 이제 nand and mmc-utilsbuildroot에서 제공하는 것을 사용하고 있습니다 . 이렇게 낸드에 대한 데이터를 좀 써보려고 합니다. 간단한 텍스트 파일 test.txt를 작성합니다.

#nandwrite -b 1 -n /dev/mtd0 -p /test.txt

PasteBin에서 전체 오류 로그를 확인하세요.

#flash_erase /dev/mtd0

flash_erase: error!: no start erase block specified
flash_erase: error!: no erase block count specified
flash_erase: error!: Try `--help' for more information

낸드, SD와 상호 작용하는 동안 따라야 할 올바른 방법/단계를 알려주실 수 있는 분 계시나요? 나는 이 스레드를 따랐다.

StackExchange: How-i-flash-erase-mtd0

마찬가지로 emmc로는 새로 고치거나 아무것도 할 수 없습니다.

#mmc status get /dev/mmcblk0
SEND_STATUS response: 0x00000900

이거 괜찮아 보이는데 실제로 mmc를 어떻게 쓰거나 지우나요? mmc와 관련된 명령이 많이 있습니다. 어떤 것을 사용해야 할지 모르겠습니다.

mmc-utils 맨페이지

추가 확인

# mtdinfo 
Count of MTD devices: 5
Present MTD devices: mtd0, mtd1, mtd2, mtd3, mtd4
Sysfs interface supported: yes
# mtd
mtd_debug mtdev-test mtdev2tuio mtdinfo
# mtdev
mtdev-test mtdev2tuio
# mtdev-test 
Usage: mtdev <device>
# mtdev-test /dev/mtd0
error: could not grab the device

아마도 Nand 장치가 잠겨 있을 것 같은데 어떻게 확인하나요?

Nand에 액세스하기 위한 전제 조건/단계는 무엇입니까?

관련 정보