没有合适的资源?快使用搜索试试~ 我知道了~
Linux-kernel-3.0移植记录
需积分: 10 7 下载量 116 浏览量
2012-05-26
09:32:37
上传
评论
收藏 156KB PDF 举报
温馨提示
试读
16页
详细的描述了如何在TX2440A开发板上进行Linux‐kernel‐3.0移植,写的比较详细!
资源推荐
资源详情
资源评论
Linux‐kernel‐3.0 移植记录
2011/06/24
Kernel 版本:Linux‐3.0.0‐rc4
交叉编译器版本:arm‐linux‐gcc4.1.2
操作系统平台:LinuxRedHat9.0
开发板平台:TX2440A
Linux‐kernel‐3.0 下载地址:
ftp://ftp.kernel.org/pub/linux/kernel/v3.0/testing/linux‐3.0‐rc4.tar.bz2
文档中红色字体为修改代码部分
文档中绿色字体为终端执行命令
文档中蓝色字体为添加大段代码
开始移植
一. 让 linux‐3.0 在开发板上跑起来。
解压源码,进入目录
#tarxjvflinux‐3.0‐rc1.tar.bz2
#cdlinux‐3.0‐rc1
修改 Makefile 文件 195 行
ARCH ?=arm
CROSS_COMPILE ?=arm‐linux‐
修改时钟
修改 arch/arm/mach‐s3c2410/mach‐smdk2440.c 163 行
staticvoid__initsmdk2440_map_io(void)
{
s3c24xx_init_io(smdk2440_iodesc,ARRAY_SIZE(smdk2440_iodesc));
s3c24xx_init_clocks(12000000);
s3c24xx_init_uarts(smdk2440_uartcfgs,ARRAY_SIZE(smdk2440_uartcfgs));
}
这里的 12000000 为开发板晶体频率,可根据自己开发板设定
配置
我这里用 menuconfig 来进行图形化界面配置
#makemenuconfig
用放向键移动光标到倒数第二项(LoadanAlternateConfigurationFile)按回车进入(以
后操作是如此)
输入 arch/arm/configs/s3c2410_defconfig
Kernel Features --->
[*] Use the ARM EABI to compile the kernel
[*] Allow old ABI binaries to run with this kernel(EXPERIMENTA)
[* ] Provide old way to pass kernel parameters//这个不选 kernel 不接收 uboot 传来的启动参数。
进入 SystemType 选项
在 SystemMMU 后面 S3S24XXMachine 中只保留三项
S3S2410Machine
[*]SMDK2410/A9M2410
S3C2440Machine
[*]SMDK2440
[*]SMDK2440withS3C2440cpumodule
回到主菜单选择最后一项(SaveanAlternateConfigurationFile)
输入保存配置名(.comfig)或自己取名。退出,编译内核。
#makezImage
如以上工作都正确会在 arch/arm/boot 下生成 zImage 内核镜像文件。
将 zImage 文件烧入开发板跑一下。如有正常信息打印出来,那么就恭喜你,Linux‐3.0
第一步成功。
二. 对 NandFlash 的支持
修改:arch/arm/plat‐s3c24xx/common‐smdk.c 文件,在第 111 到 152 行内容如下:
static struct mtd_partition smdk_default_nand_part[] = {
#if defined(CONFIG_64M_NAND)
[0] = {
.name = "boot",
.offset = 0,
.size = SZ_1M,
},
[1] = {
.name = "kernel",
.offset = SZ_1M + SZ_128K,
.size = SZ_4M,
},
[2] = {
.name = "yaffs2",
.offset = SZ_1M + SZ_128K + SZ_4M,
.size = SZ_64M - SZ_4M - SZ_1M - SZ_128K,
}
#elif defined(CONFIG_256M_NAND)
[0] = {
.name = "boot",
.offset = 0,
.size = SZ_1M,
},
[1] = {
.name = "kernel",
.offset = SZ_1M + SZ_128K,
.size = SZ_4M,
},
[2] = {
.name = "yaffs2",
.offset = SZ_1M + SZ_128K + SZ_4M,
.size = SZ_256M - SZ_4M - SZ_1M - SZ_128K,
}
#endif
};
修改同一文档 161 行附近
staticstructs3c2410_platform_nandsmdk_nand_info={
.tacls =10,
.twrph0 =25,
.twrph1 =10,
.nr_sets =ARRAY_SIZE(smdk_nand_sets),
.sets =smdk_nand_sets,
};
修改 Kconfig 文件,在配置时选择 NAND 类型,修改 driver/mtd/nand/Kconfig,
在 220 行,添加:
softwareECCispreferable.
choice
prompt"NandFlashCapacitySelect"
dependsonMTD
config64M_NAND
boolean"64MNANDForTX‐2440A"
dependsonMTD
config256M_NAND
boolean"256MNANDForTX‐2440A"
dependsonMTD
endchoice
configMTD_NAND_NDFC
配置内核,支持 NandFlash
DeviceDrivers‐‐‐>
<*>MemoryTechnologyDevice(MTD)support‐‐‐>
<*>NANDDeviceSupport‐‐‐>
<*>NANDFlashsupportforS3C2410/S3C2440SoC
[*]S3C2410NANDHardwareECC//这个一定要选上
NandFlashCapacitySelect(256MNandForTX‐2440A)
‐‐‐>
三. 支持 yaffs2 文件系统
下载最新的 yaffs2 补丁。
修改补丁里 patch‐ker.sh 文件。
屏蔽下面这段代码。
#Canwehandlethisversion?
#if[$VERSION‐ne2‐o$PATCHLEVEL‐lt6]
#then
# echo "Cannot patch kernel version $VERSION.$PATCHLEVEL.$SUBLEVEL, must be 2.6.x
orhigher"
# exit1;
#fi
给 kernel 打上 yaffs2 补丁
拷贝 linux2.6.31/include/linux/smp_lock.h 到 linux3.0.0‐rc4/include/linux/
修改 fs/yaffs2/yaffs_vfs.c
81 行加上头文件
#include
<linux/limits.h>
#include<linux/ioctl.h>
#include<linux/blk_types.h>
#include<linux/types.h>
198 行左右加入
MODULE_PARM(yaffs_trace_mask,"i");
MODULE_PARM(yaffs_wr_attempts,"i");
MODULE_PARM(yaffs_auto_checkpoint,"i");
MODULE_PARM(yaffs_gc_control,"i");
#endif
剩余15页未读,继续阅读
资源评论
anysilent
- 粉丝: 0
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- yolov5,SSD 可能使用到的一些代码
- 介绍离散性制造行业的MES系统流程
- 基于IDEA-CCNL/Randeng-Pegasus-238M-Summary-Chines微调的中文文本摘要任务源码+数据集
- 微信小程序源码 车源宝 二手车交易平台 源码下载
- 微信小程序源码 实现 城市切换 demo 根据城市首字母排序城市 选择城市 源码下载
- 2024新版计算机编译原理期末速成全套视频教程(视频+配套资料)
- VMware7.0虚拟机硬盘无法编辑,无法连接到Profile-Driven Storage Service
- arm64内核的mongo镜像
- 基于stm32f103c单片机+MPU6050+0.96英寸OLED显示屏双柄遥控器硬件(原理图+PCB)工程文件.zip
- 整理的关于少儿编程的学习路径,以及如何在小升初,初升高和大学充分的利用起来编程经验的优势
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功