树莓派-自动断网重连

树莓的无线老是断,挺烦的,而且一断就不会自动连,很有必要做一个自动检测。。。。相信前人已经做好了,我就拿来用就好了,呵呵

由于树莓派断网并不会自动重新连网,假如当我在外地想远程登录控制树莓派怎么办呢,网都连不上,怎么控制呀。解决办法是:写一个自动断网重连的脚本,让pi定时执行并检查网络是否连通,如断网则自动重新连接。

下面是原文:

http://www.eeboard.com/bbs/thread-28299-1-1.html


<think>好的,我需要帮用户解决树莓派通过EC200U模块实现USB开机自动拨号上的问题。首先,我需要确认EC200U是什么类型的模块,应该是LTE模块,支持4G络。用户希望开机自动拨号,说明需要配置树莓派在启动时自动运行拨号脚本。 首先,我得考虑驱动问题。EC200U可能使用USB转串口芯片,比如常见的Quectel模块,可能需要加载相应的驱动。检查内核是否支持,通常Linux内核已经包含常见驱动,但可能需要确认。用户可能需要安装usb-modeswitch来切换设备模式,确保模块被正确识别为调制解调器。 接下来是拨号工具的选择。通常使用pppd或wvdial。这里可能需要配置pppd的选项,设置APN、用户名和密码。不同的运营商APN不同,用户需要根据自己的运营商填写正确信息。编写chat脚本处理拨号过程中的交互,比如等待运营商返回信号。 然后是配置开机自动启动。可以通过systemd服务来实现,创建一个服务单元文件,设置ExecStart指向拨号脚本,并启用服务。确保脚本有执行权限,并且服务在络就绪后启动,可能需要After=network.target的依赖。 另外,可能需要配置络接口,设置默认路由通过ppp0接口,确保流量正确路由到4G络。还要考虑防火墙设置,允许NAT转发,如果树莓派需要共享络给其他设备的话。 测试步骤也很要,先手动运行脚本确认拨号成功,再检查服务是否能自动启动。查看日志排除错误,比如使用journalctl -u serviceName.service来查看服务状态。 用户可能遇到的问题包括模块未被正确识别,APN配置错误,权限问题导致脚本无法执行,或者服务启动顺序不正确。需要提示用户检查dmesg输出,确认模块识别,检查pppd日志,确认认证是否成功,以及运营商是否有特殊的拨号要求。 最后,提供一个完整的配置示例,包括pppd选项、chat脚本、systemd服务文件和测试命令,帮助用户一步步完成设置。确保用户按照步骤操作,并提醒注意替换APN等个人信息。</think>以下是 **树莓派通过EC200U模块实现USB开机自动拨号上** 的完整配置指南: --- ### **一、准备工作** #### **1. 硬件连接** - 将EC200U模块插入树莓派USB接口 - 确认模块识别: ```bash dmesg | grep -i "ttyUSB" # 查看是否出现类似 /dev/ttyUSB0 的设备节点 lsusb # 检查是否识别到Quectel EC200U设备 ``` #### **2. 安装必要工具** ```bash sudo apt update sudo apt install ppp usb-modeswitch screen -y # ppp拨号工具/USB模式切换工具 ``` --- ### **二、配置USB模式切换(可选)** #### **1. 检查模块模式** 若模块未被识别为调制解调器(显示为存储设备): ```bash sudo usb_modeswitch -v 0x2c7c -p 0x0125 -M "5553424312345678000000000000061b000000020000000000000000000000" ``` - `2c7c:0125` 是EC200U的默认VID/PID - 成功后`lsusb`应显示`2c7c:0125`变为`2c7c:0126` --- ### **三、配置PPP拨号** #### **1. 创建chat脚本** ```bash sudo nano /etc/ppp/peers/ec200u-chat ``` 内容: ```bash ABORT 'BUSY' ABORT 'NO CARRIER' ABORT 'ERROR' '' 'AT' OK 'AT+CPIN?' OK 'AT+CGDCONT=1,"IP","<YOUR_APN>"' # 替换为运营商APN OK 'ATD*99***1#' CONNECT '' ``` - **常见APN**: - 中国移动:`CMNET` - 中国联通:`3GNET` - 中国电信:`CTNET` #### **2. 配置pppd参数** ```bash sudo nano /etc/ppp/peers/ec200u ``` 内容: ```bash /dev/ttyUSB0 # 根据实际设备节点修改 115200 # 波特率 noauth defaultroute usepeerdns persist holdoff 10 maxfail 5 debug # 调试时可开启 connect "/usr/sbin/chat -v -f /etc/ppp/peers/ec200u-chat" ``` --- ### **四、设置开机自启动** #### **1. 创建systemd服务** ```bash sudo nano /etc/systemd/system/ec200u-ppp.service ``` 内容: ```ini [Unit] Description=EC200U 4G PPP Connection After=network.target [Service] Type=simple ExecStart=/usr/sbin/pppd call ec200u Restart=always RestartSec=10 [Install] WantedBy=multi-user.target ``` #### **2. 启用服务** ```bash sudo systemctl daemon-reload sudo systemctl enable ec200u-ppp sudo systemctl start ec200u-ppp ``` --- ### **五、验证与调试** #### **1. 检查连接状态** ```bash ifconfig ppp0 # 查看PPP接口IP地址 ping -I ppp0 8.8.8.8 # 指定从ppp0接口ping测试 route -n # 确认默认路由指向ppp0 ``` #### **2. 查看日志** ```bash journalctl -u ec200u-ppp -f # 查看服务日志 tail -f /var/log/syslog # 查看系统日志 ``` --- ### **六、常见问题解决** | **问题** | **解决方案** | |--------------------------|----------------------------------| | 无/dev/ttyUSB设备 | 检查USB连接,安装`usb-modeswitch` | | 拨号超时 | 确认APN正确性,检查SIM卡状态 | | 获取IP但无法上 | 检查DNS配置,尝试`ping 8.8.8.8` | | 服务启动失败 | 检查`/etc/ppp/peers/ec200u`权限 | --- ### **七、高级优化** #### **1. 自动连** 在`/etc/ppp/peers/ec200u`中添加: ```bash persist maxfail 0 ``` #### **2. 禁用WiFi/以太优先级** ```bash sudo nano /etc/network/interfaces ``` 添加: ```bash pre-up ip route del default || true # 删除原有默认路由 ``` --- **完成配置后,树莓派即可实现开机自动4G联。建议首次配置时通过SSH或串口连接操作,避免导致失联。**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值