天嵌科技出品-Linux移植

所需积分/C币:18 2012-03-29 14:09:32 11.23MB PDF

详细讲述linux如何一步一步移植到开发板中!
天嵌科技 广州天嵌计算机科技有限公司 地址:广东省广州市天河区五山路141号尚德大厦A2004室邮编:510000 电话:020-38921445(销售)020-22106679(技术支持) 传真:02038921445 E-mail:support(@embedskynet官方网站http:/hwww.embedsky.ne或http://bbs.embedsky.net 内容提要 本手册全面介绐了嵌入式 Linux系统旳开发过程中,各种驱动的源码获取、源码修改、配置和移植 驱动测试程序的编写,根文件系统的构造(包括移植 busybox、 glibc、制作映像文件等),DIY自己的驱动 程序和测试程序的编写。 本手册从获取内核源码开始,一步一步的讲解一个完整的内核的移植,使读者最终可以配置、移植、 裁剪内核,编写驱动程序,从而掌握整个嵌入式Liux系统的开发方法 本手册由浅入深,循序渐进,非常适合刚接触嵌入式 Linux的初学者学习,也可作为各种嵌入式培训 教材使用。 天嵌科技 广州天嵌计算机科技有限公司 地址:广东省广州市天河区五山路141号尚德大厦A2004室邮编:510000 电话:020-38921445(销售)020-22106679(技术支持) 传真:02038921445 E-mail:support(@embedskynet官方网站http:/hwww.embedsky.ne或http://bbs.embedsky.net 前言 很久以前就想写份详尽的栘植手册了,方面是为公司的2440开发板做配套使用教材,另外也是 为广大的嵌入式爱好者提供更好,更详细的嵌入式学习参考资料。 刚好公司承接的一个项目要用到髙版本的 Linux内核,在完成该项目后,觉得很有必要把整个项目开 发过程与广大的嵌入式爱奷分亨,于是便把整个廾发过程中的记录整理成册,《基于大嵌科技的 SKY2440TQ2440的Linuⅹ系统移植手册》就这样诞生了。本手册中的所有程序和代码都是作者耗时,耗 力的亲自调试成功的,希望该手册能够发挥应有的作用,为嵌入式行业发展贡献力量。 本手册的硬件平台是天嵌科技的SKY2440和TQ240开发板,软件平台为 Redha0的交叉编译环境, 硬件请参考SKY2440或TQ2440并发板配套光盘的原理图,木手册提到的2.63的文件系统请参考 SKY2440或TQ2440开发板配套光盘里的文件系统。为了尽快计本手册和广人的天嵌科技的ARM开发板 的用户以及其他想学习基于ARM的Linuⅸx开发的朋友见面,手册里面很多方面没有进行讲解,建议大家 到天嵌科技的论坛和QQ讨论群中进行交流,共同学习和提高。有问题时,请在天嵌科技的论坛贴出该问 题的截图之类的,方便他人参考和回答问题。对于自己已经解决问题的,也请贴出解决方法,以方便后来 人 根据第一版的反馈情况,对本于册作出了一些调墼,然后添加了两个应用程序的移植说明,同时添加 了最新版本的Iinx内核的移植(以后天嵌科技挠供的配套开发板的也是采用的该版本——2009年O7月30 日发布的 Linux-2.6.304版的内核)。 本于册是天嵌科技将会摊出的系列教程中的第一份教程,以后将会陆续推出无操作系统的程序开发实 例方面的教材、 bootloader开发教程、uCoS移植开发教程以及wnCE驱动及应用程序开发教程等涵盖 整个嵌入式开发的系列教材。 由于水平有限,手册中难免遗漏和不足之处,恳请广大读者提出宝贵意见。 最后感谢广大的客户的支持,天嵌科技才能一步一步成长。 天嵌科技研发部 2009-0803 天嵌科技 广州天嵌计算机科技有限公司 地址:广东省广州市天河区五山路141号尚德大厦A2004室邮编:510000 电话:020-38921445(销售)020-22106679(技术支持) 传真:02038921445 E-mail:support(@embedskynet官方网站http:/hwww.embedsky.ne或http://bbs.embedsky.net 在本手册中的一些约定 约定 木手册首发地点为广州天嵌计算札科技有限公司的官方网站:hp:/www.embedsky.net,同时套的 论坛为:htp: bbs. embedsky. net/;建议广人读者到论坛发贴讨论。 约定2 PC的命令表示方法:在PC的终端使用的命令,均在其前面加“#”号并用红色表示。 比如:解压源码:# tar xvii linux-2.6.25.8:arbz2-C/opt/ Embeds 约定3 廾发板的命令表示方法:在廾发板的终端(也就是PC的超级终端或别的串口软件)上面运行的基于 开发板的命令,均在其前面加“$”号并用红色表示。 比如:LCD背光控制程序的操作:$ backlight off 约定4 关于参考木手册输入命令时出错的问题的处珄:请注意命令和参数间的空格,不要漏掉了 原因:在Linx使用命令和参数之间是使用空格隔开的,1个空格和多个空格是等效的,在本手册中 为了保持页面的整洁,对命令和参数之间使用了1个空格,可能因为空格的字伓类型导致空格和非空格之 间区别不是很明显,敬请谅解。 比如约定2中的命令分解后如下 linux-2.6.25..tar.b 2 C /opt/EmbedSky 约定5 关于路径的说明:“ opt/EmbedSky”这个就是绝对路径;内核文件“ arch/arm/ mach-s32410mach s3c2440c”这就是相对路径。区别在于最前面的那个“/”号。 约定6 文件所在地的区别:区别比如“/ete”目录,在PC里面的“eto(1)目录就是绝对路径下的一个存 在在PC上的目录:而开发板的文件系统的“ee(2)和“er(3)目求均是指基于开发板的一个目 录,差别在于一个是烧写到开发板上了,一个是还没有烧写到开发板上。下面的图应该能够说明其中的差 别,请注意区分,我也会在本书中说明是PC的目录还是开发板的目录: 第一种“/etc/”日录的存在截图: 天嵌科技 广州天嵌计算机科技有限公司 地址:广东省广州市天河区五山路141号尚德大厦A2004室邮编:510000 电话:020-38921445(销售)020-22106679(技术支持) 传真:02038921445 E-mail:support(@embedskynet官方网站http:/hwww.embedsky.ne或http://bbs.embedsky.net 文件(巴编辑(E)查看(V)转到(G书签B帮助(H A③@ 后退前进向上一级停止刷新主文件夹 位置: -100+ View as loons L严 95项 这是第一种etc 7521项 目录,是PC自 带的目录 etc Initrd 287项 项 → 选中了“etc”(有287项) 第种“etc”目录的存在截图 后5ei0M1-5 ecuHELRT File Edit view Options Transfer Script Tools H 洞测刻自兽Q昌图必圖 CoM1 [ 21/Feb/ 2009: 21: 10: 59+0000 boa: server version Boa!A [21/Feb/2009:21:1 0000]baa bui lt Aug 1 [21/Feb/2009: 21: 10: 59 +0000] boa: starting server pic Please Enter t口丑ct1丑t已 [raat@ Embedsky为]#1s Embedsk_backlight, ko linuxrc sbin oIn 这个是前面+um 5 etc 提到的第二 UEsN 种etc录 van Troot @embr Ready Serial: COM1 13, 20 13 Rows, 53 Cols VT100 第三种“etc/”目录的存在截图 6 天嵌科技 广州天嵌计算机科技有限公司 地址:广东省广州市天河区五山路141号尚德大厦A2004室邮编:510000 电话:020-38921445(销售)020-22106679(技术支持) 传真:02038921445 E-mail:support(@embedskynet官方网站http:/hwww.embedsky.ne或http://bbs.embedsky.net root 2 6.25 8 文件(巴编辑(E)查看(V)转到(G书签B帮助(H A②@ 后退前进前向上一级停止刷新主文件夹 位置:|/pt/ Embedsky/ro2.6.25 100+ View as Icons 这是第三秤et目录,是 智暂时存放PC上的基于开 8发板的文件系统下面的 etc 20项 当压制成vam像之 后,烧写到开发板里面 ,您就会看到上图第二 种etc目录的形式了。 约定7 本手册使用的编译环境是 Redhat9,所使用的交叉编译器为天嵌利技提供的支持EAB技术的433的 父叉编译器(目前最髙版本的 说明:因为支持EABI的编译器和上一个版本的3.4.5的编译器不一样,所以会导致43.3编译出来的 软件不能在以前的文件系统里面使用的,这个地需要特别小心,建议文件系统完全重新制作,或者下载 天嵌科技制作好的文件系统。在后面会特意说明的。 安装该编译器的方法 从天嵌科技的官方网站获取交又编译器的安装包,名为:EAB143.3 EmbedSky20091210.tar:bz2(这 个地方的名称以光盘中的实际名称为准)然后将其解压到 Redhat9的“/ opt/ EmbedSky/”目录下,使用命 #tar xvii EABI 4.3.3 EmbedSky 20091210. tar. bz2-C 解压完毕后,修改PC的“ retc/profile”文件,使用命令 #gedit /etc/profile 然后打开该文传,在大概21行添加如下内容:(红色部分所小) Path manipulation if[ id-u=0 then pathmunge/sbin pathmunge /usr/sbin pathmunge /usr/local/sbin pathmungc /opt/EmbcdSky/crosstools 3 4.5 softfloat/gcc-3.4.5-glibe-23 6/arm-linux/bin pathmunge /opt/EmbedSky/4.3.3/bin Fi 然后使用命令:# ource/ 'etc/profile,使其生效。 注意1:可能您那里的内容和这里列出来的不太一样,只需要将自山添加的其他的交叉编译器前面加“#” 屏蔽掉,仅留下4.3交叉编译器即可。目前提供的43.3的交叉编译器是在原版的43.3的基砷上添加了 ligong、 libuuid、libz和 libjpeg等等库,可以攴持编译 atopia-2.2,0( atopia-1.7.0编译不过去,出现一个自 锁的错误)、boa、 busybox和其他的应用程序。 天嵌科技 广州天嵌计算机科技有限公司 地址:广东省广州市天河区五山路141号尚德大厦A2004室邮编:510000 电话:020-38921445(销售)020-22106679(技术支持) 传真:02038921445 E-mail:support(@embedskynet官方网站http:/hwww.embedsky.ne或http://bbs.embedsky.net 注意2:当您要切换不同的交叉编译器时,请先修改“ 'etc/profile”文件,将您要用的交叉编译器罗列到前 面讲的红色部分内容,然后将不需要用的交叉编译器的前面加上“#”号屏蔽掉;然后再使用# source etc/profile命令使其生效,如果不能即时生效,建议重启PC的 Linux环境 比如:要改用34.5的编译器,就修改“/ ctc/profile”文件为如下内容,然后执行# ource /ctc/profilo命 令生效 f Path manipulation ifid -u=0 then pathmunge /sbin pathmungc /usr/sbin pathmunge /usr/local/sbin pathmunge /opt/EmbedSky/crosstools 3.4.5 softfloat/gcc-3.4.5-glibc-236/ arm-linux/bin pathmunge /opt/EmbedSky/4.3.3/bin 约定8 本于册中为了兼顾26.258和2630.4,所以在于册中对于两者移植不一样的地方都单独进行说明了的, 对于没有说明的地方,那就表示方法是一样的,可能行数不一样,您可以更加实际情况进行修改。这里特 意说明。 约定9 对于己经习惯使用3.4.5的交叉编译器的客户,在配冒内核时需要修改一个配置选项即可,然后使用 34.5的编译器编译出来内核在启动时挂载的文件系统也需要使用345的编译器编译出来的 busybox和ib 等文件才行,否则是不能正常启动,这部分可以参考第版移植手册。 下面列出需要修改的配置选项(使用3.4.5的编译器不要选择下面红色韶分,4.3.3的编译器需要选择 红色部分的选项) Kernel Features Use the ARM EABI to compile the kernel Allow old ABI binaries to run with this kernel (EXPERIMENTAL 约定10 本手册中讲到的要修改或添加的源码或文件请直接从TQ2440提供的移植好的Liux内核镜像中的对 应位置提取或复制获取 本手册中到的应用程序的源码请直接从天嵌科技提供的光盘的“Limx资源几imux源码包 apps. tar. bz.2”压缩包获取,也可以从天嵌科技的论坛获取: htt:/ bbs. embedskv net/viewthread. php?tid=630&exta=page%3Dl。可能光盘和论坛中的这个 apps. tar. bz2源 码包的名称为:apps20091208ar:bz2(其中20091208就是生成该压缩包的日期,这个以发布日期为准) 天嵌科技 广州天嵌计算机科技有限公司 地址:广东省广州市天河区五山路141号尚德大厦A2004室邮编:510000 电话:020-38921445(销售)020-22106679(技术支持) 传真:02038921445 E-mail:support(@embedskynet官方网站http:/hwww.embedsky.ne或http://bbs.embedsky.net 更新暨更正内容列表 更新 在Sep8中添加了64MB、128MB和256MB~1GB的 Nand flash的分区的的选项,不同的选项对应 不同的分区,方便扩展 Nand flash用。 更新2 在13.5节中的第一段“这里可以直接从2613的文件系统里面复制对应的文件过来,首先复制26.13 的文件系统的“/etc”目录下面的“ rc. d/init. d/netd",“ ftpchroot"、“ ftpusers”、“ inetd.conf”和“ servers”文 件到新的文件系统的“/et”目录下,”中的 servers有误,应该为: services,特此更 更新3 修改了ya文件系统移植部分的代码,因为本于册提供的下载连接获取的ar的代码变化了,导致 很多客广根据本手朋的步骤实现不了yafi文件系统的移植,所以,这里修改了yaf移植部分的内容,并 且重新提供了下载连接 更新4 对文件系统制作部分进行更新,主更是对ib目录下的内容进行更新,添加了如何向开发板添加自己 制作的应用程序的方法(这个方法其实在手册里面已经讲解了,这里单独用·个章节来特意说眀)。 更新5 新增了目前最新的(2009年7月30日)刚刚发布的最新的Lmux2.6304的内核的移植方法(主要讲 解几个关键的移植点) 更新6 更新了文件系统中的库函数,因为更新了交叉编译(目前使用的是最新版本的支持FAB技术的433 的编译器)。 更新7 增加∫个名为、“植经验浅谈”的章节,介绍了分析过程和移植时的一些注意事项,希望各位看 官在阅读本手册的正文前和阅读正文后都看一下该章节,相信会让悠有收获的。 更新8 增加了—个名为:“自己的交叉编译器”的章节,介绍了如何获取最新的交叉编译器,以及如何将其 变成适合自己的编译器 更新9 新增了附录1到附录3,分别讲解天嵌科技提供的测试程序的使用、Web服务器的移植以及使用、嵌 入式数据库 SQlite的移植等。 更新10 天嵌科技 广州天嵌计算机科技有限公司 地址:广东省广州市天河区五山路141号尚德大厦A2004室邮编:510000 电话:020-38921445(销售)020-22106679(技术支持) 传真:02038921445 E-mail:support(@embedskynet官方网站http:/hwww.embedsky.ne或http://bbs.embedsky.net 修改了2.6.258内核声卡移植部分的配置选项,完美解决了播放音频时断断续续的情况。 更新11 修改了2.6.304内核的 Nand flash的配置选项(8.2和9.3节),解决2.6.30.4内核在 Nand flash为256MB 或更大容量时使用 reboot命令重启后ya文件系统丢失的情况或者其他操作导致文件系统丢失的情况。 更新12 在约定8中新増对3.45的编汘器的说明,方便习惯使用3.4.5的编译器的老客 更新13 在制作文件系统时的 Stepl1的112中漏掉了讲解 inittab和rcS文件的属性,特此更正;应该将这两个 文件的属性设定为可执行文件,或者是属性为777 更新14 在Step4中的修改吋钟中,出现笔误,将“mach- smdk24.c”文件误写为“mach-s3c2440.c”文件, 特此更正。 更新15 h于使用了EAB433的编译器之后,使用了 qtopia2.20的Qt界面了,手册中在 Stepl6的16.5中 也相应的修改使用 atopia-2.2.0,同时添加了 tslib部分的配置 更新16 在DM9000网卡移植部分,因为笔误将2.6.25.8的內核移植写成了2.6.30.4的移植,特此更止 更新17 添加了自动挂载U盘和SD卡的功能,实现代码在11.2节的mdev.conf文件中。 更新18 在135节新增了USB无线网卡的驱动移植和使用方法。 更新19 在5节新增对EAB和其它配置单的设置的说明内容 更新20 新增C总线驱动移植以及测试的章节(Step21) 更新21 新增附录4用于说明IQ240提供的配套光盘中的 apps.tai:bz2源码包的使用方法。 更新22 新增附录5列出了TQ2440配套的2.6.304的置单,对于不熟悉配置选项的客户可以参考该置单 进行配置,对于手册正文中未训到的配置选项请参考附录5。

...展开详情
img
cadden

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源