编译内核
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