mini6410 tiny6410的SD卡无法识别的解决办法

本文介绍了如何解决tiny6410开发板上的SD卡无法识别的问题。当SD卡仅显示mmcblk0而没有mmcblk0p1时,需要在Linux下通过fdisk进行格式化操作,创建分区并指定系统类型为FAT16或FAT32,从而使得SD卡能够被正确挂载和识别。
摘要由CSDN通过智能技术生成

几个月前买了一块tiny6410的开发板,因为自己有很多SD卡,当时没有再买。哪知买回来自己的SD卡竟然无法识别,插进去一点反应都没有。无奈再买了一块。


在几天前,自己做的另一个项目中,偶然发现了这个问题的原因。


首先,启动开发板,cd /dev/;然后ls。发现其中的猫腻。


这是没有识别的SD卡。其中只有一个mmcblk0。而识别的SD卡是这样的


发现多了一个mmcblk0p1,百度知道这是SD卡的第一个分区,p1即partition 1的意思。


然后我尝试将mmcblk0 mount到sdcard目录下,发现竟然能够看得到里面的文件。那为什么不能够自动挂载呢。

我们知道busybox是通过mdev来实现设备的动态更新的。

当内核支持hotplug的时候,每当有新的设备插入,或者有设备移除,mdev就会查找mdev.config文件,按照这个文件执行相应的操作。

于是我查看了tiny6410的mdev.config。其中有这么一行


可见只有mmcblk0p1才会被自动挂载,而没有的SD卡是不会挂载的。我们可以把此处改为mmcblk0。

当然这样并不是很好的解决办法。


那怎样生成p1分区呢。格式化?经过我的屡次测试。Win下的格式化是不会生成这个分区的。

我采用的是在Linux下通过fdisk进行格式化,当然还有其他的方法,有兴趣的可以百度之。

首先将SD卡插入PC机,并连接到虚拟机上。

然后在虚拟机的/dev目录下查找我们这个设备的节点。


我的是通过USB读卡器,所以是sdb,如果是通过笔记本的读卡器的话是不一样的。这点可以通过mount指令查看


然后输入指令:fdisk sdb

[root@zyt dev]# fdisk sdb

Command (m for help): m
输入m
Command action
   a  toggle a bootable flag
   b  edit bsd disklabel
   c  toggle the dos compatibility flag
   d  delete a partition
   l  list known partition types
   m  print this menu
   n  add a new partition
   o  create a new empty DOS partition table
   p  print the partition table
   q  quit without saving changes
   s  create a new empty Sun disklabel
   t  change a partition's system id
   u  change display/entry units
   v  verify the partition table
   w  write table to disk and exit
   x  extra functionality (experts only)

Command (m for help): p
输入p,查看分区情况

Disk sdb: 4023 MB, 4023386112 bytes
124 heads, 62 sectors/track, 1022 cylinders, total 7858176 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值