天天看点

TQ2440(W43)编译详解TQ2440(W43)编译详解  

http://blog.csdn.net/licheng1224/article/details/8022650

TQ2440(W43)编译详解  

开发板提供的环境:虚拟机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 编译应用程序

      4.将生成的可执行文件复制到跟文件系统的/sbin/目录下

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