嵌入式linux内核和根目录制作

系统组成:
Bootloader, Boot parameters, Kernel, Root filesystem
嵌入式linux系统有linux内核与根文件系统两部分构成,两者缺一不可。

内核制作:
1:清除原有配置与中间文件
X86:make distclean
arm:make distclean

2 配置内核(copy其他类似的配置文件为.config)
x86:make menuconfig
arm:make menuconfig ARCH=arm /* nfs与ramdisk启动的区别 */

3 编译内核
x86:make bzImage
arm:make uImage ARCH=arm CROSS_COMPILE=arm-linux-

/***********************************************************************/
/***********************************************************************/

根文件系统制作:
根文件系统是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/modules

2 创建设备文件
cd dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3

3 安装/etc
tar etc.tar.gz -C /xxx/rootfs /* /etc下的文件一般不会发生改变 */

4 编译内核模块
进入linux内核目录(linux-2.6.29)
make modules ARCH=arm CROSS_COMPILE=arm-linux-

5 安装内核模块
make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs

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"

你可能感兴趣的:(linux)