今天,参考《Mini2440_Linux移植开发实战指南.pdf》和《【申嵌培训】Mini2440 Linux移植开发实战指南-内核部分2010-9-9.pdf》,对公司购买的友善之臂的mini2440进行了linux2.6.32.2的系统移植。下面是移植的全程记录:
开发环境:
虚拟机:VMware Player 4.0.1 build-528992
主机:Red Hat Enterprise Linux 5-2
交叉编译链:arm-linux-gcc 4.3.2
开发板信息:
名称:mini2440
CPU:S3C2440AL-40
内存:K4S561632N-LC60 * 2
Nor Flash:S29AL016J70TF102
Nand Flash:K9F2G08U0B
网卡:DM9000EP
目录:
一、下载linux-2.6.32.2源码并解压 5
二、指定交叉编译链和开发板CPU架构 5
三、检验编译是否通过 5
1,使用缺省配置 5
2,编译 5
四、修改机器码和时钟频率 5
1,修改机器码类型 6
2,修改时钟频率 6
3,将“smdk2410”改成“mini2440” 6
4,屏蔽掉原先的mini2440_machine_init(void)函数 6
五、修改init/main.c文件 6
1,第117行左右,增加如下代码: 7
2,第520行左右,增加变量i。 7
3,第554行左右,增加如下代码: 7
4,第571行左右,增加如下代码: 7
六、编译测试 8
1,使用缺省配置 8
2,编译 8
七、移植NAND驱动并更改分区信息 8
1,添加头文件。 8
2,添加static struct mtd_partition mini2440_default_nand_part[] 8
3,添加static struct s3c2410_nand_set mini2440_nand_sets[] 10
4,添加static struct s3c2410_platform_nand mini2440_nand_info 11
5,mini2440_devices[]中添加平台设备。 11
6,修改mini2440_machine_init函数 11
7,编译测试。 12
八、使内核支持yaffs2文件系统 12
1,yaffs2源码下载。 12
2,为内核打补丁。 13
3,配置内核。 14
4,编译测试内核。 15
九、移植DM9000网卡驱动 15
1,添加头文件。 16
2,添加MACH_MINI2440_DM9K_BASE宏定义。 16
3,添加static struct resource mini2440_dm9k_resource[] 16
4,添加static struct dm9000_plat_data mini2440_dm9k_pdata 16
5,添加static struct platform_device mini2440_device_eth 17
6,mini2440_devices[]中添加平台设备。 18
7,添加头文件。 18
8,修改dm9000_init函数。 18
9,修改dm9000_probe函数。 19
10,配置编译内核。 19
十、激活RTC驱动 20
1,static struct platform_device *mini2440_devices[]中添加平台设备: 20
2,配置内核。 21
3,编译、测试。 21
十一、添加背光驱动 22
1,添加mini2440_backlight.c文件。 22
2,把背光配置加入到内核配置菜单。 25
3,在Makefile中,根据配置定义加入驱动目标文件。 25
4,配置内核。 26
5,编译、测试。 27
十二、移植LCD显示驱动 27
1,删除原先的LCD设备平台代码。 27
2,增加新LCD代码 28
3,修改mini2440_machine_init函数。 31
4,增加配置选项。 31
5,修改drivers/video/s3c2410_fb.c文件。(为什么修改?有待探讨!!!!!!!) 33
6,配置内核 34
7,编译、测试。 34
十三、修改LinuxLogo 34
1,使用LogoMaker制作Linux LOGO. 35
2,覆盖源码文件。 38
3,编译、测试。 38
十四、添加ADC驱动 38
1,添加驱动文件 39
2,添加头文件。 44
3,修改Makefile文件。 44
4,添加配置选项。 44
5,配置内核。 45
6,编译、测试内核。 46
十五、添加触摸屏驱动 48
1,添加驱动文件。 48
2,修改Makefile文件。 54
3,添加配置选项。 54
4,配置内核。 55
5,编译、测试。 56
十六、配置USB外设 57
1,配置和测试USB键盘、扫描器和鼠标。 57
2,配置测试优盘。 58
3,配置和测试USB摄像头 62
4,配置和测试USB无线网卡 63
十七、移植SD卡驱动 64
1,添加头文件。 65
2,添加static struct s3c24xx_mci_pdata mini2440_mmc_cfg结构体。 65
3,加入到目标平台设备结构体。 65
4,mini2440_machine_init(void)函数中,调用platform_add_devices函数前,添加: 66
5,修改drivers/mmc/host/s3cmci.c文件。 66
6,编译、测试。 67
十八、移植UDA1341音频驱动 67
1,添加头文件。 67
2,添加static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data结构体。 67
3,添加static struct platform_device s3c24xx_uda134x结构体。 67
4,添加UDA134设备平台到内核。 68
5,配置内核。 68
6,编译、测试。 69
7,修正驱动中的录音代码。 69
8,编译、测试。 70
十九、休整串口驱动 70
1,修改arch/arm/mach-s3c2440/mach-mini2440.c。 70
2,修改drivers/serial/samsung.c文件。 71
3,编译、测试。 72
二十、移植I2C-EEPROM驱动 72
1,配置内核。 72
2,编译、测试。 73
二十一、移植看门狗驱动 73
1,配置内核。 73
2,编译、测试。 74
二十二、移植简单LED驱动 75
1,drivers/char下增加文件:mini2440_leds.c 75
2,修改drivers/char/Kconfig文件 77
3,修改drivers/char/Makefile文件 78
4,选上配置 78
5,编译 79
6,测试 79
二十三、移植基于中断的按键驱动 80
1,drivers/char/添加mini2440_buttons.c文件 80
2,修改drivers/char/Kconfig 84
3,修改drivers/char/Makefile 84
4,选上配置 85
5,编译 85
6,测试 85
二十四、移植PWM控制蜂鸣器驱动 87
1,drivers/char/添加mini2440_pwm.c 87
2,修改drivers/char/Kconfig 90
3,修改drivers/char/Makefile 91
4,选上配置 91
5,编译 92
6,测试 92
由于篇幅太多,请查看资源“移植linux-2.6.32.2到mini2440开发板(实录).doc”
http://download.csdn.net/detail/xuepeng531/4428707