下载linux-4.5.1.tar.gz

解压在任意目录下。我解压在/home/tiny6410/

# tar xvzf linux-4.5.1.tar.gz 
# cd linux-4.5.1/

修改Makefile文件 在第251和252行上  改成自己的交叉编译器

251  ARCH              ?= arm
252 CROSS_COMPILE ?= arm-linux-

在linux源码文件中有一个三星Demo板的默认配置

这里我们的配置文件就先用这个  arch/arm/configs/s3c6400_defconfig 并make

# make s3c6400_defconfig
# make

注:在执行make语句后会报错

arm-linux-ld: ERROR: Source object virt/built-in.o has EABI version 0, but target .tmp_vmlinux1 has...

是EABI版本的问题

我解决的方法是更换了交叉编译器

# sudo apt-get install gcc-arm-linux-gnueabi

修改Makefile文件

251  ARCH              ?= arm
252 CROSS_COMPILE ?= arm-linux-gnueabi-

之后make就正常了

命令行输入:

# make zImage

将uImage放到tftp服务器目录下,启动开发板,你将会看到内核启动的提示信息

在通过串口看到传回来的信息后,心里很高兴。不过系统并没有启动成功,因为上面并没有文件系统

这里我的开发板上tiny6410,故这里用linux内核中的mini6410的相关文件进行修改。

首先修改资源代码,进入arch/arm/mach-s3c64xx/目录

在这里我们使用mini6410的资源配置文件,首先复制一份mach-mini6410.c为mach-tiny6410.c。

修改mach-tiny6410.c

# cd arch/arm/mach-s3c64xx
# cp mach-mini6410.c mach-tiny6410.c
# vim mach-tiny6410.c

把文件中所有mini6410改为tiny6410

:%s/mini6410/tiny6410/g

:%s/MINI6410/TINY6410/g

在346行左右MACHINE_START(MINI6410,”MINI6410”)不改 就可以不改硬件码

修改struct mtd_partition结构体内容,此结构体用于保存nandflash分区信息(这些设置与Bootloader有关,不能任意设置)

static struct mtd_partition tiny6410_nand_part[] = {

{

.name                = "Bootloader",

.offset                = 0,

.size          = (4 * 128 *SZ_1K),

.mask_flags     = MTD_CAP_NANDFLASH,

},

{

.name                = "Kernel",

.offset                = (4 * 128 *SZ_1K),

.size          = (5*SZ_1M) ,

.mask_flags     = MTD_CAP_NANDFLASH,

},

{

.name                = "File System",

.offset                = MTDPART_OFS_APPEND,

.size          = MTDPART_SIZ_FULL,

}

};

这里有个bug我们需要屏蔽掉

进入driver/mtd/nand/目录,打开nand_base.c文件,找到3265行附近的

   Case 128:

Chip->ecc.layout = &nand_oob_128;

Break;

在此行下添加

Case 436:

Chip->ecc.layout = &nand_oob_128;

Break;

之后我们需要关闭ECC校验

进入driver/mtd/nand/目录,修改s3c2410.c文件

找到chip->ecc.mode = NAND_ECC_SOFT

改为chip->ecc.mode = NAND_ECC_NONE;

然后我们需要增加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

修改arch/arm/mach-s3c64xx/Kconfig文件

找到config MACH_SMDK6410

Cp一整段MACH_SMDK6410

把新的MACH_SMDK6410改为MACH_TINY6410 下一行的SMDK6410也改成TINY6410

修改arch/arm/mach-s3c64xx/Makefile文件

添加一行obj-$(CONFIG_MACH_TINY6410)         +=mach-tiny6410.o

在源代码根目录中执行make menuconfig

(我只列出必选项,必须禁止选项会特殊说明,一般我们只增不减)

进入System type --->

  ARM system type(Samsung S3C64XX)   //这项一定要正确

………………

*** System MMU ***

[*]TINY6410                          //在System MMU中选择tiny6410

进入Device Drivers --->

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

………………

<*> Caching block device access to MTD devices

………………

<*> NAND Device Support --->

    <*> NAND Flash support for Samsung S3C SoCs

进入与 <*>Memory Technology Device (MTD) support ---> 同一等级列表的Block devices  选上<*> RAM block device support

退回到主界面,进入File systems,在这里自己选择需要的文件系统,

进入File systems的 Pseudo filesystems--->

选上 [*] /dev file system support(OBSOLETE)

[*]   Automatically mount at boot

(这两项即为之前我们添加的devfs 文件管理器支持)

回到主界面,进入Boot options,里面有一行是需要我们自己手动填写的,是linux启动参数,在这里我初略说一下

Noinitrd

不使用临时的根文件系统

该参数告诉内核启动时使用哪个设备作为根文件系统。比如第3分区作为根文件系统:root=/dev/mtdblock2

Rootfstype=…

根文件系统类型(比如rootfstype=cramfs)

Ro/rw

ro以只读方式加载根文件系统,rw以读写方式加载(rw为默认值)

Init=..

初始化进程名(使用busybox制作的根文件系统这一项一般为init=/linuxrc)

Console=…

字面意思:控制台,就是控制台信息输出到哪,这里TINY6410填ttySAC0,115200

我的启动参数为root=/dev/mtdblock2 console=ttySAC0,115200 lcd=S70D

设置完毕,保存信息,编译内核吧.

向tiny6410中移植中移植linux-4.5.1内核(最新)的更多相关文章

  1. 将Socket应用程序从Unix向Windows移植中应注意的几点问题

    套接字(socket)当今已成为最流行的网络通信应用程序接口.套接字最初是由加利福尼亚大学Berkeley分校为Unix操作系统开发的网络通信接口,后来它又被移植到DOS与Windows系统,特别是近 ...

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

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

  3. 如何在CentOS 5.x 中安装Windows Azure Linux Agent (WALA)

    Qing Liu  Tue, Mar 10 2015 3:06 AM 在今天的这一个章节中,我们主要讨论在CentOs 5.x 中如何安装Windows Azure Linux Agent 2.11 ...

  4. JAVA中调用LevelDB用于Linux和Window环境下快速存储KV结构

    一.简介 JAVA中调用LevelDB用于Linux和Window环境下快速存储KV结构 二.依赖 <!-- https://mvnrepository.com/artifact/org.fus ...

  5. 开发中常遇到的linux系统配置操作整理

    一直以来,工作中使用xshell连接linux虚拟机.常常需要在虚拟机中搭建一个新的Linux系统,为了满足操作需要,必不可少的是一系列配置.之前对这些指令都是记录在云笔记,但是零零散散,每次用时,都 ...

  6. Windows中的JDK和Linux中的JDK是否相同

    前言 在面试中,被问到了一个问题: Windows中的JDK和Linux中的JDK是否相同? 其实,以上这个问题是一个子问题.原本的问题是:如何理解Java的跨平台机制.由于原问题显得有些宽泛,因此延 ...

  7. 裸板中中断异常处理,linux中断异常处理 ,linux系统中断处理的API,中断处理函数的要求,内核中登记底半部的方式

    1.linux系统中的中断处理  1.0裸板中中断异常是如何处理的?     以s5p6818+按键为例          1)按键中断的触发        中断源级配置            管脚功 ...

  8. [好好学习]在VMware中安装Oracle Enterprise Linux (v5.7) - (5/5)

  9. [好好学习]在VMware中安装Oracle Enterprise Linux (v5.7) - (4/5)

随机推荐

  1. MS14-064 漏洞测试入侵win7

    Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术, 远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 – ...

  2. JavaScript异步机制

    单线程异步执行的JavaScript JavaScript是单线程异步执行的,单线程意味着代码在任务队列中会按照顺序一个接一个的执行.异步代表JavaScript代码在任务队列中的顺序并不完全等同于代 ...

  3. ArcGIS Server 10.1发布数据源为ArcSDE(直连)的MXD【转】

    因为ArcSDE10.1基本默认直连,所以我们在发布直连的MXD仍然需要注意相关的事宜. 1:保证两台机器都能够访问共享存储的信息 2:确保已UNC路径保存ArcCatalog的文件夹连接,而且直连的 ...

  4. 传说中的AutoCAD公司 - 欧特克(Autodesk)招聘开发顾问-上海或北京

    如果您热衷新技术,垂涎科技前沿,对编程有狂热的热情,乐于帮助别人打造解决方案,喜爱分享和交流,英文沟通无障碍,来吧,把简历丢过来! 如果您刚毕业不久,那也不要因为工作经历尚浅而怯步,我们也非常欢迎您! ...

  5. JavaScript学习13 JavaScript中的继承

    JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...

  6. CoreDataManager-OC版-兼容iOS10以前的版本

    头文件: #import <Foundation/Foundation.h> #import <CoreData/CoreData.h> /** CoreData管理器 */ ...

  7. Layout--iOS

    // 系统的约束代码 @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIView *superVi ...

  8. 【读书笔记】iOS网络-异步请求与运行循环

    异步请求需要运行循环.当数据传递到服务器或是被客户端接收时,运行循环用于实现事件与委托对象之间的通信.异步请求在发出时,会在当前线程的运行循环上操作,这个实现细节是很重要的,因为在GCD块中或者是通过 ...

  9. zendstudio文件编码修改问题

    转载:http://blog.csdn.net/kunlong0909/article/details/7818620 朋友,在zendstudio ide中,你是否碰到导入一个项目后,发现项目中文件 ...

  10. php 操作mysql 分表的一种方法

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAARUAAAHXCAIAAAAdrFkKAAAgAElEQVR4nOyd61sTx9//+4fcj+6H95