我有一个连接了3G Dongle的Raspberry Pi。我想在调制解调器模式下自动切换+在启动期间加载ppp接口 。
我使用usb_modeswitch
在启动过程中自动切换调制解调器模式,并且可以正常工作。
如果wvdial在启动后像sudo wvdial ppp0
那样启动,那么wvdial管理得很好。我可以ping世界! (好的只是IP和域名)
问题是在启动过程中调制解调器开关之前加载了接口网络...正如您在syslog
文件中看到的那样(检查日期和时间):
Feb 11 19:18:07 raspberrypi logger: /etc/ppp/wait-dialup-hardware: ERROR timeout waiting for required device /dev/gsmmodem
Feb 11 19:18:09 raspberrypi logger: usb_modeswitch: switched to 05c6:6000 on 001/005
我已经尝试this solution强制等待拨号硬件。等待/ dev / gsmmodem已挂载,但不起作用。
我的/etc/network/interfaces
文件:
auto ppp0
iface ppp0 inet wvdial
provider ppp0
pre-up echo "3G dongle starting..."
pre-up /etc/ppp/wait-dialup-hardware gsmmodem 30
post-up echo "3G (ppp0) is online"
我的/etc/ppp/wait-dialup-hardware
文件:
#!/bin/sh
INTERFACE="/dev/$1"
MAX_SECONDS_TIMEOUT=$2
dsec=$(( MAX_SECONDS_TIMEOUT * 10 ))
retry=0
while [ "$retry" -le "$dsec" ]; do
if [ -c ${INTERFACE} ]; then
echo "$0: OK existing required device ${INTERFACE} (in $((retry / 10)).$((100 * (retry % 10) / 10)) seconds)"
logger "$0: OK existing required device ${INTERFACE} (in $((retry / 10)).$((100 * (retry % 10) / 10)) seconds)"
break
else
sleep 0.1
fi
retry=$(( retry + 1))
done
if [ ! -c ${INTERFACE} ]; then
echo "$0: ERROR timeout waiting for required device ${INTERFACE}"
logger "$0: ERROR timeout waiting for required device ${INTERFACE}"
exit 1
fi
我该如何解决?