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沒關