>>>> I'll assume these are the Yota LTE (LU150?) USB sticks based on the GCT >>>> chipset, vid 1076 >>> >>> That's right. >>> >>> >>>> pid 8003. If not please elighten me :) >>> >>> At least my modem has pid 8002. >>> >>> >>>> I'm happy to take a patch for these devices, but first we'd want a bit >>>> more information about it. How do they communicate with the host? Does >>>> the host actually need to configure them at all, or is the configuration >>>> all done through the device's web interface? >>> >>> They use RNDIS, so the host sees them as network interfaces (the >>> driver is rndis_host). >>> >>> lsusb: >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> bDeviceClass 2 Communications >>> idVendor 0x1076 GCT Semiconductor, Inc. >>> idProduct 0x8002 >>> iManufacturer 1 GCT SEMICONDUCTOR Inc >>> iProduct 2 Modem Yota >>> bInterfaceClass 224 Wireless >>> bInterfaceSubClass 1 Radio Frequency >>> bInterfaceProtocol 3 RNDIS >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> >>> dmesg: >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> [37908.902059] usb 2-1: new high-speed USB device number 5 using ehci_hcd >>> [37909.016784] usb 2-1: New USB device found, idVendor=1076, idProduct=8001 >>> [37909.016790] usb 2-1: New USB device strings: Mfr=1, Product=2, >>> SerialNumber=0 >>> [37909.016795] usb 2-1: Product: Modem Yota >>> [37909.016799] usb 2-1: Manufacturer: GCT SEMICONDUCTOR Inc >>> [37909.017941] scsi7 : usb-storage 2-1:1.0 >>> [37910.020806] scsi 7:0:0:0: CD-ROM GDM Mass >>> PQ: 0 ANSI: 0 CCS >>> [37910.040402] sr1: scsi3-mmc drive: 0x/0x caddy >>> [37910.040821] sr 7:0:0:0: Attached scsi CD-ROM sr1 >>> [37911.023887] usb 2-1: USB disconnect, device number 5 >>> [37911.780107] usb 2-1: new high-speed USB device number 6 using ehci_hcd >>> [37911.894782] usb 2-1: New USB device found, idVendor=1076, idProduct=8002 >>> [37911.894788] usb 2-1: New USB device strings: Mfr=1, Product=2, >>> SerialNumber=0 >>> [37911.894792] usb 2-1: Product: Modem Yota >>> [37911.894796] usb 2-1: Manufacturer: GCT SEMICONDUCTOR Inc >>> [37911.895640] rndis_host 2-1:1.0: dev can't take 1558 byte packets >>> (max 1458), adjusting MTU to 1400 >>> [37911.896799] rndis_host 2-1:1.0: eth1: register 'rndis_host' at >>> usb-0000:00:1d.7-1, RNDIS device, 00:09:3b:f0:1a:40 >>> [37911.910891] systemd-udevd[14153]: renamed network interface eth1 to yota >>> [37922.034017] yota: no IPv6 routers present >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> >>> The device seems to contain a DHCP-server that always provides the >>> same settings: 10.0.0.10/24 gw/dns 10.0.0.1. >>> The server is rather buggy so I've sticked to static IP configuration in NM. >>> >>> You can't really configure it — it just works. Through the web >>> interface you can check connection status, >>> update firmware (they say, you won't need this, because it will be >>> updated automatically), and >>> switch the device on/off (the relevant code is commented out in HTML >>> for some reason, though it does work). >>> >>> Web GUI gets status from http://10.0.0.1/status. I bet, their software >>> for Windows and Mac >>> gets data the same way.The data looks like this: >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> InterfaceType=lte >>> 3GPP.IMSI=<not really interesting> >>> 3GPP.UICC-ID=<not really interesting> >>> 3GPP.IMEI=<not really interesting> >>> 3GPP.IMEISV=<not really interesting> >>> DeviceName=Modem Yota >>> RfVersion=no information >>> AsicVersion=GDM7240R1 >>> FirmwareVersion=3.7 >>> State=Connected >>> UpdateState=NotStarted >>> UpdateProgress=0 >>> ConnectedTime=894 >>> 3GPP.SINR=4 >>> 3GPP.RSSI=-86 >>> 3GPP.MCC=250 >>> 3GPP.MNC=11 >>> 3GPP.PLMN=25011 >>> 3GPP.RoamingStatus=0 >>> 3GPP.CGI=25011BF2A900 >>> 3GPP.CI=BF2A900 >>> 3GPP.eNBID=BF2A9 >>> 3GPP.HNBN= >>> 3GPP.CSGT= >>> 3GPP.CenterFreq=2642500 >>> 3GPP.TxPWR=23.0 >>> 3GPP.SPN=Yota >>> SessionID=3420730 >>> 3GPP.IsIdle=0 >>> IP=10.138.173.239 >>> SubnetMask=255.255.255.0 >>> DefaultGateway=10.0.0.1 >>> DHCP=10.0.0.1 >>> DNS=10.0.0.1 >>> SentBytes=97808 >>> ReceivedBytes=253845 >>> MaxDownlinkThroughput=99232 >>> MaxUplinkThroughput=88064 >>> CurDownlinkThroughput=53480 >>> CurUplinkThroughput=13048 >>> TotalHandoversCount=0 >>> SucceededHandoversCount=0 >>> NewFirmwareVersion= >>> 3GPP.RSRP=-116 >>> 3GPP.RSRQ=-11.0 >>> MSISDN= >>> SupportsConnectDisabling=0 >>> CQI=8 >>> DownlinkMCSMain=3,9,6 >>> DownlinkMCSDiv=3,6,4 >>> UplinkMCS=3,4,2 >>> NBRi=earfcn,ci,rsrp >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> >> >> ModemManager as in git master is really port-type agnostic; which means >> that a plugin may use whatever method it needs to run specific steps in >> each of the state machines available. >> >> For this specific usecase, I don't think it would be too hard to develop >> a plugin using libsoup to run the periodic HTTP-GET requests to the >> built-in webserver in order to get these values. >> >> Additional changes in the core may still be needed, though, as currently >> we always require to have a 'primary' port available, either AT or QMI. >> In this case we could extend the list with an 'HTTP-based' primary port :-) > > Haha, that seems like a hack :) >
But a pretty pretty one! > But yeah, I think given the details available via the HTTP interface, > this is better as ModemManager plugin. It would implement the 3GPP > interface (due to the LTE support, obviously) but wouldn't support much > other than reporting registration state, signal, access technology, and > service-provider name. Obviously wouldn't be able to do stuff like set > a technology preference (which isn't surprising, as Yota doesn't have a > 2G/3G network) or read any of the SIM details or whatever, but those > methods should just return a "not implemented" error. > Exactly, yes, that's the idea. -- Aleksander _______________________________________________ networkmanager-list mailing list networkmanager-list@gnome.org https://mail.gnome.org/mailman/listinfo/networkmanager-list