我正在尝试在 Linux 嵌入式平台上调试英国华为 K3772 3G 加密狗。在卡和拨号之间,此过程正常工作。问题在于拨号连接,其中发生拨号脚本错误。我的终端输出示例如下。
我该如何解决这个问题?请给我一些建议。
sent [LCP TermReq id=0x3 "No network protocols running"]
Connection terminated.
Serial connection established.
using channel 5
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xa34dc1ef> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <accomp> <pcomp> <asyncmap 0x0> <mru 1500> <magic 0x54c
> <auth chap MD5>]
sent [LCP ConfAck id=0x1 <accomp> <pcomp> <asyncmap 0x0> <mru 1500> <magic 0x54c
> <auth chap MD5>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xa34dc1ef> <pcomp> <accomp>]
rcvd [CHAP Challenge id=0x1 <5effc5b4431d5f70aca7507696fc1150>, name = "HUAWEI_C
HAP_SRVR"]
sent [CHAP Response id=0x1 <cb7593075f09ab0fa445a78712d7806b>, name = "web"]
rcvd [CHAP Success id=0x1 "Welcome!!"]
CHAP authentication succeeded: Welcome!!
sent [CCP ConfReq id=0x1 <mppe -H -M -S -L -D -C> <bsd v1 15>]
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfNak id=0x1 <addr 0.0.0.0>]
rcvd [LCP ProtRej id=0x2 80 fd 01 01 00 0d 12 06 00 00 00 00 15 03 2f]
rcvd [IPCP ConfNak id=0x1 <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x2]
sent [IPCP ConfAck id=0x2]
rcvd [IPCP ConfNak id=0x2 <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
IPCP: timeout sending Config-Requests
sent [LCP TermReq id=0x2 "No network protocols running"]
sent [LCP TermReq id=0x3 "No network protocols running"]
Connection terminated.
Serial connection established.
答案1
以下内容基于这个答案,但只要有可能,我就会使用终端命令而不是仅仅使用它们的描述。
1.打开终端并输入:
cd /etc/usb_modeswitch.d
sudo touch 12d1:1526
sudo nano 12d1:1526
这将打开 12d1:1526 文件,以便在 nano 文本编辑器中进行编辑。使用 nano 编辑器的说明始终位于每页的底部。您需要知道的唯一两个 nano 键盘快捷键是 WriteOut 和 Exit。将以下文本复制到 nano 编辑器窗口中:
# Vodafone K3772 (Huawei)
TargetVendor= 0x19d2
#TargetProduct= not known yet
MessageContent="55534243123456780000000000000011062000000100000000000000000000"
按键盘组合键Ctrl+ O,然后按Enter保存 12d1:1526 文件。按键盘组合键Ctrl+X退出 nano。
2./lib/udev/rules.d/40-usb_modeswitch.rules
通过运行以下命令在 nano 中打开文件进行编辑: cd '/lib/udev/rules.d/' && sudo nano 40-usb_modeswitch.rules
。您需要将以下两行添加到 40-usb_modeswitch.rules 中,并在这两行之前和之后分别留出一个空格:
# Vodafone (Huawei) K3772
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1526", RUN+="usb_modeswitch '%b/%k'"
按键盘组合键Ctrl+ O,然后按Enter保存 40-usb_modeswitch.rules 文件。按键盘组合键Ctrl+X退出 nano。
3.插入调制解调器并等待至少 10 秒。之后lsusb
在终端中运行命令。应该有一个以 开头的设备 ID 12d1
,但很可能与 不同12d1:1526
。ID 的更改部分(冒号后)是您的新TargetProduct
值(以这两个字符开头:0x
)。以 root 身份在 nano 中编辑您的文件(与您在步骤 1 中编辑的文件相同),删除TargetProduct 行开头的/etc/usb_modeswitch.d
注释符号(字符)。#
4.拔下调制解调器并重新插入。等待...(华为调制解调器需要最多 20 秒的时间进行模式切换。)。dmesg
在终端中运行,您应该会看到类似 的内容GSM modem (1-port) converter now attached to ttyUSBx
。这意味着您的调制解调器已准备好使用。