1

我有一个连接了 3G 加密狗的 Raspberry Pi。我想在启动过程中自动切换到调制解调器模式+加载 ppp 接口。

我使用usb_modeswitch在引导期间自动切换到调制解调器模式并且它可以工作。

如果 wvdial 在启动后像它一样启动,则管理得很好:sudo wvdial ppp0。我可以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

我已经尝试过这个解决方案来强制等待拨号硬件。等待 /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

我该如何解决?

4

0 回答 0