自学内容网 自学内容网

Linux驱动学习——内核编译

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,就能成功启动操作系统了


原文地址:https://blog.csdn.net/weixin_63556308/article/details/142758881

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!