基於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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM