对照这个结构体 将那些进行修改,注意 by acanoe 的语句为修改重点。
// add by acanoe 2 &s3c_device_nand, //这一语句为添加nand 设备语句 #ifdef CONFIG_DM9000 &s3c_device_dm9000, //这一句为添加dm9000 网卡设备驱动语句。 #endif
// &smdk6410_smsc911x, // <span style="color: rgb(51, 51, 51); font-family: arial, sans-serif; line-height: 18px; ">Canceled</span> by acanoe 这一项一定要注销掉, 后面我会讲为什么。
//在smdk6410_machine_init() 结构体中加上
//add by acanoes3c_nand_set_platdata(&ok6410_nand_info);
//add by acanoe
3、copy ./include copy ./.config copy ./arch/arm/plat-samsung/include
这三项都是指: 从飞凌提供的内核将 他们的include 库拷贝的你的内核当中 ,拿来主义。
这样做的有点是你可以只先学习驱动移植 ,和系统移植的方法,而不是其语句的实现。确定也是优点的相对。
在这里极有可能会因为你include 的更新而产生一些写的错误 如在飞凌自定义的 _ts_ 中也就是 触摸屏的去的是他们自己修改的。
可能会因此报错,解决办法,就是Canceled 掉 所有的 有关触摸屏的驱动,都注释掉。
其实到这里,如果内不是要NFS 挂载根文件系统的话,内核移植工作已经完成。
不过这只针对飞凌的开发板来说, 如果你是其他厂家的开发板,在下面的几个知识点,不得不提及一下:
3.1)给内核打上yaffs2 文件系统补丁,在这里尽量选用较新的补丁,因为旧版补丁,在编译的时候会报错,
下载连接?p=yaffs2.git;a=summary,直接点击,点那个2011年6月28号的那个版本,点击最右边的SNAPSHOT下载,这个是目前较新的的YAFFS2的源码了
3.2) 修改机器号,这一步飞凌的开发板并不用操作,因为飞凌的Uboot 和内核都默认使用 smdk6410 ,的ID 来进行参数传递(典型的修改注意)。机器号修改依赖文件目录:
uboot-2011.3机器码路径:
arch/arm/include/asm/mach-types.h
飞凌体统的Uboot为 旧版的Uboot 它的 机器码定义路径为:
include/asm-arm/mach-types.h
其中 smdk6410 的自己码被定义在 include/configs/smdk6410.h 定义为
#define MACH_TYPE 1626
2.6.36.2 内核机器码定义路径为 arch/arm/tools/mach-types
smdky410 MACH_SMDK6410 SMDK6410 1626
以上 U-boot 和 内核 ID 信息 都属于smdk6410 板载 默认信息不用修改。
3.3) 配置内核, make menuconfig
因为直接copy 飞凌源码的.config 文件到自己的根目录,所以配置起来比较简单。只要注意nand flash 驱动是否被选中即可:
Device Drivers --->
<*> Memory Techology Device (MTD) support --->
<*> NAND Device Support --->
<*> NAND Flash support for S3C SoC