1. 交叉编译器的选择
原有的arm-linux-gcc 3.4.1版本太老了,只能匹配2.x版本的,3.0版本的内核还是要用新一点交叉编译器,这里改用了4.4.3版本
2. 在官网上下载内核源码
链接: https://www.kernel.org/pub/linux/kernel/v3.0/
这里我下载的是Linux-3.0.10版本,下载完以后记得在Linux环境下解压。
3. 首先修改顶层目录的Makefile文件
配置CPU类型和交叉编译器路径
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/4.4.3/bin/arm-linux-
4. 修改晶振频率
FL2440开发板上用的是12M的晶振,所以这里要修改一下
将arch/arm/mach-s3c2440/mach-smdk2440.c中的__init smdk2440_map_io()函数中对时钟的初始化修改为12MHz:
s3c24xx_init_clocks(12000000);
5. 修改驱动的串口
将drivers/tty/serial/samsung.c中设置如下:
#define S3C24XX_SERIAL_NAME "ttyS"
6. 拷贝一个内核模板,再进行内核配置
拷贝 arch/arm/configs/s3c2410_defconfig作为.config的模板
然后在make menuconfig 时导入模板,再进行修改
7. 修改machine ID
修改arch/arm/tools/mach-types,将machine_ID配置为如下
s3c2440 ARCH_S3C2440 S3C2440 362
这个要依据BootLoader上面的参数来修改
8. 最后就可以进行内核配置了
make menuconfig
make zImage