当前位置: 首页 > news >正文

【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修改磁盘空间检查目录到挂载路径在这里插入图片描述
http://www.lryc.cn/news/165118.html

相关文章:

  • ATFX汇市:离岸人民币大幅升值,昨日盘中跌破7.3关口
  • Spring Boot 配置 Knife4j
  • Java项目中遇到uv坐标如何转换成经纬度坐标
  • std : : unordered_map 、 std : : unordered_set
  • Python解释器和Pycharm的傻瓜式安装部署
  • 14 Python使用网络
  • AI ChatGPT 各大开放平台一览 大模型 Prompt
  • 全球汽车安全气囊芯片总体规模分析
  • USB适配器应用芯片 国产GP232RL软硬件兼容替代FT232RL DPU02直接替代CP2102
  • 卫星物联网生态建设全面加速,如何抓住机遇?
  • SAP GUI 8.0 SMARTFORMS 使用SCR LEGACY TEXT EDITOR GUI8.00 禁用MSWORD
  • 【SpringMVC】JSR303与拦截器的使用
  • Qt案例-编译阿里云OSS对象存储C++ SDK源码,并进行简单下载,上传数据,显示进度等相关功能
  • JAVA异常输出到控制台
  • html5学习笔记23-vue 简略学习,未完
  • 【Fiddler】mac m1 机器上使用 fiddler 抓取接口
  • Swift如何使用Vision来识别获取图片中的文字(OCR),通过SwiftUI视图和终端命令行,以及一系列注意事项
  • c++ 学习 之 常函数 和 常对象
  • LLM - 批量加载 dataset 并合并
  • Debian 初始化命令备忘
  • 二维矩阵的DFS算法框架
  • pytest实现日志按用例输出到指定文件中
  • 程序员面试逻辑题
  • 自动创建设备节点udev机制实现
  • 目标检测YOLO实战应用案例100讲-基于小样本学习和空间约束的濒危动物目标检测
  • 苹果数据恢复软件:Omni Recover Mac
  • 树回归CART
  • zemax色差与消色差
  • 成绩定级脚本(Python)
  • 骨传导耳机的危害有哪些?会损害听力吗?