基础是你已经安装了Ubuntu,以及相关软件:超级终端minicom 及C/C++ compiler environment。 在Ubuntu上可使用下面终端命令安装 minicoom和编译环境。
#sudo apt-get install minicom #sudo apt-get install build-eential
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 ” 前面 有 一 个 “ .” ,修 改 最 后 一 行 为
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin 注意路径一定要写对,否则将不会有效。 如图,保存退出。
重新登录系统(不必重启机器,开始->logout即可),使以上设置生效,在命令行输入arm-linux-gcc –v,会出现如下信息,这说明交叉编译环境已经成功安装。
2 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
3 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在板子上运行。
6
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文件
未完待续…
7 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到目录 #
3.编辑部署文件,config.xml
该文件位于 demos/embedded/fluidlauncher目录下
#
修改后的文件如下:
sudo cp input.txt test /usr/local/Trolltech/QtEmbedded-4.7.0-arm/demos/wudang/fshy sudo gedit /usr/local/Trolltech/QtEmbedded-4.7.0-arm/demos/embedded/fluidlauncher/config.xml 8 filename=\"../../../examples/painting/concentriccircles/concentriccircles\" name=\"Concentric Circles\" image=\"screenshots/concentriccircles.png\"/> filename=\"../../../examples/widgets/wiggly/wiggly\" name=\"Wiggly Text\" image=\"screenshots/wiggly.png\"/> filename=\"../../wudang/fshy/test\" name=\"String Searching\" image=\"screenshots/wudang.jpg\" args=\"-small-screen\"/> filename=\"../../pathstroke/pathstroke\" name=\"Path Stroking\" image=\"screenshots/pathstroke.png\" args=\"-small-screen\"/> filename=\"../../deform/deform\" name=\"Vector Deformation\" image=\"screenshots/deform.png\" args=\"-small-screen\"/> filename=\"../styledemo/styledemo\" name=\"Stylesheets\" image=\"screenshots/styledemo.png\"/>
注意:
1)需要根据应用程序,准备一张Logo图片,其大小需要符合要求,格式可以是jpg或者png等,例如 wudang.jpg 2) 将其copy到demos/embedded/fluidlauncher/screenshots
9 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 /
10
6.在目标机上启动 Start Qt4.7.0 可以看到我们应用程序的logo,点击该图标即可启动我们的应用程序。
Step 8: 如何支持交叉调试 未完待续…
基于网络来部署和控制目标机器
1)以太网络设置
在子类“友善之臂”程序中,点“网络设置”图标打开相应的界面,进行常见的网络参数设置:
点“Save”按钮可以保存以上参数,并马上生效,重新启动开发板也可以保留此次的更改设定,与该设置程序相对应的参数文件为/etc/eth0-setting。
2)如何使用 Telnet 登录开发板 网卡的 MAC 地址
– 此地址由驱动程序通过软件设定,是可以修改的 DNS解析服务器IP – 出厂缺省为 192.168.1.1,和网关地址相同 网关
– 出厂缺省为 192.168.1.1 子网掩码
– 出厂缺省为 255.255.255.0 静态的 IP 地址
– 出厂缺省为 192.168.1.230 11
开发板开机正常运行后,其实已经启动了一个 Telnet 服务,因此用户也可以通过网络远程登录开发板。
在宿主机的终端窗口输入 # telnet 192.168.1.230
以root用户登录目标机系统 (不需要密码) # root
Others: sudo nautilus