[1]Linux内核编译
前提:
- 安装完成arm-linux-gcc交叉编译工具链;
- 准备好Linux源代码(TQ2440已移植好)。
编译:
- 清除已有配置和中间文件
make distclean - 配置内核
复制TQ2440的配置文件到.config
并根据需要修改配置:make menuconfig - 编译内核
make uImage
uImage和zImage的区别:
待续。
[2]Linux根文件系统
根文件系统由一系列目录组成,目录中包含了应用程序、C库、以及相关的配置文件。
- 创建根文件系统目录结构
mkdir rootfs
cd rootfs
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
- 创建设备文件
cd dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
cd ..
- 安装/etc
/etc包含各种配置文件
tar etc.tar.gz –C /xxx/rootfs
- 编译内核模块
进入Linux内核目录:
make modules
安装内核模块
make modules_install INSTALL_MOD_PATH=/xxx/rootfs
这样系统所需要的内核模块已经安装到根文件系统中。
- 配置busybox
- 进入busybox目录执行 make menuconfig
- 进入 Busybox Settings a build Options->选中 “Build busybox as a static binary”, 静态链接 Cross Compiler prefix (arm-linux-)
- Installation Options->选中”Don‘t use /usr”, 选中该项可以避免busybox 被安装到宿主系统的
/usr目录下,破坏宿主系统。 - 设置安装位置:Busybox Installation Prefix (/xxx/rootfs)该选项表明编译后的busybox的安装位置。
- 编译、安装busybox:make ARCH=arm CROSS_COMPILE=arm-linux;make install。
到此位置Linux根文件系统的目录结构制作完毕。