1、从官网下载适合板子的Linux内核版本
选择什么版本的内核需要根据所使用的硬件平台而定,最好使用硬件厂商推荐使用的版本
https://www.kernel.org/pub/linux/kernel/
2、将压缩包复制到Ubuntu内进行解压
sudo tar -xvf linux-2.6.32.2-mini2440-20150709.tgz
然后进入该目录,以下3、4、5操作都在内核源码的顶层目录下进行,及该文件的顶层目录
3、拷贝默认配置到 .config。
cp config_mini2440_td35 .config
4、打开可视化配置菜单(内核活地图)
make menuconfig
在菜单里选择需要的功能,这里不做修改,选择默认的功能即可
5、编译uImage
make uImage
编译后发现报错
打开 kernel/timeconst.pl修改第373行代码
372 @val = @{$canned_values{$hz}};
373 if (!defined(@val)) {
374 @val = compute_values($hz);
375 }
376 output($hz, @val);
377 }
378 exit 0;将defined删掉
然后再编译
出现 Image arch/arm/boot/uImage is ready 表示编译成功,但也不完全成功
然后将uImage拷贝到tftpboot
6、打开minicom进入uboot
分别输入
tftp 0x30008000 uImage
bootm 0x30008000
会发现内核启动失败
检测到有未定义指令,CPU复位
进入arch/arm/boot/Makefile,修改为0x30008040
修改后再重新编译,更新tftpboot里的uImage,就能成功启动操作系统了