Linux2.6.35在TQ2440移植初探:启动与平台支持

5星 · 超过95%的资源 需积分: 0 56 下载量 34 浏览量 更新于2024-10-15 1 收藏 647KB PDF 举报
"Linux2.6.35在TQ2440的移植过程(一) - Machoe.Yang" 本文介绍了将Linux2.6.35内核移植到TQ2440开发板的过程,由作者Machoe.Yang原创。移植工作主要涉及获取和解压内核源码、修改Makefile以支持ARM架构以及针对TQ2440平台的特定代码调整。 首先,移植工作始于获取内核源码。作者推荐从官方网站http://www.kernel.org/pub/linux/kernel/v2.6/下载Linux2.6.35版本的源码,并将其解压至/opt/kernel/目录下。通过运行"tar xvfj linux2.6.35.tar.bz2 -C ."命令进行解压,解压完成后会在当前目录下找到相应的源码目录。 接下来,为了使内核支持ARM架构,需要编辑顶层的Makefile文件。使用VIM编辑器打开Makefile,在第191行和第192行分别设置ARCH变量为"arm",CROSS_COMPILE变量为"arm-linux-",以指示编译系统使用ARM架构的交叉编译工具链。 然后,针对TQ2440硬件平台,需要修改部分源代码。具体来说,修改arch/arm/mach-s3c2440/mach-smdk2440.c文件。在smdk2440_map_io()函数的第163行,将CPU时钟频率从16000000Hz更改为12000000Hz,这是因为TQ2440开发板的时钟频率通常是12MHz,而非SMDK2440板子的16MHz。这一更改确保内核正确识别和配置开发板的时钟。 需要注意的是,尽管文章中提到的移植工作仅完成了内核启动,大部分驱动尚未实现,但作者表示会继续更新后续内容。移植Linux内核到新的硬件平台是一个复杂的过程,涉及到硬件初始化、设备驱动编写、内存管理、中断处理等多个方面。对于TQ2440这样的开发板,通常需要适配包括串口、GPIO、I2C、SPI、USB在内的各种接口驱动,以及显存管理、网络接口等关键组件。 在实际的移植过程中,开发者还需要配置内核,选择合适的内核模块和功能,使用make menuconfig或make xconfig等工具。此外,内核编译完成后,还需要通过u-boot(在本例中是u-boot2010.06版本)加载内核映像到开发板的内存中,然后进行引导测试,检查内核是否能正常运行并识别硬件设备。 Linux2.6.35在TQ2440上的移植工作涉及了内核源码获取、Makefile修改、硬件平台相关的源代码调整等多个步骤。这是一个细致且系统的工作,需要对Linux内核结构和ARM架构有深入理解。在后续的文章中,作者可能将详细介绍更多驱动的实现和调试过程,以完成整个内核移植。