嵌入式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"

相关文章
相关标签/搜索