Ma in :1446 la chiavetta espone solo l'unità cd con i driver per windows e il lettore di schede sd. Cioè :1446 non è una chiavetta finchè non fai il modeswitch. In :1446 non c'è ne il modem ne la cdc_ether. Se in usb-mode.json tolgo la sezione che switcha :1446 in qualcosa di utile, da lsusb mi rimane appunto solo :1446 e mobiled non parte nemmeno. Ho provato anche a switchare su :140c (la QMI) e ad aggiungerlo come id compatibile al driver qmi_wwan che da quanto leggo in questo modo dovrebbe gestirla correttamente ma non sembra farlo, forse sbaglio qualcosa io ma su questo tentativo non andrei oltre visto che mobiled e la webui poi non funzionerebbero. Al punto di adesso invece nella webui funziona tutto, la gestione dei profili e degli apn, la visualizzazione delle stat e i vari toggle per abilitarla tranne che la da per disconnessa.
Le uniche cose che ci sono da fare per riprodurre questo risultato sono:
- aggiungere use_l3_ifname=1 come vedete qui sotto in /lib/netifd/mobiled.script
create_dhcp_interfaces() {
local action="$1"
json_select "dhcp"
local ifname use_l3_ifname
json_get_vars ifname use_l3_ifname
logger -t mobiled "debugging create_dhcp_if action=$1 interface=$interface ifname=$ifname use_l3_ifname=$use_l3_ifname"
if [ -z "$ifname" ]; then
proto_notify_error "$interface" "NO_IFNAME"
return 1
fi
dhcp_ifname="@$interface"
+ #force l3 interface name
+ use_l3_ifname=1
if [ "$use_l3_ifname" = "1" ]; then
logger -t mobiled "bringing up l3 ifname: $ifname"
ifconfig "$ifname" up
dhcp_ifname="$ifname"
fi- impostare il mac address dell'interfaccia cdc_ether, nel mio caso wwan0, su 00:01:02:03:04:05 a causa di un bug noto ma mai risolto nel driver linux per cdc_ether
Se non fate la prima di queste due cose, mobiled non arriva mai a prendere l'ip e soprattutto non rimane agganciato all'apn ma continua a resettarlo. Non ho voglia di perderci altro tempo, ma sono convinto che se volete arrivare a far risultare il mobile come connesso dovete capite come mai e con che logica mobiled.script si ritrova normalmente con quel flag a 0, e perchè quando è a 0 quello script non funziona correttamente. Se non fate la seconda, dopo aver preso l'ip, l'interfaccia è semplicemente muta perchè i pacchetti che arrivano hanno tutti quel mac address come destinazione, diverso da quello dell'interfaccia cdc_ether, e quindi scartati.
edit: Nonostante io sia piuttosto sicuro che in :140c su windows questa maledetta funzioni via QMI, ho trovato un tale -piuttosto sgamato in materia- che nel tentativo di comprendere cosa avessero in mente quelli di huawei mentre progettavano il firmware di queste chiavette ha suggerito ad un altro utente di provare a "montare" il device cdc_ether sotto :1436 col driver cdc_wdm (quello da cui dipende QMI). Per farla breve l'ho provato anch'io e sembra funzionare, cioè ho il device wdm su cui posso fare query via uqmi tipo "uqmi -d /dev/cdc-wdm0 --get-imei". Non ho provato a far partire la connessione perchè ho dovuto restituire la sim funzionante che avevo preso in prestito per le prove oggi pomeriggio.
Per riuscirci ho fatto così: partendo da questa situazione
[ 1838.665000] usb 1-2: new high-speed USB device number 8 using ehci_hcd
[ 1838.797000] scsi24 : usb-storage 1-2:1.0
[ 1838.816000] scsi25 : usb-storage 1-2:1.1
[ 1839.392000] usb 1-2: USB disconnect, device number 8
[ 1843.521000] usb 1-2: new high-speed USB device number 9 using ehci_hcd
[ 1843.654000] option 1-2:1.0: GSM modem (1-port) converter detected
[ 1843.671000] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[ 1843.717000] cdc_ether 1-2:1.1: wwan0: register 'cdc_ether' at usb-0000:00:0a.0-2, Mobile Broadband Network Device, 02:50:f3:00:00:00
[ 1843.752000] option 1-2:1.3: GSM modem (1-port) converter detected
[ 1843.772000] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[ 1843.792000] option 1-2:1.4: GSM modem (1-port) converter detected
[ 1843.817000] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB3
[ 1843.835000] scsi30 : usb-storage 1-2:1.5
[ 1843.873000] scsi31 : usb-storage 1-2:1.6
[ 1844.855000] scsi 30:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
[ 1844.899000] scsi 31:0:0:0: Direct-Access HUAWEI SD Storage 2.31 PQ: 0 ANSI: 2
[ 1844.946000] sd 31:0:0:0: [sda] Attached SCSI removable diskho prima fatto l'unbind della cdc_ether:
echo "1-2:1.1" >/sys/bus/usb/drivers/cdc_ether/unbindpoi registrato l'id del device :1436 sul driver cdc_wdm:
echo "12d1:1436" >/sys/bus/usb/drivers/cdc_wdm/new_idil risultato in dmesg degli ultimi due passi è questo:
[ 1930.553000] cdc_ether 1-2:1.1: wwan0: unregister 'cdc_ether' usb-0000:00:0a.0-2, Mobile Broadband Network Device
[ 1986.341000] cdc_wdm 1-2:1.1: Ignoring extra header, type 15, length 13
[ 1986.347000] cdc_wdm 1-2:1.1: Ignoring extra header, type 6, length 5
[ 1986.355000] cdc_wdm 1-2:1.1: cdc-wdm0: USB WDM device
[ 1986.360000] cdc_wdm: probe of 1-2:1.2 failed with error -22Se siete curiosi di vedere come la comunità open di linux e dintorni, molti anni fa, ha notato, capito e valutato le possibili strade per risolvere il problema del mac errato in cdc_ether, inclusa la possibilità di usare stabilmente QMI al suo posto, senza però intraprendere alcuna azione a riguardo andate qui:
http://gnome-networkmanager.2324886.n4.nabble.com/MM-Huawei-E1820-and-NDISDUP-td13670.html