You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

barebox中烧写镜像

这种方式是在barebox中写入eMMC的完整镜像文件,由于无法在barebox中对eMMC进行分区操作,烧写后的文件系统大小是受image文件大小限制,无法达到eMMC设备存储大小,需要在烧写完成后进入linux扩大文件系统。

烧写镜像

本章节参考http://www.phytec.de/documents/l-814e-3-imx6-bsp-manual/#Updating_eMMC_from_Network

开发板启动进入barebox,在barebox中执行以下命令烧写

barebox$ detect mmc3
barebox$ cp -v /mnt/tftp/[sdcard] /dev/mmc3											# 从tftp中烧写镜像
barebox$ cp -v /mnt/mmc/[sdcard] /dev/mmc3											# 从sdcard中烧写镜像																	

[sdcard] 表示对应machine的sdcard镜像,可从ftp://ftp.phytec.cn或者通过bsp包编译后得到。

选择从tftp中烧写镜像,主机tftp配置可参考:https://wiki.phytec.com/pages/viewpage.action?pageId=66489092#id-开发板从网络启动/bootboardfromnetwork-主机安装配置tftp服务器

在开发阶段,如果只需要更新barebox, 内核或者设备树,可直接使用以下命令对barebox, 内核和设备树进行更新。

更新barebox

barebox$ barebox_update -t mmc3 /mnt/tftp/barebox.bin											
barebox$ cp /dev/zero /dev/mmc3.barebox-environment									# 擦除barebox环境						

更新内核和设备树

barebox$ cp /mnt/tftp/[zImage] /mnt/emmc/zImage				
barebox$ cp /mnt/tftp/[oftree] /mnt/emmc/oftree

扩大eMMC文件系统

查看系统磁盘空间使用情况

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

此时文件系统只剩下43.8M可用空间,需要对文件系统进行扩大,参考文档http://www.phytec.de/documents/l-814e-3-imx6-bsp-manual/#Resize_the_ext4_Root_Filesystem 使用以下命令操作

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::;


root@phyboard-mira-imx6-5:~# parted /dev/mmcblk3 resizepart 2 7616856063B
Information: You may need to update /etc/fstab.


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.

执行以上命令后便已经扩大文件系统了,再次查看系统磁盘空间使用情况

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执行扩大文件系统操作。

sd卡镜像制作

由于烧写eMMC镜像需要对eMMC设备进行分区和格式化,默认的ftp上的镜像缺少一些工具,需要通过bsp包编译得到。

在BSP包的build/conf/local.conf 文件中增加以下软件

IMAGE_INSTALL_append = " util-linux dosfstools coreutils"

编译完成后,参考 制作SD启动卡 / how to make bootable sd card 教程制作sd卡。

开发板设置从sd卡启动,进入linux,此时需要先对sd卡文件系统进行扩大,参考以上扩大eMMC文件系统操作,对sdcard文件系统进行扩大,其中sdcard设备对应的是/dev/mmcblk0

烧写eMMC设备

扩大文件系统后,新建images目录,通过tftp下载镜像文件

root@phyboard-mira-imx6-5:~# mkdir images
root@phyboard-mira-imx6-5:~# tftp -g -r barebox.bin 192.168.1.253
root@phyboard-mira-imx6-5:~# tftp -g -r zImage-phyboard-mira-imx6-5.bin 192.168.1.253
root@phyboard-mira-imx6-5:~# tftp -g -r zImage-imx6q-phytec-mira-rdk-emmc.dtb 192.168.1.253
root@phyboard-mira-imx6-5:~# tftp -g -r phytec-qt5demo-image-phyboard-mira-imx6-5.tar.gz 192.168.1.253

烧写eMMC镜像脚本flash_emmc.sh

#!/bin/sh

# base config
export DEST=/dev/mmcblk3
export DESTP=${DEST}p
export MNTPOINT=/mnt/sd

# 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=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 zxf ${ROOTFS} -C ${MNTPOINT}
umount ${MNTPOINT}

脚本加可执行权限,执行脚本完成后,eMMC设备也对应烧入了linux系统。

如果需要开机自动烧写的话,可参考开机自启动一个应用/系统服务 / start a service or application when boot 写一个自启动服务。

从eMMC启动进入Linux,查看磁盘使用情况

root@phyboard-mira-imx6-5:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 6.8G    259.0M      6.2G   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

文件系统已经达到最大。

  • No labels