製作根檔案系統
目錄實驗內容2
實驗目的2
實驗材料2
實驗工具2
實驗步驟3
1、編譯/安裝
busybox
(busybox-1.16.0.tar.bz2),3
1.新增動態庫與載入器,5
3. 構建
etc目錄,6
3.1建立
etc/inittab檔案6
3.2建立
etc/fstab檔案7
3.3 建立
etc/init.d/rcs檔案7
1.構建
dev目錄,8
2.構建其他目錄,9
3.製作
yaffs
檔案系統映像檔案9
7. 移植10
能在linux2.6.32
與arm
平台執行的根檔案系統的製作
掌握簡單linux
根系統的製作過程,搭建開發平台
交叉編譯器:arm-linux-gcc-4.3.2
busybox:
busybox-1.16.0.tar.bz2
linux作業系統:
ubuntu9.04
arm交叉編譯套件
具體步驟:
建立製作根檔案系統的路徑(假定為/root/myroot/rootfs
)#> mkdir /root /myroot
#> mkdir /root /myroot/rootfs
將busybox
壓縮包解壓到
/root /myroot
目錄下#>tar jxvf busybox-1.16.0.tar.bz2 -c /root/myroot/
進入解壓後軟體所在目錄
#> cd busybox-1.16.0
修改makefile
檔案#> vi makefile
修改前:
190 arch ?= $(subarch)
164 cross_compile ?=
修改後:
164 cross_compile ?= arm-linux-
190 arch ?= arm
新增臨時環境變數
#> export path=/usr/local/arm/4.3.2/bin:$path
配置busybox
#> make menuconfig
在busybox settings --------->
installation options --------->
(./_install
)busybox installation prefix
輸入/root/myroot/rootfs
,其他預設原設定,儲存退出
編譯busybox
#> make
安裝busybox
#> make install
安裝結束後,在目錄/root/myroot/rootfs/
下將生成
4個檔案:
bin、
sbin
、 usr
、linuxrc
具體步驟:
動態庫與載入器的位置是:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/
注:若是4.4.3
則,位置是:
/usr/local/arm/4.4.3/arm-none-linux-gnueabi/lib
建立庫目錄
#> mkdir –p /root/myroot/rootfs/lib
進入lib
目錄#> cd /root/myroot/rootfs/lib/
新增庫函式
#> cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/* .
具體步驟:
進入根檔案系統目錄(/root/myroot/rootfs
)#> cd /root/myroot/rootfs/
建立etc
目錄#> mkdir etc
進入etc
目錄#> cd /root/myroot/rootfs/etc
建立inittab
檔案#> vi inittab
內容如下:
# /etc/inittab
::sysinit:/etc/init.d/rcs
::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
進入根檔案系統etc
目錄(/root/myroot/rootfs/etc
)#> cd /root/myroot/rootfs/etc/
建立fstab檔案
#> vi fstab
內容如下:
# device mount-point type options dum fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
建立/root/myroot/rootfs/etc/init.d
目錄#> mkdir -p /root/myroot/rootfs/etc/init.d
進入/root/myroot/rootfs/etc/init.d
目錄#> cd /root/myroot/rootfs/etc/init.d
建立etc/init.d/rcs檔案
#> vi rcs
內容如下: #!
/bin/sh
mount -a
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
修改檔案屬性,使之能執行
#>
chmod +x /root/myroot/rootfs/etc/init.d/rcs
具體步驟:
建立/root/myroot/rootfs/dev
目錄#> mkdir /root/myroot/rootfs/dev
進入/root/myroot/rootfs/dev
目錄#> cd /root/myroot/rootfs/dev
靜態建立裝置檔案
#> mknod console c 5 1
#> mknod null c 1 3
具體步驟:
進入/root/myroot/rootfs/
#> cd /root/myroot/rootfs/
建立其他目錄
#> mkdir proc mnt tmp sys root
具體步驟:
進入/root/myroot/
#> cd /root/myroot/
複製製作yaffs
檔案工具
#> cp /usr/sbin/mkyaffs2image-128m .
製作yaffs2
映像檔案
#> ./ mkyaffs2image-128m rootfs root.image
最後在目錄/root/myroot/
下,生成
yaffs2
映像檔案
——root.image
將root.image
移植到開發板上,重啟即可
製作最小根檔案系統
1.dev console dev null 2.init程序 一般 於busybox 3.etc inittab 4.配置檔案指定的程式 5.c庫 1.解壓busybox tar xjf busybox 1.20.0.tar.bz2 2.配置 make menuconfig 設定交叉編譯選項cro...
busybox製作根檔案系統
以前的檔案系統都是同事做好的,今天心血來潮決決定探索一下,沒想到出了問題。makefile 405 mixed implicit and normal rules deprecated syntax makefile 1242 mixed implicit and normal rules depr...
根檔案系統的製作
靜態檔案系統的製作 一 建立掛載點ramfs 資料夾 相當u盤的名字 二 建立乙個大小6m的檔案initrd 相當與u盤的實體 dd if dev zero of initrd bs 1k count 6144 三 mke2fs f v m 0 initrd 四 掛載檔案initrd到ramfs 相...