天天看點

hi3531 SDK 編譯 kernel, 修改 參數 .

開發環境使用者指南上這麼寫的

3.1 核心源代碼

成功安裝hi3531 sdk後,核心源代碼已存放于sdk目錄下的osdrv/目錄中,使用者可

直接進入目錄進行相關操作。

3.2 配置核心

如果對核心和hi3531平台沒有足夠了解,請勿修改預設配置。但可增加需要的子產品。

配置核心的操作步驟如下:

1.  手動拷貝.config 檔案: 

hisilicon$cd os/linux-3.0.y 

hisilicon$cp arch/arm/configs/godnet_defconfig .config//編譯hi3531 

hisilicon$cp arch/arm/configs/godcube_defconfig .config //編譯hi3532 

2.  使用者通過“make menuconfig”進行核心配置:

hisilicon$make arch=arm cross_compile= arm-hisixxx-linux- menuconfig 

3.  選擇需要的子產品。

4.  選擇完畢後,儲存并退出。

----結束 

3.3 編譯核心并生成核心鏡像uimage 

配置儲存後,可直接輸入“make arch=arm cross_compile=arm-hisixxx-linux- 

uimage指令編譯核心生成鏡像,此時需要等待幾分鐘。

如果編譯過程中出現錯誤,按順序執行以下指令:

make arch=arm cross_compile=arm-hisixxx-linux- clean 

make arch=arm cross_compile=arm-hisixxx-linux- menuconfig 

make arch=arm cross_compile=arm-hisixxx-linux- uimage 

編譯核心時需要在make後添加兩個參數:arch=arm cross_compile=arm-hisixxx

linux-,其中cross_compile表示工具鍊。文檔中統一以cross_compile=arm-hisixxx

linux-來表示兩種情況。

z  hi35xx_v100r001c01spcxxx對應uclibc,使用uclibc工具鍊時,cross_compile=arm

hisiv100nptl-linux-。

z  hi35xx_v100r001c02spcxxx對應glibc,使用glibc工具鍊時,cross_compile=arm

hisiv200-linux-。

具體指令

單獨編譯kernel:

待進入核心源代碼目錄後,執行以下操作

cp arch/arm/configs/godnet_defconfig .config

make arch=arm cross_compile=arm-hisiv100nptl-linux- menuconfig

make arch=arm cross_compile=arm-hisiv100nptl-linux- uimage

使用tftp 刷上去後啟動的時候出錯,大概意思是配置的nand flash的 pagesize 和硬體的不同,然後就卡在那裡不動了。剛開始以為是uboot配置參數的問題,改了半天uboot參數還是不行。最後試試把核心配置中的nand驅動取消掉,完美運作。

取消nand flash驅動的位置:

    device drivers  --->

 <*> memory technology device (mtd) support  ---> 

< >   nand device support  ---> 

由于phy位址配置的不同,也有可能會網口不通,應該會需要修改如下配置

1. 核心下的方法:

在osdvr/kernel/linux -3.0.y目錄下運作

“make arch=arm cross_compile=arm-hisiv200-linux- menuconfig”

在 menuconfig 菜單下, 選擇以下選項:

        device drivers  --->

             [*] network device support  --->

                 [*]   ethernet (1000 mbit)  --->

                     <m>   stmicroelectronics 10/100/1000 ethernet driver  --->

                        (1)     stmmac mac #0 phy id     << 表示 phy 位址是 1.

                        (2)     stmmac mac #1 phy id     << 表示 phy 位址是 2.