文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>移植 linux-2.6.27.9 内核至 QQ2440V3

移植 linux-2.6.27.9 内核至 QQ2440V3

时间:2009-03-10  来源:xu_xuesheng

一、修改内核源文件

1、修改 Makefile 文件

将 Makefile 文件中的

ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=

修改为:

ARCH ?= arm
CROSS_COMPILE ?= /your/toolchain/path/arm-linux-

其中的“/your/toolchain/path/”为交叉编译工具链的地址,“arm-linux-”为交叉编译命令的前缀。

2、设置 MTD 分区的 NAND 分区信息

修改位于“arch/arm/plat-s3c24xx/”目录下的“common-smdk.c”文件,修改其中的“smdkdefaultnand_part”段来指明 NANO Flash 中的分区信息。分区信息可从 bootloader 中得到,例如此处的分区信息如下:

Supervivi> part show
Number of partitions: 5
name : offset size flag
------------------------------------------------------------
vivi : 0x00000000 0x00028000 0
eboot : 0x00028000 0x00018000 0
param : 0x00040000 0x00010000 0
kernel : 0x00050000 0x00200000 0
root : 0x00250000 0x03dac000 0

因为 QQ2004V3 原版的内核映像中只设置了“bootloader”、“kernel”和“root”三个分区,为了和它的引导参数一至,所以我们也设置为三个分区,设置参数如下:

static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "bootloader",
.offset = 0x00000000,
.size = 0x00028000,
},
[1] = {
.name = "kernel",
.offset = 0x00050000,
.size = 0x00200000,
},
[2] = {
.name = "root",
.offset = 0x00250000,
.size = 0x03dac000,
}
};

另外还要修改“smdknandinfo”段来设置NAND Flash芯片信息:

static struct s3c2410_platform_nand smdk_nand_info = {
.tacls = 0,
.twrph0 = 30,
.twrph1 = 0,
.nr_sets = ARRAY_SIZE(smdk_nand_sets),
.sets = smdk_nand_sets,
};

3、设置时钟频率

因为此开发板中使用的 12M 的晶振与内核中的默认设置不同,所以要修改位于“arch/arm/mach-s3c2440”目录下的“mach-smdk2440.c”文件,查找“s3c24xxinitclocks”,将原来的:

s3c24xx_init_clocks(16934400);

修改为:

s3c24xx_init_clocks(12000000);

4、去掉 ECC 校验

修改位于“drivers/mtd/nand/”目录下的”s3c2410.c“文件,将其中的:

chip->ecc.mode = NAND_ECC_SOFT;

改为:

chip->ecc.mode = NAND_ECC_NONE;

二、设置内核

因为内核中自带的配置对 s3c2440 的支持已经相当完善,所以在默认配置的基础上进行裁剪、修改是最省时省力的做法。

1、加载默认的 s3c2410 配置

$ make s3c2410_defconfig

2、进入设置菜单设置内核

$ make menuconfig

注:设置时的注意事项请查看第三节。

3、编译内核,生成映像文件

$ make clean
$ make zImage

生成的映像文件的位置在“arch/arm/boot/zImage”,直接将此文件烧入芯片即可运行。

三、内核设置选项注意事项

1、系统类型

|---System Type
| |---ARM system type
| | |---Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443

2、启动选项

如果此处的命令字符串设置的有误,可以在“vivi”中设置参数“linuxcommandline”

|---Boot options
| |---Default kernel command string
| | |---root=noinitrd root=/dev/mtdblock2 rw init=/linuxrc console=ttySAC0

注:“/dev/mtdblock2”就是“arch/arm/plat-s3c24xx/common-smdk.c”文件中“smdkdefaultnand_part”中设置的root分区,请根据实际情况进行修改。

3、NAND 芯片支持

|---Device Drivers
| |---Memory Technology Device (MTD) support
| | |---NAND Device Support
| | | |---NAND Flash support for S3C2410/S3C2440 SoC

4、文件系统支持

设置了 NAND 芯片支持后才可以在文件系统选项中选择“JFFS2”、“cramfs”等文件系统。

|---File systems
| |---Miscellaneous filesystems
| | |---YAFFS2 file system support
| | |---Journalling Flash File System v2 (JFFS2) support
| | |---Compressed ROM file system support (cramfs)

5、其它

其它硬件驱动,请根据各自的情况在“Device Drivers”选项中选择。

备注:

因为没有对驱动程序进行移植,所以现在的内核还不支持 QQ2440V3 中的网卡、音频、LCD等设备。这些设备的移植会放在以后再进行!

相关阅读 更多 +
排行榜 更多 +
几何飞行内购修改版

几何飞行内购修改版

飞行射击 下载
别踩白块内购修改版

别踩白块内购修改版

休闲益智 下载
乐涂数字填色游戏

乐涂数字填色游戏

休闲益智 下载