准备:(后改为2.6.14)
kernel2.6.25:
ftp://ftp.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz2
YAFFS2:
http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2.tar.gz?view=tar
cd /usr/src
tar -zxvf linux-2.6
tar -zxvf yaffs2.
vivi
part del kernel
part del root
part add kernel 0x00100000 0x00300000 0 SZ_1M*3
part add root 0x00400000 0x03C00000 YAFFS SZ_1M*60
________________________________________
编译器
export PATH=/usr/local/arm/3.4.1/bin:$PATH
或
vi ~/.bashrc
export PATH=/usr/local/arm/3.4.1/bin:$PATH
vi Makefile
_________________________________________________
2,修改Makefile
ARCH = arm
CROSS_COMPILE = /usr/local/arm/3.4.1/bin/arm-linux-
_________________________________________________
vivi> part show
mtdpart info. (4 partitions)
name offset size flag
------------------------------------------------
vivi : 0x00000000 0x00020000 0 128k
param : 0x00020000 0x00010000 0 64k
kernel : 0x00040000 0x001c0000 0 1M+768k
root : 0x00200000 0x03cf8000 16 60M+992k
_________________________________________________
vi arch/arm/mach-s3c2410/devs.c(老版本)
vim arch/arm/plat-s3c24xx/common-smdk.c
[0] = {
.name = "vivi",
.size = SZ_128K,
.offset = 0,
},
[1] = {
.name = "param",
.offset = SZ_128K,
.size = SZ_64K,
},
[2] = {
.name = "kernel",
.offset = SZ_1M,
.size = SZ_1M*3,
},
[3] = {
.name = "root",
.offset = SZ_1M*4,
.size = SZ_1M*60,
}
__________________________________
//vi drivers/mtd/nand/nand_base.c
//查找not recomm.... 把二行去掉(提示)
________________________________
第二步:修改nand flash的参数:
在同一个文件中找到
smdk_nand_info = {
.tacls=20,
.twrph0=60,
.twrph1=20,
...
}
改成
smdk_nand_info = {
.tacls=0,
.twrph0=30,
.twrph1=0,
...
}
___________________________
vi drivers/mtd/nand/s3c2410.c
s3c2410_nand_init_chip()函数,将其中的
chip->ecc.mode=NAND_ECC_SOFT;
改成
chip->ecc.mode=NAND_ECC_NONE;
2440:
修改时钟
在arch/arm/mach-s3c2440/mach-smdk2440.c中修改smdk2440_map_io如下
static void __init smdk2440_map_io(void)
{
s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
s3c24xx_init_clocks(12000000);
s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));
}
_________________________
cd yaffs2
./patch-ker.sh c ../linux-2.6.25
cp arch/arm/configs/s3c2410_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux- zImage
_______________________________________________
[选中] Lets Yaffs do its own ECC
其他可不修改,设为默认
__________________________________________________________
vivi
param set linux_cmd_line "initrd=0x30800000,0x440000 mem=64M root=/dev/mtdblock3 init=/linuxrc console=ttySAC0"
param save
net tftp 192.168.1.156 0x30008000 zImage
net flash kernel
net tftp 192.168.1.156 0x30008000 root_china.yaffs
net flash root
SD卡移植
--------------------------------------------------------------------------------------
wget http://svnweb.openmoko.org/*checkout*/branches/src/target/kernel/2.6.24.x/patches/s3c_mci.patch?rev=4096
#cp s3c_mci.patch linux-2.6.24.3/
#cd linux-2.6.24.3/
#patch -p1 <s3c_mci.patch
vi arch/arm/mach-s3c2410/mach-smdk2410.c
?iis
&s3c_device_sdi,
vi drivers/mmc/host/s3cmci.c
static struct s3c24xx_mci_pdata s3cmci_def_pdata = {
.do_dma = 0,
.gpio_detect = S3C2410_GPG3, //add
.set_power = NULL,
.ocr_avail = MMC_VDD_32_33,
};
内核:
File systems --->
-*- Native language support --->
<*> Codepage 437 (United States, Canada)
<*> NLS ISO 8859-1 (Latin 1; Western European Languages)
—— simple chinese
结束,看似简单,折腾了几天
mount -t auto /dev/mmcblk0p1 /mnt/sd
---------------------------------------------------------------------------------------
网卡移植:
wget http://rt2x00.serialmonkey.com/rt73-cvs-daily.tar.gz
make armdebug ARCH=arm CROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux- KERNDIR=/usr/src/linux-2.6.24.3
生成rt73.ko
make armdebug ARCH=arm CROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux- KERNDIR=/usr/src/linux-2.6.24.3 install
生成rt73.bin
cp /lib/firmware/rt73.bin /home/boottmp/lib/firmware
注:无线内核。
1、Networking -->
Wireless LAN -->
[M]Generic IEEE 802.11 Networking Stack (mac80211)