Linux移植参考手册v1.0

来源:互联网 发布:淘宝联盟提现钱到哪里 编辑:程序博客网 时间:2024/04/16 15:04

http://blog.21ic.com/user1/6546/archives/2011/85590.html

文档全文见最后部分附件。

 

可以有两种思路使用本文档:

? 一 顺序实践,按部就班,由浅入深,适于从未接触过嵌入式linux移植

首先是第一章交叉编译工具链的安装,然后第二章uboot-1.1.6的移植,再次3.1Linux-2.6.24内核移植,这里Linux-2.6.24内核能够正常启动,但是还有像usbrtc,网卡,lcd等还不能正常工作;再次4.1移植最基本cramfs 根文件系统,这样到目前为止就可以作为一个完整系统,uboot可以正常引导linux内核,能够正常运行cramfs 根文件系统;最后,后续的完善工作是第五章 各内核模块的移植,使之前不能正常工作的usbrtc,网卡,lcd能够正常运行。

? 二 一步到位

首先也是第一章交叉编译工具链的安装,然后第二章uboot-1.1.6的移植,再次3.1Linux-2.6.24内核移植,接下来是第五章各内核模块的移植,把usbrtc、网卡、lcd都修改好加入到内核一起编译;这样网络能够正常工作,可以通过nfs进行根文件系统的制作,即4.2移植nfs根文件系统

3.2Linux-2.6.14内核移植成功,可以作为参考;标题加“#”的作为深层次的阅读、理解,可以在做完一次实践后有了初步了解后再作阅读;4.3Yaffs2和4.4jffs文件系统没有移植成功,第六章Qt/Embedded Qtopia 也没移植成功,待完善。

 

 

目        录

Linux移植参考手册v1.0

关于本手册 5

使用说明 6

第一章 安装交叉编译工具链arm-linux- 7

1.1 交叉编译工具链cross-3.3.2.tar.bz2 7

1.2 交叉编译工具链arm-linux-gcc-3.4.1.tar.bz2 7

第二章 uboot-1.1.6移植 8

2.1 编译环境准备 8

2.2 修改顶层Makefile 8

2.3 为arm2410平台新建一个目录 9

2.4 在board/arm2410目录下增加nand.c文件 9

2.5 修改board/arm2410目录下的Makefile 10

2.6 为arm2410平台配置头文件arm2410.h 11

2.7修改使显示uboot commandline和所在的参数地址 15

2.8 修改cpu/arm920t目录下的start.S文件 15

2.9 修改common目录下的env_nand.c文件 16

2.10 修改common目录下的cmd_boot.c文件 19

2.11 交叉编译u-boot-1.1.6 19

2.12 烧写u-boot到开发板nand 19

2.12.1 使用sjf2410.exewindows下烧写 19

2.12.2 使用优龙Nor中自带bootloader烧写nand 23

2.12.3 使用原uboot下载烧写新u-boot-1.1.6 25

2.13 在arm板上运行u-boot-1.1.6 25

2.14 #minicom的配置使用 25

2.15 #uboot参数设置 26

2.16 #uboot引导linux内核参数传递解析 28

2.16.1 #基本概念:ubootbootargslinuxcommadline 28

2.16.2 #uboot怎样传递参数给linux 28

第三章 Linux-2.6内核移植 35

3.1 Linux-2.6.24内核移植 35

3.1.1 编译环境准备 35

3.1.2 修改顶层Makefile 36

3.1.3 设置Nand Flash分区信息表 36

3.1.4 添加devfs文件系统支持 37

3.1.5 配置linux内核 38

3.1.6 给zImage加上uboot头信息 41

3.1.7 uboot用tftp命令启动linux内核 41

3.2 Linux-2.6.14内核移植 41

3.2.1 编译环境准备 41

3.2.2 修改顶层Makefile 41

3.2.3 设置flash分区 42

3.2.4 添加devfs文件系统支持 44

3.2.5 配置内核产生.config文件 45

3.2.5 编译linux内核 46

3.2.6 给zImage加上uboot头信息 47

3.2.7 uboot用tftp命令启动linux内核 47

第四章 根文件系统rootfs移植 47

4.1 移植最基本cramfs根文件系统 47

4.1.1 首先建立一个空根目录 47

4.1.2 建立文件系统rootfs的目录结构 47

4.1.3 创建设备文件 48

4.1.4 准备启动配置文件 49

4.1.5 利用BusyBox安装命令工具 50

4.1.6 复制常用的库文件 53

4.1.7 制作cramfs文件系统 54

4.2 移植nfs根文件系统 54

4.2.1 利用BusyBox安装命令工具 54

4.2.2 建立文件系统的目录结构 57

4.2.3 准备启动配置文件 59

4.2.4 复制刚刚编译的busybox/root目录下 63

4.2.5 复制常用的库文件 64

4.2.6 制作cramfs根文件系统,从Nand中启动 65

4.2.7 用NFS作根文件系统,从网络上启动 68

4.3 yaffs2文件系统移植 71

4.4 jffs2文件系统移植 72

第五章 内核模块移植 72

5.1 CS8900网卡移植 72

5.1.1 加入网卡驱动cs8900.c cs8900.h 74

5.1.2 新建文件smdk2410.h 74

5.1.3 cs8900虚拟地址到物理地址的转换 75

5.1.4 增加menu configCS8900编译选项 75

5.1.5 配置内核加入CS8900 support 76

5.1.6 编译内核,启动 7

5.2 TFT液晶移植 78

5.2.1 修改mach-smdk2410.c添加lcd相关结构 79

5.2.2 配置内核加入lcd相关支持 80

5.2.3 重新编译内核 80

5.2.4 #lcd显示引导信息 81

5.2.5 #lcd参数设置解析 82

5.3 USB存储设备驱动移植 86

5.3.1 重新配置内核加入USB相关支持 87

5.3.2 加入常用的字符集 87

5.3.3 挂载USB存储设备 89

5.4 RTC移植 89

5.4.1 加入rtc支持编译内核 90

5.4.2 设置实时时钟rtc和系统时间date 90

5.4.3 #时间设置的相关命令 92

第六章 Qt/EmbeddedQtopia的移植 92

 

 

Linux移植参考手册v1.0.part1.rar
Linux移植参考手册v1.0.part2.rar
Linux移植参考手册v1.0.part3.rar