Linux学习笔记(应用篇二)

news2025/3/27 15:34:43

基于I.MX6ULL.MINI开发板

  • 开发板与电脑相互通信
  • 电脑与开发板互传文件

开发板与电脑相互通信

用网线将电脑与开发板连接
本人使用的是Ubuntu系统,不是虚拟机

一般来说刚开始电脑和开发板是ping不通的

首先查看电脑的 IP

Win+R,cmd调出终端

我使用的是手机热点无线局域网适配器的IP属于公网,不能用来与开发板通信

以太网适配器的IP是网口的IP,使用网线与开发板进行通信,现在默认是自动分配的地址,需要手动设置

在这里插入图片描述

打开控制面板——>网络和Internet——>网络和共享中心——>更改适配器设置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

找到 以太网——>右击——>属性

在这里插入图片描述

双击Internet协议版本4

在这里插入图片描述

选择使用下面的IP地址
手动配置IP地址、掩码和网关
一般是192.168.1.xxx
跟我一样也可以
然后确定

在这里插入图片描述

再次在终端查看IP,可以看到以太网的已经改为我们设置的

在这里插入图片描述

在开发板这边也要改
首先要确定开发板上网口对应的的网络接口是哪个
先用命令ifconfig查看
我的是eth0
如果不确定自己的是哪个可以把网线拔了再插回去,会打印信息

在这里插入图片描述

查看开发板的IP是169.254.26.65,与电脑网口不在同一个网段,无法通信,要修改开发板的静态IP

请添加图片描述

打开开发板的网络配置文件

vi /etc/network/interfaces

将eth0设置为静态获取IP
同样修改IP地址、掩码和网关
除了IP地址最后一位数字和电脑的不同
网关和掩码与电脑都要一致
我这里IP地址设置成了192.168.1.100
然后保存退出

在这里插入图片描述

重启网络服务

sudo /etc/init.d/networking restart

再次查看开发板IP,已经修改成自己设置的

在这里插入图片描述

虽然现在设置是可以实现互ping了,但是我遇到的问题是每次重启开发板后,要手动重启网络服务开发板的IP地址才会改为我设置的静态IP

要修改rc.local文件

sudo nano /etc/rc.local

在文本末尾,exit 0前加上sudo /etc/init.d/networking restart,保存退出,然后每次重启之后就会自动设置成我们设置的静态IP了

在这里插入图片描述

在这里插入图片描述

现在两边互ping一下

注意要把防火墙关了,不然开发板ping不通电脑

开发板ping电脑

在这里插入图片描述

电脑ping开发板
在这里插入图片描述

两边都能互ping成功

电脑与开发板互传文件

使用 scp (Secure Copy Protocol)

scp 是一种通过 SSH 安全地复制文件的工具,适用于 Linux 系统之间的文件传输。

首先要确认开发板是否安装并配置ssh服务

ps aux | grep sshd

如果开启了,会打印如下信息

在这里插入图片描述

从 Ubuntu 传输文件到开发板

scp /path/to/local/file username@remote_ip:/path/to/remote/directory

从开发板传输文件到 Ubuntu

scp username@remote_ip:/path/to/remote/file /path/to/local/directory

示例

scp /home/user/file.txt root@192.168.1.100:/home/root/ Ubuntu到开发板
scp root@192.168.1.100:/home/root/file.txt /home/user/ 开发板到Ubuntu 


/path/to/local/file:本地文件的路径。
username:开发板的 SSH 用户名。
remote_ip:开发板的 IP 地址。
/path/to/remote/directory:开发板上的目标目录。

ssh用户名可以使用命令cat /etc/passwd查看

一般是这个,即 root
在这里插入图片描述

我要把Ubuntu的 ~ 目录下的C_Program文件夹里的led文件通过scp发送到开发板用户目录下Linux文件夹下的C_Program下

scp ~/C_Program/led root@192.168.1.100:/home/root/Linux/C_Program/

但是第一次会提示错误

Unable to negotiate with 192.168.1.100 port 22: no matching host key type found.their offer:ssh-rsa

这个错误通常出现在客户端和服务器之间的 SSH 协议协商中,意味着客户端和服务器在 SSH 连接时无法找到一个共同的 host key algorithm(主机密钥算法)。开发板的 SSH 服务器可能只支持 ssh-rsa 密钥,而你的客户端(Ubuntu 主机)可能已禁用该密钥算法。从 OpenSSH 8.8 开始,默认禁用了 ssh-rsa 密钥算法,因为它被认为不再安全。

可以在 SSH 配置文件中永久启用 ssh-rsa 支持

编辑ssh配置文件(在电脑端)

sudo nano /etc/ssh/ssh_config

在文件中添加以下行,按Ctrl+X然后按Y保存退出

Host 192.168.1.100 //开发板的IP
    HostKeyAlgorithms +ssh-rsa

再次尝试就可以传过去了
传了交叉编译后的LED执行文件,可以正常使用

在这里插入图片描述

编译自己写的代码

使用Linaro的交叉编译工具,可以看驱动开发的4.3小节
安装完后使用命令arm-linux-gnueabihf-gcc进行交叉编译
比如我写的是led.c文件,编译输出可执行文件led
然后通过scp传给开发板运行程序

arm-linux-gnueabihf-gcc -o my_led led.c

也可以使用Poky 交叉编译工具链
可以看用户快速体验文档的4.2小节
安装完后用如下命令进行编译

${CC} -o my_led led.c

在这里插入图片描述

执行my_led,触发模式为heartbeat

在这里插入图片描述

请添加图片描述

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

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

相关文章

记录一次部署k3s后,服务404 page not found,nginx显示正常

服务部署k3s后,正常入口端怎么返回都是80,且返回错误 TRAEFIK DEFAULT CERT ERR_CERT_AUTHORITY_INVALID ngnix显示也是正常,怎么找也找不到问题 后来通过 iptables -L -n -t nat|grep 80 发现入口端流量被DNAT转到新的服务 而k3s中&#…

mac上安装nvm及nvm的基本语法使用!!

种一棵树,最好是十年前,其次是现在!想要改变,从此刻开始,一切都不晚! 目录 nvm是什么?前提条件:安装homebrew如果系统已经有node版本:在mac上安装nvm:用nvm安…

(基本常识)C++中const与引用——面试常问

作者:求一个demo 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 内容通俗易懂,没有废话,文章最后是面试常问内容(建议通过标题目录学习) 废话不多…

dfs(深度优先)——太抽象了

1. 两种方法 #include<bits/stdc.h> using namespace std; //void dfs(int index,int n,vector<int> current) //{ // if(index>n){ // for(int i0;i<current.size();i){ // cout<<current[i]<<" "; // } // cout<<endl;…

python --face_recognition(人脸识别,检测,特征提取,绘制鼻子,眼睛,嘴巴,眉毛)/活体检测

dlib 安装方法 之前博文 https://blog.csdn.net/weixin_44634704/article/details/141332644 环境: python3.8 opencv-python4.11.0.86 face_recognition1.3.0 dlib19.24.6人脸检测 import cv2 import face_recognition# 读取人脸图片 img cv2.imread(r"C:\Users\123\…

redis解决缓存穿透/击穿/雪崩

文章目录 1.缓存穿透1.1 概念1.2 解决方案1.2.1 缓存空对象1.2.2 布隆过滤 1.2 店铺查询使用缓存穿透解决方案1.2.1 流程 2.缓存雪崩2.1 什么是缓存雪崩&#xff1f;2.2 雪崩解决方案 3.缓存击穿3.1 什么是缓存击穿&#xff1f;3.2解决方案3.2.1 基于互斥锁解决缓存击穿问题&am…

《TCP/IP网络编程》学习笔记 | Chapter 22:重叠 I/O 模型

《TCP/IP网络编程》学习笔记 | Chapter 22&#xff1a;重叠 I/O 模型 《TCP/IP网络编程》学习笔记 | Chapter 22&#xff1a;重叠 I/O 模型理解重叠 I/O 模型重叠 I/O本章讨论的重叠 I/O 的重点不在于 I/O 创建重叠 I/O 套接字执行重叠 I/O 的 WSASend 函数进行重叠 I/O 的 WSA…

python每日十题(10)

在Python语言中&#xff0c;源文件的扩展名&#xff08;后缀名&#xff09;一般使用.py。 保留字&#xff0c;也称关键字&#xff0c;是指被编程语言内部定义并保留使用的标识符。Python 3.x有35个关键字&#xff0c;分别为&#xff1a;and&#xff0c;as&#xff0c;assert&am…

LabVIEW液压振动锤控制系统

在现代工程机械领域&#xff0c;液压振动锤的高效与精准控制日益显得重要。本文通过LabVIEW软件&#xff0c;展开液压振动锤启停共振控制技术的研究与应用&#xff0c;探讨如何通过改进控制系统来优化液压振动锤的工作性能&#xff0c;确保其在复杂工况下的稳定性与效率。 ​ …

简单介绍My—Batis

1.什么是My—Batis&#xff1f; My—Batis是一个持久层框架&#xff0c;提供了sql映射功能&#xff0c;能方便的将数据库表和java对象进行映射&#xff0c;通过My—Batis可以将项目中的数据存储在数据库中&#xff0c;以便我们进行调用。值得注意的是My—Batis和spring不是一回…

ALTER TABLE SHRINK SPACE及MOVE的区别与适用场景

以下是 ‌Oracle 数据库‌中三个收缩表空间命令的对比&#xff1a; 1. ALTER TABLE table_name SHRINK SPACE;‌ ‌作用‌&#xff1a;直接重组表数据并移动高水位线&#xff08;HWM&#xff09;&#xff0c;释放未使用的空间到表空间‌。 影响‌&#xff1a; 会锁表&#…

docker远程debug

1. 修改 Java 启动命令 在 Docker 容器中启动 Java 程序时&#xff0c;需要添加 JVM 调试参数&#xff0c;jdk8以上版本 java -agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005 -jar your-app.jar jdk8及以下版本&#xff1a; java -Xdebug -Xrunjdwp:tra…

rosbag|ROS中.bag数据包转换为matlab中.mat数据类型

代码见代码 msg_dict中设置自定义消息类型 test_config中设置需要记录的具体的值 test_config中topic_name以及message_type照搬plotjuggler打开时的参数 最后生成.mat文件在matlab中进行使用

pytest-xdist 进行高效并行自动化测试

pytest-xdist 的核心功能是通过多进程分发测试任务&#xff0c;每个进程独立运行测试&#xff0c;确保测试隔离。2025 年 3 月 25 日&#xff0c;pytest-xdist 在 GitHub 上已有超过 1,200,000 次下载&#xff0c;表明其在测试社区中的广泛接受。 在自动化测试中&#xff0c;随…

位置编码再思考

最近在做多模态&#xff0c;发现基于 transformer 的多模态&#xff0c;position embedding 是一个非常重要的内容&#xff0c;而且还没有统一方案&#xff0c;先暂做记录&#xff0c;几篇还不错的博客&#xff1a; Transformer学习笔记一&#xff1a;Positional Encoding&…

Deepseek API+Python 测试用例一键生成与导出 V1.0.3

** 功能详解** 随着软件测试复杂度的不断提升,测试工程师需要更高效的方法来设计高覆盖率的测试用例。Deepseek API+Python 测试用例生成工具在 V1.0.3 版本中,新增了多个功能点,优化了提示词模板,并增强了对文档和接口测试用例的支持,极大提升了测试用例设计的智能化和易…

[c语言日寄MAX]深度解析:大小端字节序

【作者主页】siy2333 【专栏介绍】⌈c语言日寄MAX⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还…

Android ADB工具使用教程(从安装到使用)

目录 ADB工具介绍 什么是ADB&#xff1f; 组成 主要功能 ADB工具安装与连接设备 WIFI连接&#xff0c;提示计算机积极拒绝10061 WIFI成功连接后&#xff0c;拔掉数据线显示offline 提示adb版本不一致​编辑 ADB工具使用 ★日志操作命令 adb logcat:抓取日志 日志格式…

基于SSM框架的线上甜品销售系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此网上销售信息的…

Redis原理:Monitor 实现

在调用 Redis 的 MONITOR 命令后&#xff0c;可以在对应的客户端上实时查看服务器的执行情况。今天&#xff0c;我们将从源码的角度来深入探讨 MONITOR 机制是如何处理这些请求以及如何将数据反馈给用户的。 MONITOR 命令的实现 Redis 中所有命令的具体实现细节都可以在其源代…