下载https://download.qt.io/archive/qt/5.15/5.15.2/single/ qt-everywhere-src-5.15.2.tar.xz
https://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
交叉编译QT5的库,参考资料
野火论坛-交叉编译Qt库(Qt5)
构建sysroot
在主控板上安装rsync,首先确保主控板已经脸上基础的网络
# pull一下源
sudo apt update
# 安装rsync
sudo apt-get install rsync
# 安装ssh客户端
sudo apt-get install openssh-client
# 安装ssh服务端
sudo apt-get install openssh-server
sudo apt-get install \
libxcb1-dev \
libxcb-xinerama0-dev \
libxcb-icccm4-dev \
libxcb-image0-dev \
libxcb-keysyms1-dev \
libxcb-render-util0-dev \
libxcb-shape0-dev
sudo apt-get install -y libx11-dev freetds-dev libpq-dev libiodbc2-dev firebird-dev libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync1 libxcb-sync-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-dev libxi-dev libdrm-dev libxcb-xinerama0 libxcb-xinerama0-dev libatspi2.0-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxss-dev libxtst-dev libpci-dev libcap-dev libxrandr-dev libdirectfb-dev libaudio-dev libxkbcommon-x11-dev
sudo apt-get install -y libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools libunwind-dev
sudo apt-get install -y libfreetype6-dev libicu-dev libsqlite3-dev libasound2-dev libnss3-dev libxss-dev libxtst-dev libpci-dev libcap-dev libxrandr-dev libdirectfb-dev libaudio-dev libavcodec-dev libavformat-dev libswscale-dev libts-dev libfontconfig1-dev
sudo apt-get install -y libssl-dev libdbus-1-dev libegl1-mesa-dev libgbm-dev libgles2-mesa-dev libgles2-mesa rsyslog libjpeg-dev
sudo apt install \
libxcb1-dev:arm64 \
libxcb-xinerama0-dev:arm64 \
libxcb-icccm4-dev:arm64 \
libxcb-image0-dev:arm64 \
libxcb-keysyms1-dev:arm64 \
libxcb-render-util0-dev:arm64 \
libxcb-shape0-dev:arm64 \
libxcb-sync-dev:arm64 \
libxcb-xfixes0-dev:arm64 \
libxcb-xkb-dev:arm64 \
libxkbcommon-x11-dev:arm64 \
libegl1-mesa-dev:arm64 \
libgles2-mesa-dev:arm64
在虚拟机上安装rsync
sudo apt-get update
sudo apt-get install rsync
sudo apt-get install openssh-client
sudo apt-get install openssh-server
sudo apt-get install libclang-dev
sudo dnf install clang-devel
sudo apt install libssl-dev gperf pkg-config git bison ninja-build make build-essential libclang-dev libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libatspi2.0-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
建议提前固定好设备的IP,我这里使用路由器固定设备IP为192.168.50.112
将当前开发板上的文件系统同步到虚拟机rootfs_copy文件夹
- 在虚拟机上创建rootfs_copy文件夹
mkdir -p ~/WorkSpace/rootfs_copy
- 在虚拟机上创建~/.ssh/config 文件:
vim ~/.ssh/config
- 在主控板上允许虚拟机登录
# 通过其他用户登录(如 linaro)
ssh linaro@192.168.50.112
# 切换到 root(需要知道 root 密码)
su - root
# 编辑 SSH 配置文件
nano /etc/ssh/sshd_config
# 输入以下内容
PermitRootLogin yes # 允许 root 登录
PasswordAuthentication yes # 允许密码认证
# 保存后重启ssh服务
systemctl restart ssh
- 开始同步
sudo rsync -avx root@192.168.137.202:/ ~/WorkSpace/rootfs_copy
nfs挂载和rsync同步文件,有些软连接库是使用绝对路径,交叉编译Qt源码时会出错。我们可以使用symlinks修改绝对路径为相对路径,在虚拟机上使用安装命令:
sudo apt-get install symlinks
使用命 令:sudo symlinks -rc ~/WorkSpace/rootfs_copy
。
安装交叉编译工具链
编译QT5
auto.sh
#!/bin/sh
./configure \
-prefix /home/yoooola/WorkSpace/qt5-rk3566 \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-aarch64-gnu-g++ \
-pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-opengl es2 \
-eglfs \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-dbus \
-no-separate-debug-info \
其他组件安装
组件 | 所需包 | RK3566 特定要求 |
---|---|---|
OpenGL ES | libgles2 | Mali-G52 GPU 驱动 |
EGL | libegl | Rockchip 专用 EGL 实现 |
GBM | libgbm | KMS/DRM 支持 |
DRM | libdrm | 显示控制 |
OpenGL ES 2 安装
sudo apt-get update
sudo apt-get install gcc git bison python gperf pkg-config gdb-multiarch
sudo apt install build-essential
查看系统里是否存在opengl es 的库 - sudo find / -name '*mali*.so*' 2>/dev/null
我们这里发现是存在此库文件的
/usr/lib/aarch64-linux-gnu/perl/5.32.1/auto/Unicode/Normalize/Normalize.so
/usr/lib/aarch64-linux-gnu/rsyslog/mmnormalize.so
/usr/lib/aarch64-linux-gnu/libmali_hook.so.1.9.0
/usr/lib/aarch64-linux-gnu/libmali-bifrost-g52-g13p0-x11-gbm.so
/usr/lib/aarch64-linux-gnu/libmali.so.1.9.0
/usr/lib/aarch64-linux-gnu/libmali.so
/usr/lib/aarch64-linux-gnu/libmali.so.1
/usr/lib/aarch64-linux-gnu/libmali_hook.so
/usr/lib/aarch64-linux-gnu/libmali_hook.so.1