玩转mini2440开发板之【编译烧录rootfs根文件系统全过程记录】
前段時(shí)間研究了一下如何使用busybox編譯和生成最簡(jiǎn)linux根文件系統(tǒng)(rootfs),并在mini2440開(kāi)發(fā)板上使用NFS網(wǎng)絡(luò)文件系統(tǒng)進(jìn)行掛載啟動(dòng),今天繼續(xù)研究如何將該根文件系統(tǒng)燒錄到開(kāi)發(fā)板上去,以便實(shí)現(xiàn)本地啟動(dòng),無(wú)需借助NFS。
第1步、生成rootfs根文件系統(tǒng)
這一步可參考我另一篇博客(如何使用busybox編譯和生成最簡(jiǎn)linux根文件系統(tǒng)(rootfs))中的方法和步驟。如果想簡(jiǎn)單起見(jiàn),也可直接下載我已經(jīng)編譯好的成果(mini2440最精簡(jiǎn)的rootfs文件系統(tǒng))。里面的壓包解開(kāi)來(lái)就是一個(gè)rootfs根文件系統(tǒng)的全部目錄,可以直接用于下一步的操作。
第2步、生成img鏡像文件
這里我們按照友善之臂的官方推薦,使用mkyaffs2image工具。首先將光盤(pán)里的mkyaffs2image.tgz解壓出來(lái)。具體方法是,進(jìn)入到mkyaffs2image.tgz所在的目錄,然后使用下面的命令:
sudo tar -xvzf mkyaffs2image.tgz -C /便可將壓縮包里的工具解壓到/usr/sbin目錄下了。注意此處會(huì)解壓出2個(gè)文件,分別是:
- usr/sbin/mkyaffs2image
- usr/sbin/mkyaffs2image-128M
其中第一個(gè)mkyaffs2image是制作適用于NANDFLASH為64M版本文件系統(tǒng)映象的工具,mkyaffs2image-128M則是 制作適用于128M/256M/512M/1GB版本文件系統(tǒng)映象的工具。由于我本人的開(kāi)發(fā)板是64M的版本,因此以下我直接使用mkyaffs2image,請(qǐng)各位根據(jù)自己的情況調(diào)整。
然后進(jìn)入到你所生成好的rootfs根文件系統(tǒng)所在的目錄,比如我的就放在/opt/FriendlyARM/mini2440目錄下,采用mkyaffs2image工具直接進(jìn)行打包即可:
leon@Ubuntu:/opt/FriendlyARM/mini2440$ mkyaffs2image rootfs rootfs.img mkyaffsimage: image building tool for YAFFS built Apr 29 2008 Processing directory rootfs into image file rootfs.img Object 257, rootfs/sys is a directory Object 258, rootfs/.ash_history is a file, 1 data chunks written Object 259, rootfs/sbin is a directory Object 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 directories 12103 NAND pages FriendlyARM Computer Technology Inc.工具就會(huì)將rootfs目錄打包成一個(gè)img鏡像文件,如下:
leon@Ubuntu:/opt/FriendlyARM/mini2440$ ll 總用量 6276 drwxrwxr-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 2017 rootfs/ -rw------- 1 leon leon 6390384 8月 15 16:13 rootfs.img第3步、將鏡像文件燒錄到開(kāi)發(fā)板中
這里我使用的boot是supervivi及其配套的下載工具,具體的步驟請(qǐng)參見(jiàn)我的另一篇博客(如何在64位WIN7/WIN10系統(tǒng)中安裝mini2440開(kāi)發(fā)板的USB驅(qū)動(dòng)和調(diào)試工具)。
給開(kāi)發(fā)板上電,串口端會(huì)輸出以下提示信息:
##### 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-12 Enter your selection:直接輸入y,啟動(dòng)下載流程。然后在SuperViVi USB Transfer Utility中,點(diǎn)擊upload選擇img鏡像文件即可。
將rootfs根文件系統(tǒng)下載至開(kāi)發(fā)板
同時(shí),串口助手端也會(huì)給出信息:
Now, Downloading [ADDRESS:30000000h,TOTAL:6390394] Downloaded file at 0x30000000, size = 6390384 bytes Flash params: oobsize = 16, oobblock = 512, erasesize = 16384, partition size = 61456384 Erasing 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: 2 RECEIVED and Writed FILE SIZE: 6390394 (156KB/S, 40S)然后給開(kāi)發(fā)板斷電重啟,就會(huì)看到所下載的rootfs根文件系統(tǒng)已經(jīng)穩(wěn)穩(wěn)的運(yùn)行在你的mini2440開(kāi)發(fā)板中了。
[root@LEON2440 ~]# ls -l total 3928 drwxrwxr-x 1 1000 1000 512 Feb 3 2017 bin -rw-rw-r-- 1 1000 1000 71 Oct 3 2017 changelog@leon drwxr-xr-x 2 root root 0 Jan 1 00:00 dev drwxrwxr-x 1 1000 1000 512 Feb 3 2017 etc lrwxrwxrwx 1 1000 1000 11 Feb 3 2017 linuxrc -> bin/busybox drwx------ 1 root root 512 Jan 1 00:00 lost+found drwxrwxr-x 1 1000 1000 512 Oct 3 2017 mnt dr-xr-xr-x 25 root root 0 Jan 1 00:00 proc drwxrwxr-x 1 1000 1000 512 Feb 3 2017 sbin drwxr-xr-x 11 root root 0 Jan 1 00:00 sys drwxr-xr-x 2 root root 0 Jan 1 00:00 tmp -rw-rw-r-- 1 1000 1000 1751132 Feb 4 2017 uImage.img drwxrwxr-x 1 1000 1000 512 Feb 3 2017 usr總結(jié)
以上是生活随笔為你收集整理的玩转mini2440开发板之【编译烧录rootfs根文件系统全过程记录】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 汽水音乐怎么入驻音乐人
- 下一篇: 顽皮狗宣布《最后生还者》PC 版跳票,延