s5pv210 linux内核移植,简单根文件系统制作 - S5PV210 Linux3.8.3内核移植_Linux编程_Linux公社-Linux系统门户网站...
1.這里為什么選nfs文件系統呢?
在產品開發階段,因為nfs根文件系統并不需要編譯進內核,方便調試。
2.制作根文件系統需要用到BusyBox
解壓進入busybox目錄:
root@linuxidc:/home/share# tar xjf busybox-1.20.2.tar.bz2
root@linuxidc:/home/share# cd busybox-1.20.2
3.修改Makefile,指定交叉編譯工具鏈和編譯體系arm
root@linuxidc:/home/share/busybox-1.20.2# vim Makefile
CROSS_COMPILE ?= 修改為 CROSS_COMPILE ?= arm-linux-
ARCH ?= $(SUBARCH) 修改為 ARCH ?= arm
4.進行busybox配置
root@linuxidc:/home/share/busybox-1.20.2# make menuconfig
Busybox Settings ?--->? General Configuration ?--->?[*] Don't use /usr
/*不選上的話,會安裝到系統目錄的/usr下 破壞系統文件*/
5.編譯
root@linuxidc:/home/share/busybox-1.20.2# make
root@linuxidc:/home/share/busybox-1.20.2# make install
完成安裝后 當前文件夾下多了_install文件夾,這就是最終生成的busybox文件系統。
root@linuxidc:/home/share/busybox-1.20.2# cd _install/
root@linuxidc:/home/share/busybox-1.20.2/_install# ls
bin linuxrc sbin
接下來構建一個最小的根文件系統:最小根文件系統需要哪些文件呢?
一個最小根文件系統必須的項:
/dev/console這個在內核啟動時打開:sys_open((const char __user *) "/dev/console", O_RDWR, 0)
/dev/null當不設置標準輸入輸出標準出錯時,就會定位到/dev/null
init本身,即busybox
/etc/inittab配置文件 ?init進程配置文件,用來創建其他進程inittab配置文件中指定的應用程序或腳本
相應的庫(如glibc庫)
6.創建etc/inittab文件
root@linuxidc:/home/share/busybox-1.20.2/_install# mkdir etc
root@linuxidc:/home/share/busybox-1.20.2/_install# vim etc/inittab
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::shutdown:/bin/umount -a -r
7.創建etc/init.d/rcS文件
root@linuxidc:/home/share/busybox-1.20.2/_install# mkdir etc/init.d
root@linuxidc:/home/share/busybox-1.20.2/_install# vim etc/init.d/rcS
添加想要自動運行的程序:
#!/bin/sh
mount -a #掛載在etc/fstab中配置的掛載項
mkdir /dev/pts #支持外部網絡連接的虛擬終端telnet
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug #熱插拔
/sbin/mdev –s #在dev目錄下生成內核支持的所有節點
8.由于使用了mount -a 必須創建etc/fstab文件
root@linuxidc:/home/share/busybox-1.20.2/_install# vim etc/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
tmpfs /dev tmpfs defaults 0 0
proc:Linux內核提供了一種通過/proc文件系統,在運行時訪問內核內部數據結構、改變內核設置的機制。proc文件系統是一個偽文件系統,它只存在內存當中,而不占用外存空間。它以文件系統的方式為訪問系統內核數據的操作提供接口.
Sys: sysfs文件系統總是被掛載在/sys掛載點上.這里sysfs文件系統是為了支持mdev。為了減少寫入flash。將dev目錄掛載為tmpfs使寫入操作在內存中。
9.busybox運行mdev創建所有設備節點之前,init進程需要dev/console和dev/null設備節點
root@linuxidc:/home/share/busybox-1.20.2/_install# mkdir dev
root@linuxidc:/home/share/busybox-1.20.2/_install# mknod dev/console c 5 1
root@linuxidc:/home/share/busybox-1.20.2/_install# mknod dev/null c 1 3
10.創建根文件系統其他目錄
root@linuxidc:/home/share/busybox-1.20.2/_install# mkdir proc mnt tmp sys root
11.拷貝glibc庫到lib目錄
root@linuxidc:/home/share/busybox-1.20.2/_install# mkdir lib
root@linuxidc:/home/share/busybox-1.20.2/_install# cp /usr/local/arm/4.4.1/arm-none-linux-gnueabi/libc/lib/*so* lib/
總結
以上是生活随笔為你收集整理的s5pv210 linux内核移植,简单根文件系统制作 - S5PV210 Linux3.8.3内核移植_Linux编程_Linux公社-Linux系统门户网站...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux质数合数的脚本,python输
- 下一篇: linux的线程要makefile,Li