我的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
繼續編譯,編譯會從錯誤處繼續。
目前先將步驟羅列出來,后面等我自己了解的更深了,再詳解每一步的含義。
過程中肯定有不好的地方,希望大佬能幫忙指正