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,还是没能搞定这个问题。

有人说是

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

linux 3.4.103 内核移植到 S3C6410 开发板 移植失败 (问题总结,日本再战!)的更多相关文章

  1. 第五章 搭建S3C6410开发板的测试环境

    在PC上可以开发Linux驱动,重新编译成ARM架构的Linux驱动模块,但最后还是要在开发板上进行测试.目前最流行的是基于三星S3C6410 ARM11架构的开发板,很多厂商在其基础上进行了扩展,开 ...

  2. 第五章——搭建S3C6410开发板的测试环境

    搭建S3C6410开发板的测试环境 通过本章的学习学会了如何在开发板上安装Android.开发板是学习和开发嵌入式技术的主要硬件设备,想要顺利的通过linux驱动访问硬件,是不能在PC板上模拟的,需要 ...

  3. 搭建S3C6410开发板的测试环境

      因为ARM架构的开发板可基于X86架构的PC在CPU指令以及二进制上都有所不同,而且如果linux驱动需要访问硬件,这些硬件很难在PC上模拟,所以就需要我们在带有这些硬件的开发板上进行调试和测试. ...

  4. S3C6410开发板开发环境的搭建

    本节主要介绍了S3C6410开发板及OK6410开发板.OK6410开发板是基于ARM11处理器的S3C6410,采用“核心版+底板”结构 主要步骤如下:. OK6410开发板自带一个串口,PC也需要 ...

  5. 【原创】车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程

    [原创]车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程 所用工具: windows电脑 Ubuntu12.04 Smart210开发板 4g以上SD卡 U盘 步骤: 1.    ...

  6. 第五章 搭建S3C6410开发板测试环境

    开发板是开发和学习嵌入式技术的主要设备.在这章中介绍了S3C6410开发板,它是三星公司推出的一款低功耗.高性价比的RISC处理器.安装串口调试工具:minicom.它的安装步骤:第1步:检测当前系统 ...

  7. Opencv2.2 移植到am335x-y开发板

    1.虚拟机上运行cmake-gui,报找不到文件,指示安装. 2.下载opencv2.2.0 http://opencv.org/downloads.html 3.cmake-gui,配置参考< ...

  8. linux-3.0内核移植到fl2440开发板(以MINI2440为模板)

    我们的fl2440开发板使用的是s3c2440的芯片,与MINI2440十分相似,因此需要改动的地方不多,移植也比较容易. 1.[weishusheng@localhost kernel]$ sudo ...

  9. 【linux】内核+文件系统下载到开发板

    K开发 欢迎转载,转载时请保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:htt ...

随机推荐

  1. COM模块三---根的形成和注册代理server(Building and Registering a Proxy DLL)

    Prerequisite:C++ 程序员,熟windows计划,熟Win32 Dll,了解windows注册表. 笔者:割者 上一篇文章中,我们定义了COM接口.通过编译生成了四个文件,本文使用这四个 ...

  2. oracle存储过程的例子

    oracle存储过程的例子 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的 ...

  3. 剖析html对标准标签和自定义标签闭合与不闭合渲染问题

    昨天在修改去年写的系统的时候无意中看到了当时写的一个利用标准标签未闭合在单元格内把整个单元格颜色渲染成红色的效果,如下: 当时的问题是从后台返回来的是个int整数而%是写在页面上的如图 这 时候就出现 ...

  4. 懒与馋的平衡:餐饮O2O市场广阔,发展不易

    餐饮行业是众多行业中O2O起步较早的,现在方兴未艾的团购站点中最先涉足的领域就有餐饮版块.长时间的合作推广,很多餐饮商家已经从中尝到甜头,可以说餐饮行业市场基础培育的比較好,所以餐饮O2O 已经是大势 ...

  5. client多线程

    1.多线程对象 对象可以是多线程访问,线程可以在这里分为两类: 为完成内部业务逻辑的创建Thread对象,线程需要访问对象. 使用对象的线程外部对象. 进一步假设更精细的划分.业主外螺纹成线等线,. ...

  6. [LeetCode61]Rotate List

    题目: Given a list, rotate the list to the right by k places, where k is non-negative. For example:Giv ...

  7. Visual Studio 2015 中文企业版及专业版 正式版下载地址 激活秘钥 正版key

    Visual Studio 简体中文企业版 2015 (x86 and x64)文件名 cn_visual_studio_enterprise_2015_x86_x64_dvd_6846222.iso ...

  8. UI设计学习路径(一个)—好酒也怕巷子深

    来源 參与米老师对项目的验收的时候.听了老师对UI的看法才注意UI这块内容.非常奇怪为什么我们总是不能注意到本该注意的问题呢?软件开发难道仅仅是功能的实现不包含界面设计吗?当然不是.问题的根源在于我们 ...

  9. Linux 在下面MATLAB下载

    网上找了很长一段时间都没有很好的连接,或者是一个普通的软件, 在这里,给大家一个连接: ed2k://|file|[%E7%9F%A9%E9%98%B5%E5%AE%9E%E9%AA%8C%E5%AE ...

  10. Tomcat—怎样在Tomcat Webserver下部署Web项目

            总结一下怎样在Tomcat Webserver下部署Web项目: