Remarque importante: après avoir saisi cette "question", j'ai fait quelques tests et réalisé que je pouvais activer la connexion haut débit avec la nouvelle version d'Ubuntu Server - 15.10. La procédure est décrite ci-dessous. Quoi qu'il en soit, la raison pour laquelle cela ne fonctionne pas dans 14.04.04LTS ne m'est pas connue (la fonctionnalité n'est peut-être pas couverte dans la version de son noyau)
J'ai Huawei E3372H que je mets en mode "modem", de sorte qu'il ne fait pas NAT et se comporte comme un modem. Cela fonctionne avec Ubuntu 15.10 (desktop). Le gestionnaire de réseau montre la possibilité de créer une connexion haut débit et je ne remplis que les APN "Internet" et le tour est joué - après avoir activé cette connexion, cela fonctionne parfaitement.
Mais comment connecter mon serveur Ubuntu 14.04 à Internet en utilisant cette clé USB alors qu'aucun NetworkManager n'est installé?
Voici quelques informations de base sur le bâton:
lsusb le montre comme:
Bus 002 Device 009: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
Cette interface est en cours de création une fois la clé connectée à mon ordinateur de bureau Ubuntu:
wwx001e101f0000 Link encap:Ethernet HWaddr 00:1e:10:1f:00:00
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
J'ai essayé de suivre cette procédure ( https://johnlewis.ie/mobile-broadband-from-the-command-line-in-ubuntu/ ), mais j'ai malheureusement échoué:
Apr 9 16:32:32 test_server pppd[20296]: pppd 2.4.5 started by jim, uid 0
Apr 9 16:32:33 test_server chat[20298]: abort on (BUSY)
Apr 9 16:32:33 test_server chat[20298]: abort on (VOICE)
Apr 9 16:32:33 test_server chat[20298]: abort on (NO CARRIER)
Apr 9 16:32:33 test_server chat[20298]: abort on (NO DIALTONE)
Apr 9 16:32:33 test_server chat[20298]: abort on (NO DIAL TONE)
Apr 9 16:32:33 test_server chat[20298]: send (ATZ^M)
Apr 9 16:32:33 test_server chat[20298]: expect (OK)
Apr 9 16:32:33 test_server chat[20298]: ^M
Apr 9 16:32:33 test_server chat[20298]: OK
Apr 9 16:32:33 test_server chat[20298]: -- got it
Apr 9 16:32:33 test_server chat[20298]: send (AT+CGDCONT=1,"IP","internet"^M)
Apr 9 16:32:34 test_server chat[20298]: expect (OK)
Apr 9 16:32:34 test_server chat[20298]: ^M
Apr 9 16:32:34 test_server chat[20298]: ^M
Apr 9 16:32:34 test_server chat[20298]: OK
Apr 9 16:32:34 test_server chat[20298]: -- got it
Apr 9 16:32:34 test_server chat[20298]: send (ATDT*99#^M)
Apr 9 16:32:34 test_server chat[20298]: expect (CONNECT)
Apr 9 16:32:34 test_server chat[20298]: ^M
Apr 9 16:32:34 test_server chat[20298]: ^M
Apr 9 16:32:34 test_server chat[20298]: CONNECT
Apr 9 16:32:34 test_server chat[20298]: -- got it
Apr 9 16:32:34 test_server chat[20298]: send (^M)
Apr 9 16:32:34 test_server pppd[20296]: Script /usr/sbin/chat -v -f /etc/chatscripts/pap -T *99# finished (pid 20297), status = 0x0
Apr 9 16:32:34 test_server pppd[20296]: Serial connection established.
Apr 9 16:32:34 test_server pppd[20296]: using channel 10
Apr 9 16:32:34 test_server pppd[20296]: Using interface ppp0
Apr 9 16:32:34 test_server pppd[20296]: Connect: ppp0 <--> /dev/ttyUSB0
Apr 9 16:32:35 test_server pppd[20296]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xce74b2a1> <pcomp> <accomp>]
Apr 9 16:33:02 test_server pppd[20296]: message repeated 9 times: [ sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xce74b2a1> <pcomp> <accomp>]]
Apr 9 16:33:05 test_server pppd[20296]: LCP: timeout sending Config-Requests
Apr 9 16:33:05 test_server pppd[20296]: Connection terminated.
Apr 9 16:33:06 test_server pppd[20296]: Modem hangup
Edit: J'ai découvert la procédure de travail, , mais malheureusement cela ne fonctionne que sur mon bureau avec Ubuntu 15.10 :
echo -e "AT^NDISDUP=1,1,\"internet\"\r" > /dev/ttyUSB0
dhclient -v wwx001e101f0000
-> L'utilisation des commandes ci-dessus vous permettra d'utiliser le haut débit mobile sur l'interface Ethernet wwx001e101f0000.
Malheureusement, sur mon serveur Ubuntu 14.04 via la commande dhclient -v wwan0
, l'adresse IP n'est pas fournie bien que le modem soit connecté au LTE réseau (lumière bleue allumée). C'est très étrange.
Edit2: J'ai découvert que le problème est très probablement lié à la version du noyau Ubuntu 14.04. J'ai fait un test - installé un nouveau "test" Ubuntu Server 14.04 juste pour ce test - le comportement était exactement le même que sur mon serveur "de production" Ubuntu Server 14.04 - aucune IP acquise à l'aide de dhclient wwan0
.
Ensuite, j'ai installé le nouveau "test" Ubuntu Server 15.10 et dans cette installation, il fonctionne parfaitement. Je suppose donc que, pour une raison quelconque, cette interface ncm ne fonctionne pas correctement. J'ai remarqué cette différence entre les 2 serveurs:
Ubuntu 14.04 Dmesg:
Apr 9 19:32:13 ubuntu kernel: [27410.720039] usb 1-4: new high-speed USB device number 18 using ehci-pci
Apr 9 19:32:13 ubuntu kernel: [27410.861148] usb 1-4: New USB device found, idVendor=12d1, idProduct=1506
Apr 9 19:32:13 ubuntu kernel: [27410.861154] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Apr 9 19:32:13 ubuntu kernel: [27410.861159] usb 1-4: Product: HUAWEI_MOBILE
Apr 9 19:32:13 ubuntu kernel: [27410.861163] usb 1-4: Manufacturer: HUAWEI_MOBILE
Apr 9 19:32:13 ubuntu kernel: [27410.898395] option 1-4:1.0: GSM modem (1-port) converter detected
Apr 9 19:32:13 ubuntu kernel: [27410.898552] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB0
Apr 9 19:32:13 ubuntu kernel: [27410.943023] huawei_cdc_ncm 1-4:1.1: MAC-Address: 00:1e:10:1f:00:00
Apr 9 19:32:13 ubuntu kernel: [27410.943029] huawei_cdc_ncm 1-4:1.1: setting rx_max = 16384
Apr 9 19:32:13 ubuntu kernel: [27410.968250] huawei_cdc_ncm 1-4:1.1: cdc-wdm0: USB WDM device
Apr 9 19:32:13 ubuntu kernel: [27410.968657] huawei_cdc_ncm 1-4:1.1 wwan0: register 'huawei_cdc_ncm' at usb-0000:00:1a.7-4, Huawei CDC
NCM device, 00:1e:10:1f:00:00
Ubuntu 15.10 Dmesg:
Apr 9 22:29:20 ubuntu kernel: [ 64.269728] usb 2-1.2: new high-speed USB device number 7 using ehci-pci
Apr 9 22:29:20 ubuntu kernel: [ 64.367373] usb 2-1.2: New USB device found, idVendor=12d1, idProduct=1506
Apr 9 22:29:20 ubuntu kernel: [ 64.367379] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Apr 9 22:29:20 ubuntu kernel: [ 64.367382] usb 2-1.2: Product: HUAWEI_MOBILE
Apr 9 22:29:20 ubuntu kernel: [ 64.367384] usb 2-1.2: Manufacturer: HUAWEI_MOBILE
Apr 9 22:29:21 ubuntu kernel: [ 64.459900] usbcore: registered new interface driver usbserial
Apr 9 22:29:21 ubuntu kernel: [ 64.459910] usbcore: registered new interface driver usbserial_generic
Apr 9 22:29:21 ubuntu kernel: [ 64.459918] usbserial: USB Serial support registered for generic
Apr 9 22:29:21 ubuntu kernel: [ 64.507601] usbcore: registered new interface driver option
Apr 9 22:29:21 ubuntu kernel: [ 64.507614] usbserial: USB Serial support registered for GSM modem (1-port)
Apr 9 22:29:21 ubuntu kernel: [ 64.507691] option 2-1.2:1.0: GSM modem (1-port) converter detected
Apr 9 22:29:21 ubuntu kernel: [ 64.507963] usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB0
Apr 9 22:29:21 ubuntu kernel: [ 64.535895] usbcore: registered new interface driver cdc_ncm
Apr 9 22:29:21 ubuntu kernel: [ 64.542625] usbcore: registered new interface driver cdc_wdm
Apr 9 22:29:21 ubuntu kernel: [ 64.579935] huawei_cdc_ncm 2-1.2:1.1: MAC-Address: 00:1e:10:1f:00:00
Apr 9 22:29:21 ubuntu kernel: [ 64.579940] huawei_cdc_ncm 2-1.2:1.1: setting rx_max = 16384
Apr 9 22:29:21 ubuntu kernel: [ 64.587318] huawei_cdc_ncm 2-1.2:1.1: NDP will be placed at end of frame for this device.
Apr 9 22:29:21 ubuntu kernel: [ 64.587427] huawei_cdc_ncm 2-1.2:1.1: cdc-wdm1: USB WDM device
Apr 9 22:29:21 ubuntu kernel: [ 64.587579] huawei_cdc_ncm 2-1.2:1.1 wwan0: register 'huawei_cdc_ncm' at usb-0000:00:1d.0-1.2, Huawei CDC NC
M device, 00:1e:10:1f:00:00
Donc, dans Ubuntu 15.10, il y a des entrées supplémentaires "usbcore" et "usbserial" enregistrées et l'interface eth est également renommée wwan0 en wwx001e101f0000. Je vais essayer de mettre à jour le noyau de mon Ubuntu 14.04 vers la version supérieure et vérifierai si cela fonctionnera là-bas.
Remarque importante: Lors de mes tests, j'ai installé l'image iso de Ubuntu Server 14.04.2. Celui-ci avait l'ancienne version du noyau 3.x. Maintenant, j'ai téléchargé 14.04.4 à partir du site Web Ubuntu et après l'installation, je peux voir qu'il avait le noyau 4.2. Intéressant est sur mon serveur "de production". J'ai la version 14.04.4 du serveur Ubuntu, mais le noyau est 3.16: Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.16.0-53-generic x86_64)
. Je mets à jour le serveur régulièrement, mais il semble que, pour une raison quelconque, linux-generci-lts-wily soit inclus dans le fichier téléchargé 14.04.4, mais ne soit pas présent dans mon fichier 14.04.4, qui avait été mis à jour plusieurs fois.
Nouvelle installation du 14.04.4:
$ Sudo dpkg -l linux-generic-lts-*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=============================-===================-===================-================================================================
ii linux-generic-lts-wily 4.2.0.27.21 AMD64 Complete Generic Linux kernel and headers
Donc apt-get install linux-generic-lts-wily a résolu le problème sur mon serveur Ubuntu - il a installé le noyau 4.2 et fonctionne correctement avec celui-ci.
Après des tests supplémentaires, j'ai constaté que j'avais la version 3.16 du noyau sur mon Ubuntu Server 14.04.4. Avec cette version du noyau, Huawei E3372H ne fonctionnait pas correctement en mode cdc_ncm. La solution consiste à mettre à niveau le noyau vers la version 4.2. Ensuite, la connexion à Internet peut être effectuée avec ces commandes simples (en supposant que le modem créé/dev/ttyUSB0, APN est "internet"):
Cette commande connectera la clé à LTE netowrk (Internet est un APN, afin que les autres fournisseurs puissent utiliser un nom APN différent):
echo -e "AT^NDISDUP=1,1,\"internet\"\r" > /dev/ttyUSB0
Cette commande va acquérir l’adresse IP de l’interface wwan0:
dhclient wwan0