300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 玩转mini2440开发板之【编译烧录rootfs根文件系统全过程记录】

玩转mini2440开发板之【编译烧录rootfs根文件系统全过程记录】

时间:2020-08-06 14:17:29

相关推荐

玩转mini2440开发板之【编译烧录rootfs根文件系统全过程记录】

前段时间研究了一下如何使用busybox编译和生成最简linux根文件系统(rootfs),并在mini2440开发板上使用NFS网络文件系统进行挂载启动,今天继续研究如何将该根文件系统烧录到开发板上去,以便实现本地启动,无需借助NFS。

第1步、生成rootfs根文件系统

这一步可参考我另一篇博客(如何使用busybox编译和生成最简linux根文件系统(rootfs))中的方法和步骤。如果想简单起见,也可直接下载我已经编译好的成果(mini2440最精简的rootfs文件系统)。里面的压包解开来就是一个rootfs根文件系统的全部目录,可以直接用于下一步的操作。

第2步、生成img镜像文件

这里我们按照友善之臂的官方推荐,使用mkyaffs2image工具。首先将光盘里的mkyaffs2image.tgz解压出来。具体方法是,进入到mkyaffs2image.tgz所在的目录,然后使用下面的命令:

sudo tar -xvzf mkyaffs2image.tgz -C /

便可将压缩包里的工具解压到/usr/sbin目录下了。注意此处会解压出2个文件,分别是:

usr/sbin/mkyaffs2imageusr/sbin/mkyaffs2image-128M

其中第一个mkyaffs2image是制作适用于NANDFLASH为64M版本文件系统映象的工具,mkyaffs2image-128M则是 制作适用于128M/256M/512M/1GB版本文件系统映象的工具。由于我本人的开发板是64M的版本,因此以下我直接使用mkyaffs2image,请各位根据自己的情况调整。

然后进入到你所生成好的rootfs根文件系统所在的目录,比如我的就放在/opt/FriendlyARM/mini2440目录下,采用mkyaffs2image工具直接进行打包即可:

leon@Ubuntu:/opt/FriendlyARM/mini2440$ mkyaffs2image rootfs rootfs.imgmkyaffsimage: image building tool for YAFFS built Apr 29 Processing directory rootfs into image file rootfs.imgObject 257, rootfs/sys is a directoryObject 258, rootfs/.ash_history is a file, 1 data chunks writtenObject 259, rootfs/sbin is a directoryObject 260, rootfs/sbin/loadkmap is a symlink to "../bin/busybox"Object 261, rootfs/sbin/blockdev is a symlink to "../bin/busybox"Object 262, rootfs/sbin/mkdosfs is a symlink to "../bin/busybox"Object 263, rootfs/sbin/klogd is a symlink to "../bin/busybox"Object 264, rootfs/sbin/mdev is a symlink to "../bin/busybox"Object 265, rootfs/sbin/lsmod is a symlink to "../bin/busybox"【这里略去1234567.......】Object 649, rootfs/usr/bin/beep is a symlink to "../../bin/busybox"Object 650, rootfs/usr/bin/unexpand is a symlink to "../../bin/busybox"Object 651, rootfs/usr/bin/sort is a symlink to "../../bin/busybox"Object 652, rootfs/usr/bin/xargs is a symlink to "../../bin/busybox"Object 653, rootfs/usr/bin/uuencode is a symlink to "../../bin/busybox"Object 654, rootfs/usr/bin/unxz is a symlink to "../../bin/busybox"Object 655, rootfs/usr/bin/free is a symlink to "../../bin/busybox"Object 656, rootfs/usr/bin/rx is a symlink to "../../bin/busybox"Object 657, rootfs/usr/bin/sha256sum is a symlink to "../../bin/busybox"Object 658, rootfs/linuxrc is a symlink to "bin/busybox"Operation complete.402 objects in 13 directories12103 NAND pagesFriendlyARM Computer Technology Inc.

工具就会将rootfs目录打包成一个img镜像文件,如下:

leon@Ubuntu:/opt/FriendlyARM/mini2440$ ll总用量 6276drwxrwxr-x 8 leon leon 4096 8月 15 16:13 ./drwxr-xr-x 4 leon leon 4096 8月 15 10:47 ../drwxrwxr-x 11 leon leon 4096 10月 6 rootfs/-rw------- 1 leon leon 6390384 8月 15 16:13 rootfs.img

第3步、将镜像文件烧录到开发板中

这里我使用的boot是supervivi及其配套的下载工具,具体的步骤请参见我的另一篇博客(如何在64位WIN7/WIN10系统中安装mini2440开发板的USB驱动和调试工具)。

给开发板上电,串口端会输出以下提示信息:

##### FriendlyARM BIOS for 2440 #####[x] bon part 0 320k 2368k[v] Download vivi [k] Download linux kernel [y] Download root_yaffs image [a] Absolute User Application[n] Download Nboot [l] Download WinCE boot-logo[w] Download WinCE NK.bin [d] Download & Run [z] Download zImage into RAM [g] Boot linux from RAM [f] Format the nand flash [b] Boot the system [s] Set the boot parameters [u] Backup NAND Flash to HOST through USB(upload) [r] Restore NAND Flash from HOST through USB [q] Goto shell of vivi [i] Version: 1026-12Enter your selection:

直接输入y,启动下载流程。然后在SuperViVi USB Transfer Utility中,点击upload选择img镜像文件即可。

将rootfs根文件系统下载至开发板

同时,串口助手端也会给出信息:

Now, Downloading [ADDRESS:30000000h,TOTAL:6390394]Downloaded file at 0x30000000, size = 6390384 bytesFlash params: oobsize = 16, oobblock = 512, erasesize = 16384, partition size = 61456384Erasing and programming NAND with yaffs image Block erasing(addr/count) --- Block bad(addr/count) --- Block processed/All(%)--------------------------------------------------------------------------------0x03ff8000/03749 0x030e8000/00002 03751/03751=100%Load yaffs OK:Blocks scanned: 3751, Blocks erased: 3749, Blocks are bad: 2RECEIVED and Writed FILE SIZE: 6390394 (156KB/S, 40S)

然后给开发板断电重启,就会看到所下载的rootfs根文件系统已经稳稳的运行在你的mini2440开发板中了。

[root@LEON2440 ~]# ls -ltotal 3928drwxrwxr-x 1 10001000 512 Feb 3 bin-rw-rw-r-- 1 10001000 71 Oct 3 changelog@leondrwxr-xr-x 2 rootroot 0 Jan 1 00:00 devdrwxrwxr-x 1 10001000 512 Feb 3 etclrwxrwxrwx 1 10001000 11 Feb 3 linuxrc -> bin/busyboxdrwx------ 1 rootroot 512 Jan 1 00:00 lost+founddrwxrwxr-x 1 10001000 512 Oct 3 mntdr-xr-xr-x 25 rootroot 0 Jan 1 00:00 procdrwxrwxr-x 1 10001000 512 Feb 3 sbindrwxr-xr-x 11 rootroot 0 Jan 1 00:00 sysdrwxr-xr-x 2 rootroot 0 Jan 1 00:00 tmp-rw-rw-r-- 1 10001000 1751132 Feb 4 uImage.imgdrwxrwxr-x 1 10001000 512 Feb 3 usr

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。