当前位置: 首页 > 工具软件 > Mac-On-Linux > 使用案例 >

Ubuntu安装 arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz交叉编译环境

谭曦
2023-12-01


基础是你已经安装了Ubuntu,以及相关软件:

超级终端minicom 及C/C++ compiler environment。 

在Ubuntu上可使用下面终端命令安装 minicoom和编译环境。



#sudo apt-get install minicom
#sudo apt-get install build-essential 


Step 1:


将光盘 Linux 目录中的 arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz 复制到 Lubuntu的当前目录下,执行解压命令:
#sudo tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz –C /
注意:C 后面有个空格,并且 C 是大写的,它是英文单词“Change”的第一个字母,在此是改变目录的意思。


这样 arm-linux-gcc 的相关文件就Copy到root用户的Opt目录中




Step 2:


把编译器路径加入系统环境变量,运行命令
#sudo gedit ~/.bashrc
编 辑 ~/.bashrc 文 件, 注 意 “ bashrc ” 前面 有 一 个 “ . ”,修 改 最 后 一 行 为 exportPATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin注意路径一定要写对,否则将不会有效。
如图,保存退出。注意一定是~/.bashrc,而非/root/.bashrc


重新登录系统(不必重启机器,开始->logout即可),使以上设置生效,在命令行输入arm-linux-gcc –v,会出现如下信息,这说明交叉编译环境已经成功安装。
Step 3:
编译链接 arm-qte-4.7.0

1) 解压包到自己制定的目录,例如 arm-qte-4.7.0
2) 终端中运行 ./build-all  
    (首先,注意不能双击运行,必须在终端中运行;其次,不使用 sudo)
大约要安装2个小时


    当运行到出现如下提示后:


cd src/tools/bootstrap/ && make -f Makefile install
make[1]: 正在进入目录 `/home/administrator/arm-qte-4.7.0/qt-everywhere-opensource-src-4.7.0/src/tools/bootstrap'
make[1]: 没有什么可以做的为 `install'。
make[1]:正在离开目录 `/home/administrator/arm-qte-4.7.0/qt-everywhere-opensource-src-4.7.0/src/tools/bootstrap'
cd src/tools/moc/ && make -f Makefile install
make[1]: 正在进入目录 `/home/administrator/arm-qte-4.7.0/qt-everywhere-opensource-src-4.7.0/src/tools/moc'
mkdir: 无法创建目录 “/usr/local/Trolltech”: 权限不够
make[1]: *** [install_target] 错误 1
make[1]:正在离开目录 `/home/administrator/arm-qte-4.7.0/qt-everywhere-opensource-src-4.7.0/src/tools/moc'
make: *** [sub-moc-install_subtargets-ordered] 错误 2
./build-all: 第 12 行: cd: /usr/local/Trolltech/QtEmbedded-4.7.0-arm: 没有那个文件或目录


在终端中运行: 
cd  qt-everywhere-opensource-src-4.7.0
sudo make install


加入环境变量(步骤类似Step2,在最后一行再加入)
#sudo gedit ~/.bashrc
export PATH=$PATH: /usr/local/Trolltech/QtEmbedded-4.7.0-arm/bin


Step 4: 


下载和安装 Qt SDK for Open Source C++ development on Linux/X11 32-bit - Offline Installer 
(已经上传到我们的共享目录中)


On Linux/Unix, you need to make the file executable in order to run it. You can either do this with your desktop's file manager or, at the command line, type:


在终端中运行:
    chmod u+x Qt_SDK_Lin32_offline_v1_1_2_en.run


You should now be able to execute the file as normal. You can do this from the command line by typing:


在终端中运行:
    ./Qt_SDK_Lin32_offline_v1_1_2_en.run


随即进行图形化的Qt_SDK的安装(自己定制全安装),其包含了 creator,designer等等。




Step 5: 
   配置QT Creator以支持开发和在desktop和arm上程序的发布。
在打开的QT Creator进入tools -> options,在Qt4下加入支持ARM的qmake命令的路径,如图:
 
然后要将交叉编译的工具链加入到Tool Chains,如下图:
 
以后新建项目QT Creator时会自动包含对ARM的编译选项。


如果对ARM的编译失败,可以打开Projects,选择ARM的选项,展开build environment,检查PATH一项中是否有/usr/local/Trolltech/QtEmbedded-4.7.0-arm/bin,没有则加入;注意分隔用冒号。
 


检查编译后的文件(例如HelloARM)是否在ARM上运行的方法:
#file HelloARM
显示出带有ARM的信息即可。
 


将该文件拷贝到SD卡中可以通过minicom在板子上运行。


Step 6: 
配置超级终端以及通过超级终端调试
在终端输入minicom –s
配置端口号为ttyS0,Hardware Flow Control改为No;然后退出(不是退出minicom);minicom初始化后显示root命令行即成功。
如果不成功端口号改为ttyS1重试。
要保存配置,用sudo minicom进入进行配置。
要用minicom的指令退出,强行关闭终端会让端口无法释放。
 


通过minicom运行在SD卡上的程序步骤:
#cd sdcard
#./HelloARM –qws&
可以在板子上看到运行结果。


(目前存在的问题,无法进行输入和交互. ) maybe
1) 需要配置目标机的环境
2) 需要准备一个sh文件
未完待续…




Step 7: 
部署到arm上直接运行


基本原理是:修改宿主机上arm 版本的 QtE-4.7.0,然后部署到目标机(arm板)上。


宿主机上QtE-4.7.0的目录是: /usr/local/Trolltech/QtEmbedded-4.7.0-arm


假设 
1) 我们编译的arm应用程序位于当前用户的 Fshy_Arm_Build目录, 其包括两个文件:input.txt 和 test
2) 我们已经在 QtE-4.7.0的demos目录中建立了应用程序的目录wudang/fshy


1.  进入我们的程序的输出目录: 
#   cd Fshy_Arm_Build 
2. 将input.txt 和 test 文件copy到目录  
# sudo cp input.txt test /usr/local/Trolltech/QtEmbedded-4.7.0-arm/demos/wudang/fshy


3. 编辑部署文件,config.xml


   该文件位于 demos/embedded/fluidlauncher目录下


# sudo gedit /usr/local/Trolltech/QtEmbedded-4.7.0-arm/demos/embedded/fluidlauncher/config.xml


    修改后的文件如下:


<demolauncher> 
  <demos> 
    <example filename="../embeddedsvgviewer/embeddedsvgviewer" name="SVG Viewer" image="screenshots/embeddedsvgviewer.png" args="../embeddedsvgviewer/shapes.svg"/> 
    <example filename="../styledemo/styledemo" name="Stylesheets" image="screenshots/styledemo.png"/> 
    <example filename="../../deform/deform" name="Vector Deformation" image="screenshots/deform.png" args="-small-screen"/> 
    <example filename="../../pathstroke/pathstroke" name="Path Stroking" image="screenshots/pathstroke.png" args="-small-screen"/> 
    <example filename="../../wudang/fshy/test" name="String Searching" image="screenshots/wudang.jpg" args="-small-screen"/> 
    <example filename="../../../examples/widgets/wiggly/wiggly" name="Wiggly Text" image="screenshots/wiggly.png"/> 
    <example filename="../../../examples/painting/concentriccircles/concentriccircles" name="Concentric Circles" image="screenshots/concentriccircles.png"/> 
  </demos> 
  <slideshow timeout="60000" interval="10000"> 
    <imagedir dir="slides"/> 
  </slideshow> 
</demolauncher>


    注意: 
    1)需要根据应用程序,准备一张Logo图片,其大小需要符合要求,格式可以是jpg或者png等,例如 wudang.jpg
     2) 将其copy到demos/embedded/fluidlauncher/screenshots


4. 回到本用户的根目录,修改 mktarget 文件,并打包。 
#   cd ~ #   cd arm-qte-4.7.0 #   gedit mktarget


在文件中添加需要打包的文件: 


usr/local/Trolltech/QtEmbedded-4.7.0-arm/demos/wudang/fshy/test 
usr/local/Trolltech/QtEmbedded-4.7.0-arm/demos/wudang/fshy/input.txt 
usr/local/Trolltech/QtEmbedded-4.7.0-arm/demos/embedded/fluidlauncher/screenshots/wudang.png 
EOF `
tar cfvz $TARGET_DIR/target-qte-4.7.0.tgz  $list


关闭文件并保存,运行mktarge


#   sudo ./mktarget


查看包文件target-qte-4.7.0.tgz中你所期望的文件是否已经都有。


Ok的话,将该文件拷贝到SD卡中。




5. 使用串口进行部署


  清除目标机(arm板)上原有的
 #    rm -r /usr/local/Trolltech 
   解压SD卡中的到目标机
 #    tar xvzf /sdcard/target-qte-4.7.0.tgz -C /   6.  在目标机上启动 Start Qt4.7.0
     可以看到我们应用程序的logo,点击该图标即可启动我们的应用程序。




Step 8:
如何支持交叉调试
未完待续…




基于网络来部署和控制目标机器


1)以太网络设置 
   在子类“友善之臂”程序中,点“网络设置”图标打开相应的界面,进行常见的网络参数设置: 
静态的 IP 地址 – 出厂缺省为 192.168.1.230 
子网掩码 – 出厂缺省为 255.255.255.0 
网关 – 出厂缺省为 192.168.1.1 
DNS解析服务器IP – 出厂缺省为 192.168.1.1,和网关地址相同 
网卡的 MAC 地址 – 此地址由驱动程序通过软件设定,是可以修改的 
   点“Save”按钮可以保存以上参数,并马上生效,重新启动开发板也可以保留此次的更改设定,与该设置程序相对应的参数文件为/etc/eth0-setting。 
2)如何使用 Telnet 登录开发板 
   开发板开机正常运行后,其实已经启动了一个 Telnet 服务,因此用户也可以通过网络远程登录开发板。 
   在宿主机的终端窗口输入
#   telnet 192.168.1.230


   以root用户登录目标机系统 (不需要密码)
#   root


 


Others:
sudo nautilus 



 类似资料: