編譯內核
1. 下載內核源碼:https://www.kernel.org/
2. 安裝圖形化配置工具
sudo apt-get install libncurses-dev
3. 指定CPU架構和編譯器
方法一:
在內核源碼根目錄下的Makefile中指定交叉編譯工具
ARCH ?= arm
CROSS_COMPILE ?= arm-none-linux-gnueabi- # 編譯器前綴
ARCH指定默認索引路徑,CROSS_COMPILE 指定交叉編譯工具的前綴
方法二:
命令配置:make ARCH=arm CROSS_COMPILE= arm-none-linux-gnueabi- menuconfig
4. 配置
a. 配置文件:內核源碼根目錄下的.config
b. 清除原有配置和中間文件:make distclean
c. 簡單配置:內核源碼根目錄arch/arm/configs/下,找到對應CPU或相似的配置文件,覆蓋到內核源碼根目錄下的.config
或者make xxx_defconfig(其實就是把xxx_defconfig複製到.config)
d. 個性化配置
make ARCH=arm menuconfig
配置後再保存退出(其實還是修改.config)
5. 編譯內核(根據.config文件進行編譯)
a. make uImage 生成內核鏡像文件uImage (先生成zImage,再壓縮uImage)
b. make zImage 生成內核鏡像文件zImage
配置編譯設備樹
1. 設備樹文件:arch/arm/boot/dts/xxx.dts
2. 編譯設備樹
make dtbs
內核常用配置
1. gpio:gpio support(/sys/class/gpio)
2. watchdog:watch timer suppourt
3. pwm:pulse-width modulation(pwm) suppourt
4. usb:USB support
5. 4g:USB driver for GSM and CDMA modems
6. 輸入設備:input device deriver