前言:在我使用SSH远程登陆我的Linx开发板时发现,尽管连接的是同一个局域网,但是每次重新连接之后的IP地址会变化,我平时不会一直让我的开发板连接局域网,只有开发的时候使用远程登陆,这导致我每次都需要给开发板连接上键盘 鼠标 显示屏,只为了查看它的IP地址以让我可以远程登陆,这是十分麻烦而且没有必要的,那么我们能不能使用一种方法使得不用每次连接那么多外设就可以连接到我们的开发板呢?在我阅读开发板的引脚分布时候发现了这个
这代表开发板上有可以使用的串口,这样,我只需要使用一个串口转USB的模块,通过它连接电脑和开发板即可获得开发板的IP地址,在这之前,我需要准备:
1.开机延迟自启动脚本
2.USB转TTL模块
开机延迟自启动脚本
在我阅读了一些开机自启动脚本的方法之后,决定使用 systemd 服务
为了实现开机自启动,我们首先需要创建一个systemd启动服务,并且把它放在 /etc/systemd/system文件夹里
请注意,这时后缀是 .service
进入auto_run_script.service之后输入
[Unit]
Description=Run a Custom Script at Startup
After=default.target
[Service]
ExecStart= 自己写的需要运行的.sh脚本
[Install]
WantedBy=default.target
从内容可以看到
Description
:指定服务的描述,这里表示“在启动时运行自定义脚本”。After=default.target
:指定该服务在默认目标(default.target
)之后启动。[Service]
-
ExecStart= 自己写的需要运行的.sh脚本
(从根目录开始)
:定义了服务的执行启动命令,即运行位于 从根目录开始
下的自己写的需要运行的.sh
脚本。
[Install]
部分:
-
WantedBy=default.target
:表示该服务被默认目标所需。
这段配置的主要目的是在系统启动后,执行指定目录下的自定义脚本。
之后我们再运行下面两条命令来更新 systemd 配置文件,并启动服务。
systemctl daemon-reload
systemctl enable auto_run_script.service
到此为止,开机之后就可以自动运行自定义的脚本了
但是这里是通过串口显示IP地址,我们知道,开机之后连接网络需要一段时间,这个时间我定一个10S,给开发板充分的时间连接网络并且显示
所以要在脚本第一行使用 sleep 函数 这里使用
sleep 10s
使用串口输出,这里使用 stty 命令
#!/bin/bash
sleep 10s //延时10s
stty -F /dev/ttyS3 115200 //使用串口3 115200波特率
echo "hello linux uart" > /dev/ttyS3 //输出hello linux uart 命令测试串口
echo "`ifconfig`" > /dev/ttyS3 //打印ifconfig 命令的结果 获得IP地址
串口模块
使用任意 USB转TTL模块即可
RX - TX
TX - RX
GND -GND
最终演示
给开发板连接电源,连接串口模块
串口软件为 115200 波特率 1停止位 无校验位
按下复位,10s之后显示
其中 inet 192.168.24.132 为本次连接网络之后的ip地址,使用这个地址远程登陆即可。