嵌入式linux內核和根目錄製做

 

系統組成:
Bootloader, Boot parameters, Kernel, Root filesystem
嵌入式linux系統有linux內核與根文件系統兩部分構成,二者缺一不可。linux

內核製做:
1:清除原有配置與中間文件
X86:make distclean
arm:make distcleanpost

2 配置內核(copy其餘相似的配置文件爲.config)
x86:make menuconfig
arm:make menuconfig ARCH=arm /* nfs與ramdisk啓動的區別 */ui

3 編譯內核
x86:make bzImage
arm:make uImage ARCH=arm CROSS_COMPILE=arm-linux-blog

/***********************************************************************/
/***********************************************************************/ip

根文件系統製做:
根文件系統是linux啓動時使用的第一個文件系統。沒有根文件系統,linux將沒法
正常啓動。
根文件系統由一系列目錄組成,目錄中包含了應用程序,C庫,以及相關的配置文件

1 建立根文件系統目錄
mkdir rootfs
cd rootfs
mkdir bin bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modulesit

2 建立設備文件
cd dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3io

3 安裝/etc
tar etc.tar.gz -C /xxx/rootfs /* /etc下的文件通常不會發生改變 */console

4 編譯內核模塊
進入linux內核目錄(linux-2.6.29)
make modules ARCH=arm CROSS_COMPILE=arm-linux-編譯

5 安裝內核模塊
make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfsclass

6 配置busybox
進入busybox目錄執行
make menuconfig
a 進入Busybox Setting --
build Options --
* 選中"Build busybox as a static binary",靜態連接
* Cross Compiler prefix(arm-linux-)

Installation Options --
* 選中"Don't usr/usr", 選中該項能夠避免busybox被安裝到宿主系統的/usr目錄
下,破壞宿主系統

*Busybox Installation Prefix(/xxx/rootfs)
該選項代表編譯後的busybox的安裝位置

7 編譯,安裝busybox
*make ARCH=arm CROSS_COMPILE=arm-linux-
*make install

nfs啓動:CONFIG_CMDLINE="root=/dev/nfs rw
nfsroot=192.168.1.103:/nfsroot/rootfs ip=192.168.1.230 console=ttySAC0
mem=64M"

ramdisk啓動:CONFIG_CMDLINE="root=/dev/ram rw console=ttySAC0 mem=64M"

相關文章
相關標籤/搜索