1. Uboot的移植
清除之前的配置文件:make distclean
配置U-Boot:makeTQ2440_config(TQ2440_config来自根目录的Makefile 不同的开发板命令也不同)
编译U-Boot:make ARCH=arm(只对ARM体系结构)CROSS_COMPILE=arm-linux-(指定交叉编译器,其中linux后面不加表示执行有这些前缀的所有命令)
2. 内核的移植(版本2.6.30.4)
清除之前的配置文件:make distclean
配置内核:make menuconfig ARCH=arm
编译内核:make uImage ARCH=arm CROSS_COMPILE=arm-linux-
3.根文件制作
3.1建目录:
mkdir rootfs(可更改)
cd rootfs
mkdir bin dev etc lib proc sbin sysusr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
3.2创建设备文件:
cd rootfs/dev
mknod -m 666console c(代表类型) 5(主设备号) 1(次设备号)
mknod [options]name{bc}majorminor
mknod -m 666 null c 1 3
3.3加入配置文件:
tarxvzf etc.tar.gz
cp etc/*(所有文件) /rootfs/etc/ -rf
3.4添加内核模块:
#cd…/linux(进入内核)
#make modules ARCH=arm CROSS_COMPILE=arm-linux- (编译内核模块)
#make modules_install(打包)ARCH=armINSTALL_MOD_PATH=…/rootfs(路径)
3.5编译/安装busybox(先解压)
配置busybox
#make menuconfig
进入BusyboxSettings →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(编译)
make install(安装)
3.6挂载根文件系统
使用Initramfs
创建软链接
#cd …/rootfs/
#ln –s ./bin/busybox init(创建软链接)
2.在内核文件下配置
#cd XX/linux
#make menuconfig ARCH=arm
General setup→选中Initial RAM filesystem and RAM disk→Initramfs 中输入根文件系统目录
3.编译内核
make uImage ARCH=armCROSS_COMPILE=arm-linux-
4.环境变量设置
setenv bootargs noinitrd console=ttySAC0,115200 (使用串口0,波特率115200)
PS:下载到板子里面后会重启,是因为配置中watchdog没关