Jetson Nano Does Not Recognize RNDIS Device

Hello,
i am trying to use an RNDIS(SHARP SH-52A) device on my jetson nano,
i was able to use the device on my laptop with Ubuntu/Kubuntu 20.04(kernel 5.4.0-58-generic
) but i cant get nano to recognize it. please help.

here some debug info…

1 - lsusb (Jetson)

Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 009: ID 0489:c0a0 Foxconn / Hon Hai (that’s the device)
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

2- lshw (jetson)

    *-usb UNCLAIMED
         description: Generic USB device
         product: SH-52A
         vendor: QCOM
         physical id: 1
         bus info: usb@1:2.1
         version: 4.14
         serial: OH6LHMB070802802
         capabilities: usb-2.10
         configuration: maxpower=500mA speed=480Mbit/s

3 - dmesg | grep usb (jetson)

[ 2377.893099] tegra-xusb 70090000.xusb: exiting ELPG done
[ 2378.339224] usb 1-2.1: new high-speed USB device number 10 using tegra-xusb
[ 2378.366151] usb 1-2.1: New USB device found, idVendor=0489, idProduct=c0a0
[ 2378.366208] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2378.366247] usb 1-2.1: Product: SH-52A
[ 2378.366287] usb 1-2.1: Manufacturer: QCOM
[ 2378.366326] usb 1-2.1: SerialNumber: OH6LHMB070802802

what i tried?
well, on my laptop the OS is using de rndis_host driver so edited rndis_host.c on nano then recompiled the kernel.
rndis_host.c:

static const struct usb_device_id products = {
{
/* 2Wire HomePortal 1000SW /
USB_DEVICE_AND_INTERFACE_INFO(0x1630, 0x0042,
USB_CLASS_COMM, 2 /
ACM /, 0x0ff),
.driver_info = (unsigned long) &rndis_poll_status_info,
},{
/
Sharp SH-52A (device that i added)/
USB_DEVICE_AND_INTERFACE_INFO(0x0489, 0xc0a0,
USB_CLASS_COMM, 2 /
ACM /, 0x0ff),
.driver_info = (unsigned long) &rndis_info,
}, {
/
RNDIS is MSFT’s un-official variant of CDC ACM /
USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1 /
ACM /, 0x0ff),
.driver_info = (unsigned long) &rndis_info,
}, {
/
“ActiveSync” is an undocumented variant of RNDIS, used in WM5 /
USB_INTERFACE_INFO(USB_CLASS_MISC, 1, 1),
.driver_info = (unsigned long) &rndis_poll_status_info,
}, {
/
RNDIS for tethering */
USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
.driver_info = (unsigned long) &rndis_info,
},
{ }, // END
};

and it didn’t work either so i tried to bind the device(1-2.1) to rndis_host

modprobe rndis_host echo ‘1-2.1’ | tee /sys/bus/usb/drivers/rndis_host/bind
output:
tee: /sys/bus/usb/drivers/rndis_host/bind: No such device

why is the device using the tegra-xusb driver instead of rndis_host?
can i force the OS use rndis_host on it?

Hi,
This patch should help. Please give it a try.

USB tethering does not work

1 Like

Thank you very much!