Zybo Board 开发记录: Xilinx SDK 在 Linux 的一些注意事项

本文转载自:coldnew's blog
在使用 xilinx 的开发环境 vivado 2016.1 有遇到一些问题,特别纪录之。
安装 vivado 在其他的 linux 平台
vivado 安装程序在非官方支持的 linux 平台上可能会导致安装出问题,以我的 gentoo linux 为例,我必须把解压出的 xsetup 安装脚本里面的这部分修改掉,不然会在 64bit 并具有 32bit 函式库的 gentoo linux 下安装失败。
# error out if this installation is running on 32 bit os
# and does not support 32 bit installation
if [ $(uname -i) != x86_64 ]; then
# check that the 32 bit library directory exist or not
lnx32libdir=${workingdir}/lib/lnx32.o
if [ ! -d $lnx32libdir ]; then
# terminate with an error
echo error: this installation is not supported on 32 bit platforms.
exit 1 # <----- note: just remove this line if your linux is 64-bit system
fi
fi
让 linux 辨识 usb uart
如果你接上 usb 到 zybo board 的 usb uart 接脚,却没在你的 linux 上面看到任何 /dev/ttyusb* 被建立的话,那就是你少装了一些 udev rule,这边的说明可以在 vivado design suite user guide 找到,简单的说….
假设你的 vivado 安装在 /opt/xilinx/vivado/2016.1 的话,我们可以透过以下程序来安装 udev 设定。
/opt/xilinx/vivado/2016.1/data/xicom/cable_drivers/lin64/install_script/install_drivers/install_digilent.sh
hidpi 环境下的 vivado 问题
我是在 macbook pro 2015 上直接安装 gentoo linux 来执行 vivado, 因此会遇到显示出来的 vivado 程序因为 dpi 设定的问题,导致画面太小,像这样
这问题的元凶是 oracle jdk 使用 java swing 时,在 linux 上并未支持 hidpi 分辨率,导致出现的画面太小,这问题 据说会修正在 jdk 9 上,目前我们只能用一些临时解 (workround)来处理这状况,或是将 vivado 窗口移动到分辨率没那样好的外接屏幕上也可以。
针对 hidpi 下,我采用的另外一种解决方案是使用 vncdesk 来协助我们透过 vnc 协议对特定的程序进行窗口的缩放功能,该程序会在背景启动一个 vnc 服务器,然后在根据我们的设定启动我们需要的程序,接着呼叫 vnc client 并进行画面缩放来达到我们的要求。
在 gentoo linux 上,你可以透过我写好的 ebuild 来安装 vncdesk
coldnew@gentoo ~ $ sudo emerge app-misc/vncdesk
另外要注意到的是,vncdesk 只支持 python 3.x,因此你也需要将系统的 python 版本切换到 3.x 系列,这边我将它切换到 python 3.4 去。
coldnew@gentoo ~ $ sudo eselect python list
available python interpreters, in order of preference:
[1] python2.7
[2] python3.4
[3] python3.5 (fallback)
coldnew@gentoo ~ $ sudo eselect python set 2
完成后,接下来我们要建立一些配置文件案,我们首先先建立 ~/.vncdesk 文件夹
coldnew@gentoo ~ $ mkdir -p ~/.vncdesk
假设我们要使用 display=:21 来作为 vivado 显示用的位置的话,我们要建立 ~/.vncdesk/21 这样的文件夹
coldnew@gentoo ~ $ mkdir -p ~/.vncdesk/21
而在 ~/.vncdesk/21 则要再建立以下两个档案
coldnew@gentoo ~/vncdesk/21 $ tree .
.
├── settings.ini
└── startup
0 directories, 2 files
我们先来看 settings.ini 这个档案,这是 vncdesk 最主要的设定,里面包含了你要建立的窗口名称、大小以及缩放度
[desktop]
width = 1280
height = 800
[window]
title = xilinx vivado
name = vivado in vncdesk
class = figinvncdesk
scale_factor = 1.8
接下来则是我们执行程序用的脚本 startup ,记得这个档案需要加上执行权限,在这份档案中,我们先设定几个环境变量,接着由于可能会有多窗口的需求,因此启用 openbox 1 作为窗口管理程序,最后则是启动 vivado 这只程序。
注意到 export swt_gtk3=0 这个设定,待会会解释它到底会有啥影响,总之先照着设定就是了。
#!/bin/sh
export lc_all=c
export swt_gtk3=0 # fix annoying error on xilinx sdk
# make java application look more nice
_silent_java_options=-dawt.usesystemaafontsettings=on -dsun.java2d.xrender=true -dswing.aatext=true
unset _java_options
alias java='java $_silent_java_options'
# start window manager
openbox &
# source vivado env before launch
export target_dir=/opt/xilinx/vivado/2016.1
source $target_dir/settings64.sh
# launch vivado
cd /tmp
exec $target_dir/bin/vivado
这两个设定都建立好以后,我们就可以用以下命令去执行画面有缩放过的 vivado 程序
coldnew@gentoo ~ $ vncdesk 21
显示的画面会变成这样,在 hidpi 的环境下也就清楚多了
一定要设定 export swt_gtk3=0
在上面我们说了要设定 swt_gtk3=0 ,如果不设定的话,很容易出现问题,以我遇到的状况来讲,我在 xilinx sdk 想要建立 zynq boot image,但是窗口却不会给我弹出来,如果你设定了 swt_gtk3=0 后在启动 xilinx sdk,这问题就不见啰 = =|||

大家都在用的一种轴承室磨损修复技术
新型的铁塔基站“能源管家”
CW32L083串口中断+定时器实现不定长数据接收
电动汽车采用轮毂电机驱动技术原因
CC2640R2:如何利使用芯片内部Bootloader烧写程序
Zybo Board 开发记录: Xilinx SDK 在 Linux 的一些注意事项
夏天防晒单品好选择,遮阳帽品牌排行榜了解下
以AT90CAN32单片机为控制核心的智能充电设备控制系统设计
华天科技董事长肖胜利增持公司股份 巩固实际控制权地位
百度地图与百度智能交通携手打造“智能空间城市解决方案”
美国断供华为 三星是否渔翁得利
华为nova4e值不值得买
日本正在开发VR味觉设备 既能过嘴瘾又不用担心身体
Imagination推出IMG CXM最小GPU,为家庭娱乐带来无比便捷的用户界面
为保住美国领先地位,英特尔等芯片制造商将获得美政府250亿美元补贴
交流接触器和直流接触器的区别在哪
基于VxWorks嵌入式实时操作系统ARM9核芯片中实现BSP的定制过程
滴滴的自动驾驶汽车的王牌技术首次公开
Neuranics利用TMR效应来检测人体器官pT级的微小磁信号
全新宝马X1 xDrive25Li上手体验评测