很久没有更新vivado+zedboard系列的博客了。前面的十篇博客主要介绍了Xilinx vivado工具的使用流程,vivado+zedboard裸机开发的方法以及部分Xilinx官网的实例。后面准备开始写一些关于vivado+zedboard+Linux嵌入式系统开发的,还是“入门篇”的形式以帮助初学者迅速上手。
分享一些个人在学习的时候关于这部分的参考资料,后续可能会提到。
参考资料
zedboard官网的ctt教程:快速入门
digilent官网的oob教程:快速入门
懒兔子、超群天晴的博客:后续会重实现懒兔子的博客;感谢作者
AD公司关于HDMI显示的部分
d9的博客
本篇的主要目的在于搭建vivado+zedboard+Linux的开发环境,为后续的各种编译做准备。
由于在学习过程中各种版本的问题,加上后期PR需要2014.2以上版本,所以先对windows下的vivado进行了升级。
Windows 7-64环境搭建
安装vivado2014.4;
安装zedboard驱动(需更新两次)
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
安装虚拟机VMware 9;
安装Ubuntu 14.04-64
Ubuntu 14.04-64(虚拟机)
1. 更新;apt-get update
2. 安装VMware tools、设置共享、剪贴板共享(确保勾选guest isolation);
(1) 在右键菜单加入“打开终端”
sudo apt-get install nautilus-open-terminal
安装完以后重新启动,就可以了。
(2) 安装VMware tools:
VMware选择install VMwaretools
解压光盘, sudo su 获取root权限
在 ./vmware-install.pl 安装VMwareTools打开终端
./vmware-install.pl 安装VMwareTools
一路enter,出现enjoy即可
如果提示路径失败等问题,可以:
更新或安装linux headers
sudo apt-get update && sudo apt-get install build-essential linux-headers-$(uname -r)
关联文件,就是因为找不到这个几个文件,vmware tools才认为路径无效的。
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
再次执行安装就ok啦,运行vmware-config-tools.pl 也没问题了
sudo ./vmware-install.pl
(3) 设置共享
安装完VMware tools之后,通过setting->share folder添加主机的共享文件夹,然后再/mnt/hgfs/ 中可以找到
3. 网络
(1) 自动Wired Connection 1,选择NAT形式时选用,也是默认模式,可通过宿主机连外网;
(2) 内网Inner:ip是172.20.68.95,用于局域网通信、调试等,选择bridge模式
(3) 查看/修改 网络
ifconfig
sudo ifconfig eth1 192.168.100.95 //修改ip
sudo ifconfig eth up/down //开关网卡
4. 安装ssh服务,见ubuntu下如何安装使用SSH?
bridge模式下选择inner,可通过SecureCRT等进行远程访问。
5. 安装git (可选)
(1) 首先去上注册帐号
(2) 本机安装git. sudo apt-get install git
(3) 给本机注册SSH,请移步https://help.github.com/articles/generating-ssh-keys,注册SSH后就默认可以在本机上传代码之类,不用在输入用户名密码…
(4) 配置Git的配置文件,username和email
git config --global user.name "your name" //配置用户名
git config --global user.email "your email" //配置email
6. 安装arm-xilinx-liunx交叉编译环境
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,几经尝试,使用如下方法:
在用的架构: 输出当前的使用的架构,比如amd64
dpkg –print-architecture
添加架构,添加i386架构,然后刷新下源列表,当然,删除就是remove
dpkg –add-architecture i386
apt-get update
这时就已经包含i386的软件列表
安装i386软件
apt-get install iceweasel:i386
(2) 交叉编译环境
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
至此已经搭建完毕。
vi ./.bashrc
7. 安装Qt Linux
安装Qt creator,可在软件中心中找,会自动下载Qt的新版本(包括Qt-lib);也可去官网下载
自行编译任意版本的方法:
下载Qt-lib源码包,此处以qt-everywhere-opensource-src-4.7.3.tar.gz为例
注意前面两步是可选的。因为后续我们建立的Qt-ZYNQ库也是这个源码包。
添加中文支持:
缺少fontconfig造成的,于是重新configure:
问题又来了,configure未通过,提示Fontconfig未通过,于是进入/config.tests/x11/fontconfig目录,执行make,发现缺少freetype相关的头文件,首先保证freetype开发库已经安装:
sudo apt-get install libfreetype6-dev
安装后发现freetype头文件没在标准路径,于是
ln -s /usr/include/freetype2/freetype/ /usr/include/freetype
再次在这里make,还是出错,发现缺少fontconfig开发库,于是
sudo apt-get install libfontconfig1-dev
添加相关库:
如果出现: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)出现:”cannot find -lXrender”
出现:“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) 打包:创建img
1. 在linux安装qt集成开发环境
apt-get installqtcreator
或者从软件中心中进行安装
可能需要:
按照懒兔子的博客的步骤,新建项目没有成功,提示的不能创建文件夹,意识到可能是权限的问题,于是在/usr/bin下 在终端里./qtcreator ,可以新建项目,说明真的是权限的问题,于是
chmod 777 -R /usr/bin //qt的安装目录
chmod 777 -R /opt/qtproject //qt项目的保存目录
2. 在wiki中安装相应的zynq-qt库(参考wiki.xilinx.com/QtandQwtBaseLibraries-BuildInstructions)
新建环境变量
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 //临时的,关闭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 //暂时没发现用处
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肯定是不够用了,要根据需要扩大镜像的容量,否则在拷贝内容的时候会报错。
为ZYNQ创建文件镜像
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目录中的内容拷贝过来
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. 当前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
默认的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
小结
至此呢,vivado+zedboard+Linux的环境是全部搭建起来了。在这个过程中有些是不必要的,核心的就是arm-xilinx-linux交叉编译环境、Qt-ZYNQ库,后者如果不做图形界面的话也用不着。我这里为了方便初学者,尽可能的把自己认为可以简化后续操作的工具列出来了。
评论
查看更多