(整理)友善之臂micro2440 ubuntu 8.04 嵌入式QT开发环境搭建(ubuntu 8.04、友善之臂、Micro2440、Qtopia)

摘要:

    友善之臂micro2440开发板的用户手册中介绍的是Fedora 9的开发环境,但本人不喜欢Fedora 9的图形界面,正好电脑里本身装有ubuntu 8.04,所以就不换了。ubuntu 和Fedora 9还是有一些区别,安装编译器和源码时和手册上有一些出入,特别是编译qtopia。这里做下笔记。

简介:

一、软件介绍

    虚拟机:VMwareWorkstation6.5正式版

    操作系统:Ubuntu8.04-desktop-i386.iso

    离线升级包及嵌入式环境包:Embest-EduKit系列嵌入式教学系统平台离线升级包(离线升级包脚本见附件)

    交叉编译器:arm-linux-gcc-4.3.2.tgz

    ARMLinux源码:Micro2440源码

二、步骤    

    step1:安装虚拟机和Ubuntu8.04

    首先安装好虚拟机,然后运行虚拟机,选择“文件->新建->虚拟机”,有标准安装和自定义安装可选,安装时要设置硬盘和磁盘分配的一些参数,我们选择自定义安装,设置处理器个数、内存大小和最大磁盘大小分别为2、1024MB、15GB。    

    step2:ubuntu环境配置

    1、允许root用户从首页登陆

    在linux开发环境下,通常都是在root权限下工作的,系统在装好后,默认是不能以root身份登陆的,root登陆权限和密码设置需要先进行设置:

    在ubuntu的标题栏选择"system -> 系统管理 -> 登陆窗口"弹出“login window preferences”窗体,选择"security"选项卡,选中"Allow local system administrator login"。即允许root从首页登陆。

    2、设置root密码  

    打开终端,输入以下命令:     
 
#sudo passwd root
 
 

     然后再按提示输入root密码,就完成了,可以输入 su来切换到root用户试试

   

    3、升级系统软件包

    这里可以在线升级,在线升级需要连接网线,这里我们选择离线升级包离线升级。

    新建一个目录用于存放离线升级包 

$ mkdir -p ~/eduk4-pack

    copy离线升级包至eduk4-pack下

打开update,运行E-pack-install-1.sh脚本更新系统软件包,E-pack-install-1.sh 主要是设置本地更新源,并开始更新系统,具体内容见附件。

cd ~/eduk4-pack/update
sudo sh E-pack-install-1.sh

安装完成后,系统会提示安装成功,需要重启系统。

再次启动系统后,开始安装中文语言包支持,选择"system->系统管理->Language Support",弹出"Language Support"窗口,选中"Supported Languages"中的"chinese",然后点击"OK"按钮。在接下来的弹出窗口提示输入用户密码,输入完成后,再接下来的弹出窗口提示是否安装这些文件包,选择"Apply",系统开始安装中文语言包。安装完成后,需要重启系统,并以root身份登陆,下面看到的则是中文的ubuntu界面。

    4、安装嵌入式环境资源包

    打开终端,运行E-pack-install-2.sh安装嵌入式环境资源包

cd ~/eduk4-pack/update
sudo sh E
-pack-install-2.sh

E-pack-install-2.sh脚本主要是用于安装嵌入式环境必备资源包,并包含了一些常用的软件,如ksnapshot、kscope、minicom、tftp、rar、stardict等,安装完成后重启系统。 E-pack-install-2.sh见附件。    

    Step3:虚拟机配制

    注意:虚拟机的配制必须在ubuntu关机的情况下进行

    1、添加串口

    通常在ubuntu下,需要通过minicom来与开发板通讯,因此需要在虚拟机下添加串口,否则将造成minicom不能使用。在 “虚拟机->设置”下,点击“添加”,选择“serial port”,在物理串行端口选择COM1,点“Finish”。

    

    这样在hardware中就可以看到它了

        

    2、设置好网络环境和windows共享

    如何设置可点击(原创)虚拟机下Ubuntu共享主机文件(Ubuntu)(VMware)(共享) 

    step4:常用软件的配置

    1、Linux终端的配置

    打开终端,选择“编辑 -> 当前配置文件”,弹出配置对话框,在常规选项卡中去掉“使用等宽字体”的勾,根据自已的喜好选择合适的字体。

    

   设置文本和背景颜色

 

    2、设置minicom

    为了能在Linux下使用minicom,需要对minicom进行设置,注意,在虚拟机下使用minicom必须要像step3那样在虚拟机里添加好了串口。

    在终端里输入命令建立minicom配制文件minirc.dfl   

$ sudo gedit /etc/minicom/minirc.dfl

    在弹出的minirc.dfl文件中编辑如下

 

# Machine-generated file - use "minicom -s" to change parameters.
pr port
/dev/ttyS0
pu baudrate
115200
pu bits
8
pu parity N
pu stopbits
1
pu minit
pu mreset
pu rtscts No
    其中pu port的选项根据用户电脑的实际情况设置,比如笔记本使用usb转串口的适配器,则为/dev/ttyUSB0。 

     step5:建立交叉编译环境

    1.安装开发环境,直接一个命令搞定:apt-get install build-essential,如果已经安装好,可以跳过这一步;

    2、将编译器 arm-linux-gcc-4.3.2.tgz 复制到某个目录下,如“\tmp”,然后进入到该目录   

 

#cd \tmp

#sudo tar
-zxvf arm-linux-gcc-4.3.2.tgz -C /

  (注意大写C字母后留一个空格,C是Change的意思,也就是改变目录至根目录进行解压缩操作)

    3.解压缩完成后,把编译器路径加入系统环境变量;
    执行命令:
  

 

#gedit /root/.bashrc


    打开文件后,在最后加上一行代码:export PATH=$PATH:/usr/local/arm/4.3.2/bin
    4.使变量立即生效,在终端执行:    

 

#source /root/.bashrc

    或者注销后重登录;
    5.输入命令:
  

 

#arm-linux-gcc –v

    可以测试一下,如果输出下面的相关信息,说明在Debian/Ubuntu下建立交叉编译环境成功。

 

    另:如果环境变量还加不上,试着改下面一个文件, 

 

#gedit ~/.profile

    最后一行加上export PATH=$PATH:/usr/local/arm/4.3.2/bin

    然后执行   

 

#source ~/.profile

    step6:安装源码

    新建一个目录,将源码全部解压到此。 

 

#mkdir -p /opt/FriendlyARM/mini2440
#cd /opt/FriendlyARM/mini2440

    代码安装完成后如下图:

  

    bootloader     : 开源的bootloader源码;

    vboot            : 友善制作的开源的bootloader源码,只有引导的功能;

    linux-2.6.32.2 : linux源码;

    arm-qtopia     : arm 平台的qtopia2.2源码及qt2开发工具,编译qtopia和qt2应用程序时需要用到里面的工具和源代码;

    x86-qtopia     : x86 平台的qtopia2.2源码及qt2开发工具,编译qtopia和qt2应用程序时需要用到里面的工具和源代码,和arm-qtopia用的是同一套源码,只是编译的脚本不一样,主要用于X86平台的仿真;

    busybox-1.13.3: 根文件系统制作源码;

    root-qtopia     : 友善制作好了的qtopia根文件系统,里面界面友善作了汉化,并添加了一些应用程序;

    examples        : linux下的应用程序。

    step7:配置网络文件系统NFS服务

    建立NFS服务,可以通过网络对外提供目录共享服务,这里我们主要是为了让主机和开发板共享,通常在开发阶段,主机制作的根文件系统需要在开发板上运行时,不需要每次都打包传输,可以让开发板通过网络来共享主机上的根文件系统来启动。同样的,应用程序也可以通过共享来运行或者是传输。

    1、安装软件: nfs-kernel-server,nfs-common,portmap,在终端里输入

#apt-get install nfs-kernel-server

    安装之后,检验这些服务是否可以正常启动,执行:

#sudo /etc/init.d/portmap start
#sudo
/etc/init.d/nfs-kernel-server start

    如果正常,则安装成功。

    2、设置共享目录,设置访问权限

    运行命令

#gedit /etc/exports

    编辑nfs 服务的配置文件(注意:第一次打开时该文件是空的),添加以下内容:

/opt/FriendlyARM/mini2440/root_qtopia *(rw,sync,no_root_squash)

    其中:/opt/FriendlyARM/mini2440/root_qtopia 表示nfs 共享目录,它可以作为开发板的根文件系统通过nfs 挂接;* 表示所有的客户机都可以挂接此目录rw 表示挂接此目录的客户机对该目录有读写的权力no_root_squash 表示允许挂接此目录的客户机享有该主机的root 身份。

    3、启动和停止NFS服务

#sudo /etc/init.d/nfs-kernel-server start

    启动nfs服务后,可以输入以下命令检验nfs是否真的启动

# mount -t nfs localhost:/opt/FriendlyARM/mini2440/root_qtopia /mnt/
    如果没有出错信息,在mnt下就应该可以看到和/opt/FriendlyARM/mini2440/root_qtopia一样的内容了。

    也可以在开发板的终端输入以下命令:(假设主机的ip地址为192.168.1.139)

 

#mount –t nfs –o nolock 192.168.1.139:/opt/FriendlyARM/mini2440/root_qtopia /mnt
    挂接成功后,在开发板的/mnt下就应该可以看到和主机/opt/FriendlyARM/mini2440/root_qtopia一样的内容了。

    取消挂接的命令如下:

 

#umount /mnt

    使用restart和stop可以重启和停止nfs服务,回到主机,在主机终端里输入

 

#sudo /etc/init.d/nfs-kernel-server restart
#sudo
/etc/init.d/nfs-kernel-server stop

   4、在micro2440开发板上通过NFS启动系统

    当NFS 服务设置好并启动后,我们就可以把NFS 作为根文件系统来启动开发板了。通过使用NFS 作为根文件系统,开发板的“硬盘”就可以变得很大,因为您使用的是主机的硬盘,这是使用Linux 作为开发经常使用的方法。

    设置目标板启动模式为Nor Flash 启动,连接好电源,串口线,网线;打开串口终端,在blos菜单里选择q,进入vivi 模式,输入以下命令:   

 

Supervivi> param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.139:/opt/FriendlyARM/mini2440/root_qtopia ip=192.168.1.230:192.168.1.139:192.168.1.139:255.255.255.0:sbc2440.arm9.net:eth0:off"

    其中 ,param set linux_cmd_line 是设置启动 linux 时的命令参数。其各参数的含义如下:nfsroot 是自己开发主机的IP 地址。“ip=”后面:第一项(192.168.1.230)是目标板的临时IP(注意不要和局域网内其他IP 冲突);第二项(192.168.1.139)是开发主机的IP;第三项(192.168.1.139)是目标板上网关(GW)的设置;第四项(255.255.255.0)是子网掩码;第五项是开发主机的名字(一般无关紧要,可随便填写)eth0 是网卡设备的名称。

    然后输入boot,按回车就可以通过nfs 启动系统了。

    

    step8:编译Qtopia

    编译Qtopia需要一些工具的库的支持,友善的qtopia源码包是在federo 9上面编译的,如果直接在ubuntu下编译会提示有很多的错误,需要安装一些工具包和库文件,尽管前面安装了嵌入式环境资源包,但仍然缺少libuuid.so*等动态库,因此在编译QT前需要先交叉编译e2fsprogs-1.39.tar.gz这个包,这样便可获得libuuid.so*,将它们拷到对应的qtopia-2.2.0的lib目录下,也可以直接拷到/usr/lib下。

    下载e2fsprogs-1.39.tar.gz这个包,放到/opt/FriendlyARM/mini2440目录  

 
#cd /opt/FriendlyARM/mini2440
#tar -zxvf e2fsprogs-1.39.tar.gz
#cd e2fsprogs
-1.39
#.
/configure
#make

    以上都正常完成,再拷贝/e2fsprogs-1.39/lib/libuuid.a到/usr/lib

   然后再输入

#cd e2fsprogs-1.39
#.
/configure --enable-elf-shlibs
#make
#cp
-rf lib/libuuid.so* /usr/lib

完成后就可以编译qt了

#cd x86-qtopia
#.
/build-all

 约一小时后,编译完成,然后再

#./run

 

    以上8步做完,linux QT开发环境就基本上搭起来了,接下来要做的就是配制,修改和编译源码来实现你的应用了。  

    E-pack-install.sh.rar

      

posted on 2011-02-22 18:47  liu_xf  阅读(4966)  评论(8编辑  收藏  举报

导航