http://blog.csdn.net/licheng1224/article/details/8022650
开发板提供的环境:虚拟机VMware+Linux系统Fedora10,我的开发环境是UBUNTU10.10主机+Oracle VM VirtualBox虚拟XP,所以视频的虚拟机安装和Fedora10安装可以跳过
1.交叉编译器的安装
1.为了和视频保持同步,我在Ubuntu下创建了/mnt/hgfs/linux/目录,然后将需要的资源都放到该目录下,交叉编译器是TQ自带的EABI-4.3.3_EmbedSky_20100610.tar.bz2
2. #tar jxvf EABI-4.3.3_EmbedSky_20100610.tar.bz2 -C /;使用该命令将交叉编译器解压到/opt/EmbedSky/目录下,/opt/Embedky目录是解压后自动生成的,不是用mkdir命令建立的目录。然后在/opt/Embedky/目录下会生成4.3.3目录和crosstools_3.4.5_softfloat目录,其中4.3.3是4.3.3版本的交叉编译器,3.4.5就是3.4.5版本的交叉编译器了,/usr/local/sbin/目录下会为我们生成制作yaffs文件系统的工具mkyaffs2image。/opt/Embedky/是TQ2440管理源码的总目录
3.然后就是修改环境变量,教程上提示是修改/etc/profile文件以对所有的用户均有效,而~/.profile是仅对当前用户有效,可是我在~.profile中修改后之后发现没有其作用,于是我就修改了~/.bashrc文件,经source .bashrc之后,发现修改后有效,一下是在.bashrc文件的最后一行所添加的信息:
export PATH="/opt/EmbedSky/4.3.3/bin:$PATH"
#export PATH="/opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin:$PATH"
当我们用4.3.3的编译器的时候就把第二行注释了,当我们用3.4.5的编译器时就把第一行注释了。
4.然后就在终端下运行$source .bashrc,使刚才的修改立即生效,然后我们使用$arm-linux-gcc -v 就可以查看我们的编译器版本了,使用$mkyaffs,然后双击tab键盘就可以查看生成的制作文件系统的工具了。到这里我们就把TQ自带的交叉编译器完整安装到自己机器上了
下一步工作:这里的交叉编译器是天嵌公司帮我们制作的,但如果我们想定制自己的交叉编译器,又该怎么做的,网上有很多教程,下一步就是要实现自己的交叉编译器的制作。
2.编译uboot
1.首先把要用到的uboot源码u-boot-1.1.6_20100601.tar.bz2复制到/mnt/ghfs/linux/目录下,然后利用$tar jxvf u-boot-1.1.6_20100601.tar.bz2 -C /命令解压到/opt/EmbedSky/目录下
2.然后$cd uboot进入到uboot的源码目录
3.然后就是利用$make EmbedSky_config配置文件进行uboot配置,其中EmbedSky_config是在uboot目录下Makefile文件中的一个单独配置文件
4.$make 命令就可以生成相应的uboot.bin文件了
5.打开include/configs/EmbedSky.h文件,主要的配置选项都在该文件下
下一步工作:弄动uboot的原理,尽量理解uboot更多内容,以后碰见任意的处理器都可以自己解决。
3.linux内核编译
1.将linux-2.6.30.4_20100531.tar.bz2复制到/mnt/hgfs/linux目录下
2.$tar linux-2.6.30.4_20100531.tar.bz2 -C /将linux源码解压到/opt/EmbedSky/目录下,
3.进入到linxu的源码目录,调用TQ已经为我们做好的配置单(不同的屏调用不同的配置单)
4.复制制作好的配置单为系统编译时所需要的.config配置单。$cp -f config_EmbedSky_W43_256M .config
5. $make menuconfig 进入配置单进行配置
6.配置完成之后$make zImage即可生成相应的内核文件
7.编译内核内的驱动模块(配置内核选项为M的项)$make modules
补充:修改内核的开机logo
1.首先准备一张符合屏的bwp图片,如果是W35的屏就选320*240的bmp位图,如果是W43的屏幕,就选择480*272的bmp
2.视频为选择的TQ_LOGO_320_240.bmp位图,24位色。
3.将准备好的位图复制到内核的driver/video/logo/目录下
4.对bmp格式的图片进行处理,以使linux系统能够识别,这里是修改成PPM格式的,修改工具为ubuntu主机自带的GNU Image Manipulation Programer
5.选择Image-》Mode-》indexed,将256色改为224色-》convert-》Save As为ppm格式的文件-》save-》ASCII-》SAVE
6。将自己的图片替换自带的开机图片,然后重新$make zImage。
下一步就是要弄懂kernel的各项功能,摆脱对TQ的依赖,配置自己的.config
4.编译BusyBox
1. 首先将busybox-1.16.0.tar.bz2复制到/mnt/ghfs/linux/目录下
2. 进入到/opt/EmbedSky/下$tar jxvf busybox-1.16.0.tar.bz2 -C /解压到/opt/EmbedSky/目录下,
3。进入busybox源码$cd busybox-1.16.0
4.使用$make menuconfig对busybox进行配置,导入TQ自带的配置单,把.config修改为config_EmbedSky
5.对修改的config_EmbedSky进行保存,保存为编译busybox时所能识别的.config文件
6。$make就可以编译成busybox了.
7.输入$make install安装刚刚编译的busybox,安装后会在busybox源码目录下生成一个_install目录,安装后的busybox就在该目录下
安装busybox后会在_install目录下生成/bin,/sbin,/usr,linuxrc三个文件夹和一个文件
8。在/opt/EmbedSky/目录下新建一个文件夹,用于制作跟文件系统,
9.将利用busybox生成的三个文件夹和一个文件复制到根文件系统目录下,以生成跟文件系统的工具
5.linux应用程序编译教程
1.将应用程序apps_20100601.tar.bz2复制到/mnt/hgfs/linux/目录下
2.$tar jxvf apps_20100601.tar.bz2 -C /解压到/opt/EmbedSky/下
3.cd /opt/EmbedSky/apps/目录下就可以编译应用程序了
4.编译无线网卡的工具集例子:
5.cd /wireless_.../
6.$make clean 清除编译产生的文件
7.rm -rf _install/ 清除编译产生的目标文件
8.$make 命令编译应用程序
9.$make install命令安装刚刚编译好的应用程序
10.在——install目录下会产生该应用程序的include ,lib,man,sbin文件夹,
11.将sbin/目录下所有文件复制到利用busybox建立的文件系统中/sbin目录下,如果应用程序产生的/lib/目录下存在*.o的库文件,把该 库文件一并复制到利用busybox建立的跟文件系统的/lib/目录下,将头文件复制到文件系统的include/目录下
5.编译buttons的例子
1.cd /Buttons/目录下
2.$make clean清除编译产生的文件
3.$make 编译应用程序6.QT_4.5编译教程
1.复制qt-embedded-linux-opensource-src-4.5.0_20100601.tar.bz2到/mnt/hgfs/linux/目录下
2,$tar qt-embedded-linux-opensource-src-4.5.0_20100601.tar.bz2 -C /解压到/mnt/EmbedSky/目录下
3.$cd qt-4.5/目录下
4.编译TQ2440用的是qt4.5的版本的库
5. $./arm-qt4.5_build编译TQ2440的qt
6.编译号的qt4.5的库,字库在/opt/EmbedSky/qt-4.5/_install/arm/lib/目录下
7.安装qt_creater工具
8./mnt/hgfs/linux/qt-creator-linux-x86-opensource-1.3.0.bin