1. 程式人生 > >基於arm的Linux核心編譯

基於arm的Linux核心編譯

我的Ubuntu版本是14.04

1、在官網下載Linux核心原始碼
    官網地址:https://www.kernel.org/

2、解壓Linux核心原始碼

3、安裝arm-gcc交叉編譯工具鏈:sudo apt-get install arm-linux-gnueabi

4、核心版本大於3.0的方法:(2.6的版本好像更直接一點)
    到Linux核心原始碼的arch/arm/config找到對應的配置檔案,將需要的配置檔案拷貝到Linux核心的根目錄下,例如:
    我使用的核心版本是:linux-3.16.57.tar.xz
    我到  ./linux-3.16.57/arch/arm/configs目錄下,找到我對應的配置檔案。我的硬體型號是NXP的IMX7,所以我將imx_v6_v7_defconfig檔案拷貝到./linux-3.16.57目錄下

    
5、修改Makefile,Makefile在解壓的原始碼的根目錄下:
    開啟Makefile在Makefile中找到

        ARCH        ?= $(SUBARCH)
        CROSS_COMPILE    ?= $(CONFIG_CROSS_COMPILE:"%"=%)
    並修改成:
        ARCH        ?= arm
        CROSS_COMPILE    ?= arm-linux-gnueabi-
     儲存。
        
6、執行命令:make imx_v6_v7_defconfig
    會生成一個.config的隱藏檔案,通過ls -a命令可以顯示出來

7、安裝圖形介面:sudo apt-get install ncurses-dev

8、執行make menuconfig開啟圖形介面,通過對圖形介面的選擇來配置核心,你想要什麼功能,你就選擇什麼功能。
    按 y 是選中
    按 n 是取消
    按 m 是將改功能編譯成模組
    
    選擇完畢之後,儲存,退出。
    
    
9、執行 make -j2 zImage 開始編譯核心
    -j2 :    開啟兩個執行緒進行編譯。-j4就是開啟4個執行緒編譯
    zImage    是我們要生成的目標映象

注:在編譯的過程中,有可能會出現錯誤,我就出現了:

/bin/sh: 1: lzop: not found

出現錯誤後,我開始很慌張,後來我把錯誤進行了百度,網上一般都有解決的辦法。

我這個問題解決的辦法是:

sudo apt-get install lzop

然後 :

      make -j2 zImage

繼續編譯,編譯會從錯誤處繼續。

目前先將步驟羅列出來,後面等我自己瞭解的更深了,再詳解每一步的含義。
過程中肯定有不好的地方,希望大佬能幫忙指正。