Protectli uses the Qualcomm MDG200 cellular modem for an internal modem when you purchase from their store.
The device is designed to present itself as a USB Ethernet adapter to the host OS.
VyOS 1.3.2, and VyOS 1.4 nightly both list the device as a USB device, but do not show it as an Ethernet device.
Research indicates that the host OS should use RNDIS to communicate with the device.
Possible solution could be to modify the vyos-build project to include CONFIG_USBNET_RNDIS_HOST=m
Since this is a Kernel modification, I thought it would be prudent to open up a dialog on the implications of this change. It could open up additional USB Ethernet adapters (maybe Android/iPhone tethering?), but could potentially cause unknown effects as well.
vyos-build RNDIS search in GitHub shows that arm64 does seem to include RNDIS configuration options, but x86 does not. Since I'm not completely familiar with Kernel configuration, I just wanted to reference the two different files, and the related configuration items.
Tested the device with ipfire distro, and found that the modem did work, and presented itself as an Ethernet adapter to the host OS. Pulled some relevant information from that distro for reference.
Neglected to pull relevant logs from VyOS distro, but will update when I am working on the device again.
Relevant lsusb output from ipfire distro
[root@test ~]# lsusb -s 001:003 -v Bus 001 Device 003: ID 05c6:90b3 Qualcomm, Inc. MDG200 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x05c6 Qualcomm, Inc. idProduct 0x90b3 bcdDevice 3.18 iManufacturer 1 Qualcomm iProduct 2 MDG200 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x004b bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 500mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 2 bFunctionClass 224 Wireless bFunctionSubClass 1 Radio Frequency bFunctionProtocol 3 RNDIS iFunction 9 RNDIS Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 224 Wireless bInterfaceSubClass 1 Radio Frequency bInterfaceProtocol 3 RNDIS iInterface 7 RNDIS Communications Control ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 01 ** UNRECOGNIZED: 04 24 02 00 ** UNRECOGNIZED: 05 24 06 00 01 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 9 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 8 RNDIS Ethernet Data Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered)
Related bootlog messages from ipfire
[root@test ~]# cat /var/log/bootlog | grep usb [ 0.245158] usbcore: registered new interface driver usbfs [ 0.245158] usbcore: registered new interface driver hub [ 0.245160] usbcore: registered new device driver usb [ 0.356693] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01 [ 0.356777] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 0.356856] usb usb1: Product: xHCI Host Controller [ 0.356930] usb usb1: Manufacturer: Linux 6.1.11-ipfire xhci-hcd [ 0.357007] usb usb1: SerialNumber: 0000:00:14.0 [ 0.357980] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.01 [ 0.358064] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 0.358142] usb usb2: Product: xHCI Host Controller [ 0.358228] usb usb2: Manufacturer: Linux 6.1.11-ipfire xhci-hcd [ 0.358305] usb usb2: SerialNumber: 0000:00:14.0 [ 0.359329] usbcore: registered new interface driver uas [ 0.359433] usbcore: registered new interface driver usb-storage [ 0.362084] usbcore: registered new interface driver usbhid [ 0.362184] usbhid: USB HID core driver [ 0.598285] usb 1-3: new high-speed USB device number 2 using xhci_hcd [ 0.744675] usb 1-3: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.00 [ 0.744769] usb 1-3: New USB device strings: Mfr=0, Product=1, SerialNumber=0 [ 0.744846] usb 1-3: Product: USB 2.0 Hub [MTT] [ 0.862175] usb 1-5: new high-speed USB device number 3 using xhci_hcd [ 1.000598] usb 1-5: New USB device found, idVendor=05c6, idProduct=90b3, bcdDevice= 3.18 [ 1.000692] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 1.000771] usb 1-5: Product: MDG200 [ 1.000843] usb 1-5: Manufacturer: Qualcomm [ 1.163206] usb 1-3.2: new low-speed USB device number 4 using xhci_hcd [ 1.351354] usb 1-3.2: New USB device found, idVendor=413c, idProduct=2113, bcdDevice= 1.08 [ 1.351459] usb 1-3.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [ 1.351545] usb 1-3.2: Product: Dell KB216 Wired Keyboard [ 1.360753] input: Dell KB216 Wired Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.2/1-3.2:1.0/0003:413C:2113.0001/input/input2 [ 1.412840] hid-generic 0003:413C:2113.0001: input,hidraw0: USB HID v1.11 Keyboard [Dell KB216 Wired Keyboard] on usb-0000:00:14.0-3.2/input0 [ 1.417841] input: Dell KB216 Wired Keyboard System Control as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.2/1-3.2:1.1/0003:413C:2113.0002/input/input3 [ 1.470393] input: Dell KB216 Wired Keyboard Consumer Control as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.2/1-3.2:1.1/0003:413C:2113.0002/input/input4 [ 1.470613] hid-generic 0003:413C:2113.0002: input,hidraw1: USB HID v1.11 Device [Dell KB216 Wired Keyboard] on usb-0000:00:14.0-3.2/input1 [ 3.272719] usbcore: registered new interface driver cdc_ether [ 3.343880] rndis_host 1-5:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-5, RNDIS device, c6:d7:3d:9e:a8:59 [ 3.343963] usbcore: registered new interface driver rndis_host [ 3.761964] rndis_host 1-5:1.0 red0: renamed from usb0
Related kernel module output from ipfire
[root@test ~]# lsmod | grep rndis rndis_host 24576 0 cdc_ether 24576 1 rndis_host usbnet 57344 2 rndis_host,cdc_ether
[root@test ~]# lsmod Module Size Used by xt_set 20480 2 ip_set_hash_net 53248 1 xt_MASQUERADE 20480 1 cfg80211 1122304 0 rfkill 36864 1 cfg80211 8021q 40960 0 garp 16384 1 8021q ip_set 61440 2 xt_set,ip_set_hash_net xt_hashlimit 20480 2 xt_policy 16384 5 xt_TCPMSS 16384 1 xt_conntrack 16384 7 xt_comment 16384 12 ipt_REJECT 16384 1 nf_reject_ipv4 16384 1 ipt_REJECT xt_LOG 20480 12 xt_limit 16384 12 xt_mark 16384 7 xt_connmark 16384 2 nf_log_syslog 24576 12 iptable_raw 16384 0 iptable_mangle 16384 1 iptable_filter 16384 1 vfat 24576 1 fat 90112 1 vfat snd_hda_codec_hdmi 81920 0 snd_hda_codec_realtek 176128 1 snd_hda_codec_generic 98304 1 snd_hda_codec_realtek ledtrig_audio 16384 1 snd_hda_codec_generic sch_cake 40960 3 fb_sys_fops 16384 0 syscopyarea 16384 0 sysfillrect 16384 0 sysimgblt 16384 0 snd_hda_intel 57344 0 snd_intel_dspcfg 20480 1 snd_hda_intel intel_powerclamp 20480 0 coretemp 20480 0 snd_hda_codec 180224 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek kvm_intel 376832 0 snd_hda_core 122880 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek kvm 1122304 1 kvm_intel snd_hwdep 16384 1 snd_hda_codec iTCO_wdt 16384 0 igb 274432 0 at24 28672 0 snd_pcm 184320 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core regmap_i2c 16384 1 at24 iTCO_vendor_support 16384 1 iTCO_wdt ptp 36864 1 igb processor_thermal_device_pci_legacy 16384 0 rndis_host 24576 0 i2c_i801 36864 0 snd_timer 40960 1 snd_pcm processor_thermal_device 20480 1 processor_thermal_device_pci_legacy pps_core 24576 1 ptp cdc_ether 24576 1 rndis_host irqbypass 16384 1 kvm i2c_smbus 20480 1 i2c_i801 processor_thermal_rfim 16384 1 processor_thermal_device dca 16384 1 igb snd 126976 8 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm lpc_ich 28672 0 usbnet 57344 2 rndis_host,cdc_ether i2c_algo_bit 16384 1 igb processor_thermal_mbox 16384 2 processor_thermal_rfim,processor_thermal_device pcspkr 16384 0 mii 16384 1 usbnet i2c_core 114688 6 i2c_algo_bit,at24,igb,i2c_smbus,i2c_i801,regmap_i2c mfd_core 20480 1 lpc_ich int340x_thermal_zone 20480 1 processor_thermal_device soundcore 16384 1 snd intel_soc_dts_iosf 20480 1 processor_thermal_device_pci_legacy video 65536 0 wmi 36864 1 video crct10dif_pclmul 16384 1 crc32_pclmul 16384 0 polyval_generic 16384 0 ghash_clmulni_intel 16384 0 sha512_ssse3 49152 0 pinctrl_cherryview 49152 0 dm_mirror 28672 0 dm_region_hash 24576 1 dm_mirror dm_log 20480 2 dm_region_hash,dm_mirror dm_mod 167936 2 dm_log,dm_mirror