EasyARM-i.MX283A 开发环境配置笔记

EasyARM-i.MX283A 开发环境配置笔记

准备开发环境所需的文件:
EasyARM-i.MX283A 开发环境配置笔记_第1张图片
已上传网盘,自行下载
链接: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打开。
EasyARM-i.MX283A 开发环境配置笔记_第2张图片

(四)创建根文件目录

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.保存配置重启

EasyARM-i.MX283A 开发环境配置笔记_第3张图片

(六)恢复为本地启动

EasyARM-i.MX283A 开发环境配置笔记_第4张图片

四、安装 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

(三)配置

安装成功后在指定的安装目录下出现四个文件夹
EasyARM-i.MX283A 开发环境配置笔记_第5张图片

vi ts.conf
然后去掉第二行的注释
EasyARM-i.MX283A 开发环境配置笔记_第6张图片

(四)移植到开发板

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 editing

    QMAKE_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 程序应使用此参数启动。

启动后开发板如图所示
EasyARM-i.MX283A 开发环境配置笔记_第7张图片

你可能感兴趣的:(Linux笔记)