OK6410移植linux3.3.1
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/
首先修改资源代码,进入arch/arm/mach-s3c64xx/目录,在这里我们使用mini6410的资源配置文件,首先复制一份mach-mini6410.c为mach-ok6410.c,修改mach-ok6410.c.
把文件中所有mini6410改为ok6410
:%s/mini6410/ok6410/g
:%s/MINI6410/OK6410/g
修改struct mtd_partition结构体内容,此结构体用于保存nandflash分区信息
static struct mtd_partition ok6410_nand_part[] = {
[] = {
.name = "Bootloader",
.size = ( * SZ_1M),
.offset = ,
.mask_flags = MTD_CAP_NANDFLASH,
},
[] = {
.name = "Kernel",
.size = ( * SZ_1M),
.offset = ( * SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
[] = {
.name = "Root File System",
.offset = ( * SZ_1M),
.size = ( * SZ_1M),
},
[] = {
.name = "User",
.size = ( * SZ_1M),
.offset = ( * SZ_1M),
},
};
这里有个bug我们需要屏蔽掉
进入driver/mtd/nand/目录,打开nand_base.c文件,找到3265行附近的
Case :
Chip->ecc.layout = &nand_oob_128;
Break;
在此行下添加
Case :
Chip->ecc.layput = &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一整段config MACH_SMDK6410
把新的MACH_SMDK6410改为MACH_OK6410
添加ok6410的硬件码
进入arch/arm/tools目录
打开mach-types文件
添加一行:ok6410 MACH_OK6410 OK6410 1626
修改arch/arm/mach-s3c64xx/Makefile文件
添加一行obj-$(CONFIG_MACH_OK6410) +=mach-ok6410.o
回到内核源代码顶层目录,修改顶层目录的Makefile,找到….
修改为 ARCH ?= arm
CROSS_COMPILE ?=(你的交叉编译器所在目录,注意最后需要加arm-linux- 若为eabi编译器则为arm-unknown-linux-gnueabi-我的是:/usr/local/arm/4.4.1/bin/arm-linux-)
进入arm/arm/configs目录
在这里我们使用s3c6400的默认配置文件将s3c6400_defconfig复制到源代码顶层目录,并重命名为.config
在源代码根目录中执行make menuconfig
(我只列出必选项,必须禁止选项会特殊说明,一般我们只增不减)
进入System type --->
ARM system type(Samsung S3C64XX) //这项一定要正确
………………
*** System MMU ***
[*]OK6410 //在System MMU中选择ok6410
………………
进入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
不使用临时的根文件系统
root=…
该参数告诉内核启动时使用哪个设备作为根文件系统。比如第3分区作为根文件系统:root=/dev/mtdblock2
rootfstype=…
根文件系统类型(比如rootfstype=cramfs)
ro/rw
ro以只读方式加载根文件系统,rw以读写方式加载(rw为默认值)
init=..
初始化进程名(使用busybox制作的根文件系统这一项一般为init=/linuxrc)
console=…
字面意思:控制台,就是控制台信息输出到哪,这里OK6410填ttySAC0,115200
我的启动参数为noinitrd root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200 init=/linuxrc
设置完毕,保存信息,编译内核吧.
OK6410移植linux3.3.1的更多相关文章
- 1.ok6410移植bootloader,移植u-boot,学习u-boot命令
ok6410移植u-boot 既然是移植u-boot当然首先需要u-boot源码,这里的u-boot代码是由国嵌提供的. 一.配置编译u-boot A. 解压 u-boot 压缩文件 B. 进入解压生 ...
- 移植Linux-3.4.2内核到S3C2440
一.BootLoader引导内核过程 1.Bootloader的工作 1.1.将内核读入内存 2.2.保存内核启动参数到指定位置,内核启动时去这个位置解析参数 3.3. ...
- OK6410移植madplay播放器,王明学learn
对于ok6410的madplay移植主要包括三部分.声卡驱动移植,播放器的移植,以及alsa库的移植. 一.首先移植声卡驱动以及播放器 ok6410采用WM97系列的声卡芯片,要使得内核支持该驱动,首 ...
- 移植linux3.7到nuc900系列开发板遇到的问题
通过移植学习linux新版本内核,大概了解一下内核变化. 记录一下移植过程中遇到的问题或值得注意的地方. 1,添加一款arm9芯片的支持 首先修改\arch\arm\tools\mach-types文 ...
- Linux学习 :移植linux-3.4.83到JZ2440开发板
一.编译环境搭建: 1.linux源码下载:https://www.kernel.org/ (最新) https://mirrors.edge.kernel.org/pub/linux/kernel ...
- tiny4412移植opencv2.4.7手记
在买了新的4412板子后.打算趁着刚成功在6410上移植过的经验,速度解决下.不想出现了各种问题.小结下: 1.关于opencv的移植: tiny4412的linux3.5上,须要把opencv的li ...
- Android KitKat 4.4 Wifi移植之Wifi driver
本文讲述在Linux 3.10下Realek RTL8723A Linux Wifi 驱动的移植. Prerequisites 硬件平台:Atmel SAMA5 软件平台:Linux 3.10 + A ...
- 18.17 U-Boot+内核移植
18.17.1 移植U-Boot-2012.04.08 1.下载.建立source insight工程.编译.烧写.如果无运行分析原因. $ .tar.bz2 $ cd u-boot- $ make ...
- linux 内核启动流程分析,移植
分析 linux-2.6.22.6 内核启动流程 移植 linux-3.4.2 到 JZ2440 开发板 Linux内核源码百度云链接: https://pan.baidu.com/s/1m1ymGl ...
随机推荐
- 透明度 rgba 和 opacity 的区别
rgba: 使用方式:rgba(255, 255, 255, .5) 最后一个参数表示透明度取值范围 0 ~1 只作用于元素的颜色或其背景色. opacity : 使用方式:opacity : ...
- jquery绑定点击事件的三种写法
一.用jquery动态绑定点击事件的写法 部分代码: <script type="text/javascript"> $(document).ready(functio ...
- Chrome浏览器跨域
配置新版Chrome浏览器跨域,需要创建用户数据文件夹,在其中保存浏览器的缓存.历史记录.收藏夹等数据. Windows系统Chrome跨域 1 下载Chrome 64位绿色版,解压缩,并在桌面创建快 ...
- SVM中径向基函数与高斯核的区别 Difference between RBF and Gaussian kernel in SVM
Radial Basis Functions (RBFs) are set of functions which have same value at a fixed distance from a ...
- JMeter 参数化之利用CSV Data Set Config从文件读取参数并关联变量
参数化之利用CSV Data Set Config从文件读取参数并关联变量 by:授客 QQ:1033553122 1. 添加CSV Data Set Config 右键线程组->配置元 ...
- Tsung CentOS 操作系统下搭建tsung性能测试环境_Part 2
CentOS 操作系统下搭建tsung性能测试环境_Part 2 by:授客 QQ:1033553122 --------------------接CentOS 操作系统下搭建tsung性能测试环境_ ...
- 12、多线程:Threading、守护线程
线程与进程: 线程对于进程来说,就好似工厂里的工人,分配资源是分配到工厂,工人再去处理. 线程是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属 ...
- Dell XPS 13 9306安装 macOS 10.12.6
一直在考虑买一个手上的本,轻薄,办公方便.个人很喜欢mac 下的那些软件,尤其是keynote.就锁定在Macbook Pro上,但是又觉得没有什么玩头,后来一直找,觉得xps也很符合要求,就开始调查 ...
- 记一次ubuntuyu源码安装node.js
1.官网下载源码 2.下载后解压,在终端打开,并进入文件夹 3../configure 这一步可谓是一波三折,先是没有Python 安装Python 又说没有G++,安装G++后终于成功执行./con ...
- 使用navicat 连接mysql出现1251错误
最近需要用MYSQL,使用navicat 连接时总出现1251错误,在网上查了一些别人的方法并试过 以下方法是正确的. 方法来自:https://blog.csdn.net/XDMFC/article ...