內核的移植

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章