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

Linux学习笔记(应用篇二)

基于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

在这里插入图片描述

请添加图片描述

相关文章:

  • 单应矩阵和旋转平移矩阵的区别与联系
  • [MySQL]MySQL数据库基础知识与操作
  • C语言【文件操作】详解下(fseek,ftell,rewind函数)
  • 《AI赋能SQL Server,数据处理“狂飙”之路》
  • 利用Openfeign远程调用第三方接口(案例:百度地图逆地理编码接口,实现通过经纬度坐标获取详细地址)
  • deepseek实战教程-第六篇查找源码之仓库地址与deepseek-R1、deepseek-LLM仓库内容查看
  • 怎么判断系统的性能瓶颈是数据库连接
  • MySQL中,聚集索引和非聚集索引到底有什么区别?
  • C++:泛型算法
  • 区块链共识机制深度揭秘:从PoW到PoS,谁能主宰未来?
  • MySQL实战(尚硅谷)
  • 【蓝桥杯】每日练习 Day12 贡献法
  • vulhub靶场jangow-01-1.0.1
  • 数据结构之循环队列的顺序结构基本操作-基本结构-初始化-入队-出队-判断队列是否为空-获取队头元素
  • 当AI重构编程范式:Java 24的进化逻辑与技术深水区的战略突围
  • 【ESP32S3】esp32获取串口数据并通过http上传到前端
  • 造成服务器网络连接不稳定的原因是什么?
  • 【Python】pillow库学习笔记2-ImageFilter类和ImageEnhance类
  • PHP If...Else 语句详解
  • 用户模块——自定义业务异常
  • 公司品牌策划设计/网站优化排名哪家好
  • 东阿做网站推广/网站模板设计
  • 做实体店推广的网站/北京百度竞价托管公司
  • 封面制作网站/自媒体推广渠道有哪些
  • wordpress模板电影/刷移动端seo软件
  • 企业网站排名提升软件能优化/电话营销外包公司