DragonBoard 410C移植支持OpenGL的Qt环境教程

首先介绍一下我的开发环境:

物理机:windows 10 64位;
虚拟器:Virtualbox 5.20;
虚拟机:Ubuntu 16.04 64位;
开发板:DragonBoard 410C 【内核 4.9.34-linaro-lt-qcom】

[Host PC] = 表示在自己主机的Ubuntu系统中操作
[DragonBoard] = 表示在DragonBoard 410c开发板上操作

配置DragonBoard 410c开发板

第1步:更新到最新的软件包。

需要灵活地将 “4.9.34” 替换为你自己410c的内核版本。
sudo apt-mark hold linux-image-4.9.34-linaro-lt-qcom
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y

第2步:安装QT相关的依赖
sudo apt-get build-dep -y qt4-x11
sudo apt-get build-dep -y libqt5gui5
sudo apt-get install -y libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0
sudo mkdir /usr/local/qt5dragon
sudo chown linaro:linaro /usr/local/qt5dragon

说明:libts-dev没找到;第一次build-dep -y libqt5gui5 没成功,原因是要安装的Gstreamer相关库版本跟当前系统已安装的版本有冲突。我apt-get remove --purge gstreamer*后解决,然后再sudo apt-get build-dep -y libqt5gui5 即OK。

配置Host PC

第1步:[Host PC]创建工作路径
在自己Ubuntu的home路径下创建 "linaro"路径
mkdir linaro
cd linaro

第2步:[Host PC]建立 sysroot,存放410c板子上的一系列文件
[Host PC]在linaro路径下建立sysroot目录,然后从DragonBoard 410c里提取 /lib 、/usr路径下的文件到Host PC . 需灵活替换DragonBoard’s IP address.

mkdir sysroot sysroot/usr
rsync -avz linaro@192.168.31.103:/lib sysroot
rsync -avz linaro@192.168.31.103:/usr/include sysroot/usr
rsync -avz linaro@192.168.31.103:/usr/lib sysroot/usr

补充:debian下查询ip地址方式如下:
nmcli con show
nmcli dev show “DEVICE-Name”

第3步:[Host PC]建立 Sysroot的symlinks,使 sysroot 中的符号链接是相对的。通过下面链接中的脚本配置:

chmod +x sysroot-relativelinks.py
sudo ./sysroot-relativelinks.py sysroot

第4步:[Host PC]下载交叉编译工具链

wget https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
tar -xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

第5步:[Host PC]下载你想用的QT源码,并配置模块【我下载的是qt-everywhere-opensource-src-5.7.0.tar.xz】
git clone https://code.qt.io/qt/qt5.git
cd qt5
./init-repository -f --module-subset=default,-qtwebkit,-qtwebkit-examples,-qtwebengine

第6步:[Host PC]自定义 mkspec
Qt 使用设备 "mkspecs " 配置 qmake 到自己的硬件。DragonBoard 没有内置的 mkspec, 所以我们必须自己做。mkspec 定义了要使用的编译器, 在哪里可以找到 OpenGL 和 EGL 图形库等。
下面我提供了一个 mkspec实例,做了与 DragonBoard相关 的工作。首先,在qt-everywhere-opensource-src-5.7.0/qtbase/mkspecs/路径下创建linux-dragonboard:
mkdir linux-dragonboard/
cd linux-dragonboard

在"linux-dragonboard" 路径下创建 “qmake.conf” :
nano qmake.conf

在qmake.conf中填充如下内容:
# qmake configuration for the Dragonboard 410C
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
include(…/common/linux_device_pre.conf)
SYSROOT = /home/eric/SelfCompile/linaro/sysroot #需替换为自己前面创建的sysroot路径
LIB_PATH = S Y S R O O T / u s r / l i b / a a r c h 64 − l i n u x − g n u Q M A K E L F L A G S + = − f u s e − l d = g o l d Q M A K E L F L A G S + = − W l , − r p a t h − l i n k , {SYSROOT}/usr/lib/aarch64-linux-gnu QMAKE_LFLAGS+=-fuse-ld=gold QMAKE_LFLAGS += -Wl,-rpath-link, SYSROOT/us

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值