基于FS4412內核移植(zhi)之第一次編譯
							時間:2014-09-22      來源:未知 
							這(zhe)里選擇的(de)內容(rong)為(wei)比(bi)較新的(de)版(ban)本Linux-3.14作為(wei)我們的(de)移植對(dui)象。
這(zhe)個內核版本比較新隊編譯(yi)器(qi)有一(yi)定(ding)的要求,如果系統中原(yuan)因版本編譯(yi)時出現問題,可(ke)以選擇(ze)如下(xia) //www.kernel.org/pub/tools/crosstool/地址下(xia)載,選擇(ze)ARM相關即(ji)可(ke),32bit/64bit按(an)自己環(huan)境(jing)決(jue)定(ding)
  解壓內核
將linux-3.14.tar.xz拷貝到/home/linux下(xia)并解壓
  $tar xvf linux-3.14.tar.xz
          $ cd linux-3.14
修改內(nei)核頂層目錄(lu)下(xia)的Makefile
$ vim Makefile
修改:
 ARCH ?= $(SUBARCH)
          CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
為:
  ARCH ?= arm
         CROSS_COMPILE ?= arm-none-linux-gnueabi-
導入默認配置
$ makeexynos_defconfig
配置內核
  $ make menuconfig
         System Type --->
         (2) S3C UART to use for low-level messages
該命令執行(xing)時會彈出一(yi)(yi)個菜單,我(wo)們可以對內核進行(xing)詳細的配置。這里(li)我(wo)們先查看一(yi)(yi)下,內核都提供了那些(xie)功能!
編譯內核
$ make uImage
通過上述操(cao)作(zuo)我們(men)能夠在arch/arm/boot目(mu)錄下生成一(yi)個uImage文件,這(zhe)就是經過壓(ya)縮(suo)的(de)內核(he)鏡像。
如果編(bian)譯(yi)過(guo)程中提示(shi)缺少mkimage工(gong)具,需將(jiang)第二天編(bian)譯(yi)的(de)uboot源碼中的(de)tools/mkimage拷貝到ubuntu的(de)/usr/bin目(mu)錄下
$ cp u-boot-2013.01/tools/mkimage /usr/bin
修改設備(bei)樹文件
生(sheng)成(cheng)設(she)備樹文件(jian),以(yi)參考(kao)板origen的設(she)備數文件(jian)為參考(kao)。
$ cparch/arm/boot/dts/exynos4412-origen.dts arch/arm/boot/dts/exynos4412-fs4412.dts
添加新文件需修改(gai)Makefile才能編(bian)譯
$ vim arch/arm/boot/dts/Makefile
在
exynos4412-origen.dtb \
下(xia)添加如下(xia)內容
exynos4412-fs4412.dtb \
編譯設備樹文件
$ make dtbs
目標文件
根(gen)據上述操作可以(yi)得(de)到如下文件(jian)
  Linux內核鏡像:arm/arm/boot/uImage
         設備樹鏡像(xiang):arch/arm/boot/dts/exynos4412-fs4412.dtb
Bootloader參(can)數設置
  #setenv serverip 192.168.9.120
          #setenv ipaddr 192.168.9.233
          #setenv bootcmdtftp 41000000 uImage\;tftp 42000000 exynos4412-fs4412.dtb\;bootm 41000000 – 42000000
         #setenv bootargs root=/dev/nfs nfsroot=192.168.9.120:/source/rootfs rw console=ttySAC2,115200 init=/linuxrcip=192.168.9.233
         # saveenv
Bootloader需支持設備樹才可以