linux 2.6.30 移植到mini2440
时间:2010-10-13 来源:dlczh
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
改为:
ARCH ?= arm
CROSS_COMPILE ?=arm-linux- 并创建配置文件 cp arch/arm/congfigs/s3c2410_defconfig .config 就是加载配置文件。S3C2410和S3C2440差不多的,注意.config前有个空格。 2. 修改分区,主要修改一个数组 文件位置在arch/arm/plat-s3c24xx/common-smdk.c 主要修改smdk_default_nand_part[]
{
[0] = {
.name = “supervivi”,
.size = 0x00060000,
.offset = 0,
},
[1] = {
.name = “Kernel”,
.offset = 0x00060000,
.size = 0x00200000,
},
[2] = {
.name = “root”,
.offset = 0x00260000,
.size = 1024*1024*1024,
},
[3] = {
.name = “nand”,
.offset = 0x00000000,
.size = 1024*1024*1024,
}
}; 然后把其他的去掉或不编译。
这个要参考友善之臂带的源码里的信息。 3. 修改时钟频率 在arch/arm/mach-s3c2440/mach-smdk2440.c
修改下时钟频率
s3c24xx_init_clocks(12000000);
4. make menuconfig 在boot option >Default kernel command sring的内容 修改为noinitrd root=/dev/mtdblock2 init=/linuxrc console =ttySAC0,115200 mem=64M 5. 加载YAFFS2 我直接把友善之臂的/fs/ysffs2 拷过来,然后修改fs/Kconfig文件和fs/Makefile的文件 修改如下: 在KCONFIG 文件中加入 # Patched by YAFFS
source "fs/yaffs2/Kconfig" 在Makefile中加入 # Patched by YAFFS
obj-$(CONFIG_YAFFS_FS) += yaffs2/ 这个可以对照友善之臂提供的源码。 6.配置及编译内核
然后用S3C2410的默认配置文件
#cp arch/arm/configs/s3c2410_defconfig .config
#make menuconfig //只需修改下面几项
[*] Enable loadable module support --->
[*] Module unloading
[*] Automatic kernel module loading
选择这两个,剩下的可以去掉
System Type ---->
[*] S3C2410 DMA support
S3C2410 Machines --->
[*] SMDK2410/A9M2410
S3C2440 Machines --->
[*] SMDK2440
[*] SMDK2440 with S3C2440 CPU module
//System Type这部分,只选这些,其他可以全部去掉,
Boot option ----->
修改启动参数为:noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200
可能根据个人板子的设置会不一样,我的是从Nand Flash中加载文件系统,其中mtdblock2是存放我的Linux文件系统的分区。不过,在bootloader可以传递内核参数的情况下这个设置是无效的。
Device Drivers --->
<*> Memory Technology Device (MTD) support --->
[*] MTD partitioning support
<*> NAND Device Support --->
<*> NAND Flash support for S3C2410/S3C2440 SoC
[ ] S3C2410 NAND Hardware ECC //这个要去掉
[*] Network device support --->
[*] Ethernet (10 or 100Mbit) --->
<*> DM9000 support
Kernel Features ->
[*]Use the ARM EABI to compile the kernel
[*] Allow old ABI binaries to run with this kernel
到这边kernel一般可以boot起来,这时会出现一些 rtc和网络的一些问题,呵呵,这些再慢慢解决吧。