在嵌入式Linux上使用全新的eMMC接下来的步骤

时间:2014-11-20 18:28:58

标签: linux embedded partitioning flash-memory

我一直在努力让eMMC芯片在我的嵌入式Linux平台上运行。到目前为止,我已经完成了以下工作:

(1)在drivers / mmc / host中添加了自定义驱动程序 (2)编译内核和目标图像 (3)将图像加载到目标和启动板上

在启动过程中,我看到了这些:

.
mmcblk0: mmc0:0001 4YMD3R 3.64 GiB
mmc0: calculated max. discard sectors 4579328 for timeout 2684354 ms
mmcblk0boot0: mmc0:0001 4YMD3R partition 1 4.00 MiB
mmc0: calculated max. discard sectors 4579328 for timeout 2684354 ms
mmcblk0boot1: mmc0:0001 4YMD3R partition 2 4.00 MiB
.
.
mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0, sector 0
.
Buffer I/O error on device mmcblk0, logical block 0
.
mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x900
mmcblk0: retrying using single block read
.
mmcblk0boot1: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x900
mmcblk0boot1: retrying using single block read
.
mmcblk0boot1: unknown partition table
.
mmcblk0boot0: unknown partition table

启动后,这是/ proc / partitions:

的输出
# cat /proc/partitions
major minor  #blocks  name

  31        0       7824 mtdblock0
 179        0    3817472 mmcblk0
 179       16       4096 mmcblk0boot1
 179        8       4096 mmcblk0boot0

任何人都可以告诉我以下内容:

  • 我的设备是否正常工作?
  • 如何开始将数据写入userdata分区? (mmcbllk0安装失败)
  • 如何创建更多通用分区?
  • 如何创建更多(常规)分区?

在此先感谢,我对此非常陌生,我似乎无法在任何地方找到这些信息。

elDukae

2 个答案:

答案 0 :(得分:0)

我的设备是否正常运行?

没有。由于您的设备中多次读取失败。也许你需要检查时间。

如何开始将数据写入userdata分区? (mmcbllk0安装失败)

如果安装失败。您无法访问此设备。 从“cat / proc / partitions”的结果中,您可以执行cmd来检查写入行为。

例如,dd if = dev / zero of = / dev / mmcblk0 bs = 512 offset = 200000 count = 10

如何创建更多通用分区?

您可以阅读通用分区流程图&在JEDEC标准中增强了用户数据区参数设置以获取详细信息。

如何创建更多(常规)分区?

您可以使用fdisk创建分区。

答案 1 :(得分:0)

感谢所有输入。以下是我能够了解的情况:

(1)读取失败:这是由于我板上的I / O和核心电压不正确造成的。 linux代码将自动转到eMMC设备支持的最高速度等级。在这种情况下,我不得不手动告诉linux驱动程序坚持较低的速度,因为这是错误的I / O和核心电压支持。

(2)分区:结果我不需要任何通用分区。读取错误修复后,我只是在/ dev / mmcblk0上运行fdisk并创建了常规分区

再次感谢!