Linux : Ubuntu 8.04
Kernel : Linux kernel 2.6.27
首先需要下載Linux kernel
點此教學連結
再將廠商的修改檔Patch上去
點此教學連結
以上步驟都做好後再進行編譯
首先先到kernel的根目錄下
進入到configs底下
cd arch/arm/configs
註:arm為版子的廠商尋找版子的基本設定
因為我所用的版子為AT91SAM9263
所以收尋是否有這個版子的基本設定
ls | grep at91sam9263
因該會出現at91sam9263ek_defconfig這也是我要找的基本設定
要是沒有可能你的kernel沒有Patch或是Patch失敗
所以切回到kernel的根目錄
輸入命令
make at91sam9263ek_defconfig
註:at91sam9263ek_defconfig為版子的基本設定輸入完後它會自動將需要用選用的選項設定起來
基本上是原廠的版子就不需修改設定就可以直接編譯
不過要設定可以打命令進入設定選單
make menuconfig
設定完成後save就會更改成你所需要的環境要是你的root-file-system是在隨身硬碟或是其他週邊設備接下來要設定cross compile
通常格式都是Ext3
所以kernel必須支援Ext3 file system
要選起File systems底下的
-Ext3 journalling file system support
-Ext3 extended attributes
要是你想要跑的是Android的話需要將此選項選起
因為某些Android執行檔會使用ARM Thumb
要選起System Type底下的
-Support Thumb user binaries
編輯Makefile
vi Makefile
收尋
ARCH ?= $(SUBARCH)
將它設定成
ARCH ?= arm
收尋
CROSS_COMPILE ?=
將它設定成
CROSS_COMPILE ?= /root/mydroid16/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-
註:/root/mydroid16/prebuilt/linux-x86/toolchain
是我下載android的root file system的地方
裡面會有工具可以來編譯kernel
註:arm-eabi-4.3.1是專門拿來編譯arm核心的編譯器然後存檔
編譯器版本聽說4.3.1比較好
eabi聽說是拿來編譯有float point寫法的編譯器
Linux kernel 2.6.27以上都需要用這種編譯器
接下來就是輸入
make
要是要產生uImage就要輸入
make uImage
make uImage也會做make生成檔在arch/arm/boot
cd arch/arm/boot/
看看使否有uImage這的檔案要是沒有的話
再make uImage一次
看看是否有這個訊息
"mkimage" command not found - U-Boot images will not be built
要是有的話代表沒有此工具按此連結
裡面有教學
有uImage代表成功了
但是因為板子的clock不一樣
所以編出來的kernel可以動
但是會讀不出訊息
所以要改kernel的參數
到arm的march-at91的sam9623裡的c來改
vi arch/arm/mach-at91/board-sam9263ek.c
尋找
at91sam9263_initialize
將 16367660 改成 18432000再編譯就可以了
0 意見:
張貼留言