(四)配置有线网口、SSH登陆、文件传输以及运行交叉编译程序测试

文章目录


配置有线网口

原因自动分配不行

由于该开发板 没有 wifi模块,因此只能通过有线的网口和主机连接,进行上网。

板子网口配置信息:

评估板配备 1 个千兆网口 ETH0(RGMII)和 1 个百兆网口 ETH1(USB1)。

当插入网线(用的是TEH0(RGMI)接口)时,发现并不能直接自动的分配ip进行上网,需要我们进行配置ip。


执行指令,udhcpc,网口自动获取和更新网络接口的IP地址和其他网络配置信息,如子网掩码、默认网关、DNS服务器等。 -i eth0 是指定网口是eth0 网口 也可以不指定。

c 复制代码
udhcpc -i eth0  

发现还是不能自动获取,一直卡死在sending discover这边


第一步 设置前先停止网络接口

指令:

c 复制代码
ifconfig eth0 down

看到eth0 已经停止:


第二步 手动分配ip

这里我直接将eth0,eth1手动分配ip并且设置成静态的IP(用哪个网口就将网口ip设置成与电脑主机同一网段即可,其实这里应该是和路由器在同一网段,我这里因为是和电脑网口接在一起的,就说的是和电脑同一网段)。

主机的ip是:192.168.1.100,因此就是192.168.1.xxx网段,也就是路由器同一网段。

指令:

c 复制代码
ifconfig eth0 192.168.1.101 netmask 255.255.255.0 broadcast 192.168.1.255
c 复制代码
route add default gateway 192.168.1.1

指令 ifconfig eth0 192.168.1.101 netmask 255.255.255.0 broadcast 192.168.1.255 用于手动设置网口(网络接口)eth0 的 IP 地址配置。这条命令的具体作用如下:

(1) eth0:指定要配置的网络接口名称。不同的系统可能会有不同的接口名称,比如 eth1, wlan0, ens33 等。192.168.1.101:这是为 eth0 接口分配的静态 IP 地址。

(2) netmask 255.255.255.0:设置子网掩码,它定义了IP地址中哪一部分是网络地址,哪一部分是主机地址。

在这个例子中,255.255.255.0 表示前24位是网络地址,后8位是主机地址。

(3) broadcast 192.168.1.255:指定了广播地址,该地址用于向整个子网内的所有设备发送信息

指令route add default gateway 192.168.1.1是设计默认网关,这里因为ifconfig 不识别 gateway 参数。要设置默认网关,需要使用 route 或者更现代的 ip 命令。


执行完上面命令时,它会立即生效,并且不需要重启网络服务或计算机。
然而,请注意,这种配置通常只在当前会话有效,也就是说,一旦系统重启,这些设置将会丢失。要不然就用一次设置一次如果你希望永久保存这些设置,你需要编辑相关的网络配置文件,或者使用图形界面中的网络设置工具(如nmcli)来配置静态 IP 地址。但是此板子不支持nmcli配置工具。

这里是直接通过修改网络接口配置文件(如 /etc/network/interfaces 或 /etc/sysconfig/network-scripts/ifcfg-eth0)来使这些设置永久化,这款板子是修改文件:/etc/network/interfaces 来完成永久配置的。


第三步 使配置的网口ip永久生效

继续第二步,输入指令:

c 复制代码
vi /etc/network/interfaces

看到如下内容:


这里我只用了eth0,只修改eth0部分内容如下:

c 复制代码
auto eth0
iface eth0 inet static
  address 192.168.1.101
  netmask 255.255.255.0
  broadcast 192.168.1.255
  gateway 192.168.1.1

退出保存,重启板子,可以发现设置的静态网口ip已生效:

再设置一下DNS服务器,亲测可以不用管,不设置,前面操作就可以了.

c 复制代码
vi /etc/resolv.conf

添加内容:

c 复制代码
nameserver 8.8.8.8

最后重启板子,以上操作成功永久的设置静态的网口ip.


第四步 测试一下网络是否通了

板子ip:192.168.1.101
主机ip:192.168.1.100

板子ping主机:

主机ping板子:


至此有线网络配置成功.


SSH登陆

板子默认已经安装SSH服务器了,没有安装的可以自行安装.

打开MobaXterm,和Serial串口登陆类似.

此时SSH登陆成功可以放心大胆的拔掉Type-c----USB接口了.


文件传输以及运行交叉编译程序测试

第一种借助基于SSH的命令行工具SCP传输文件

scp(Secure Copy Protocol)是一个基于 SSH 的命令行工具,用于在本地计算机和远程主机之间或者两个远程主机之间安全地复制文件。它使用 SSH 协议进行数据传输,并且继承了 SSH 的认证方式和安全性。

如何使用:

第一种:本地主机向远程主机发送文件:

c 复制代码
scp  /path/to/local/file  username@192.168.1.101:/path/to/remote/directory/

第二种:从远程主机下载文件到本地主机:

c 复制代码
scp  username@192.168.1.101:/path/to/remote/file  /path/to/local/directory/

如果要是文件夹可以使用:

c 复制代码
scp -r /path/to/local/directory username@192.168.1.101:/path/to/remote/directory/
scp -r username@192.168.1.101:/path/to/remote/file  /path/to/local/directory/

如果要指定端口号:

c 复制代码
scp -P 22  /path/to/local/file username@192.168.1.101:/path/to/remote/directory/

现向板子传输之前交叉编译arm架构的可执行文件a.out,指令:

c 复制代码
 scp ./a.out  root@192.168.1.101:/root

第一次传输 可能会出现以下提示,输入yes即可:


第二种借助基于MobaXterm 软件直接上传

先将交叉编译生成的a.out可执行文件放到samba共享文件夹里面,再放到windows其他目录(我放在D盘下面了),最后直接上传到板子root工作目录下.

注意通过这种方式上传来的可执行文件限权不足,因此要加可执行的权限.

c 复制代码
chmod 0777 a.out

或者:

c 复制代码
chmod +x a.out

这里文件权限为什么是0777,为什么是+x ,可以百度了解一下

推荐用scp指令传输哈!


测试

传输成功,执行a.out,如图:

一般嵌入式开发都是采取交叉编译生成可执行文件放到板子上直接运行的.当然,如果要做成产品,那必然少不了开机自启动,因此必须学会这一系列的此操作哈.

相关推荐
Tassel_YUE13 小时前
napalm_ce 报错 No module named ‘netmiko.ssh_exception‘ 解决方案(随手记)
运维·python·ssh·netmiko·网络自动化
7yewh13 小时前
工业级 激光测距 飞行时间法TOF 相位法 多频调制的本质!
arm开发·驱动开发·mcu·物联网·射频工程·材料工程
Tester_孙大壮3 天前
第32章 测试驱动开发(TDD)的原理、实践、关联与争议(Python 版)
驱动开发·python·tdd
charlie1145141913 天前
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(协议层封装)
c语言·驱动开发·单片机·学习·教程·oled
sukalot3 天前
windows蓝牙驱动开发-查询蓝牙接口
驱动开发
Q16849645154 天前
基于VMware的ubuntu与vscode建立ssh连接
vscode·ubuntu·ssh
davenian4 天前
< OS 有关 > 阿里云 几个小时前 使用密钥替换 SSH 密码认证后, 发现主机正在被“攻击” 分析与应对
ubuntu·阿里云·ssh·网络攻击·fail2ban
硬件学长森哥4 天前
音视频多媒体编解码器基础-codec
驱动开发·嵌入式硬件·音视频
charlie1145141914 天前
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(基础图形库实现)
c语言·驱动开发·笔记·单片机·oled·嵌入式软件
7yewh4 天前
嵌入式知识点总结 Linux驱动 (七)-Linux驱动常用函数 uboot命令 bootcmd bootargs get_part env_get
linux·arm开发·驱动开发·mcu·物联网·硬件工程