| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
| docs:guide-user:network:wan:wwan:ethernetoverusb_rndis [2024/06/05 14:11] – [Use RNDIS USB Dongle for WAN connection] andrewz | docs:guide-user:network:wan:wwan:ethernetoverusb_rndis [2024/12/04 09:54] – [Additional steps] andrewz |
|---|
| |
| [[https://en.wikipedia.org/wiki/RNDIS|RNDIS]] (Remote Network Driver Interface Specification) is [[https://en.wikipedia.org/wiki/Ethernet_over_USB|Ethernet over USB]] protocol used by some USB modems. | [[https://en.wikipedia.org/wiki/RNDIS|RNDIS]] (Remote Network Driver Interface Specification) is [[https://en.wikipedia.org/wiki/Ethernet_over_USB|Ethernet over USB]] protocol used by some USB modems. |
| | |
| | The same applies to external modems connected to USB ports ("dongles") and internal models installed into M.2(NGFF) or mPCIe slots. |
| |
| Note from [[https://github.com/torvalds/linux/blob/master/drivers/net/usb/rndis_host.c|rndis_host Linux driver source code]]: | Note from [[https://github.com/torvalds/linux/blob/master/drivers/net/usb/rndis_host.c|rndis_host Linux driver source code]]: |
| > USE OF RNDIS IS STRONGLY DISCOURAGED in favor of such non-proprietary alternatives as CDC Ethernet or the newer (and currently rare) "Ethernet Emulation Model" (EEM). | > USE OF RNDIS IS STRONGLY DISCOURAGED in favor of such non-proprietary alternatives as CDC Ethernet or the newer (and currently rare) "Ethernet Emulation Model" (EEM). |
| |
| It is also used by many USB3.0-GigabitEthernet-Adapter like the TP-Link UE300 and all chinese low-cost ones I bought on ebay. It is one of the ways these gigabit ethernet dongles use to be "plug and play" or "driverless", by conforming to RNDIS standard so they don't need a special driver just for themselves. These dongles lack any kind of interface or settings, they are just usb-to-ethernet adapters, nothing more. | It is also used by many USB3.0-GigabitEthernet-Adapters like the TP-Link UE300 and all Chinese low-cost ones you can buy on ebay, etc. It is one of the ways these gigabit ethernet dongles use to be "plug and play" or "driverless", by conforming to RNDIS standard so they don't need a special driver just for themselves. These dongles lack any kind of web interface or settings, they are just usb-to-ethernet adapters, nothing more. |
| | |
| | Worth to add, the same protocol is widely used for [[docs:guide-user:network:wan:smartphone.usb.tethering|smartphone tethering]], so the same instructions are usually applicable for that use case as well. |
| |
| |
| ===== Setting up RNDIS-based dongles ===== | ===== Setting up RNDIS-based dongles ===== |
| |
| (This section is based on experience with Bleeding Edge r47548 from December of 2015 on a wt3020 and connecting to an Alcatel Onetouch L850.). | For RNDIS device to work ''kmod-usb-net-rndis'' package needs to be installed. Install it either in Luci → System → Software or via command line: |
| | <code> |
| | root@OpenWrt:~# opkg update |
| | root@OpenWrt:~# opkg install kmod-usb-net-rndis |
| | </code> |
| | |
| | Additional modules will be automatically installed as //dependencies//. |
| |
| For RNDIS device to work ''kmod-usb-net-rndis'' package needs to be installed. | You can also add the necessary packages when building a new image with [[https://firmware-selector.openwrt.org/|Firmware Selector]]. |
| |
| Install ''usb-modeswitch'' __if__ that is needed for switching the modem into a "working" state. More about: [[docs:guide-user:network:wan:wwan:usb-modeswitching|USB mode switch]] | Install ''usb-modeswitch'' __only if__ that is needed for switching the modem into a "working" state. More about: [[docs:guide-user:network:wan:wwan:usb-modeswitching|USB mode switch]] |
| |
| |
| ==== Additional steps ==== | ==== Additional steps ==== |
| |
| For some modems adding an interface will be sufficient, but others may need an APN provisioned, it is also sometimes necessary to send a special "dial" command to the AT command port, consult AT Commands Guide for the given modem for details. | For some modems adding an interface will be sufficient, but others may need an APN provisioned, it is also sometimes necessary to send a special "dial" command to the AT command port, consult AT Commands Guide for the given modem for details. If this is the case it is worth trying to configure the [[docs:guide-user:network:wan:wwan:ethernetoverusb_ncm|NCM]] interface instead. |
| |
| If the modem exposes //serial// interfaces then the appropriate driver needs to be installed (''kmod-usb-serial'' or ''kmod-usb-serial-option'' or ''kmod-usb-serial-qualcomm'' or ''kmod-usb-acm'') as well as a simple //terminal// app like ''picocom''. More about: sending [[docs:guide-user:network:wan:wwan:at_commands|AT commands]] from the router. | If the modem exposes //serial// interfaces then the appropriate driver needs to be installed (''kmod-usb-serial'' or ''kmod-usb-serial-option'' or ''kmod-usb-serial-qualcomm'' or ''kmod-usb-acm'') as well as a simple //terminal// app like ''picocom''. More about: sending [[docs:guide-user:network:wan:wwan:at_commands|AT commands]] from the router. |
| |
| \\ | |
| Since RNDIS-based sticks create their own NAT'ed IP subnet, it is important that OpenWrt's LAN IP range is different from the modem's IP range. In the case of the Alcatel L850, the default range is 192.168.1.1, which clashes with OpenWrt's default. Therefore OpenWrt's LAN IP should be changed to something else, such as: | |
| |
| <code> | |
| config interface 'lan' | |
| option ipaddr '192.168.10.1' | |
| </code> | |
| |
| \\ | |
| If auto-connect is disabled, or PIN-request is enabled on the modem, you may need to visit its admin web interface (typically at ''http://192.168.1.1'') to enter the PIN and/or initiate the connection. | If auto-connect is disabled, or PIN-request is enabled on the modem, you may need to visit its admin web interface (typically at ''http://192.168.1.1'') to enter the PIN and/or initiate the connection. |
| |
| |
| ==== RNDIS Troubleshooting ==== | ==== RNDIS Troubleshooting ==== |