EC800M qmi-wwan驱动适配问题

按照文档将移远提供的qmi_wwan_q.c 加入到内核目录,看不到 /dev/cdc-wdm 设备

EC800M 不需要QMI_WWAN,quectel-CM拨号会使用tty AT 串口。
一般使用cdc_ether

我是参考的这个文档:
Quectel_LTE&5G_Linux_USB_Driver_User_Guide_V2.0.pdf
不需要QMI_WWAN 的话,还需要用 quectel-CM 程序拨号上网吗?
另外请教怎么使用 cdc_ether 上网?

ls /sys/bus/usb/drivers

asix cdc_wdm qmi_wwan usbhid
ax88179_178a ftdi_sio qmi_wwan_q usblp
cdc_acm hub uas usbserial
cdc_ether net1080 usb usbserial_generic
cdc_ncm option usb-storage zaurus
cdc_subset pl2303 usbfs

我目前能看到cdc_wdm的驱动的,不知道为什么看不到 /dev/cdc-wdm?

这个模组不支持QMI_WWAN.
使用cdc_ether 请将模组配置成ECM mode
AT+QCFG=“usbnet”,1
重启生效。
那个USB 驱动的2.0 版本的文档已经是很久以前的,那时候还没有EC800M。

usb0 没有配置ip地址,请教下什么原因
17:07:27 # ./quectel-CM &
17:07:27 # [01-01_00:19:40:008] QConnectManager_Linux_V1.6.4
17:07:27 [01-01_00:19:40:010] Find /sys/bus/usb/devices/2-1 idVendor=0x2c7c idProduct=0x6002, bus=0x002, dev=0x002
17:07:27 [01-01_00:19:40:010] Auto find qmichannel = /dev/ttyUSB1
17:07:27 [01-01_00:19:40:010] Auto find usbnet_adapter = usb0
17:07:27 [01-01_00:19:40:010] netcard driver = cdc_ether, driver version = 22-Aug-2005
17:07:27 [01-01_00:19:40:010] Modem works in ECM_RNDIS_NCM mode
17:07:27 [01-01_00:19:40:014] atc_fd = 7
17:07:27 [01-01_00:19:40:015] AT> ATE0Q0V1
17:07:27 [01-01_00:19:40:017] AT< OK
17:07:28 [01-01_00:19:41:024] AT> AT+QCFG=“usbnet”
17:07:28 [01-01_00:19:41:027] AT< +QCFG: “usbnet”,1
17:07:28 [01-01_00cdc_ether 2-1:1.0 usb0: kevent 12 may have been dropped
17:07:28 :19:41:027] AT< OK
17:07:28 [01-01_00:19:41:027] AT> AT+QNETDEVCTL=?
17:07:28 [01-01_00:19:41:030] AT< +QNETDEVCTL: (0-3),(1-15),(0-1)
17:07:28 [01-01_00:19:41:030] AT< OK
17:07:28 [01-01_00:19:41:030] AT> AT+CGREG=2
17:07:28 [01-01_00:19:41:032] AT< OK
17:07:28 [01-01_00:19:41:032] AT> AT+CEREG=2
17:07:28 [01-01_00:19:41:034] AT< OK
17:07:28 [01-01_00:19:41:034] AT> AT+C5GREG=2
17:07:28 [01-01_00:19:41:037] AT< ERROR
17:07:28 [01-01_00:19:41:037] AT> AT+QNETDEVSTATUS=?
17:07:28 [01-01_00:19:41:039] AT< ERROR
17:07:28 [01-01_00:19:41:039] AT> AT+QCFG=“NAT”
17:07:28 [01-01_00:19:41:042] AT< +QCFG: “nat”,1
17:07:28 [01-01_00:19:41:042] AT< OK
17:07:28 [01-01_00:19:41:042] AT> AT+CGMR
17:07:28 [01-01_00:19:41:045] AT< EC800MCNGAR06A03M08
17:07:28 [01-01_00:19:41:045] AT< OK
17:07:28 [01-01_00:19:41:045] AT> AT+CPIN?
17:07:28 [01-01_00:19:41:048] AT< +CPIN: READY
17:07:28 [01-01_00:19:41:048] AT< OK
17:07:28 [01-01_00:19:41:048] AT> AT+QCCID
17:07:28 [01-01_00:19:41:051] AT< +QCCID: 89861500192320144551
17:07:28 [01-01_00:19:41:051] AT< OK
17:07:28 [01-01_00:19:41:051] requestGetICCID 89861500192320144551
17:07:28 [01-01_00:19:41:051] AT> AT+CIMI
17:07:28 [01-01_00:19:41:054] AT< 460151002855692
17:07:28 [01-01_00:19:41:054] AT< OK
17:07:28 [01-01_00:19:41:054] requestGetIMSI 460151002855692
17:07:28 [01-01_00:19:41:054] AT> AT+QICSGP=1
17:07:28 [01-01_00:19:41:057] AT< +QICSGP: 3,“”,“”,“”,0
17:07:28 [01-01_00:19:41:058] AT< OK
17:07:28 [01-01_00:19:41:058] requestGetProfile[1] ///0/IPV4V6
17:07:28 [01-01_00:19:41:058] AT> AT+COPS=3,0;+COPS?;+COPS=3,1;+COPS?;+COPS=3,2;+COPS?
17:07:29 [01-01_00:19:41:062] AT< +COPS: 0,0,“”,7
17:07:29 [01-01_00:19:41:062] AT< +COPS: 0,1,“”,7
17:07:29 [01-01_00:19:41:062] AT< +COPS: 0,2,“46015”,7
17:07:29 [01-01_00:19:41:062] AT< OK
17:07:29 [01-01_00:19:41:062] AT> AT+CEREG?
17:07:29 [01-01_00:19:41:065] AT< +CEREG: 2,1,“262B”,“2BA7203”,7
17:07:29 [01-01_00:19:41:065] AT< OK
17:07:29 [01-01_00:19:41:066] AT> at+cops?
17:07:29 [01-01_00:19:41:068] AT< +COPS: 0,2,“46015”,7
17:07:29 [01-01_00:19:41:068] AT< OK
17:07:29 [01-01_00:19:41:068] AT> at+qeng=“servingcell”
17:07:29 [01-01_00:19:41:077] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-79,-3,-74,27,44
17:07:29 [01-01_00:19:41:077] AT< OK
17:07:29 [01-01_00:19:41:077] AT> AT+QNETDEVCTL?
17:07:29 [01-01_00:19:41:080] AT< +QNETDEVCTL: 0,0,0,0
17:07:29 [01-01_00:19:41:080] AT< OK
17:07:29 [01-01_00:19:41:080] ifconfig usb0 0.0.0.0
17:07:29 [01-01_00:19:41:093] ifconfig usb0 down
17:07:29 [01-01_00:19:41:103] AT> AT+CGACT?
17:07:29 [01-01_00:19:41:107] AT< +CGACT: 1,1
17:07:29 [01-01_00:19:41:107] AT< OK
17:07:29 [01-01_00:19:41:107] AT> AT+QNETDEVCTL=1,1,1
17:07:30 [01-01_00:19:43:109] AT< OK
17:07:30 [01-01_00:19:43:109cdc_ether 2-1:1.0 usb0: kevent 12 may have been dropped
17:07:30 ] AT> AT+CGPADDR=1
17:07:30 [01-01_00:19:43:117] AT< +CGPADDR: 1,“10.0.201.78”,“::0:0:0:0:0:0:0”
17:07:30 [01-01_00:19:43:117] AT< OK
17:07:30 [01-01_00:19:43:117] requestGetIPAddress 78.201.0.10
17:07:30 [01-01_00:19:43:118] AT> at+cops?
17:07:30 [01-01_00:19:43:120] AT< +COPS: 0,2,“46015”,7
17:07:30 [01-01_00:19:43:120] AT< OK
17:07:30 [01-01_00:19:43:120] AT> at+qeng=“servingcell”
17:07:30 [01-01_00:19:43:129] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-79,-3,-74,27,44
17:07:30 [01-01_00:19:43:129] AT< OK
17:07:30 [01-01_00:19:43:129] AT> AT+QNETDEVCTL?
17:07:30 [01-01_00:19:43:130] AT< +QNETDEVSTATUS: 1
17:07:30 [01-01_00:19:43:132] AT< +QNETDEVCTL: 1,1,1,1
17:07:30 [01-01_00:19:43:132] AT< OK
17:07:30 [01-01_00:19:43:132] AT> AT+CGACT?
17:07:30 [01-01_00:19:43:136] AT< +CGACT: 1,1
17:07:30 [01-01_00:19:43:136] AT< OK
17:07:30 [01-01_00:19:43:136] ifconfig usb0 up
17:07:30 [01-01_00:19:43:150] busybox udhcpc -f -n -q -t 5 -i usb0
17:07:30 [01-01_00:19:43:158] udhcpc (v1.22.1) started
17:07:30 [01-01_00:19:43:174] Sending discover…
17:07:30 [01-01_00:19:43:214] Sending select for 10.0.201.78…
17:07:30 [01-01_00:19:43:264] Lease of 10.0.201.78 obtained, lease time 86400
17:07:30 [01-01_00:19:43:305] AT> at+cops?
17:07:30 [01-01_00:19:43:309] AT< +COPS: 0,2,“46015”,7
17:07:30 [01-01_00:19:43:309] AT< OK
17:07:30 [01-01_00:19:43:309] AT> at+qeng=“servingcell”
17:07:31 [01-01_00:19:43:316] AT< +QENG: “servingcell”,“NOCONN”,"L

ifconfig usb0

usb0 Link encap:Ethernet HWaddr AE:0C:29:A3:9B:6D
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:29 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3900 (3.8 KiB) TX bytes:2736 (2.6 KiB)

两个问题。

  1. 你这个系统是否是大端系统?
  2. 将default.script 放到 /etc/udhcpc/ 目录。
    chmod +x /etc/udhcpc/
    再试下。

default.script

#!/bin/sh
# Busybox udhcpc dispatcher script. Copyright (C) 2009 by Axel Beckert.
#
# Based on the busybox example scripts and the old udhcp source
# package default.* scripts.

RESOLV_CONF="/etc/resolv.conf"

case $1 in
    bound|renew)
	[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
	[ -n "$subnet" ] && NETMASK="netmask $subnet"

	/sbin/ifconfig $interface $ip $BROADCAST $NETMASK

	echo ip : $ip
	echo  ----
	echo  BROADCAST: $BROADCAST
	echo  netmask: $NETMASK

	if [ -n "$router" ]; then
	    echo "$0: Resetting default routes"
	    while /sbin/route del default gw 0.0.0.0 dev $interface; do :; done

	    metric=0
	    for i in $router; do
		/sbin/route add default gw $i dev $interface metric $metric
		metric=$(($metric + 1))
	    done
	fi

	# Update resolver configuration file
	R=""
	[ -n "$domain" ] && R="domain $domain
"
	for i in $dns; do
	    echo "$0: Adding DNS $i"
	    R="${R}nameserver $i
"
	done

	if [ -x /sbin/resolvconf ]; then
	    echo -n "$R" | resolvconf -a "${interface}.udhcpc"
	else
	    echo -n "$R" > "$RESOLV_CONF"
	fi
	;;

    deconfig)
	if [ -x /sbin/resolvconf ]; then
	    resolvconf -d "${interface}.udhcpc"
	fi
	/sbin/ifconfig $interface 0.0.0.0
	;;

    leasefail)
	echo "$0: Lease failed: $message"
	;;

    nak)
	echo "$0: Received a NAK: $message"
	;;

    *)
	echo "$0: Unknown udhcpc command: $1";
	exit 1;
	;;
esac

我的系统是大端系统

大端系统,这里就有一些打印看起来有问题。但是不影响使用。

17:07:30 [01-01_00:19:43:117] AT< +CGPADDR: 1,“10.0.201.78”,“::0:0:0:0:0:0:0”
17:07:30 [01-01_00:19:43:117] AT< OK
17:07:30 [01-01_00:19:43:117] requestGetIPAddress 78.201.0.10

实际上requestGetIPAddress 返回的IP应该是10.0.201.78

我的default.script 放在 /usr/share/udhcpc 目录下的,一定要放在 /etc/udhcpc 目录下吗?用你的default.script 我刚试了下还是不行
17:58:55 # ./quectel-CM &
17:58:55 # [01-01_00:01:29:540] QConnectManager_Linux_V1.6.4
17:58:55 [01-01_00:01:29:541] Find /sys/bus/usb/devices/2-1 idVendor=0x2c7c idProduct=0x6002, bus=0x002, dev=0x002
17:58:55 [01-01_00:01:29:541] Auto find qmichannel = /dev/ttyUSB1
17:58:55 [01-01_00:01:29:541] Auto find usbnet_adapter = usb0
17:58:55 [01-01_00:01:29:542] netcard driver = cdc_ether, driver version = 22-Aug-2005
17:58:55 [01-01_00:01:29:542] Modem works in ECM_RNDIS_NCM mode
17:58:55 [01-01_00:01:29:545] atc_fd = 7
17:58:55 [01-01_00:01:29:546] AT> ATE0Q0V1
17:58:55 [01-01_00:01:29:548] AT< OK
17:58:56 [01-01_00:01:30:554] AT> AT+QCFG=“usbnet”
17:58:56 [01-01_00:01:30:557] AT< +QCFG: “usbnet”,1
17:58:56 [01-01_00cdc_ether 2-1:1.0 usb0: kevent 12 may have been dropped
17:58:56 :01:30:557] AT< OK
17:58:56 [01-01_00:01:30:558] AT> AT+QNETDEVCTL=?
17:58:56 [01-01_00:01:30:560] AT< +QNETDEVCTL: (0-3),(1-15),(0-1)
17:58:56 [01-01_00:01:30:560] AT< OK
17:58:56 [01-01_00:01:30:560] AT> AT+CGREG=2
17:58:56 [01-01_00:01:30:562] AT< OK
17:58:56 [01-01_00:01:30:562] AT> AT+CEREG=2
17:58:56 [01-01_00:01:30:564] AT< OK
17:58:56 [01-01_00:01:30:564] AT> AT+C5GREG=2
17:58:56 [01-01_00:01:30:567] AT< ERROR
17:58:56 [01-01_00:01:30:567] AT> AT+QNETDEVSTATUS=?
17:58:56 [01-01_00:01:30:570] AT< ERROR
17:58:56 [01-01_00:01:30:570] AT> AT+QCFG=“NAT”
17:58:56 [01-01_00:01:30:573] AT< +QCFG: “nat”,1
17:58:56 [01-01_00:01:30:573] AT< OK
17:58:56 [01-01_00:01:30:574] AT> AT+CGMR
17:58:56 [01-01_00:01:30:576] AT< EC800MCNGAR06A03M08
17:58:57 [01-01_00:01:30:576] AT< OK
17:58:57 [01-01_00:01:30:577] AT> AT+CPIN?
17:58:57 [01-01_00:01:30:579] AT< +CPIN: READY
17:58:57 [01-01_00:01:30:579] AT< OK
17:58:57 [01-01_00:01:30:579] AT> AT+QCCID
17:58:57 [01-01_00:01:30:582] AT< +QCCID: 89861500192320144551
17:58:57 [01-01_00:01:30:582] AT< OK
17:58:57 [01-01_00:01:30:582] requestGetICCID 89861500192320144551
17:58:57 [01-01_00:01:30:583] AT> AT+CIMI
17:58:57 [01-01_00:01:30:585] AT< 460151002855692
17:58:57 [01-01_00:01:30:585] AT< OK
17:58:57 [01-01_00:01:30:586] requestGetIMSI 460151002855692
17:58:57 [01-01_00:01:30:586] AT> AT+QICSGP=1
17:58:57 [01-01_00:01:30:588] AT< +QICSGP: 3,“”,“”,“”,0
17:58:57 [01-01_00:01:30:588] AT< OK
17:58:57 [01-01_00:01:30:589] requestGetProfile[1] ///0/IPV4V6
17:58:57 [01-01_00:01:30:589] AT> AT+COPS=3,0;+COPS?;+COPS=3,1;+COPS?;+COPS=3,2;+COPS?
17:58:57 [01-01_00:01:30:592] AT< +COPS: 0,0,“”,7
17:58:57 [01-01_00:01:30:592] AT< +COPS: 0,1,“”,7
17:58:57 [01-01_00:01:30:592] AT< +COPS: 0,2,“46015”,7
17:58:57 [01-01_00:01:30:593] AT< OK
17:58:57 [01-01_00:01:30:593] AT> AT+CEREG?
17:58:57 [01-01_00:01:30:595] AT< +CEREG: 2,1,“262B”,“2BA7203”,7
17:58:57 [01-01_00:01:30:595] AT< OK
17:58:57 [01-01_00:01:30:596] AT> at+cops?
17:58:57 [01-01_00:01:30:598] AT< +COPS: 0,2,“46015”,7
17:58:57 [01-01_00:01:30:598] AT< OK
17:58:57 [01-01_00:01:30:599] AT> at+qeng=“servingcell”
17:58:57 [01-01_00:01:30:607] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-79,-3,-73,28,44
17:58:57 [01-01_00:01:30:607] AT< OK
17:58:57 [01-01_00:01:30:608] AT> AT+QNETDEVCTL?
17:58:57 [01-01_00:01:30:610] AT< +QNETDEVCTL: 0,0,0,0
17:58:57 [01-01_00:01:30:610] AT< OK
17:58:57 [01-01_00:01:30:611] ifconfig usb0 0.0.0.0
17:58:57 [01-01_00:01:30:623] ifconfig usb0 down
17:58:57 [01-01_00:01:30:633] AT> AT+CGACT?
17:58:57 [01-01_00:01:30:637] AT< +CGACT: 1,1
17:58:58 [01-01_00:01:30:638] AT< OK
17:58:58 [01-01_00:01:30:638] AT> AT+QNETDEVCTL=1,1,1
17:58:58 [01-01_00:01:32:640] AT< OK
17:58:58 [01-01_00:01:32:641] AT> AT+CGPADDRcdc_ether 2-1:1.0 usb0: kevent 12 may have been dropped
17:58:58 =1
17:58:58 [01-01_00:01:32:648] AT< +CGPADDR: 1,“10.0.201.78”,“::0:0:0:0:0:0:0”
17:58:58 [01-01_00:01:32:648] AT< OK
17:58:58 [01-01_00:01:32:649] requestGetIPAddress 78.201.0.10
17:58:58 [01-01_00:01:32:649] AT> at+cops?
17:58:58 [01-01_00:01:32:651] AT< +COPS: 0,2,“46015”,7
17:58:58 [01-01_00:01:32:651] AT< OK
17:58:58 [01-01_00:01:32:652] AT> at+qeng=“servingcell”
17:58:58 [01-01_00:01:32:660] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-79,-3,-73,28,44
17:58:58 [01-01_00:01:32:660] AT< OK
17:58:58 [01-01_00:01:32:661] AT> AT+QNETDEVCTL?
17:58:59 [01-01_00:01:32:663] AT< +QNETDEVSTATUS: 1
17:58:59 [01-01_00:01:32:663] AT< +QNETDEVCTL: 1,1,1,1
17:58:59 [01-01_00:01:32:663] AT< OK
17:58:59 [01-01_00:01:32:664] AT> AT+CGACT?
17:58:59 [01-01_00:01:32:668] AT< +CGACT: 1,1
17:58:59 [01-01_00:01:32:668] AT< OK
17:58:59 [01-01_00:01:32:669] ifconfig usb0 up
17:58:59 [01-01_00:01:32:682] busybox udhcpc -f -n -q -t 5 -i usb0
17:58:59 [01-01_00:01:32:690] udhcpc (v1.22.1) started
17:58:59 [01-01_00:01:32:704] Sending discover…
17:59:01 [01-01_00:01:35:764] Sending discover…
17:59:01 [01-01_00:01:35:804] Sending select for 10.0.201.78…
17:59:01 [01-01_00:01:35:844] Lease of 10.0.201.78 obtained, lease time 86400
17:59:01 [01-01_00:01:35:885] AT> at+cops?
17:59:01 [01-01_00:01:35:888] AT< +COPS: 0,2,“46015”,7
17:59:01 [01-01_00:01:35:889] AT< OK
17:59:01 [01-01_00:01:35:889] AT> at+qeng=“servingcell”
17:59:02 [01-01_00:01:35:898] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-79,-3,-73,32,44
17:59:02 [01-01_00:01:35:898] AT< OK
17:59:02 [01-01_00:01:35:899] AT> AT+QNETDEVCTL?
17:59:02 [01-01_00:01:35:902] AT< +QNETDEVCTL: 1,1,1,1
17:59:02 [01-01_00:01:35:902] AT< OK
17:59:02 [01-01_00:01:35:903] AT> AT+CGACT?
17:59:02 [01-01_00:01:35:906] AT< +CGACT: 1,1
17:59:02 [01-01_00:01:35:906] AT< OK
17:59:16 [01-01_00:01:50:914] AT> at+cops?
17:59:16 [01-01_00:01:50:917] AT< +COPS: 0,2,“46015”,7
17:59:16 [01-01_00:01:50:918] AT< OK
17:59:17 [01-01_00:01:50:918] AT> at+qeng=“servingcell”
17:59:17 [01-01_00:01:50:926] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-79,-5,-73,28,44
17:59:17 [01-01_00:01:50:926] AT< OK
17:59:17 [01-01_00:01:50:927] AT> AT+QNETDEVCTL?
17:59:17 [01-01_00:01:50:929] AT< +QNETDEVCTL: 1,1,1,1
17:59:17 [01-01_00:01:50:929] AT< OK
17:59:17 [01-01_00:01:50:930] AT> AT+CGACT?
17:59:17 [01-01_00:01:50:933] AT< +CGACT: 1,1
17:59:17 [01-01_00:01:50:933] AT< OK
17:59:31 [01-01_00:02:05:934] AT> at+cops?
17:59:31 [01-01_00:02:05:937] AT< +COPS: 0,2,“46015”,7
17:59:31 [01-01_00:02:05:938] AT< OK
17:59:32 [01-01_00:02:05:938] AT> at+qeng=“servingcell”
17:59:32 [01-01_00:02:05:946] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-79,-3,-73,28,43
17:59:32 [01-01_00:02:05:947] AT< OK
17:59:32 [01-01_00:02:05:947] AT> AT+QNETDEVCTL?
17:59:32 [01-01_00:02:05:949] AT< +QNETDEVCTL: 1,1,1,1
17:59:32 [01-01_00:02:05:949] AT< OK
17:59:32 [01-01_00:02:05:950] AT> AT+CGACT?
17:59:32 [01-01_00:02:05:953] AT< +CGACT: 1,1
17:59:32 [01-01_00:02:05:954] AT< OK

似乎是没有调用这个default.script
我在脚本开始的地方加的打印也没有显示
#!/bin/sh

Busybox udhcpc dispatcher script. Copyright (C) 2009 by Axel Beckert.

Based on the busybox example scripts and the old udhcp source

package default.* scripts.

RESOLV_CONF=“/etc/resolv.conf”

echo “Setting quectel module IP address on $interface”

case $1 in
bound|renew)
[ -n “$broadcast” ] && BROADCAST=“broadcast $broadcast”
[ -n “$subnet” ] && NETMASK=“netmask $subnet”

/sbin/ifconfig $interface $ip $BROADCAST $NETMASK

echo ip : $ip
echo  ----
echo  BROADCAST: $BROADCAST
echo  netmask: $NETMASK

if [ -n "$router" ]; then
    echo "$0: Resetting default routes"
    while /sbin/route del default gw 0.0.0.0 dev $interface; do :; done

    metric=0
    for i in $router; do
	/sbin/route add default gw $i dev $interface metric $metric
	metric=$(($metric + 1))
    done
fi

# Update resolver configuration file
R=""
[ -n "$domain" ] && R="domain $domain

"
for i in $dns; do
echo “$0: Adding DNS $i”
R="${R}nameserver $i
"
done

if [ -x /sbin/resolvconf ]; then
    echo -n "$R" | resolvconf -a "${interface}.udhcpc"
else
    echo -n "$R" > "$RESOLV_CONF"
fi
;;

deconfig)
if [ -x /sbin/resolvconf ]; then
    resolvconf -d "${interface}.udhcpc"
fi
/sbin/ifconfig $interface 0.0.0.0
;;

leasefail)
echo "$0: Lease failed: $message"
;;

nak)
echo "$0: Received a NAK: $message"
;;

*)
echo "$0: Unknown udhcpc command: $1";
exit 1;
;;

esac

我之前用的default.script 和你给我的差不多,用的是老版本的拨号程序目录下的

不是一定要放到/etc/udhcpc/
busybox udhcpc --help
看看默认应该放哪里。

默认是 /usr/share/udhcpc

需不需要修改拨号程序代码,代码里好像没有udhcpc 没有指定 -s 参数

就看这里有没有调用你的default.script
如果没有调用到,可以修改下default.script 的位置或者去改下quectel-CM 的源码 udhcpc.c .

dhcp 的打印会出个错误:route: SIOCDELRT: No such process 这个有没有影响?
15:58:27 [01-01_00:01:10:969] busybox udhcpc -f -n -q -t 5 -i usb0 -s /etc/udhcpc/default.script
15:58:27 [01-01_00:01:10:977] udhcpc (v1.22.1) started
15:58:27 [01-01_00:01:10:996] Setting quectel module IP address on usb0
15:58:27 [01-01_00:01:10:997] Setting IP address 0.0.0.0 on usb0
15:58:27 [01-01_00:01:11:024] Sending discover…
15:58:27 [01-01_00:01:11:084] Sending select for 10.9.83.209…
15:58:28 [01-01_00:01:11:144] Lease of 10.9.83.209 obtained, lease time 86400
15:58:28 [01-01_00:01:11:147] Setting quectel module IP address on usb0
15:58:28 [01-01_00:01:11:148] Setting IP address 10.9.83.209 on usb0
15:58:28 [01-01_00:01:11:153] ip : 10.9.83.209
15:58:28 [01-01_00:01:11:153] ----
15:58:28 [01-01_00:01:11:153] BROADCAST:
15:58:28 [01-01_00:01:11:153] netmask: netmask 255.0.0.0
15:58:28 [01-01_00:01:11:153] Deleting routers
15:58:28 route: SIOCDELRT: No such process
15:58:28 [01-01_00:01:11:157] Adding router 10.9.83.46
15:58:28 [01-01_00:01:11:162] Recreating /etc/resolv.conf
15:58:28 [01-01_00:01:11:172] Adding DNS server 211.136.17.107
15:58:28 [01-01_00:01:11:173] Adding DNS server 211.136.20.203
15:58:28 [01-01_00:01:11:205] AT> at+cops?
15:58:28 [01-01_00:01:11:208] AT< +COPS: 0,2,“46015”,7
15:58:28 [01-01_00:01:11:208] AT< OK
15:58:28 [01-01_00:01:11:208] AT> at+qeng=“servingcell”
15:58:28 [01-01_00:01:11:214] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-76,-3,-72,27,47
15:58:28 [01-01_00:01:11:214] AT< OK
15:58:28 [01-01_00:01:11:215] AT> AT+QNETDEVCTL?

问题已经解决 是default.script 的问题,从busybox里复制过来的可以。现在ping外网的时候有点慢,请问是什么问题
16:04:43 [01-01_00:07:26:744] AT> at+cops?
16:04:43 [01-01_00:07:26:747] AT< +COPS: 0,2,“46015”,7
16:04:43 [01-01_00:07:26:747] AT< OK
16:04:43 [01-01_00:07:26:747] AT> at+qeng=“servingcell”
16:04:43 [01-01_00:07:26:753] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-75,-3,-69,30,47
16:04:43 [01-01_00:07:26:754] AT< OK
16:04:43 [01-01_00:07:26:754] AT> AT+QNETDEVCTL?
16:04:43 [01-01_00:07:26:756] AT< +QNETDEVCTL: 1,1,1,1
16:04:43 [01-01_00:07:26:756] AT< OK
16:04:43 [01-01_00:07:26:756] AT> AT+CGACT?
16:04:43 [01-01_00:07:26:760] AT< +CGACT: 1,1
16:04:43 [01-01_00:07:26:760] AT< OK
16:04:43 64 bytes from 111.30.185.60: seq=232 ttl=243 time=104.713 ms
16:04:44 64 bytes from 111.30.185.60: seq=233 ttl=243 time=85.728 ms
16:04:45 64 bytes from 111.30.185.60: seq=234 ttl=243 time=85.853 ms
16:04:47 64 bytes from 111.30.185.60: seq=236 ttl=243 time=85.737 ms
16:04:48 64 bytes from 111.30.185.60: seq=237 ttl=243 time=95.858 ms
16:04:49 64 bytes from 111.30.185.60: seq=238 ttl=243 time=84.862 ms
16:04:50 64 bytes from 111.30.185.60: seq=239 ttl=243 time=86.741 ms
16:04:51 64 bytes from 111.30.185.60: seq=240 ttl=243 time=102.514 ms
16:04:52 64 bytes from 111.30.185.60: seq=241 ttl=243 time=85.871 ms
16:04:53 64 bytes from 111.30.185.60: seq=242 ttl=243 time=95.778 ms
16:04:54 64 bytes from 111.30.185.60: seq=243 ttl=243 time=85.758 ms
16:04:55 64 bytes from 111.30.185.60: seq=244 ttl=243 time=85.894 ms
16:04:56 64 bytes from 111.30.185.60: seq=245 ttl=243 time=105.787 ms
16:04:58 [01-01_00:07:41:764] AT> at+cops?
16:04:58 [01-01_00:07:41:767] AT< +COPS: 0,2,“46015”,7
16:04:58 [01-01_00:07:41:767] AT< OK
16:04:58 [01-01_00:07:41:767] AT> at+qeng=“servingcell”
16:04:58 [01-01_00:07:41:774] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-75,-3,-69,30,47
16:04:58 [01-01_00:07:41:774] AT< OK
16:04:58 [01-01_00:07:41:775] AT> AT+QNETDEVCTL?
16:04:58 [01-01_00:07:41:777] AT< +QNETDEVCTL: 1,1,1,1
16:04:58 [01-01_00:07:41:777] AT< OK
16:04:58 [01-01_00:07:41:777] AT> AT+CGACT?
16:04:58 [01-01_00:07:41:781] AT< +CGACT: 1,1
16:04:58 [01-01_00:07:41:781] AT< OK
16:04:58 64 bytes from 111.30.185.60: seq=247 ttl=243 time=85.768 ms
16:04:59 64 bytes from 111.30.185.60: seq=248 ttl=243 time=104.797 ms
16:04:59 ^C
16:04:59 — www.qq.com ping statistics —
16:04:59 249 packets transmitted, 197 packets received, 20% packet loss
16:04:59 round-trip min/avg/max = 75.519/89.584/124.763 ms
16:05:08 # ping www.baidu.com
16:05:13 [01-01_00:07:56:784] AT> at+cops?
16:05:13 [01-01_00:07:56:787] AT< +COPS: 0,2,“46015”,7
16:05:13 [01-01_00:07:56:787] AT< OK
16:05:13 [01-01_00:07:56:787] AT> at+qeng=“servingcell”
16:05:13 [01-01_00:07:56:794] AT< +QENG: “servingcell”,“NOCONN”,“LTE”,“TDD”,460,15,2BA7203,71,38950,40,5,5,262B,-75,-3,-69,29,47
16:05:13 [01-01_00:07:56:794] AT< OK
16:05:13 [01-01_00:07:56:794] AT> AT+QNETDEVCTL?
16:05:13 [01-01_00:07:56:797] AT< +QNETDEVCTL: 1,1,1,1
16:05:13 [01-01_00:07:56:797] AT< OK
16:05:13 [01-01_00:07:56:797] AT> AT+CGACT?
16:05:13 [01-01_00:07:56:800] AT< +CGACT: 1,1
16:05:13 [01-01_00:07:56:801] AT< OK

两个位置都有试过,/etc/udhcpc 和 /usr/share/udhcpc 。用ifconfig usb0 都没有看到配置ip。
如果调用脚本是有打印的吧?
始终没看到打印,不太清楚udhcpc应用调用 default.script 的机制。但是看quectel-CM源码里面只有
busybox udhcpc -f -n -q -t 5 -i usb0 并没有-s 的参数指定。1.6.4 拨号程序是会自动调用 default.script 脚本吗?

udhcpc 会自动调用一个默认的脚本。这个逻辑可以去看下busybox 或者udhcpc的源码。
只运行busybox udhcpc -i usb0 不能将网卡的ip 地址bind 到usb0 上,要通过这个脚本,才能让ifconfig usb0 看到地址。
网卡上肯定有ip地址,没有地址就是哪里出异常了。