
С моим Huawei ME906s на Linux (проверено с Debian sid, Debian experimental, Fedora 24 и Ubuntu 16.04, но результат тот же под Windows 10), я получаю сообщения ERROR
или NO CARRIER
(в зависимости от того, какое устройство я использую). В отличие отэтот вопрос, поведение постоянное и также происходит, когда я запускаю wvdial долго после загрузки. Я удалил PIN-код SIM-карты и проверил, что мобильная сеть работает со смартфоном Android.
Используя Linux 4.7.0-rc4, я вижу 5 устройств, которые могу связать с картой:
/dev/ttyUSB0
- Говорит на языке AT, вывод показан ниже/dev/ttyUSB1
- Нет выходных данных (для GPS?)/dev/ttyUSB2
- Говорит AT, но отвечает ERROR вместо NO CARRIER при наборе номера/dev/ttyUSB3
- То же поведение, что и у /dev/ttyUSB0/dev/ttyUSB4
- Нет выходных данных (для GPS?)
Вот что я получаю с помощьюспециально созданный wvdial.conf:
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: AT+CFUN=1
AT+CFUN=1
OK
--> Sending: ATQ0 V1 E1 S0=0
ATQ0 V1 E1 S0=0
OK
--> Sending: AT+CGDCONT=1,"IP","internet.t-mobile"
AT+CGDCONT=1,"IP","internet.t-mobile"
OK
--> Sending: ATI
ATI
Manufacturer: Huawei Technologies Co., Ltd.
Model: ME906s-158
Revision: 11.617.00.00.00
IMEI: 8<snip by @phihag>0
+GCAP: +CGSM,+DS,+ES
OK
--> Sending: AT+CPIN?
AT+CPIN?
+CPIN: READY
OK
--> Sending: AT+CFUN?
AT+CFUN?
+CFUN: 1
OK
--> Sending: AT+CSQ
AT+CSQ
+CSQ: 99,99
OK
--> Sending: AT+CREG?
AT+CREG?
+CREG: 0,2
OK
--> Modem initialized.
--> Sending: ATD*99#
--> Waiting for carrier.
ATD*99#
NO CARRIER
--> No Carrier! Trying again.
Последние 5 строк повторяются более 10 раз.
Другие инструменты, такие как sakis3g и ModemManager/NetworkManager, также зависают при попытке подключения.
Я также вижу сетевое соединение, связанное с модемом, но оно тоже недоступно:
$ ip link
...
6: enp0s20f0u5c2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 02:1e:10:1f:00:00 brd ff:ff:ff:ff:ff:ff
Я считаю, что rfkill
не следует проявлять активность:
$ rfkill list
0: tpacpi_bluetooth_sw: Bluetooth
Soft blocked: no
Hard blocked: no
1: tpacpi_wwan_sw: Wireless WAN
Soft blocked: no
Hard blocked: no
3: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
10: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
(Разговариваю с /dev/ttyUSB0
)
AT^RFSWITCH?
^RFSWITCH: 1,1
OK
Как и предполагалось, я попробовал использовать AT^NDISDUP
вместо этого, но безрезультатно (хотя на следующем ATZ
я вижу дополнительные строки):
$ minicom -D /dev/ttyUSB0
ATZ
OK
^PDPSTATUS: 2
^NDISSTAT: 0,0,,"IPV4"
AT^NDISDUP=1,1,"internet.t-mobile"
OK
AT^DHCP?
ERROR
Однако ip link
все еще показывает NO-CARRIER, и dhclient -v enp0s20f0u5c2
время ожидания истекло. С ethtool
я вижу:
$ ethtool -i enp0s20f0u5c2
driver: cdc_ether
version: 22-Aug-2005
firmware-version: CDC Ethernet Device
expansion-rom-version:
bus-info: usb-0000:00:14.0-5
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
dmesg мне кажется хорошим:
[ 11.674523] cdc_ether 1-5:2.0 usb0: register 'cdc_ether' at usb-0000:00:14.0-5, CDC Ethernet Device, 02:1e:10:1f:00:00
[ 11.674630] usbcore: registered new interface driver cdc_ether
[ 11.675451] option 1-5:2.2: GSM modem (1-port) converter detected
[ 11.675746] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB0
[ 11.675767] option 1-5:2.3: GSM modem (1-port) converter detected
[ 11.676499] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB1
[ 11.676528] option 1-5:2.4: GSM modem (1-port) converter detected
[ 11.676569] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB2
[ 11.676586] option 1-5:2.5: GSM modem (1-port) converter detected
[ 11.676620] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB3
[ 11.676637] option 1-5:2.6: GSM modem (1-port) converter detected
[ 11.676672] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB4
Аналогично,lsusb
выходвыглядит вполне нормально.
Как подключить Huawei ME906s?
решение1
Вы проверили статус AT^RFSWITCH?? Он должен вернуть AT^RFSWITCH: 1,1. Если есть нули, то модем находится в режиме rfkill "в самолете".
Модем huawei имеет две настройки rfswitch (также известные как rflock или rfkill): одну аппаратную и одну программную. Программную rf-kill можно отключить, выполнив AT^RFSWITCH=1.
Аппаратная настройка должна быть отключена на вашей материнской плате/платформе, так как она фактически понижает уровень контакта на разъеме M.2/mPCIe. На ноутбуках это часто контролируется функциональной клавишей ACPI. На моем X260 это отображается в Linux как /sys/class/rfkill/rfkill3/state
решение2
Возможно, вам захочется попробовать более современный метод подключения:
AT^NDISDUP=1,1,"internet.t-mobile"
Затем используйте DHCP-клиент на вашем enp0s20f0u5c2
интерфейсе, который вы видите.
Если вы подключены, то AT^DHCP?
также должен быть выдан ответ с вашим IP-адресом в шестнадцатеричном формате.
решение3
У меня была та же проблема с модемом ME906s-158. Пытался использовать его через MBIM - не получилось. У модема была устаревшая прошивка - поэтому я обновил ее до последней, которую получил от techship.com. После обновления ME906s заработал как и ожидалось в режиме cdc_ether. До включения соединения на модеме сетевой интерфейс выглядел так:
26: enp0s29u1u2u5c2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 02:1e:10:1f:00:00 brd ff:ff:ff:ff:ff:ff
Мне нужно включить соединение командой AT AT^NDISDUP=1,1
. И интерфейс получил IP через DHCP:
26: enp0s29u1u2u5c2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 02:1e:10:1f:00:00 brd ff:ff:ff:ff:ff:ff
inet 10.173.107.197/30 brd 10.173.107.199 scope global dynamic enp0s29u1u2u5c2
valid_lft 518398sec preferred_lft 518398sec
inet6 fe80::ef85:b8f8:761e:b922/64 scope link
valid_lft forever preferred_lft forever