移植linux 3.0.2到2440_forch的博客-程序员秘密

技术标签: ext  c  编译器  linux  makefile  终端  linux kernel  

主机:FC9

交叉编译器:arm-linux-gcc-4.3.2

开发板平台:公司的产品2440CPU

这周一口气移了linux2.6.25.14   2.6.26    2.6.29到公司的板子上,前两个都能正常跑到文件系统进入终端,运行个驱动和应用的helo world;移植2.6.29时提示没有串口终端,需要检查init内核字符串,这个还没搞定。貌似2.6.26以后集成了DM9000,想下个内核验证一下,顺便确定一下yaffs2的官方源码获取方法,或者自己修改···

一、内核源码修改

1.修改顶层Makefile文件

2,修改机器码

arch/arm/tools/mach-types
arch/arm/mach-s3c2440

根据uboot传入的数据设置

3.修改时钟,不修改超级终端中会出现乱码

根据硬件外置时钟设置

4.修改对nand的分区信息。

arch/arm/plat-s3c24xx/common-smdk.c

5.修改nand Flash的校验方式,去掉ECC校验。

drivers/mtd/nand/s3c2410.c 

在669行左右 NAND_ECC_NONE

6.文件系统支持

安装git

yum install git

获取最新yaffs2源码

git clone git://www.aleph1.co.uk/yaffs2

打补丁到自己的内核路径下

./patch-ker.sh c m ../linux-3.0.2

说明:内核自带DM9000驱动,不用移植了,根据自己的硬件修改配置就可以

二、内核配置

make s3c2410_defconfig

make menuconfig

System Type ---->

       [*] S3C2410 DMA support

       S3C2410 Machines --->

              [*] SMDK2410/A9M2410 

       S3C2440 Machines --->

              [*] SMDK2440

              [*] SMDK2440 with S3C2440 CPU module

       (2)S3C UART to use for low-level messages (new)

       要选择串口对应我公司的配置

Kernel hacking-->

    (2)S3C UART to use for low-level debug

    要选择串口对应我公司的配置

Boot option ----->

noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC2,

115200

根据实际需要配置

Device Drivers --->

       <*> Memory Technology Device (MTD) support --->

              [*]   MTD partitioning support

              <*> NAND Device Support --->

                      <*>   NAND Flash support for S3C2410/S3C2440 SoC

                      [ ]    S3C2410 NAND Hardware ECC     //这个要去掉

       [*] Network device support --->

               [*]   Ethernet (10 or 100Mbit) ---> 

                   <*>   DM9000 support

这个是系统自带的

Kernel Features ->
     [*]Use the ARM EABI to compile the kernel
     [*]  Allow old ABI binaries to run with this kernel

Filesystem -->

屏蔽 EXT2 EXT3相关

打开自动挂载ramfs

选中yaffs2

Drivers-->

根据板子的实际情况配置

三、内核编译与模块安装

1、Make

生成zImage文件供下载,确认生成的文件没有比分配给他的分区大

2、Make modules

生成模块

3、Make modules_install

安装模块,用于驱动开发用,在/lib/modules下会生成3.0.2的文件夹。参考代码看LDD3。

四、下载运行

五、


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/forch/article/details/6759944

智能推荐

STM32 串口通信介绍及cubemx配置_Nie_Hen的博客-程序员资料

学习理解STM32的串口通信,中断以及I2C的使用。应用:使用中断和串口通通信获取按键值发送出来并显示到数码管上。使用I2C 将获取到的按键值保存到内存中。串口通信计算机的CPU与外部设备之间的信息交换,以及计算机与计算机之间的信息交换过程称为通信。并行通信数据字节的各位同时传送的通信方式。并行通信的优点是数据传送速度快,缺点是占用的传输线条数多,适用于近距离通信。串行通信(Se...

android 背景图缩放,解决android:background背景图片被拉伸问题_weixin_39639600的博客-程序员资料

ImageView中XML属性src和background的区别:background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用。此外:scaleType只对src起作用;bg可设置透明度,比如在ImageButton中就可以用android:scaleType控制图片的缩放方式如上所述,backg...

qt用odbc连接mysql_【原创】Qt 使用ODBC driver 连接SQL Server_午餐时间到了的博客-程序员资料

最近在做数据库的课程设计。第一个需要解决的问题是使用什么工具来实现这个系统。经过一番资料查找,决定使用SQL Server Express 2012作为服务器,使用Qt作为编写客户端程序语言。问题是client如何连接SQL Server? 下面是我的解决方法。1.开启windows上的SQL Server 的ODBC驱动ODBC 是一个调用级接口,它使得应用程序得以访问任何具有 ODBC 驱动程...

翻页时钟代码大公开_lovefan的博客-程序员资料_翻页钟开源代码

不少朋友向我要翻页时钟的代码,现在贴给大家。代码水平有限,见谅。看不明白的可以问我:)js// miniprogram/pages/flipClock/jsconst moment = require('../../../utils/moment-with-locales.min.js');const Lunar = require('../../../utils/lunar.js');var startX, endX;var moveFlag = true; // 判断执行滑动事件.

JAVA切换不了FTP服务器目录_解决linux下ftp指定访问目录无法修改的问题_豪睿刘爱上楼楼梯的博客-程序员资料

他的系统是CentOS,是RH派系的。我把vsftpd安装配置好了,以为大功告成,但客户端访问提示如下错误:500 OOPS: cannot change directory:/home/ftp原因是他的CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。//查看SELinux设置# getsebool -a|grep ftpftpd_disable_tr...

.NET实现网络爬虫_hyunbar的博客-程序员资料_.net 爬虫

爬虫的特征和运行方式User-Agent:主要用来将我们的爬虫伪装成浏览器。Cookie:主要用来保存爬虫的登录状态。连接数:主要用来限制单台机器与服务端的连接数量。代理IP:主要用来伪装请求地址,提高单机并发数量。爬虫工作的方式可以归纳为两种:深度优先、广度优先。深度优先就是一个连接一个连接的向内爬,处理完成后再换一下一个连接,这种方式对于我们来说缺点很明显。 广度优先...

随便推点

twisted builtins.TypeError: __init__() missing 1 required positional argument: 'dbpool'_锅前带刀小笼包的博客-程序员资料

学习爬虫异步插入,遇到问题Unhandled error in Deferred:2020-05-10 14:41:59 [twisted] CRITICAL: Unhandled error in Deferred:...builtins.TypeError: __init__() missing 1 required positional argument: 'dbpool'发现是函数名写错, 应该是from_settings ,结果写成了from_setting,低级错误,记录一下pip

Paxos、Raft、ZAB算法_知知之之的博客-程序员资料_paxos raft zab

Paxos算法是Leslie Lamport在1990年提出的一种基于消息传递的一致性算法。基于Paxos协议的数据同步与传统主备方式最大的区别在于:Paxos只需超过半数的副本在线且相互通信正常,就可以保证服务的持续可用,且数据不丢失。Paxos将系统中的角色分为提议者 (Proposer),决策者 (Acceptor),和最终决策学习者 (Learner):在多副本状态机中,每个副本同时具有Proposer、Acceptor、Learner三种角色。Paxos算法通过一个决议分为两个阶段(Learn阶段

Bibtex格式类型_小王同学w的博客-程序员资料_bibtex类型

出于保留资源和查找方便,转载自https://blog.csdn.net/kmsj0x00/article/details/85318057类型简介必需关键字可省略关键字@article期刊或杂志上的一篇文章。author, title, journal, year.volume, number, pages, month, [email protected]有确定出版社的书籍。author或editor, title, publisher, year.volume或number, series, address, e

SpringBoot-Google二步验证_apkqfa6158的博客-程序员资料

SpringBoot-Google二步验证概念:Google身份验证器Google Authenticator是谷歌推出的基于时间的一次性密码(Time-based One-time Password,简称TOTP),只需要在手机上安装该APP,就可以生成一个随着时间变化的一次性密码,用于帐户验证。Google身份验证器是一款基于时间与哈希的一次性密码算法的两步验证软件令牌,此软件...

Maven_weixin_41249041的博客-程序员资料

maven帮助构建项目 项目和项目之间的依赖关系,管理jar包。项目管理工具,管理java项目:1、项目对象模型 POM对象模型,每个maven工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式。。2、依赖管理系统(基础核心 )maven通过坐标对项目工程所依赖的jar包统一规范管理。3、maven定义一套项目生命周期清理、初始...

css教程系列5:px、em、rem区别介绍_邢晋宇的博客-程序员资料

1 PXpx像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。PX特点1. 浏览器无法调整px单位的字体,以em或rem为字体单位可调整字体。 2 EMem是相对长度单位。EM特点1. em的值并不是固定的;2. 行高:n倍的 em = n *父级元素的像素px大小(若无则*浏览器的默认字体)。3 REMrem是CSS3新增的一个相对单位(root em,根em),也是相对...

推荐文章

热门文章

相关标签