【RP-RV1126】Ubuntu上配置Buildroot Qt 开发板远程开发调试环境(SSH)

news2024/12/28 22:37:11

文章目录

  • 一、前提
  • 二、基础设置建设
    • Buildroot编译Qt5
    • 配置SSH
    • Buildroot文件系统添加账号密码
    • 开发板联网
    • Buildroot文件系统构建时打开rsync功能
  • 三、QtCreator配置
    • 3.1 配置Qt交叉编译套件(Kits)
      • 配置Kits里面的交叉编译器
      • 配置Kits里面的qmake工具
      • 最后配置Kits
    • 3.2 配置远程部署设备
    • 3.3 如果配置设备失败

描述一个场景,在ubuntu上的qtcreator上编写了一个带UI的程序,点击左下角的运行,就可以在开发板上看到效果!

以下都是为了实现这个场景。

一、前提

  • Buildroot添加了qt5并且成功的编译出来了
  • Buildroot文件系统需要有ssh(默认有)
  • Buildroot文件系统需要有账号密码
  • 开发板需要联网,并且与Ubuntu虚拟机在同一个网段
  • Buildroot文件系统在构建的时候需要将rsync打开

我的RV1126的SDK上面有两个交叉编译器
sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf是用于编译上层应用的
sdk/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf是用于编译uboot和linux kernel的

需要的路径信息:

  • 交叉编译器之gcc的路径:/home/liefyuan/rv1126/rp_rv1126_sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
  • 交叉编译器之g++的路径:/home/liefyuan/rv1126/rp_rv1126_sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
  • Qt交叉编译器之qmake的路径:sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate/host/bin/qmake

二、基础设置建设

Buildroot编译Qt5

配置SSH

Buildroot 系统默认是支持 ssh 的,用户名是 root,密码是 rockchip。

Buildroot文件系统添加账号密码

首先对开发板进行上电,开发板正常启动后,使用命令“vi /etc/inittab”对文件进行修改,如下图所示:
在这里插入图片描述

# Startup the system
::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -o remount,rw /
::sysinit:/bin/mkdir -p /dev/pts
::sysinit:/bin/mkdir -p /dev/shm
::sysinit:/bin/mount -a 2>/dev/null
::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
#::respawn:-/bin/sh
::sysinit:/etc/init.d/rcS

# Put a getty on the serial port
ttyFIQ0::respawn:/sbin/getty -L  ttyFIQ0 0 vt100 # GENERIC_SERIAL

# Stuff to do for the 3-finger salute
#::ctrlaltdel:/sbin/reboot

# Stuff to do before rebooting
::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
  • 用户名是:root
  • 密码是:rockchip

开发板联网

插上网线,编辑文件vi /etc/init.d/rcS最后一行添加

udhcpc -i eth0

这样就可以使用DHCP动态分配IP地址了。

使用命令ifconfig查看以确保与虚拟机ubuntu在同一个网段。

Buildroot文件系统构建时打开rsync功能

在这里插入图片描述编译的时候出错了!

2023-04-21T01:05:46 gzip: /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/dl/popt-1.16.tar.gz: not in gzip format
2023-04-21T01:05:46 tar: This does not look like a tar archive
2023-04-21T01:05:46 tar: Exiting with failure status due to previous errors
2023-04-21T01:05:46 package/pkg-generic.mk:159: recipe for target '/home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate/build/popt-1.16/.stamp_extracted' failed
2023-04-21T01:05:46 make[1]: *** [/home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate/build/popt-1.16/.stamp_extracted] Error 2
2023-04-21T01:05:46 /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate/Makefile:16: recipe for target '_all' failed
2023-04-21T01:05:46 make: *** [_all] Error 2
2023-04-21T22:17:47 umask 0022 && make -C /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot O=/home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate
2023-04-21T22:17:53 /usr/bin/make -j1 O=/home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" silentoldconfig
2023-04-21T22:17:53 GEN     /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate/Makefile
2023-04-21T22:17:53 >>> popt 1.16 Extracting
2023-04-21T22:17:53 gzip -d -c /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/dl/popt-1.16.tar.gz | tar --strip-components=1 -C /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate/build/popt-1.16   -xf -
2023-04-21T22:17:53 
2023-04-21T22:17:53 gzip: /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/dl/popt-1.16.tar.gz: not in gzip format
2023-04-21T22:17:53 tar: This does not look like a tar archive
2023-04-21T22:17:53 tar: Exiting with failure status due to previous errors
2023-04-21T22:17:53 package/pkg-generic.mk:159: recipe for target '/home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate/build/popt-1.16/.stamp_extracted' failed
2023-04-21T22:17:53 make[1]: *** [/home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate/build/popt-1.16/.stamp_extracted] Error 2
2023-04-21T22:17:53 /home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate/Makefile:16: recipe for target '_all' failed
2023-04-21T22:17:53 make: *** [_all] Error 2
Command exited with non-zero status 1
you take 0:10.18 to build builroot
ERROR: Running build_buildroot failed!
ERROR: exit code 1 from line 557:
    /usr/bin/time -f "you take %E to build builroot" $COMMON_DIR/mk-buildroot.sh $BOARD_CONFIG

通过查看这个文件是有问题的,popt-1.16.tar.gz格式都不对!

~/rv1126/rp_rv1126_sdk/buildroot/dl$ file popt-1.16.tar.gz 
popt-1.16.tar.gz: HTML document, UTF-8 Unicode text, with very long lines

文件系统里面的文件是错误的,需要替换下载地址:

把这个地址替换进去:http://ftp.rpm.org/popt/releases/historical/popt-1.16.tar.gz
替换:buildroot/package/popt/popt.mk文件里面的下载地址!
如下:

################################################################################
#
# popt
#
################################################################################

POPT_VERSION = 1.16
POPT_SITE = http://ftp.rpm.org/popt/releases/historical/popt-1.16.tar.gz
POPT_INSTALL_STAGING = YES
POPT_LICENSE = MIT
POPT_LICENSE_FILES = COPYING
POPT_AUTORECONF = YES
POPT_GETTEXTIZE = YES
POPT_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES)

POPT_CONF_ENV = ac_cv_va_copy=yes

ifeq ($(BR2_PACKAGE_LIBICONV),y)
POPT_CONF_ENV += am_cv_lib_iconv=yes
POPT_CONF_OPTS += --with-libiconv-prefix=$(STAGING_DIR)/usr
POPT_DEPENDENCIES += libiconv
endif

$(eval $(autotools-package))
$(eval $(host-autotools-package))

在地址:http://ftp.rpm.org/popt/releases/historical/下载源文件

在这里插入图片描述

为了快速,直接下载源文件拷贝到sdk/buildroot/dl目录下

$ cp popt-1.16.tar.gz ./buildroot/dl/

安装好rsync的文件系统可以在命令行里这样:

[root@RV1126_RV1109:/]# rsync
rsync  version 3.1.3  protocol version 31
Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
    no socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, no ACLs, xattrs, iconv, symtimes, prealloc

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

三、QtCreator配置

3.1 配置Qt交叉编译套件(Kits)

配置Kits里面的交叉编译器

打开 Ubuntu 的 Qtcreator,依次点击“工具”,“选项”,如下图所示:
在这里插入图片描述

在弹出的对话框中依次点击“kits”,“编译器”,“添加”,“GCC”,“C++”,如下图所示:
在这里插入图片描述在弹出的界面中依次填写名称,编译器路径,编译器路径为 Buildroot 交叉编译器路径,点击“浏览”,根据实际情况填写“/home/liefyuan/rv1126/rp_rv1126_sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc”,填写完后点击“apply”,如下图所示
在这里插入图片描述
然后点击“添加”,“GCC”,“ C”,依照上面添加gcc的步骤添加 g++ 的交叉编译工具。

最后结果如下:
在这里插入图片描述

配置Kits里面的qmake工具

qmake工具地址是:/home/liefyuan/rv1126/rp_rv1126_sdk/buildroot/output/rockchip_rv1126_rv1109_facial_gate/host/bin/qmake
在这里插入图片描述

最后配置Kits

在这里插入图片描述

3.2 配置远程部署设备

打开工具栏Tools里面的Options,如下图:
在这里插入图片描述点击Devices添加设备,如下图:
在这里插入图片描述点击选择Generic Linux Device然后点击start Wizard按钮,如下图:
在这里插入图片描述下一个界面填下如下信息:
在这里插入图片描述创建私钥秘钥然后部署,地址一般默认是:/home/liefyuan/.ssh/
点击Create New Key Pair按钮来创建私钥公钥
在这里插入图片描述选择如下图配置:
在这里插入图片描述生成以后,点击Deplay Public Key按钮进行部署公钥。
在这里插入图片描述这时候弹出对话框,输入开发板的用户密码:rockchip
在这里插入图片描述部署完成如下:
在这里插入图片描述还可以点击Test进行测试
在这里插入图片描述最后记得点击Apply按钮进行保存设置。

最后在Kits里面,根据下图选择好运行的设备。在这里插入图片描述
运行左下角的点击:
在这里插入图片描述

在这里插入图片描述然后开发板上就运行起来了。

在这里插入图片描述

3.3 如果配置设备失败

在目录:/home/liefyuan/.ssh/如果在私钥、公钥配置好的情况下有三个文件:

  • qtc_id
  • qtc_id.pub
  • known_hosts

配置设备失败,可以删除qtc_id和qtc_id.pub文件,清空known_hosts文件里面的内容。
然后重新生成秘钥私钥,配置ssh。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/447278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VLAN基础实验

实验要求: 1、PC1和PC3所在接口为Access接口 PC2/4/5/6处于同一网段:其中PC2可以访问PC4/5/6 PC4可以访问PC5,但不能访问PC6 PC5不能访问PC6 2、PC1/3与PC2/4/5/6不再同一网段 3、所有PC通过DHCP获取IP地址,且PC1/3可以正常访问PC2/4/5/6 实…

tkinter-TinUI-xml实战(9)crosschat客户端

tkinter-TinUI-xml实战(9)crosschat客户端 引言声明文件结构核心代码服务端连接登录界面主页面主文件 结语 引言 CrossChat(十字街)是一个线上匿名群聊平台,类似Hack.Chat。 现在通过websocket简单地构建一个cc的客户…

随机蛙跳算法 (SFLA)简单实现(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 随着计算机科学与技术的迅速发展,人类生存空间的扩大以及认识与改造世界范围的拓宽,人们对科学技术提出了新的和更高的要求,其…

android中线程池的选择

线程池是把一个或多个线程通过统一的方式进行调度和重复使用的技术。 避免了因为线程过多而带来使用上的开销。 在安卓开发中,为了更好的性能体验,我们在选择线程池的时候,需要从具体需求来考虑,主要考虑以下几方面: …

计算机类专业的普通校招生毕业如何“卷”一份好工作?

毕业差不多两年的校招生有感 一、为什么写这篇文章?二、我 → 一名普通的校招生前身三、我 → 一名普通的校招生养成四、校招如何拿到offer?五、总结 一、为什么写这篇文章? 一开始我写CSDN是为了记录自己学习技术的小日记,小总结…

JavaScript运算符与表达式

目录 一、 二、|| 三、??与?. ?? ?. 四、... 五、[] {} [] {} 一、 严格相等运算符,用作逻辑判断 1 1 // 返回 true 1 1 // 返回 true,会先将右侧的字符串转为数字,再做比较 1 1 // 返回 false,类型不等…

每日学术速递4.22

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Reference-based Image Composition with Sketch via Structure-aware Diffusion Model 标题:通过结构感知扩散模型与草图进行基于参考的图像合成 作者:Kang…

PDF转PPT:省时省力的高效方式

PDF和PPT是日常工作和学习中常见的文件格式,但是它们的使用场景不同,很多时候需要将PDF文件转换为PPT文件才能更好地展示内容。本文将介绍如何使用PDF转PPT工具来实现快速转换,省时省力。 一、为什么需要将PDF文件转换为PPT文件 1.PPT文件更…

English Learning - L2-15 英音地道语音语调 语调四步法 2023.04.17 周一

English Learning - L2-15 英音地道语音语调 语调 2023.04.17 周一 语调概念和汉语拼音对比 语音语调四步法语调练习意群划分重音重中之重语调的选择 语调的含义 语调概念 广义:语音技巧,连读,失去爆破,音同化,还有平…

如何利用AI技术实现高品质的文字转语音效果

人们越来越依赖语音技术进行交流和获取信息。语音技术可以提高工作效率和舒适度,减轻眼睛疲劳和阅读负担。在数字化时代,AI技术已经能够帮助我们实现高品质的文字转语音效果。下面我们将介绍一些方法,以帮助您更好地利用AI技术实现高品质的文…

Vue.js过滤器filters

目录 一、局部过滤器 二、全局过滤器 三、过滤器串联 四、过滤器接收多个参数 Vue.js允许自定义过滤器,过滤器的作用可被用于一些常见的文本格式化(也就是修饰文本,但是文本内容不会改变) 过滤器可以用在两个地方&#xff1a…

微信小程序开发详细步骤是什么?

微信小程序开发只需要三步,分别是注册小程序,编辑设计小程序内容和一键发布小程序zlzwgz0127。 这篇回答不介绍写代码开发小程序,因为更多人是不懂代码的,所以推荐用第三方平台开发小程序zlzwgz0127。 在开始制作小程序之前&#…

Linux基础—深入理解Linux文件系统

Linux基础—深入理解Linux文件系统与日志分析 一、inode 与 block详解1.inode 和 block 概述2.inode的内容3.inode的大小4.inode的特殊作用5.inode 的号码6.查看文件的inode 号码7.inode 耗尽故障处理 二、恢复误删除的文件1.案例:恢复EXT类型的文件2.案例&#xff…

qt中信号和槽机制

文章目录 信号与槽机制实现 点击按钮 关闭窗口的案例 自定义信号槽自定义信号自定义槽函数触发自定义的信号案例:请老师吃饭 断开信号当槽函数遇到重载的时候拓展 信号与槽机制 connect(信号的发送者, 发送的具体信号,信号的接受者&#xff0…

SpringAop详解汇总

文章目录 近期想法什么是AOPSpringAOP与AspectjSpringAOP体系概述概念详解连接点- Jointpoint切入点- Pointcut通知- Advice切面- Aspect织入- Weaving 实现原理—动态代理JDK动态代理描述原理代码示例注意执行结果 优点缺点 CGLib动态代理描述原理代码示例注意执行结果 优点缺…

【UITableViewCell单元格重用补充 Objective-C语言】

一、咱们再把刚才说的UITableViewCell单元格重用的思路再给大家捋一下 1.咱们刚才说的这个单元格重用就是,当我们滚动的时候,这里给大家简单画一下, 2.就是滚动的时候,当把这个最上面的单元格滚完毕以后,把这个单元格放到缓存池里面, 3.给这个单元格要起一个ID,给它做一…

阿里云部署Stable Diffusion

系列文章目录 本地部署Stable Diffusion教程,亲测可以安装成功 Stable Diffusion界面参数及模型使用 谷歌Colab云端部署Stable Diffusion 进行绘图 文章目录 系列文章目录前言一、AIGC是什么?二、操作步骤1.资源准备-零元开通试用套餐2.创建应用3.输入…

使用matlab基于神经网络进行光束选择

一、前言 此示例说明如何使用神经网络来减少光束选择任务中的开销。在此示例中,您仅使用接收方的位置,而不是通信信道的知识。您可以通过在选定的波束对中进行搜索来减少波束扫掠开销,而不是对所有波束对进行详尽的波束搜索K光束对。考虑到一…

R语言ggplot2 | 修改ggplot主题

📋文章目录 图形设置(settings)面板设置和背景(Panel&Background)坐标轴设置(Axis)标题和标签(Title&label)图例(Legend)副标题和图注&am…

静态和动态NAT,NAPT配置简介

一.类型介绍 二.功能 1.将大量的私有地址转换为公有地址(节约IP地址) 2.将一个IP地址转换为另一个IP地址(增加内部网络设备的安全性) 三.缺陷: 1.很消耗网络设备资源 2.破坏数据端到端传输,安全策略实施受限 四.配置命令 1.静态模式(…