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?