烧录文件系统的方法
概述
本文涉及的芯片是:IMX6。
烧录文件系统的方式有两类,一类是烧录文件夹形式的文件系统,一类是烧录镜像形式的文件系统镜像。
烧录文件系统镜像是在uboot界面,用nand 写命令进行烧写镜像,内核启动之后,只要内核支持文件系统镜像格式,就会加载文件系统镜像。这种方式网络上的文章很多,就不讲了,本文主要讲在内核启动后,烧录文件系统的方法。
网络烧录的方式
1. 前提是nfs挂载文件系统。给板子上电,进入到uboot界面,输入命令printenv bootcmd,打印到 bootcmd=mmc,即内核启动后,文件系统是从mmc引导。那我们就在下一条命令处输入run netboot,即内核启动之后,文件系统从nfs引导。
bootcmd=mmc dev ${mmcdev};if mmc rescan; then if runloadbootscript; then run bootscript; else if run loadimage; then run mmcboot;else run netboot; fi; fi; else run netboot; fi
=> run netboot
Booting from net ...
2. 输入命令 df 、 fdisk –l。文件系统在目录/run/media/mmcblk3p2下,设备树、内核镜像在/run/media/mmcblk3p1下。
3. 在ubuntu的nfs共享目录下,放一份新的文件系统rootfs-imx6.tar.bz2。
4. 板子上电之后,启动内核,引导ubuntu的nfs共享的文件系统,
5. 进入根文件系统存放的目录/run/media/mmcblk3p2,删掉旧的文件系统的所有文件。将nfs共享的新的根文件系统解压放在目录/run/media/mmcblk3p2下。
解压命令:tar -xzvf /rootfs-imx6.tar.bz2 .
到此刻为止,这就把新的文件系统烧录进mmc中。下次上电重启,若从mmc启动,则运行的是新的文件系统。
6. 给mmc里更新新的内核和设备树方法,和上面更新文件系统的方法是一样的,这里就不详细说明。这里说另一种方法。在命令行输入modprobe g_mass_storage file=/dev/mmcblk3p1,然后将电脑的usb接口和板子的usb接口连接,电脑就会弹出U盘,将新的设备树和内核文件,放在U盘内,这就跟新了设备树和内核文件。