当前位置: 首页 > news >正文

linux 3.4.103 内核移植到 S3C6410 开发板 移植失败 (问题总结,日本再战!)

linux 3.4.103 内核移植到 S3C6410 开发板



这个星期差点儿就搭在这里面了,一開始感觉非常不值得,移植这样的浪费时间的事情。想立刻搞定,然后安安静静看书 & coding.


坑爹的事情就是一个多星期的时间搭进去了,还是没成功。

我把我的移植失败的经验留下来做为笔记,为下次做准备。也让和我一起做移植的道友少走弯路.大家一起共同分享经验,营造更好的开发环境。


查了非常多资料,在此谢谢那些bloger, thanks for your spirit of sharing.

 

一. 从官网获得干净的内核

https://www.kernel.org/

         我这里选择的是3.4.103,(事实上已经试过非常多版本号的kernle了,都是失败啊。心塞~。事实上我在写这篇blog的时候还在尝试再做一次,如今这次我用的3.4.103)


我的开发板是飞凌的s3c6410。开发板供应商提供的kernel是经过他们处理的,所以不要用供应商的kernel source code. 那样基本上啥经验都赚不到



二. patching yaffs2文件系统


在这个过程中我还发现yaffs2近期的版本号是有问题的,源代码编译过不了,有错误

http://blog.csdn.net/cinmyheart/article/details/38747505


换一个版本号就正常了~ (坑爹~source code 错误!)


yaffs2-4e188b0.tar.gz


给内核打yaffs2文件系统的补丁 


解压yaffs2源文件压缩包之后,运行yaffs2源码文件夹下的一个shell script

./patch-ker.sh c  /Jason_with_ARM/linux-3.4.104/ 


上面命令完毕以下三件事情: 
(1) 改动内核fs/Kconfig 
    添加一行:source "fs/yaffs2/Kconfig" 
(2) 改动内核fs/Kconfig 
    添加一行:ojb-$(CONFIG_YAFFS_FS) +=yaffs2/ 
(3) 在内核fs/文件夹下创建yaffs2文件夹 
    将yaffs2源代码文件夹以下的Makefile.kernel文件复制为内核fs/yaffs2/Makefie; 
    将yaffs2 源代码文件夹的Kconfig文件拷贝到内核fs/yaffs2文件夹下; 
    将yaffs2源代码文件夹下的*.c *.h文件拷贝到内核fs/yaffs2文件夹下. 


三. 配置内核。


               干干净净的内核移植到ARM平台还是要各种手动改动,麻烦的说~当然这也让我更熟悉Kconfig Makfile的作用和关系


                linux 默认的Kconfig 和.config不是为ARM平台准备的So...

RT,copy arm文件夹下的Kconfig 而且把s3c6400_defconfig copy成.config (s3c6400和s3c6410的配置差点儿相同。于是内核就仅仅给出了一个config)




执行一次make menuconfig 然后再加入点东东

照着以下这个blog的方法做。补全MTD选项

http://blog.csdn.net/cinmyheart/article/details/38754669


为了添加devfs文件管理器的支持,补全fs/Kconfig


我们所用的文件系统使用的是devfs文件管理器。

改动fs/Kconfig

找到

menu "Pseudo filesystems"

加入例如以下语句:

config DEVFS_FS
         bool "/dev file system support (OBSOLETE)"
         default y    
config DEVFS_MOUNT
bool "Automatically mount at boot"
default y
depends on DEVFS_FS


对于menuconfig 里没有yaffs2选项的解决的方法

以下给出的link,有些细节事实上是配置内核的一部分,不全然是为了解决yaffs2选项丢失的问题

http://blog.csdn.net/cinmyheart/article/details/38759549



改动根文件夹下的Makefile,如图





接着改动MTD分区(这一步不全然正确。非常可能这就是我为嘛没有移植成功的原因)


             三星的芯片,一个系列都是从前面的型号慢慢改进衍生出来的新产品,所以就会出现s3c6410和s3c2410在一些基础文件配置上共用


改动./arch/arm/mach-s3c64xx/mach-smdk6410.c


加入例如以下代码:

加入头文件 

</pre></p><pre name="code" class="cpp">
#include  <plat/sdhci.h>

#include <linux/mtd/partitions.h>

#include <mtd/mtd-abi.h>


struct s3c_ts_mach_info {
	int             	delay;
	int             	presc;
	int             	oversampling_shift;
	int			resol_bit;
	enum s3c_adc_type	s3c_adc_con;
};








凝视掉图中凝视的部分,而且加入&s3c_device_nand


在/arch/arm/plat-samsung/devs.c里面改动这个函数

 


改动凝视有added的那句话



加入 .boot_params 选项





改动 /drivers/mtd/nand/s3c2410.c

替换全部的(除了switch的选项外)赋值语句包括的NAND_ECC_SOFT为NAND_ECC_NONE



Kernel Feature配置






最后make zImage


最后的最后:可惜找了非常多blog,还是没能搞定这个问题。

有人说是






版权声明:本文博客原创文章,博客,未经同意,不得转载。

相关文章:

  • Scala 深入浅出实战经典 第68讲:Scala并发编程原生线程Actor、Cass Class下的消息传递和偏函数实战解析...
  • 值保留原则
  • 为什么监听不到开机广播action.BOOT_COMPLETED
  • C++中构造函数和析构函数的调用顺序
  • [20150904]exp slow.txt
  • 数字填空
  • c/c++ 软件集成 安装和可卸载软件
  • 【云分析】《“支持和运维服务”仍然困扰着企业云的应用》
  • 前端工程师技能之photoshop巧用系列第四篇——图片格式
  • serialVersionUID的作用
  • 判断客户端类型,Android,iOS,PC
  • 2015年最新数据库流行排行榜
  • android 调用jni 的简单步骤
  • 做图表统计你需要掌握SQL Server 行转列和列转行
  • Centos7安装Xmind
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • exif信息对照
  • Git学习与使用心得(1)—— 初始化
  • HomeBrew常规使用教程
  • JAVA SE 6 GC调优笔记
  • javascript 总结(常用工具类的封装)
  • java第三方包学习之lombok
  • JS专题之继承
  • Linux后台研发超实用命令总结
  • Shadow DOM 内部构造及如何构建独立组件
  • Xmanager 远程桌面 CentOS 7
  • 彻底搞懂浏览器Event-loop
  • 码农张的Bug人生 - 初来乍到
  • 算法---两个栈实现一个队列
  • 选择阿里云数据库HBase版十大理由
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #Linux(Source Insight安装及工程建立)
  • #传输# #传输数据判断#
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • ()、[]、{}、(())、[[]]命令替换
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (ZT)出版业改革:该死的死,该生的生
  • (安卓)跳转应用市场APP详情页的方式
  • (八)Flask之app.route装饰器函数的参数
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (七)理解angular中的module和injector,即依赖注入
  • (四)库存超卖案例实战——优化redis分布式锁
  • .net MySql
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @PreAuthorize注解
  • @RestControllerAdvice异常统一处理类失效原因
  • @取消转义
  • []我的函数库