(四)配置有线网口、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  [email protected]:/path/to/remote/directory/

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

c 复制代码
scp  [email protected]:/path/to/remote/file  /path/to/local/directory/

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

c 复制代码
scp -r /path/to/local/directory [email protected]:/path/to/remote/directory/
scp -r [email protected]:/path/to/remote/file  /path/to/local/directory/

如果要指定端口号:

c 复制代码
scp -P 22  /path/to/local/file [email protected]:/path/to/remote/directory/

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

c 复制代码
 scp ./a.out  [email protected]:/root

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


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

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

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

c 复制代码
chmod 0777 a.out

或者:

c 复制代码
chmod +x a.out

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

推荐用scp指令传输哈!


测试

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

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

相关推荐
CZIDC1 天前
win11 系统环境下 新安装 WSL ubuntu + ssh + gnome 桌面环境
数据库·ubuntu·ssh
wangjun51591 天前
jenkins 参数化发布到服务器 publish over ssh、label、Parameterized publishing
服务器·ssh·jenkins
程序员JerrySUN1 天前
Linux UART 驱动开发全解析:从原理到实战
linux·运维·驱动开发
林政硕(Cohen0415)1 天前
Linux驱动开发进阶(三)- 热插拔机制
linux·驱动开发·热插拔
sukalot1 天前
Windows 图形显示驱动开发-WDDM 2.4功能-GPU 半虚拟化(十一)
windows·驱动开发
小麦嵌入式1 天前
Linux驱动开发实战(十一):GPIO子系统深度解析与RGB LED驱动实践
linux·c语言·驱动开发·stm32·嵌入式硬件·物联网·ubuntu
触角010100011 天前
STM32F103低功耗模式深度解析:从理论到应用实践(上) | 零基础入门STM32第九十二步
驱动开发·stm32·单片机·嵌入式硬件·物联网
只是橘色仍温柔1 天前
xshell可以ssh连接,但vscode不行
运维·vscode·ssh
sukalot1 天前
Windows 图形显示驱动开发-WDDM 2.4功能-GPU 半虚拟化(三)
windows·驱动开发
may_一一2 天前
终端SSH连接工具SecureCRT安装和连接Linux
运维·服务器·ssh