嵌入式linux内核配置和编译

编译环境:

修改linux源代码顶层目录的Makefile,找到下面三项并修改:

arch/arm/configs/目录下找到一个xxx_defconfig文件(型号跟你自己的硬件相近),将其拷贝到顶层目录下,并改名为.config

执行make menuconfig 后保存,切记要保存

执行make uImage 

在编译过程会出现 error:"mkimage" command not found - U-Boot images will not be built,提示说找不到mkimage命令。mkimage是用来生成uImage的(即在vmlinux上添加头文件),如何解决:找到你uboot的源码路径,在tools目录下有mkimage,执行 cp mkimage /bin/,重新编译

编译成功,用tftp下载到开发板上,运行,出现Error: unrecognized/unsupported machine ID (r1 = 0x000009d8).  无法匹配机器ID,uboot传进去的是tiny6410的机器ID,而现在的配置文件是使用s3c6400_defconfig的配置文件,所以无法匹配,在错误信息下,提示了内核支持的机器ID:

可以看出内核还是支持很多机器ID的,但是没有自己想要的。内核在启动时,是通过bootloader传入的机器码(MACH_TYPE)确定应启动哪种目标平台的.

解决方法:进入linux内核源代码,执行vim arch/arm/mach-s3c64xx/mach-smdk6410.c,找到MACHINE_START(SMDK6410, "SMDK6410")更改为

MACHINE_START(MINI6410, "MINI6410") ,再次编译下载,内核能成功启动。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值