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