微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 制作ext4文件系统,并复制到米尔ricoboard板载eMMC,成功挂载。

制作ext4文件系统,并复制到米尔ricoboard板载eMMC,成功挂载。

时间:10-02 整理:3721RD 点击:
1。从rootfs目录制作ext4格式的根文件系统命名为rootfs.ext4,我写了一个脚本mk_roofs.sh:

  1. #!/bin/sh

  2. sudo genext2fs -b 30000 -d $1/ rootfs.ext4
  3. sudo tune2fs -j -J size=1 rootfs.ext4
  4. sudo e2fsck -pDf rootfs.ext4

复制代码

其中3000(30兆大小)是一个可以改变的值,因为我的roofs目录的大小16M,为了有一定的冗余所以我就使用了30M,
我的根文件系统目录名字就是rootfs,所以的使用方法为,

  1. sh mk_roofs.sh roofs

复制代码



这样就可以生成roofs.ext4文件系统文件了。
接下来就是挂载该文件到板载eMMC的分区中,这次我将根文件系统挂载到了eMMC的分区2中,由于该分区中有米尔官方的根文件系统,所以要先把原先的分区内容删除,然后rootfs.ext4的内容到eMMC的分区2中。
首先挂载ext4文件系统

  1. mount -t ext4 /home/mmc4/rootfs.ext4 /home/mmc1
  2. mount -t ext4 /dev/mmcblk1p2 /home/mmc2

复制代码

其中的/home/mmc1和/home/mmc2是我自己起的名字。
删除mmcblk1p2中的内容

  1. cd mmc2/
  2. rm -fr *

复制代码

复制rootfs.ext4内容到mmcblk1p2中

  1. cp -fr * /home/mmc2/ -R

复制代码

接下来就是在uboot中,修改bootargs

  1. setenv bootargs console=ttyO0,115200 root=/dev/mmcblk1p2 rw init=/linuxrc

复制代码

最开始我这么修改之后出现了panic,

  1. 3306]   No soundcards found.
  2. [    1.376792] mmc1: MAN_BKOPS_EN bit is not set
  3. [    1.382045] VFS: Cannot open root device "mmcblk1p2" or unknown-block(0,0): error -6
  4. [    1.389947] Please append a correct "root=" boot option; here are the available partitions:
  5. [    1.398409] b300         7761920 mmcblk0  driver: mmcblk
  6. [    1.403946]   b301         1048576 mmcblk0p1 00b1432a-01
  7. [    1.409328]   b302         6712320 mmcblk0p2 00b1432a-02
  8. [    1.414724] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
  9. [    1.423029] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

复制代码


事后修改bootargs

  1. setenv bootargs console=ttyO0,115200 root=/dev/mmcblk1p2 rw init=/linuxrc rootwait

复制代码

添加了等待参数,这样就可以成功挂载了。怀疑可能是初始化板载eMMC需要一定的时间。


我写了一个控制gpio的脚本。

  1. #!/bin/ash

  2. PIN=$1
  3. VALUE=$2
  4. if test -d /sys/class/gpio/gpio$PIN/
  5. then
  6. echo $VALUE > /sys/class/gpio/gpio$PIN/value
  7. else
  8. echo $PIN > /sys/class/gpio/export
  9. echo out > /sys/class/gpio/gpio$PIN/direction
  10. echo $VALUE > /sys/class/gpio/gpio$PIN/value
  11. fi

复制代码



可以用来测试gpio输出高低电平,使用方法如下:


分别设置gpio163(GPIO5_3)输出高电平、低电平。
脚本以及通过我的测试可用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top