EasyARM-i.MX283A 开发环境配置笔记
准备开发环境所需的文件:
已上传网盘,自行下载
链接:https://pan.baidu.com/s/1C3SB3UR5Yfn8huMj5kP7GA
提取码:gy1y
一、创建虚拟机
使用:ubuntu-12.04-desktop-i386.iso
链接:https://pan.baidu.com/s/1fVtGD74s7-raClCYlmS87g
提取码:3622
选择网络桥接模式 4G
Ctrl + alt + T 打开终端
sudo apt-get update 升级安装包相关的命令,刷新可安装的软件列表(但是不做任何实际的安装动作)
sudo apt-get upgrade: 进行安装包的更新(软件版本的升级)
二、安装交叉编译器
(一)解压
复制 arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 到虚拟机
解压 tar xjvf arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
(二)配置
1.修改 全局配置文件
sudo vi /etc/profile
sudo vi/root/.bashrc
2个文件都在末尾添加 export PATH=$PATH:/home/ttmk/form_windows/arm-2011.03/bin/
按ESC退出编辑
输入 :wq 回车 保存并退出
输入“. /etc/profile”(点+空格+文件名),执行 profile 文件,使刚才的改动生效
2.安装32位兼容库
若此时还不能使用,需要安装32位兼容库
输入 sudo apt-get install ia32-libs
三、NFS服务器
(一)安装NFS软件包
vmuser@Linux-host ~$ sudo apt-get install nfs-kernel-server #安装 NFS 服务器端
vmuser@Linux-host ~$ sudo apt-get install nfs-common #安装 NFS 客户端
(二)添加 NFS 共享 目录
1.配置
sudo vi /etc/exports
末尾添加
/nfsroot *(rw,sync,no_root_squash)
2.新建文件夹
根目录下
sudo mkdir /nfsroot
sudo chmod -R 777 /nfsroot
sudo chown –R nobody /nfsroot
3.启动NFS服务
sudo /etc/init.d/nfs-kernel-server start
(三)固定IP地址
ubuntu中的设置内找到network打开。
(四)创建根文件目录
rootfs_imx28x.tar.bz2 复制到虚拟机
sudo cp /home/ttmk/form_windows/rootfs_imx28x.tar.bz2 /nfsroot/
cd /nfsroot
sudo tar xjvf rootfs_imx28x.tar.bz2
(五)开发板使用虚拟机根文件系统启动
1. u-boot 内按空格停止启动内核
2.修改 U-boot 的 bootargs 环境变量
,该变量保存了内核的启动参数。设置内核 NFS 启动
的参数一般格式为:
setenv bootargs root=/dev/nfs rw console= ( c o n s o l e c f g ) n f s r o o t = (consolecfg) nfsroot= (consolecfg)nfsroot=(serverip): ( r o o t p a t h ) i p = (rootpath) ip= (rootpath)ip=(ipaddr): ( s e r v e r i p ) : (serverip): (serverip):(gatewayip): ( n e t m a s k ) : (netmask): (netmask):(hostname)::off
根据上面的配置,我们的开发板设置为:
setenv bootargs ‘root=/dev/nfs rw console=ttyAM0,115200n8 nfsroot=192.168.31.206:/nfsroot/
rootfs ip=192.168.31.205:192.168.31.206:192.168.31.1:255.255.255.0:ttmk:eth0:off mem=64M’
3.保存配置重启
(六)恢复为本地启动
四、安装 tslib1.4
(一)准备工作
$ sudo apt-get install autoconf
$ sudo apt-get install automake
$ sudo apt-get install libtool
(二)解压/安装
tar -zxvf tslib-1.4.tar.gz
$ cd tslib
$ ./autogen.sh
$./configure --prefix=/home/ttmk/myapp/tslib --host=arm-none-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes
(–prefix 指定安装路径,用户可以自行指定 tslib 的安装目录。
–host 指定交叉编译器,如果交叉编译器是 arm-none-linux-guneabi-gcc,则指定
arm-none-linux-guneabi。)
make
make install
(三)配置
安装成功后在指定的安装目录下出现四个文件夹
vi ts.conf
然后去掉第二行的注释
(四)移植到开发板
cp -r /home/ttmk/myapp/tslib /nfsroot/rootfs/usr/local/tslib
(五)设置开发板环境
修改开发板根目录的 /etc/profile
末尾加入
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE= T S L I B R O O T / e t c / t s . c o n f e x p o r t T S L I B P L U G I N D I R = TSLIB_ROOT/etc/ts.conf export TSLIB_PLUGINDIR= TSLIBROOT/etc/ts.confexportTSLIBPLUGINDIR=TSLIB_ROOT/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export QWS_MOUSE_PROTO=/dev/input/event0
export LD_LIBRARY_PATH= L D L I B R A R Y P A T H : LD_LIBRARY_PATH: LDLIBRARYPATH:TSLIB_ROOT/lib
(六)测试校准
开发板下运行
cd /usr/local/tslib/bin
#./ts_calibrate
五、编译QT
(一)解压QT安装包
tar -zxvf qt-everywhere-opensource-src-4.7.3.tar.gz
(二)安装G++
apt-get install g++
(三)编译QT
1.创建build-qt.sh
#!/bin/sh
./configure -prefix /home/ttmk/myapp/qt-4.7.3-arm -opensource -confirm-license -release -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -no-qt3support -depths 16,18,24,32 -no-qvfb -no-svg -no-cups -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-openssl -shared -no-largefile -no-accessibility -no-xrender -no-webkit -no-gtkstyle -nomake examples -nomake doce -nomake demos -plugin-mouse-pc -plugin-mouse-tslib -little-endian -plugin-mouse-linuxtp -fast -lrt -qt-mouse-tslib -D QT_NO_QWS_CURSOR -D QT_QWS_CLIENTBLIT -I /home/ttmk/myapp/tslib/include -L /home/ttmk/myapp/tslib/lib
2.运行build-qt.sh
chmod 777 build-qt.sh
./build-qt.sh
(
如果出现如下错误,
The tslib functionality test failed!
You might need to modify the include and library search paths by editingQMAKE_INCDIR and QMAKE_LIBDIR in/work/nfs_root/qt-everywhere-opensource-src-4.7.0/mkspecs/qws/linux-arm-g++
可能是arm-none-linux-gnueabi-gcc没有找到 ,检查环境变量是否正确
)
3.make
时间比较久
若出现错误:
`swpb %al,%r13b,[%rbx]’
build-qt.sh中 arm改成armv7
如果出现错误:
usr/bin/ld: cannot find -lxx
输入以下命令安装库来解决
apt-get install libxx-dev
其中xx可以被替换为其他字符
详细解决方法请参考博文(https://blog.csdn.net/lyc_daniel/article/details/11149123)解决
4.make install
安装完成后,在安装目录下出现qt-4.7.3-arm ,
在qt-4.7.3-arm/lib下file libQtCore.so.4.7.3 如果是intel80386平台的,则说明安装出错,可能是make错误后又重新make导致的,建议删除整个解压包重头开始安装。
如果是ARM的则没问题。
在开发板新建usr/local/qt-4.7.3-arm目录, 将lib 和 plugins移植到开发板usr/local/qt-4.7.3-arm中
修改开发板的etc/profile文件
在末尾添加
export QTDIR=/usr/local/qt-4.7.3-arm
export LD_LIBRARY_PATH= Q T D I R / l i b : QTDIR/lib: QTDIR/lib:QTDIR/plugins/imageformats: L D L I B R A R Y P A T H e x p o r t Q T P L U G I N P A T H = LD_LIBRARY_PATH export QT_PLUGIN_PATH= LDLIBRARYPATHexportQTPLUGINPATH=QTDIR/plugins /* 指定 Qt 插件路径 /
export QT_QWS_FONTDIR=$QTDIR/lib/fonts / 指定 Qt 字体路径 */
六、安装QT SDK
(一)安装
sudo apt-get install qt-sdk
(二)配置
虚拟机下修改 ~/.bashrc 文件 ,末尾添加
alias qmake-arm=/home/ttmk/myapp/qt-4.7.3-arm/bin/qmake
然后执行 source ~/.bashrc , 使修改生效
(三)测试
使用
$ qmake-qt4 -v
$ qmake-arm -v
测试qmake是否配置正常
七、使用Qt Creator
略
八、QT ARM编译测试
(一)用Qt Creator建立工程,项目在虚拟机测试完成后,提取工程文件出来
(二)使用qmake-arm 来编译工程
如果在make的时候出现 /usr/bin/ld: cannot find -lQtCore
那么很有可能你的qt-4.7.3-arm编译的有问题,用file 命令检查编译出来的库是否是ARM的
(三)移植到开发板运行
将编译出来的可执行文件,cp到开发板
在开发板上运行
export QWS_MOUSE_PROTO=tslib:/dev/input/event0指定鼠标设备
再运行cat /dev/input/event0 | hexdump ,点击屏幕,测试鼠标设备,看看串口是否有数据输出
按CTRL+Z 停止测试
输入指令 ./hello -qws 运行程序。-qws 指明这个 Qt 程序同时作为一个窗口服务器运行,在目标板上启动的第一个 Qt 程序应使用此参数启动。
启动后开发板如图所示