最近一段时间以来一直学习TQ2440内核开发板移植、嫁接驱动器。

真诚地相信这方面的知识有很大的困难,。但有一种观点认为,从看,难度越大,的提升空间的能力更大!

1、解压源代码

从Internet下载Linux 内核,我是用的是Linux-2.6.20.4。然后用命令解压。建议解压到“/home/username”文件夹下。

我的内核源代码存放在:

2、加入对ARM的支持

由于所用的是TQ2440开发板。属于ARM9。因此要在系统中加入对ARM的支持。

方法:进入内核源代码文件夹,

改动“Makefile”文件,将193行的“ARCH ?=(SUBARCH)”与194行“CROSS_COMPILE?=”将其改动为(如图)

也能够在第一次使用“make menuconfig”时使用“make  ARCH=arm  CROSS_COMPILE=arm-linux-  menuconfig ”来取代。记得有一次忘记了改动对ARM的支持。结果在配置的时候好多的选项都没有,一開始还以为是内核的原因,于是又一次下载了内核,结果还是一样。愚蠢的错误啊!

!!

。贴出来,刺激一下自己!

改动前的配置菜单:

改动后的配置菜单:

3、交叉编译器环境搭建

4、时钟频率改动

TQ2440使用的是12MHz的外部时钟源,而对应的配置文件里是16.9344MHz,打开以下的文件:

改动以下的函数:

5、改动机器码

在TQ2440使用的uboot中设定的机器码是168,所以内核这里须要改动机器码。否则会出现不能启动的情况。

此參数保存在内核源代码的“arch/arm/tools/mach-tupes”中。

在编译第一个内核的时候,内核能成功下载到开发板上,可是就是无法启动。

刚開始还觉得是内核编译太大的原因,裁剪了非常多的东西之后,还是无法启动。经一个队友提示“是否改了机器码”,我还非常自信的说“已经改过了”,到了最后查看一下文件,机器码木有改啊~~~~~~~~~~~

6、Nand Flash 驱动移植

进入内核源代码“arch/arm/plat-s3c24xx/common-smdk.c”,改动例如以下两个位置的代码(改动后的)

例如以下图:

(1)

(2)

然后打开

改动第752行的代码如图所看到的:

7、加入对yaffs的支持

能够通过命令来获取yaffs的源代码:git clone git://www.alcphl.co.uk/yaffs2

然后进入到yaffs2文件夹下,打补丁到内核中,使用以下的命令:

./patch-ker.sh c m /home/xg/linux_arm/linux-2.6.30.4/(内核所在的文件夹)

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

【Linux驱动器】Linux-2.6.20.4内核移植的更多相关文章

  1. 【转】 linux内核移植和网卡驱动(二)

    原文网址:http://blog.chinaunix.net/uid-29589379-id-4708911.html 一,内核移植步骤: 1, 修改顶层目录下的Makefile ARCH       ...

  2. 对Linux新手非常有用的 20个命令

    你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟!!!我说什么呢,是什么原因你就出现我的世界里了.从我以往的经验来说,当我刚使用Linux,命令,终端啊什么的,吓了我一跳. ...

  3. 【转】 linux内核移植和驱动添加(三)

    原文网址:http://blog.chinaunix.net/uid-29589379-id-4708909.html 原文地址:linux内核移植和驱动添加(三) 作者:genehang 四,LED ...

  4. 对Linux 专家非常有用的20 个命令

    谢谢你你给了我们在这篇文章前两个部分的喜欢,美言和支持.在第一部分文章中我们讨论了那些都只是切换到 Linux 和linux新手所需的必要知识的用户的命令. 对 Linux 新手非常有用的 20 个命 ...

  5. Linux内核移植

    实验步骤:(1)准备工作(2)修改顶层Makefile(3)修改falsh 分区(4)配置编译内核 下面以Linux2.6.30.4内核移植到gec2440为例: 一.准备工作:建立工作目录,下载内核 ...

  6. Linux内核移植到JZ2440

    一.准备工作:1.Linux内核:Linux2.6.22.6,可从www.kernel.org上下载:2.交叉工具编译链:arm-linux-gcc-3.4.5-glibc-2.3.6:3.yaffs ...

  7. linux内核(二)内核移植(DM365-DM368开发攻略——linux-2.6.32的移植)

    一.介绍linux-2.6.32: Linux-2.6.32的网上介绍:增添了虚拟化内存 de-duplicacion.重写了 writeback 代码.改进了 Btrfs 文件系统.添加了 ATI ...

  8. (转)对 Linux 专家非常有用的 20 个命令

    谢谢你你给了我们在这篇文章前两个部分的喜欢,美言和支持.在第一部分文章中我们讨论了那些都只是切换到 Linux 和linux新手所需的必要知识的用户的命令. 对 Linux 新手非常有用的 20 个命 ...

  9. 对 Linux 专家非常有用的 20 个命令

    原文链接:http://www.oschina.net/translate/20-advanced-commands-for-linux-experts?from=20130811 对中级 Linux ...

随机推荐

  1. JAVA中SSH面试问题

    1.阐述struts2的执行流程. Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件.核心控制器Filter ...

  2. C功底挑战Java菜鸟入门概念干货(二)

    (接上篇博文:C功底挑战Java菜鸟入门概念干货(一)) 一.Java面向对象程序设计-类的基本形式 1.“类”是把事物的数据与相关的功能封装在一起,形成的一种特殊结构,用以表达对真实世界的一种抽象概 ...

  3. 【cocos2d-x】Win7下配置Cocos2d-x开发环境

    一.下载安装包 先去Cocos2d-x官网下载安装包,最新版本为cocos2d-2.1.5 http://www.cocos2d-x.org/news/134 二.解压安装包 下载完成后,解压文件,解 ...

  4. struct 如何存储指针类型的值

    通过 __unsafe_unretained标示符标示指针类型的值,否则xcode会报以下错误(前提,你使用的是ARC模式): ARC forbids Objective-C objects in s ...

  5. [转]SAP中找表的方法

    http://blog.chinaunix.net/uid-24063584-id-2642334.html 分类: 18种根据屏幕字段查找数据库表数据的技巧 帮助   18种根据屏幕字段查找潜在数据 ...

  6. foreach遍历对象的属性

    <?php class MyClass { public $var1 = 'value 1' ; public $var2 = 'value 2' ; public $var3 = 'value ...

  7. 修改MojoWeixin 只保留用户name 取消群昵称

    <pre name="code" class="python"> if($msg->type eq "friend_message& ...

  8. Hdu 2364 Escape

    Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=2364 这道题的特殊之处在于能转弯时不能直走,必须转弯,所以在行走时,要判断能否转弯,不能转弯 ...

  9. 高级爬虫工程师(Spider)-美团网-拉勾网-最专业的互联网招聘平台

    高级爬虫工程师(Spider)-美团网-拉勾网-最专业的互联网招聘平台 高级爬虫工程师(Spider)

  10. 深入浅出 JSTL

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.这个算是一个java程序员的一个基本功吧. JSP Standard Tag Library (JSTL) 的规范完成于2002年7月, ...