(四)配置有线网口、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,如图:

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

相关推荐
lishing61 小时前
Linux驱动开发(17):输入子系统–电阻触摸驱动实验
linux·运维·驱动开发
酱学编程3 小时前
一文理解ssh,ssl协议以及应用
ssh·ssl
Moshow郑锴12 小时前
什么是TDD测试驱动开发(Test Driven Development)?
驱动开发·tdd
caridle15 小时前
使用SSH建立内网穿透,能够访问内网的web服务器
服务器·前端·ssh
千千道1 天前
linux的线程同步(条件变量和锁)
linux·arm开发·驱动开发·物联网·arm
智者知已应修善业1 天前
【74HC192减法24/20/72进制】2022-5-17
驱动开发·经验分享·笔记·硬件工程
逝灮2 天前
【蓝桥杯——物联网设计与开发】Part2:OLED
驱动开发·stm32·单片机·嵌入式硬件·物联网·蓝桥杯·oled
丁总学Java2 天前
在 macOS 上,你可以使用系统自带的 终端(Terminal) 工具,通过 SSH 协议远程连接服务器
服务器·macos·ssh
新停浊酒杯2 天前
解决ubuntu服务器SSH连接卡顿,连上后命令输入也是卡顿以及如何在Ubuntu上杀死不断重启的进程。
linux·服务器·ssh
迷茫运维路2 天前
graylog+sidecar通过docker-compose部署并采集SSH登录日志
运维·docker·ssh·graylog·pipelines