网上有很多类似的教程,但是真正移植起来还是很多问题,为了让自己在这次移植中得到一些真正的linux技术还是记录一下这个过程。
1.首先在kernel网站下载linux内核,这个里面还有patch的问题。以前理解出了个偏差,以外同一版本要打上相应的补丁,通过实际操作发现不是这样的,这个补丁是用来升级高版本的,例如从2.6.32到2.6.33这样就不用下很大的源码。
2.下载ARM补丁,这个一开始我也照着做了但是补丁的版本只有2.6.0是最新的,最近的时间是2004年的,这个一开始犹豫了是否要打,但是最后还是打了,因为这个补丁,导致了后来这个的内核配置重复。我浪费了近三个小时的时间。后来发现没有这个补丁也是一样可以进行的。
3.修改顶层Makefile在189行
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-linux-
4.下载yaffs2驱动
5.修改机器码
修改arch/arm/tools/mach-types
去掉s3c2410 ARCH_S3C2410 S3C2410 193
修改s3c2440 ARCH_S3C2440 S3C2440 362
为s3c2440 ARCH_S3C2440 S3C2440 193
这里主要是因为FL2440的机器码是193,从这点就看出各个公司在做板子的时候也有自己风格。
6.增加devfs文件管理器的支持
我们所用的文件系统使用的是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