[嵌入式linux]

【分享】4412开发板POP烧写ubuntu出错,如何挂载emmc分区解决...

[复制链接]
1005|4
手机看帖
扫描二维码
随时随地手机跟帖
何-以笙箫默|  楼主 | 2017-8-17 15:42 | 显示全部楼层 |阅读模式
平台:4412精英版
系统:ubuntu系统
图片1.jpg
按照教程烧写ubuntu文件系统,TF卡和EMMC分区都完成(总之之前的操作试了几遍都是没问题的)烧写u-boot是没问题的:sdfuse flash bootloader u-boot-iTOP-4412.bin
烧写在Image也成功:sdfuse flash kernel zImage_sd
重启开发板:reset  
查看分区这儿出问题:df -l
这里只显示:
root@iTOP4412-ubuntu-desktop:~# df -l
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        2725780 2074844    512472  81% /
none              323304       4    323300   1% /dev
none               64664     664     64000   2% /run
none                5120       0      5120   0% /run/lock
none              323304      24    323280   1% /run/shm
并没有像教程里面能够显示TF卡和EMMc 的分区,请问大神们指导如何才能挂载EMMc,能够显示分区啊?
哈哈,问题已解决,解决思路就是找到系统文件在哪个分区,我们需要移动这个文件到哪个分区。找到之后手动挂载相应的TF卡分区和EMMC分区,然后对相应的分区进行操作
其实对于熟悉linux的老司机是不会被这个问题难到,我们作为新手菜鸟就共同努力吧!!!
/------------------------------------------------------分界线--------------------------------------------------/
1、首先保证前面跟着教程走没问题,也就是烧写zImage_sd之前没问题,下面重启开发板准备解压系统到EMMC
2、查看分区:df -l
root@iTOP4412-ubuntu-desktop:~# df -l
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        2725780 2074844    512472  81% /
none              323304       4    323300   1% /dev
none               64664     664     64000   2% /run
none                5120       0      5120   0% /run/lock
none              323304      24    323280   1% /run/shm
到这儿出问题,无法显示TF卡分区和EMMC分区:(按着教程走也许都会出现这问题)
3、使用fdisk -l命令查看分区:
root@iTOP4412-ubuntu-desktop:~# fdisk -l                                       
Disk /dev/mmcblk0: 3909 MB, 3909091328 bytes
226 heads, 33 sectors/track, 1023 cylinders, total 7634944 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: 0x00000000
        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1         6809154     7607159      399003    c  W95 FAT32 (LBA)
/dev/mmcblk0p2           37290     5571125     2766918   83  Linux
/dev/mmcblk0p3         5571126     6190139      309507   83  Linux
/dev/mmcblk0p4         6190140     6809153      309507   83  Linux
Partition table entries are not in disk order
Disk /dev/mmcblk1: 8011 MB, 8011120640 bytes
255 heads, 60 sectors/track, 1022 cylinders, total 15646720 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: 0x00000000
        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk1p1         5798700    15605999     4903650    c  W95 FAT32 (LBA)
/dev/mmcblk1p2           45900     5584499     2769300   83  Linux
/dev/mmcblk1p3         5584500     5691599       53550   83  Linux
/dev/mmcblk1p4         5691600     5798699       53550   83  Linux
Partition table entries are not in disk order
注意:这里报出Partition table entries are not in disk order”这个错误,是说“分区表条目不在磁盘顺序中”,反正就是这时的ubuntu文件系统他无法自动挂载TF卡和EMMC分区。
但是我们在输入fdisk -l命令后的信息中能够查看到,Disk /dev/mmcblk0: 3909 MB, 3909091328 bytes,这其实就是我的EMMC的存储空间(官方号称是4G,看来坑了几十兆的空间啊,不过这不重要,哈哈)。我们还能看见Disk /dev/mmcblk1: 8011 MB, 8011120640 bytes,这里其实就是我们的TF卡(我用的8GTF卡)
所以我们很容易从盘符大小来区分哪一个是TF卡哪一个是EMMC,如果你的TF卡大小和EMMC 一样的话,应该也是mmcblk0对应EMMCmmcblk1对应TF卡(刚开始猜的,后来验证没猜错)
4、看懂这些分区
Device Boot                 Start         End              Blocks      Id    System
/dev/mmcblk1p1         5798700    15605999     4903650    c     W95 FAT32 (LBA)
/dev/mmcblk1p2           45900     5584499     2769300     83     Linux
/dev/mmcblk1p3         5584500     5691599       53550     83     Linux
/dev/mmcblk1p4         5691600     5798699       53550     83     Linux
这个是TF卡的分区,按照教程里面,我们是要去找有sdupdate文件夹这个分区,可以看见/dev/mmcblk1p1里面的blocks大小差不多是4.9G,我的TF卡一共8G,我按照教程给TF分区时使用fdisk -c 1 2700 50 50 ,看出名堂了吧,大概就是使用了2.7G+50M+50M,剩下的大概就是4.9G。我是在windows下新建的sdupdate文件夹,那里面就有ubuntu的文件系统。
所以/dev/mmcblk1p1这个分区就是教程中对应的/media/0000-3333_分区
    Device Boot            Start           End           Blocks     Id     System
/dev/mmcblk0p1         6809154     7607159      399003    c     W95 FAT32 (LBA)
/dev/mmcblk0p2           37290     5571125     2766918   83     Linux
/dev/mmcblk0p3         5571126     6190139      309507   83    Linux
/dev/mmcblk0p4         6190140     6809153      309507   83    Linux
刚刚说了mmcblk0EMMC,所以这四个就是我们在教程里面对EMMC操作产生的四个分区,可以看见/dev/mmcblk0p2           37290     5571125     2766918   83  Linux这个分区里面大概是2.7G大小,所以这个是我们要找的EMMC分区,对应教程里面的。。。(等等,完全对的上)
5、手动挂载TF卡中的/dev/mmcblk1p1分区和EMMC中的/dev/mmcblk0p2
我依次使用的如下四个命令:
mkdir /mnt/uTF
mount /dev/mmcblk1p1 /mnt/uTF
mkdir /mnt/uEMMC
mount /dev/mmcblk0p2 /mnt/uEMMC
这四个命令执行完成之后可以进入文件中查看:
cd /mnt/uTF
ls
此时能看到里面有sdupdate文件夹(没有截图)
6、复制系统文件到EMMC (等两分钟)
cd /mnt/uTF/sdupdate
cp -r iTOP4412_ubuntu_12.04_for_LCD_20141230.tar.gz /mnt/uEMMC
7、解压文件(官方称等30分钟,骗你的,等15分钟差不多了)
tar -vxf iTOP4412_ubuntu_12.04_for_LCD_20141230.tar.gz /mnt/uEMMC
8、重启开发板,进入u-boot模式,烧写zImage
sdfuse flash kernel zImage
9、烧写完成重启开发板(注意此时系统已经烧进EMMC了所以把TF卡拔出来也是可以的,插上去也是可以的)
/----------------------------------------------------分界线----------------------------------------------------------/
所以教程里面的这一步操作其实质就是将TF/dev/mmcblk1p1分区中的文件系统拷贝到EMMc/dev/mmcblk0p2分区中,然后解压。
下面总结我使用的命令(按照使用先后顺序)
df -l
fdisk -l
mkdir /mnt/uTF
mount /dev/mmcblk1p1 /mnt/uTF
mkdir /mnt/uEMMC
mount /dev/mmcblk0p2 /mnt/uEMMC
cd /mnt/uTF/sdupdate
cp -r iTOP4412_ubuntu_12.04_for_LCD_20141230.tar.gz /mnt/uEMMC
tar -vxf iTOP4412_ubuntu_12.04_for_LCD_20141230.tar.gz /mnt/uEMMC
解压完成重启开发板,进入u-boot模式
sdfuse flash kernel zImage
烧写zImage完成,重启开发板(大功告成)

相关帖子

1470432022| | 2017-8-21 09:22 | 显示全部楼层
已看完,好贴阿

使用特权

评论回复
冥月33| | 2017-8-24 10:45 | 显示全部楼层
多谢分享内容

使用特权

评论回复
linzhao789| | 2018-3-1 09:13 | 显示全部楼层
如何挂载emmc分区

使用特权

评论回复
1470432022| | 2018-4-27 14:34 | 显示全部楼层

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

83

帖子

2

粉丝