Phytec中国的wiki
support@phytec.cn
热线:0755-61802110-803
Page History
Table of Contents |
---|
barebox中烧写镜像
这种方式是在barebox中写入eMMC的完整镜像文件,由于无法在barebox中对eMMC进行分区操作,烧写后的文件系统大小是受image文件大小限制,无法达到eMMC设备存储大小,需要在烧写完成后进入linux扩大文件系统。
...
本章节参考http://www.phytec.de/documents/l-814e-3-imx6-bsp-manual/#Updating_eMMC_from_Network
...
Code Block | ||||
---|---|---|---|---|
| ||||
barebox$ cp /mnt/tftp/[zImage] /mnt/emmc/zImage barebox$ cp /mnt/tftp/[oftree] /mnt/emmc/oftree |
扩大eMMC文件系统
查看系统磁盘空间使用情况
Code Block | ||||
---|---|---|---|---|
| ||||
root@phyboard-mira-imx6-5:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 298.0M 234.4M 43.8M 84% /
devtmpfs 871.0M 0 871.0M 0% /dev
tmpfs 1005.2M 0 1005.2M 0% /dev/shm
tmpfs 1005.2M 8.3M 996.9M 1% /run
tmpfs 1005.2M 0 1005.2M 0% /sys/fs/cgroup
tmpfs 1005.2M 0 1005.2M 0% /tmp
tmpfs 1005.2M 4.0K 1005.2M 0% /var/volatile |
...
在linux中扩大eMMC/SD文件系统
首先检查目前的emmc/SD存储大小 使用以下命令操作
Code Block | ||||
---|---|---|---|---|
| ||||
root@phyboard-mira-imx6-5:~# parted -m /dev/mmcblk3 unit B print
BYT;
/dev/mmcblk3:7616856064B:sd/mmc:512:512:msdos:MMC Q2J55L:;
1:4194304B:12582911B:8388608B:::lba;
2:12582912B:343932927B:331350016B:ext4::;
|
从上面得知mmcblk3大小为7616856064B,注意不同的平台接法会导致mmcblk后面的数字变化,请检查后执行指令。
然后使用下面的指令将mmcblk3扩展到空间最后减1,也就是7616856063B
Code Block | ||||
---|---|---|---|---|
| ||||
root@phyboard-mira-imx6-5:~# parted /dev/mmcblk3 resizepart 2 7616856063B Information: You may need to update /etc/fstab. |
最后使用以下指令调整mmcblk3的第二分区mmcblk3p2占满新加的空间
Code Block | ||||
---|---|---|---|---|
| ||||
root@phyboard-mira-imx6-5:~# resize2fs /dev/mmcblk3p2
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mmcblk3p2 is m[ 94.850593] EXT4-fs (mmcblk3p2): resizing filesystem from 323584 to 7426048 blocks
ounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 29
[ 95.055180] EXT4-fs (mmcblk3p2): resized filesystem to 7426048
[ 95.133065] random: nonblocking pool is initialized
The filesystem on /dev/mmcblk3p2 is now 7426048 blocks long. |
执行以上命令后便已经扩大文件系统了,再次查看系统磁盘空间使用情况再次查看系统磁盘空间使用情况
Code Block | ||||
---|---|---|---|---|
| ||||
root@phyboard-mira-imx6-5:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 6.9G 235.7M 6.3G 4% / devtmpfs 871.0M 0 871.0M 0% /dev tmpfs 1005.2M 0 1005.2M 0% /dev/shm tmpfs 1005.2M 8.3M 996.9M 1% /run tmpfs 1005.2M 0 1005.2M 0% /sys/fs/cgroup tmpfs 1005.2M 0 1005.2M 0% /tmp tmpfs 1005.2M 4.0K 1005.2M 0% /var/volatile |
文件系统已经扩大到最大了。
Linux 中烧写eMMC镜像
这种方式是使开发板从SD卡启动或者从网络启动进入到linux, 然后在linux直接对eMMC设备进行分区操作,再把barebox, 内核,设备树和文件系统直接写入对应的eMMC分区,通过这种方式烧写进eMMC的linux系统,文件系统可用空间已经达到最大,无需再对eMMC执行扩大文件系统操作。
...
Code Block | ||||
---|---|---|---|---|
| ||||
IMAGE_INSTALL_append = " util-linux dosfstools coreutils" |
编译完成后,参考 制作SD启动卡 制作SD卡启动盘 / how to make bootable sd card 教程制作sd卡。
开发板设置从sd卡启动,进入linux,此时需要先对sd卡文件系统进行扩大,参考以上扩大eMMC文件系统操作,对sdcard文件系统进行扩大,其中sdcard设备对应的是/dev/mmcblk0
...
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/sh if [ `expr 0 + 0${1}` -le 0 ]; then echo "usage $0: <sd_size in gb>" exit 1; fi # base config export DEST=/dev/mmcblk3 export DESTP=${DEST}p export MNTPOINT=/mnt/sd export DEST_SIZE=`expr ${1} \* 900 \* 1024` # images export BASE_DIR=/home/root/images export BARE_IMG=${BASE_DIR}/barebox.bin export ZIMAGE=${BASE_DIR}//zImage-phyboard-mira-imx6-5.bin export OFTREE=${BASE_DIR}/zImage-imx6q-phytec-mira-rdk-emmc.dtb export ROOTFS=${BASE_DIR}/phytec-qt5demo-image-phyboard-mira-imx6-5.tar.gz # start rm -rf ${MNTPOINT} mkdir -p ${MNTPOINT} echo Wipe emmc device dd if=/dev/zero of=${DEST} bs=1024 count=0 seek=${DEST_SIZE} dd if=/dev/zero of=${DEST} bs=512k count=16 conv=fsync echo Create Partitions sfdisk -u S ${DEST} << EOF 1 : start= 8192, size= 16384, Id=c 2 : start= 24576, Id=83 EOF echo Flash Barebox dd if=${BARE_IMG} of=${DEST} bs=512 skip=2 seek=2 conv=fsync #dd if=${BARE_ENV} of=${DEST} bs=512 seek=1792 echo Flash Kernel/Devicetree yes | mkfs.vfat ${DESTP}1 mount ${DESTP}1 ${MNTPOINT} cp ${ZIMAGE} ${MNTPOINT}/zImage cp ${OFTREE} ${MNTPOINT}/oftree umount ${MNTPOINT} echo Flash Rootfs yes | mkfs.ext4 ${DESTP}2 mount ${DESTP}2 ${MNTPOINT} tar zxfxf ${ROOTFS} -C ${MNTPOINT} umount ${MNTPOINT} |
脚本加可执行权限,执行脚本完成后,eMMC设备也对应烧入了linux系统。
Code Block | ||||
---|---|---|---|---|
| ||||
root@phyboard-mira-imx6-5:~# chmod +x flash_emmc.sh
root@phyboard-mira-imx6-5:~# ./flash_emmc.sh 4 # 4GB emmc
root@phyboard-mira-imx6-5:~# ./flash_emmc.sh 8 # 8GB emmc |
如果需要开机自动烧写的话,可参考开机自启动一个应用/系统服务 / start a service or application when boot 写一个自启动服务。
...