2010年(24)
分类: 嵌入式
2010-06-21 02:06:19
$
tar jxvf linux-2.6.26.tar.bz2 $ cd linux-2.6.26 |
#ARCH ?=
$(SUBARCH) #CROSS_COMPILE ?= ARCH ?= arm CROSS_COMPILE ?= $HOME/toolchain/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux-gnu/bin/arm-linux-gnu- |
/*s3c24xx_init_clocks(16934400);*/ s3c24xx_init_clocks(12000000); |
/* fix mtd partition
to be same with bootloader */ /* a flash all in 64M bit size have been devided into 4 partition: */ /* 1. boot : offset is 0 and size is 192k */ /* 2. kernel : offset is 0x30000 and size is 1856k */ /* 3. rootfs : offset is 0x200000 and size is 30M */ /* 4. ext-fs1 : offset is 0x2000000 and size is 32M */ static struct mtd_partition smdk_default_nand_part[] = { [0] = { .name = "boot", /* default is "Boot Agent", by qspy */ .size = SZ_64K*3, /* default is SZ_16K, qspy fix it to 192K*/ .offset = 0, }, [1] = { .name = "kernel", /* default is "S3C2410 flash partition 1", by qspy */ .offset = SZ_64K*3,/* default is 0, by qspy */ .size = SZ_64K*29,/* default is SZ_2M, qspy fix it to 1856K*/ }, [2] = { .name = "rootfs",/* default is "S3C2410 flash partition 2", by qspy */ .offset = SZ_2M,/* default is SZ_4M, by qspy */ .size = SZ_1M*30,/* default is SZ_4M, qspy fix it to 30M*/ }, [3] = { .name = "ext-fs1",/* default is "S3C2410 flash partition 2", by qspy */ .offset = SZ_32M,/* default is SZ_8M, by qspy */ .size = SZ_32M,/* default is SZ_2M, qspy fix it to 30M*/ } /*, [4] = { .name = "S3C2410 flash partition 4", .offset = SZ_1M * 10, .size = SZ_4M, }, [5] = { .name = "S3C2410 flash partition 5", .offset = SZ_1M * 14, .size = SZ_1M * 10, }, [6] = { .name = "S3C2410 flash partition 6", .offset = SZ_1M * 24, .size = SZ_1M * 24, }, [7] = { .name = "S3C2410 flash partition 7", .offset = SZ_1M * 48, .size = SZ_16M, } */ }; |
/*chip->ecc.mode = NAND_ECC_SOFT; */ chip->ecc.mode = NAND_ECC_NONE; |
$ make xconfig |
|---Boot
options | |---Default kernel command string: [root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttySAC1,115200 devfs=mount mem=64] |
|---File systems | |---Pseudo filesystems | | |---/dev file system support | | | |---Automatically mount at boot | | | |---Debug devfs |
在device drivers -> Memory Technology Device (MTD) support --->
选择
Caching block device access to MTD devices
详细请参见
http://hi.baidu.com/serial_story/blog/item/f7feb801b3fd0edd267fb500.html
9.make zImage
常见错误请参见
http://dev.firnow.com/course/6_system/linux/Linuxjs/200896/139613.html
文中的添加
static struct platform_device * smdk2410_device[] _initdata=
{
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c,
&s3c_device_iis,
&s3c_device_nand,
};
这不没有选,也可以加载,具体的有待分析。
nand分析
http://xgc94418297.blog.163.com/blog/static/1129660402009675552824/
文件系统中要sudo mknod mtdblock2 b 31 2?没有验证。
这里还有一个方面要注意的,就是ECC问题,如果不把
Device Drivers --->
Memory
Technology Devices (MTD) --->
NAND Flash Device Drivers
--->
[*] S3C2410 NAND Hardware ECC
去掉会出现如下的问题:
end_request: I/O error, dev mtdblock3, sector 2
end_request: I/O error, dev
mtdblock3, sector 0