**知识点:Linux-2.6.34.1内核移植至UP2440平台** **一、下载源代码** 在进行内核移植前,首先需从官方网站http://www.kernel.org/下载所需版本的内核源代码。本例中采用的是Linux-2.6.34.1版本。下载命令为`wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.1.tar.bz2`。 **二、解压内核源码** 下载完成后,使用命令`tar xvf linux-2.6.34.1.tar.gz`解压内核源码,创建一个新的目录`linux-2.6.34.1`并包含所有源文件。 **三、修改编译器选项** 接下来,进入解压后的内核源码目录,使用`vim Makefile`编辑器打开顶层的Makefile文件。将其中的`ARCH?= $(SUBARCH)`和`CROSS_COMPILE?= `修改为`ARCH?= arm`和`CROSS_COMPILE?= arm-linux-`,以指定目标架构和交叉编译器。 **四、修改时钟频率** 为了适应UP2440平台的硬件特性,需修改内核中平台的时钟频率。在文件`arch/arm/mach-s3c2440/mach-smdk2440.c`中,找到第163行,将默认的时钟频率16.9344MHz更改为12MHz。具体修改在`smdk2440_map_io`函数中的`s3c24xx_init_clocks()`调用,将参数从16934400修改为12000000。 **五、修改NAND分区信息** 为了使内核正确管理NAND Flash,需确保其分区信息与bootloader(如u-boot)保持一致。在`arch/arm/plat-s3c24xx/common-smdk.c`文件中,编辑`smdk_default_nand_part`数组,调整各分区的名称、偏移量和大小。同时,还需修改`smdk_nand_info`结构体中的参数,如`tacls`、`twrph0`和`twrph1`等,以匹配硬件需求。 **六、修改机器类型(Mach-Type)** UP2440所使用的u-boot版本中的Mach-Type是782,而内核源码中的默认值可能不同,因此需要进行修改。在`arch/arm/tools/mach-types`文件中找到S3C2440相关条目,将Mach-Type由362改为782。 **七、禁用NAND Flash的ECC** 若内核通过U-BOOT写入NAND Flash,且U-BOOT使用软件ECC算法,这与内核的ECC校验不一致,需禁用内核中的ECC。在`drivers/mtd/nand/s3c2410.c`文件中,查找关键字`NAND_ECC_SOFT`,在`s3c2410_nand_init_chip`函数中,将`NAND_ECC_SOFT`替换为`NAND_ECC_NONE`。 **八、增加Yaffs2文件系统支持** 为了支持Yaffs2文件系统,首先需从http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/网站下载Yaffs文件系统补丁。解压补丁包后,在`cvs/yaffs2`目录下应用补丁。这一步骤涉及补丁的应用和源码的相应修改,确保内核能够正确处理Yaffs2文件系统。 Linux-2.6.34.1内核移植至UP2440平台涉及多个关键步骤,包括源码下载与解压、编译器配置、时钟频率与硬件参数调整、NAND分区信息与Mach-Type修改、ECC禁用以及Yaffs2文件系统支持的增强。这些操作旨在使内核适应特定硬件平台,实现稳定运行与功能完善。
剩余20页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助