這篇文章給大家介紹如何移植linux kernel及含busybox的yaffs2文件系統(tǒng)鏡像,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
成都創(chuàng)新互聯(lián)是專業(yè)的新樂網(wǎng)站建設(shè)公司,新樂接單;提供成都網(wǎng)站制作、成都做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行新樂網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
一、建立根文件系統(tǒng)目錄
進(jìn)入到/opt/studyarm目錄,新建建立根文件系統(tǒng)目錄的腳本文件create_rootfs_bash,使用命令chmod +x create_rootfs_bash改變文件的可執(zhí)行權(quán)限,./create_rootfs_bash運(yùn)行腳本,就完成了根文件系統(tǒng)目錄的創(chuàng)建。
#!/bin/sh echo "------Create rootfs directons start...--------" mkdir rootfs cd rootfs echo "--------Create root,dev....----------" mkdir root dev etc boot tmp var sys proc lib mnt home usr mkdir etc/init.d etc/rc.d etc/sysconfig mkdir usr/sbin usr/bin usr/lib usr/modules echo "make node in dev/console dev/null" mknod -m 600 dev/console c 5 1 mknod -m 600 dev/null c 1 3 mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp mkdir var/lib var/lock var/run var/tmp chmod 1777 tmp chmod 1777 var/tmp echo "-------make direction done---------"
改變了tmp目錄的使用權(quán),讓它開啟sticky位,為tmp目錄的使用權(quán)開啟此位,可確保tmp目錄底下建立的文件,只有建立它的用戶有權(quán)刪除。盡管嵌入式系統(tǒng)多半是單用戶,不過有些嵌入式應(yīng)用不一定用root的權(quán)限來執(zhí)行,因此需要遵照根文件系統(tǒng)權(quán)限位的基本規(guī)定來設(shè)計(jì)。
二、建立動(dòng)態(tài)鏈接庫
cd rootfs/lib cp -fr /home/working/arm-linux-gcc/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/* ./
將交叉編譯器下的:相應(yīng)庫文件,拷貝到 rootfs/lib 下
注:本用的交叉編譯器是:arm-linux-gcc 4.3.2
三、交叉編譯Bosybox
Bosybox是一個(gè)遵循GPL v2協(xié)議的開源項(xiàng)目,它在編寫過程總對(duì)文件大小進(jìn)行優(yōu)化,并考慮了系統(tǒng)資源有限(比如內(nèi)存等)的情況,使用Busybox可以自動(dòng)生成根文件系統(tǒng)所需的bin、sbin、usr目錄和linuxrc文件.
1、解壓busybox cd /mnt/hgfs/share
tar –zxvf busybox-1.13.3.tar.tgz –C /opt/studyarm 2、進(jìn)入源碼,修改Makefile文件: cd /opt/studyarm/busybox-1.13.3 修改: CROSS_COMPILE ?=arm-linux- //第164行 ARCH ?=arm //第189行 3、配置busybox
輸入make menuconfig進(jìn)行配置
(1)、Busybox Settings--->
General Configuration--->
[*] Show verbose applet usage messages
[*] Store applet usage messages in compressed form
[*] Support –install [-s] to install applet links at runtime
[*] Enable locale support(system needs locale for this to work)
[*] Support for –long-options
[*] Use the devpts filesystem for unix98 PTYs
[*] Support writing pidfiles
[*] Runtime SUID/SGID configuration via /etc/busybox.config
[*] Suppress warning message if /etc/busybox.conf is not readable
Build Options--->
[*] Build BusyBox as a static binary(no shared libs)
[*] Build with Large File Support(for accessing files>2GB)
Installation Options->
Applets links (as soft-links) --->
(./_install) BusyBox installation prefix
Busybox Library Tuning --->
(6)Minimum password legth
(2)MD5:Trade Bytes for Speed
[*]Fsater /proc scanning code(+100bytes)
[*]Command line editing
(1024)Maximum length of input
[*] vi-style line editing commands
(15) History size
[*] History saving
[*] Tab completion
[*]Fancy shell prompts
(4) Copy buffer size ,in kilobytes
[*]Use ioctl names rather than hex values in error messages
[*]Support infiniband HW
(2)、Linux Module Utilities--->
(/lib/modules)Default directory containing modules
(modules.dep)Default name of modules.dep
[*] insmod
[*] rmmod
[*] lsmod
[*] modprobe
-----options common to multiple modutils [ ] support version 2.2/2.4 Linux kernels
[*]Support tainted module checking with new kernels
[*]Support for module .aliases file
[*] support for modules.symbols file
(3)、在busybox中配置對(duì)dev下設(shè)備類型的支持
dev的創(chuàng)建有三種方法:
手動(dòng)創(chuàng)建:在制作根文件系統(tǒng)的時(shí)候,就在dev目錄下創(chuàng)建好要使用的設(shè)備文件,系統(tǒng)掛接根文件系統(tǒng)后,就可以使用dev目錄下的設(shè)備文件了。 使用devfs文件系統(tǒng):這種方法已經(jīng)過時(shí),具有不確定的設(shè)備映射、沒有足夠的主/次設(shè)備號(hào)、devfs消耗大量的內(nèi)存。
udev:它是個(gè)用戶程序,能根據(jù)系統(tǒng)中硬件設(shè)備的狀態(tài)動(dòng)態(tài)的更新設(shè)備文件,包括設(shè)備文件的創(chuàng)建、刪除等。它的操作相對(duì)復(fù)雜,但靈活性很高
mdev是busybox自帶的一個(gè)簡(jiǎn)化版的udev,適合于嵌入式的應(yīng)用埸合。其具有使用簡(jiǎn)單的特點(diǎn)。它的作用,就是在系統(tǒng)啟動(dòng)和熱插拔或動(dòng)態(tài)加載驅(qū)動(dòng)程序時(shí),自動(dòng)產(chǎn)生驅(qū)動(dòng)程序所需的節(jié)點(diǎn)文件。在以busybox為基礎(chǔ)構(gòu)建嵌入式linux的根文件系統(tǒng)時(shí),使用它是最優(yōu)的選擇。下面的選項(xiàng)將增加對(duì)mdev的支持。
Linux System Utilities --->
[*]Support /etc/mdev.conf
[*]Support command execution at device addition/removal
4、 編譯busybox
編譯busybox到指定目錄: cd /opt/studyarm/busybox-1.13.3
make CONFIG_PREFIX=/opt/studyarm/rootfs install
在rootfs目錄下會(huì)生成目錄bin、sbin、usr和文件linuxrc的內(nèi)容。
四、建立etc目錄下的配置文件
1、etc/mdev.conf文件,內(nèi)容為空。
2、拷貝主機(jī)etc目錄下的passwd、group、shadow文件到rootfs/etc目錄下。
3、etc/sysconfig目錄下新建文件HOSTNAME,內(nèi)容為”MrFeng”。
4、etc/inittab文件:
#etc/inittab ::sysinit:/etc/init.d/rcS ::askfirst:-/bin/sh ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r
5、etc/init.d/rcS文件:
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel echo "----------munt all----------------" mount -a echo /sbin/mdev>/proc/sys/kernel/hotplug mdev -s echo "***********************************************" echo "****************BENJAMIN ARM*********************" echo "Kernel version:linux-2.6.32.2" echo "Student:Benjamin" echo "Date:2015.12.02" echo "***********************************************" /bin/hostname -F /etc/sysconfig/HOSTNAME
使用以下命令改變r(jià)cS的執(zhí)行權(quán)限: Chmod +x rcS
6、etc/fstab文件:
#device mount-point type option dump fsck order proc /proc proc defaults 0 0 none /tmp ramfs defaults 0 0 sysfs /sys sysfs defaults 0 0 mdev /dev ramfs defaults 0 0
7、 etc/profile文件:
#Ash profile #vim:syntax=sh #No core file by defaults #ulimit -S -c 0>/dev/null 2>&1 USER="id -un" LOGNAME=$USER PS1='[\u@\h]\$ ' PATH=$PATH HOSTNAME='/bin/hostname' export USER LOGNAME PS1 PATH alias ll="ls -l" mknod -m 600 /dev/console c 5 1 mknod -m 600 /dev/null c 1 3
五、制作根文件系統(tǒng)映像文件
使用以下命令安裝好yaffs文件系統(tǒng)制作工具: cd /mnt/hgfs/share
tar –zxvf mkyaffs2image.tgz –C /
在/opt/studyarm目錄下,使用命令mkyaffs2image rootfs rootfs.img生成根文件系統(tǒng)映像文件
注:本人用的 mkyaffs2image-128M 工具
關(guān)于如何移植linux kernel及含busybox的yaffs2文件系統(tǒng)鏡像就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
文章標(biāo)題:如何移植linuxkernel及含busybox的yaffs2文件系統(tǒng)鏡像
文章來源:http://muchs.cn/article4/igeeoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、云服務(wù)器、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)