【Linux】Qt Remote之Remote开发环境搭建填坑小记

总体思路

基于WSL2(Ubuntu 22.04 LTS)+原子Alpha开发板进行Qt开发实验,基于Win11通过vscode remote到WSL2,再基于WSL2通过Qt 交叉编译,并通过ssh+rsync远程到开发板,构建起开发工具链。

Step1 基于Win11通过Vscode Remote 得到WSL2虚拟机

参考此博客,已经非常详细了:WSL2 Ubuntu安装Qt(包括QtCreator) 但是遇到了WSL2启动qt得到的Xming窗口无法放大的问题,有待解决。作为此博客的补充:

  1. WSL2才能在win11环境cmd中查询到Xming所需的server IP,WSL不行
  2. 卸载WSL再安装WSL2时有些报错需要解决:
    • WslRegisterDistribution failed with error: 0x800701bc,需要使用该工具 内核更新工具更新内核
    • WslRegisterDistribution failed with error 0x80370102,需要开启内核虚拟化选项 参考此连接

Step2 基于WSL2,通过ssh+rsync远程到开发板

开发板使用出厂环境:
QMake version 3.1
Using Qt version 5.12.9 in /usr/lib
root@ATK-IMX6U:~# cat /etc/version
2.4

参考文档【正点原子】I.MX6U 出厂系统 Qt 交叉编译环境搭建 V1.6中的2.3~2.5章节配置Kits。此外,如本文Step1所述,本文所使用的WSL2虚拟机和所采用的QtCreator工具均为最新版本,开发板亦有过其他配置,与文档不一致,因此额外过遇到如下问题:

  1. usb wifi不稳定:
    • 解决方式:删除原有的usb wifi配置脚本,删除bashrc中的初始化过程,通过ifconfig usb0 downfconfig eth0 up 命令将usb wifi 切换为网线连接
  2. qtcreator无法连接开发板,报Unable to negotiate with **** port 22: no matching host key type found. Their offer: ssh-rsa
    • 定位发现,WSL2的shell也无法通过命令ssh root@10.173.168.3登录开发板,报相同的错,由此可知是开发板的ssh版本过低,加密技术已被WSL2侧禁用。因此,采用此处传送门 的方式,强制WSL2侧支持ssh-rsa加密方式,重启WSL2 shell和qtcreator,得以解决。
  3. 开发板空间不足,导致qtcreator远程run报目标设备可用空间不足
    • 通过开发板卡槽mount sd卡到文件系统解决存储问题。修改/etc/fstab文件如下(不知道codepage怎么写可以先手动挂载mount /dev/mmcblk0p1 /home/root/sd后,通过mount命令查看;此外,fmaskdmask字段决定文件夹权限):
      /dev/mmcblk0p1 /home/root/sd vfat rw,nosuid,fmask=0000,dmask=0000,codepage=437 0 0
    • 通过.pro文件指定目标可执行文件路径target.path += /home/rootINSTALLS += target
    • 在project修改磁盘空间检查目录到挂载路径
相关推荐
wljy17 小时前
二、进制状态转换
linux·运维·服务器·c语言·c++
week@eight7 小时前
Linux - Doris
linux·运维·数据库·mysql
平行云7 小时前
实时云渲染预启动技术解析:UE数字孪生应用的延迟优化机制(二)
linux·unity·ue5·webgl·实时云渲染·云桌面·像素流
看到代码头都是大的7 小时前
CentOS环境下手动升级openssl、openssh
linux·运维·centos
浮生若城7 小时前
Linux——Ext系列文件系统
linux·运维·服务器
枳实-叶8 小时前
【Linux驱动开发】第16天:按键中断完整实战
linux·运维·驱动开发
杨云龙UP9 小时前
Oracle Recycle Bin 回收站详解:DROP TABLE 后还能找回吗?
linux·运维·数据库·sql·mysql·oracle
又熟了11 小时前
乌班图Ubuntu安装
linux·运维·ubuntu
一然明月11 小时前
qt基本用法
开发语言·qt
Cat_Rocky11 小时前
Linux-ansible之Playbook简单应用
linux·网络·ansible