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=(serverip):(ipaddr):(gatewayip):(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=TSLIB_ROOT/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export QWS_MOUSE_PROTO=/dev/input/event0
export LD_LIBRARY_PATH=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=QTDIR/plugins/imageformats: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 程序應使用此參數啓動。
啓動後開發板如圖所示