Linuxでは、nandまたはemmcパーティションにアクセスできません。

Linuxでは、nandまたはemmcパーティションにアクセスできません。

私はbuildrootとLinuxで動作するi.mx6ベースのボードを持っています。ボードには nand と emmc の 2 つのメモリがあります。 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が提供するものを使用しています。このようにNANDに関するデータを少し書いてみたいと思います。単純なテキストファイル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

NANDは、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にアクセスするための前提条件/手順は何ですか?

ベストアンサー1

おすすめ記事