很久沒有更新vivado+zedboard系列的博客了。前面的十篇博客主要介紹了Xilinx vivado工具的使用流程,vivado+zedboard裸機(jī)開發(fā)的方法以及部分Xilinx官網(wǎng)的實(shí)例。后面準(zhǔn)備開始寫一些關(guān)于vivado+zedboard+Linux嵌入式系統(tǒng)開發(fā)的,還是“入門篇”的形式以幫助初學(xué)者迅速上手。
分享一些個人在學(xué)習(xí)的時候關(guān)于這部分的參考資料,后續(xù)可能會提到。
參考資料
zedboard官網(wǎng)的ctt教程:快速入門
digilent官網(wǎng)的oob教程:快速入門
懶兔子、超群天晴的博客:后續(xù)會重實(shí)現(xiàn)懶兔子的博客;感謝作者
AD公司關(guān)于HDMI顯示的部分
d9的博客
本篇的主要目的在于搭建vivado+zedboard+Linux的開發(fā)環(huán)境,為后續(xù)的各種編譯做準(zhǔn)備。
由于在學(xué)習(xí)過程中各種版本的問題,加上后期PR需要2014.2以上版本,所以先對windows下的vivado進(jìn)行了升級。
Windows 7-64環(huán)境搭建
安裝vivado2014.4;
安裝zedboard驅(qū)動(需更新兩次)
Qt Windows:
IDE:Qt Creator 3.1.2;
Compiler:mingw-gcc4.8.1;mingw-gcc4.4.0
Lib:Qt5.3.1 ;Qt5.3.1-static;Qt4.7.3;
安裝SecureCRT 5.0
安裝虛擬機(jī)VMware 9;
安裝Ubuntu 14.04-64
Ubuntu 14.04-64(虛擬機(jī))
1. 更新;apt-get update
2. 安裝VMware tools、設(shè)置共享、剪貼板共享(確保勾選guest isolation);
(1) 在右鍵菜單加入“打開終端”
sudo apt-get install nautilus-open-terminal
安裝完以后重新啟動,就可以了。
(2) 安裝VMware tools:
VMware選擇install VMwaretools
解壓光盤, sudo su 獲取root權(quán)限
在 ./vmware-install.pl 安裝VMwareTools打開終端
./vmware-install.pl 安裝VMwareTools
一路enter,出現(xiàn)enjoy即可
如果提示路徑失敗等問題,可以:
更新或安裝linux headers
sudo apt-get update && sudo apt-get install build-essential linux-headers-$(uname -r)
關(guān)聯(lián)文件,就是因為找不到這個幾個文件,vmware tools才認(rèn)為路徑無效的。
cd /lib/modules/$(uname -r)/build/include/linux
sudo ln -s ../generated/utsrelease.h
sudo ln -s ../generated/autoconf.h
sudo ln -s ../generated/uapi/linux/version.h
再次執(zhí)行安裝就ok啦,運(yùn)行vmware-config-tools.pl 也沒問題了
sudo ./vmware-install.pl
(3) 設(shè)置共享
安裝完VMware tools之后,通過setting->share folder添加主機(jī)的共享文件夾,然后再/mnt/hgfs/ 中可以找到
3. 網(wǎng)絡(luò)
(1) 自動Wired Connection 1,選擇NAT形式時選用,也是默認(rèn)模式,可通過宿主機(jī)連外網(wǎng);
(2) 內(nèi)網(wǎng)Inner:ip是172.20.68.95,用于局域網(wǎng)通信、調(diào)試等,選擇bridge模式
(3) 查看/修改 網(wǎng)絡(luò)
ifconfig
sudo ifconfig eth1 192.168.100.95 //修改ip
sudo ifconfig eth up/down //開關(guān)網(wǎng)卡
4. 安裝ssh服務(wù),見ubuntu下如何安裝使用SSH?
bridge模式下選擇inner,可通過SecureCRT等進(jìn)行遠(yuǎn)程訪問。
5. 安裝git (可選)
(1) 首先去上注冊帳號
(2) 本機(jī)安裝git. sudo apt-get install git
(3) 給本機(jī)注冊SSH,請移步https://help.github.com/articles/generating-ssh-keys,注冊SSH后就默認(rèn)可以在本機(jī)上傳代碼之類,不用在輸入用戶名密碼…
(4) 配置Git的配置文件,username和email
git config --global user.name "your name" //配置用戶名
git config --global user.email "your email" //配置email
6. 安裝arm-xilinx-liunx交叉編譯環(huán)境
arm-xilinx-linux-gnueabi
注意64位的要添加32位的包。
gcc version 4.7.2 (Sourcery CodeBench Lite 2012.09-104)
(1) 32-bit兼容庫(可選)
sudo apt-get update
sudo apt-get install ia32-libs ia32-libs-gtk
對于Ubuntu14.04,幾經(jīng)嘗試,使用如下方法:
在用的架構(gòu): 輸出當(dāng)前的使用的架構(gòu),比如amd64
dpkg –print-architecture
添加架構(gòu),添加i386架構(gòu),然后刷新下源列表,當(dāng)然,刪除就是remove
dpkg –add-architecture i386
apt-get update
這時就已經(jīng)包含i386的軟件列表
安裝i386軟件
apt-get install iceweasel:i386
(2) 交叉編譯環(huán)境
cd ~
git clone https://github.com/xupsh/CodeSourcery.git //下載后可打包,以后解壓即可用;由于軟件比較大,不上傳了;
echo "export PATH=~/CodeSourcery/bin:$PATH" >> ~/.bashrc
echo "export CROSS_COMPILE=arm-xilinx-linux-gnueabi-" >> ~/.bashrc
驗證;由于是寫入用戶變量,需重新登錄或者重啟生效。
arm-xilinx-linux-gnueabi-gcc -v
至此已經(jīng)搭建完畢。
vi ./.bashrc
7. 安裝Qt Linux
安裝Qt creator,可在軟件中心中找,會自動下載Qt的新版本(包括Qt-lib);也可去官網(wǎng)下載
自行編譯任意版本的方法:
下載Qt-lib源碼包,此處以qt-everywhere-opensource-src-4.7.3.tar.gz為例
注意前面兩步是可選的。因為后續(xù)我們建立的Qt-ZYNQ庫也是這個源碼包。
添加中文支持:
缺少fontconfig造成的,于是重新configure:
問題又來了,configure未通過,提示Fontconfig未通過,于是進(jìn)入/config.tests/x11/fontconfig目錄,執(zhí)行make,發(fā)現(xiàn)缺少freetype相關(guān)的頭文件,首先保證freetype開發(fā)庫已經(jīng)安裝:
sudo apt-get install libfreetype6-dev
安裝后發(fā)現(xiàn)freetype頭文件沒在標(biāo)準(zhǔn)路徑,于是
ln -s /usr/include/freetype2/freetype/ /usr/include/freetype
再次在這里make,還是出錯,發(fā)現(xiàn)缺少fontconfig開發(fā)庫,于是
sudo apt-get install libfontconfig1-dev
添加相關(guān)庫:
如果出現(xiàn):You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /opt/qtx11/qt-everywhere-opensource-src-4.7.1/qt-everywhere-opensource-src-4.7.1/mkspecs/linux-g++.
需要安裝libX11的庫文件,依次安裝
sudo apt-get install libX11-dev
sudo apt-get install libXext-dev
sudo apt-get install libXtst-dev
若編譯時(webkit)出現(xiàn):”cannot find -lXrender”
出現(xiàn):“cannot find -lXrender” 需要安裝
sudo apt-get install libxrender-dev
編譯Qt源碼包
tar -xv*** qt-everywhere-opensource-src-4.7.3.tar.gz
cd qt-everywhere-opensource-src-4.7.3
./configure -fontconfig -prefix $INSTALL //自己先export INSTALL=安裝路徑
make //要等很久
make install
測試。做了一個例子,ok
8. 制作Qt-ZYNQ交叉編譯庫
(1) IDE:apt-get installqtcreator (Linux下Qt安裝參考Linux 下安裝Qt,最好先看,有些支持庫需要先行安裝,比如fontconfig)
(2) Qt庫:源碼包;配置替換qmake.conf;configure;C++庫;中文字庫
(3) 打包:創(chuàng)建img
1. 在linux安裝qt集成開發(fā)環(huán)境
apt-get installqtcreator
或者從軟件中心中進(jìn)行安裝
可能需要:
按照懶兔子的博客的步驟,新建項目沒有成功,提示的不能創(chuàng)建文件夾,意識到可能是權(quán)限的問題,于是在/usr/bin下 在終端里./qtcreator ,可以新建項目,說明真的是權(quán)限的問題,于是
chmod 777 -R /usr/bin //qt的安裝目錄
chmod 777 -R /opt/qtproject //qt項目的保存目錄
2. 在wiki中安裝相應(yīng)的zynq-qt庫(參考wiki.xilinx.com/QtandQwtBaseLibraries-BuildInstructions)
新建環(huán)境變量
bash> export ZYNQ_QT_BUILD=/home/zq/Program/Qt473-ZYNQ/build
bash> export ZYNQ_QT_INSTALL=/home/zq/Program/Qt473-ZYNQ/install
bash> export PATH=$ZYNQ_QT_INSTALL/bin:$PATH //臨時的,關(guān)閉terminal就無效了
下載Qt/Qwt sources archive; 解壓到ZYNQ_QT_BUILD目錄
bash> cp qt_build_src.tar $ZYNQ_QT_BUILD
bash> cd $ZYNQ_QT_BUILD
bash> tar xfv qt_build_src.tar
包括以下文件:
qt-everywhere-opensource-src-4.7.3.tar.gz – Qt source archive //這個可以使用上一步的源碼包,可以不用下載
qmake.conf – Qt qmake configuration file //這個最重要
qwt-6.0.1.tar.bz2 – Qwt source archive //暫時沒發(fā)現(xiàn)用處
qwtconfig.pri – Qwt qmake project include file
編譯qt:
bash> cd $ZYNQ_QT_BUILD
bash> tar x***v qt-everywhere-opensource-src-4.7.3.tar.gz //重新編譯的話,可以make distclean;最好重新解壓,
bash> cd qt-everywhere-opensource-src-4.7.3`
bash> cp $ZYNQ_QT_BUILD/qmake.conf mkspecs/qws/linux-arm-gnueabi-g++
bash> ./configure
-embedded arm
-xplatform qws/linux-arm-gnueabi-g++
-little-endian
-opensource
-host-little-endian
-confirm-license
-nomake demos
-nomake examples
-prefix $ZYNQ_QT_INSTALL
bash> make //很久
bash> su - #if you need root access to be able to install
bash> make install
安裝Qwt。需要切回su zq并且重新注冊變量
bash> cd $ZYNQ_QT_BUILD
bash> tar xjfv qwt-6.0.1.tar.bz2
bash> cd qwt-6.0.1
bash> cp $ZYNQ_QT_BUILD/qwtconfig.pri .
bash> qmake qwt.pro
bash> make
bash> su - #if you need root access to be able to install
bash> make install
添加C++庫
bash> export ZYNQ_QT_INSTALL=/home/zq/Program/Qt473-ZYNQ/install
bash> sudo cp -P /home/zq/Program/CodeSourcery/arm-xilinx-linux-gnueabi/libc/usr/lib/libstdc++.so*
$ZYNQ_QT_INSTALL/lib
添加中文字庫(可先制作eng版的鏡像再添加)
下載wenquanyi字庫文件(12-36號),copy到/install/lib/fonts/下(估計40M),然后再將install下的文件打包成鏡像就可以了。
因為這些字庫大概40M,所以在制作鏡像的時候80M肯定是不夠用了,要根據(jù)需要擴(kuò)大鏡像的容量,否則在拷貝內(nèi)容的時候會報錯。
為ZYNQ創(chuàng)建文件鏡像
bash> export ZYNQ_QT_BUILD=/home/zq/Program/Qt473-ZYNQ/build
bash> export ZYNQ_QT_INSTALL=/home/zq/Program/Qt473-ZYNQ/install
bash> cd $ZYNQ_QT_BUILD
bash> dd if=/dev/zero of=qt_lib.img bs=1M count=80
bash> mkfs.ext2 -F qt_lib.img
然后把qt_install目錄中的內(nèi)容拷貝過來
bash> su - #if you need root access to be able to install
bash> chmod go+w qt_lib.img
bash> mount qt_lib.img -o loop /mnt
bash> cp -rf $ZYNQ_QT_INSTALL/* /mnt
bash> chmod go-w qt_lib.img
bash> umount /mnt
9. 當(dāng)前Qt
IDE: Qt Creator 3.0.1
Compiler:gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
Lib: Qt 5.2.1;Qt4.7.3;
Lib-Qt-ZYNQ交叉編譯:4.7.3
默認(rèn)的qmake
root:QMake version 3.0;Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu
zq:QMake version 2.01a;Using Qt version 4.7.3 in /home/zq/Program/Qt473-ZYNQ/install/lib
小結(jié)
至此呢,vivado+zedboard+Linux的環(huán)境是全部搭建起來了。在這個過程中有些是不必要的,核心的就是arm-xilinx-linux交叉編譯環(huán)境、Qt-ZYNQ庫,后者如果不做圖形界面的話也用不著。我這里為了方便初學(xué)者,盡可能的把自己認(rèn)為可以簡化后續(xù)操作的工具列出來了。
評論
查看更多