内核移植(详细版)

本文详细探讨了Linux内核移植过程,包括修改Makefile、配置文件.config、平台时钟和NANDFlash驱动的移植。通过分析Makefile、.config和源码,解释了为何特定文件被修改以及它们在内核配置和初始化中的作用。建议读者先实践内核移植再阅读文章,以深入理解移植细节。
摘要由CSDN通过智能技术生成

今天,自己又重新移植了一遍内核。感受颇多,原本已经烂熟于心的东西,忽然都不明白了。

看来,随着时间的增长,人们看东西的视角也不同。原本是本着一颗,做东西的心情,移植

成功就好,好使就行,不会太关注,为什么,怎么来的。

今天移植想的问题却又不一样了。好吧,那就详细的讨论一下吧。

看本文之前,建议,先自己好好的做一遍内核移植

http://blog.csdn.net/zhaole20094463/article/details/6882266

按照上面链接写的,试一试,否则,看这篇博客就会云里雾里了。

好吧,我们来总结一下。

在上文的移植中,我们总共修改了这样几个文件。

Makefile                                                                                添加对arm的支持

arch/arm/mach-s3c2440/mach-smdk2440.c     修改平台时钟

arch/arm/tools/mach-types                                                   修改机器码  

arch/arm/plat-s3c24xx/commond-smdk.c    移植nandflash驱动 

当然 我们还忘了一个最重要的,.config

也就是这一步

cp arch/arm/configs/s3c2410_defconfig .config                  复制一下对于S3C2410/2440的通用配置
我在写上面博客的时候,对移植理解还不深,就是记下了一个成功的方法。

所以把这一步放在了很后面的步骤,不过现在看来,恰恰错了。

应该把这一步放在首位。现在我们来讨论一下,为什么要放在首位。

我们在配置内核的时候,要执行make  menuconfig

这个命令调用的文件便是.config。它打开了我们移植内核的配置单。

长久以来,我们都在迷惑一些问题那就是为什么我们要修改以上几个文件中的内容,为什么修改别的不行。

这些问题在.config 文件中找到了答案。

正如我以上所说,我们在移植内核的时候先要进行配置,选择配置单,也就是make  menuconfig的操作。我们

先进到内核源码中看看。

arch/arm/plat-s3c24xx/commond-smdk.c    移植nandflash驱动 

先说这一项,进入到arch/arm/plat-s3c2440/目录

打开该目录下面的Makefile

在最后一行查看到有这样一行代码

obj-$(CONFIG_MACH_SMDK)+= common-smdk.o

这句话的意思是:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值