Please enable javascript, or click here to visit my ecommerce web site powered by Shopify.
Jump to: navigation, search

RockpiE/dev/usbnet

< RockpiE‎ | dev
Revision as of 03:45, 12 October 2020 by Zzl (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
    ROCK Pi E >  Development >  USB Device Network]

Requirement

  • ROCK Pi E mainboard
  • eMMC module
  • Power adapter
  • USB Male A to Dupont cable.
    • One port is Male A type and the other includes three Dupont lines.
    • Hardware connection
ROCK Pi E 40-pin Header USB Interface USB Male A to Dupont Cable
PIN#18 Data+ Green wire
PIN#16 Data- White wire
PIN#14 GND Black wire

Rock-pi-e-usb-mala-a-to-dupont-cable.jpg

Software preparation

  • Kernel version

USB gadget driver must be enabled to configure usb net. You need to update the kernel to at least version 4.4.194-16 rockchip.

  • Stop conflicting services

So far, Dupont cable OTG port only supports one Gadget function. To use use USB net, here need to stop rockchip-adbd service.

root@rockpie:~# systemctl stop rockchip-adbd
root@rockpie:~# systemctl disable rockchip-adbd
root@rockpie:~# reboot

Load kernel module

  • Connect the ROCK Pi E to PC with a Male A type and the other includes three Dupont lines cable.
  • Install kernel module on ROCK Pi S
root@rockpis:~# modprobe g_ether

dmesg shoule output the folowing:

root@rockpis:~# dmesg -c
[   25.792177] using random self ethernet address
[   25.792239] using random host ethernet address
[   25.794179] usb0: HOST MAC fe:fc:51:10:b2:fa
[   25.794444] usb0: MAC 82:21:a8:1b:f3:4a
[   25.794539] using random self ethernet address
[   25.794589] using random host ethernet address
[   25.794787] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[   25.794819] g_ether gadget: g_ether ready
[   25.797133] dwc2 ff400000.usb: bound driver g_ether
[   25.988410] dwc2 ff400000.usb: new device is high-speed
[   26.068210] dwc2 ff400000.usb: new device is high-speed
[   26.132742] dwc2 ff400000.usb: new address 39
[   26.154634] g_ether gadget: high-speed config #1: CDC Ethernet (ECM)

Bring up the usb0 device

root@rockpie:~# ifconfig usb0 up

Now you should have usb0 on ROCK Pi E enabled.

On the host PC Ubuntu 16.04, the dmesg gives something like below:

radxa@x86_64_pc:~$ sudo dmesg -c
[974637.533636] usb 1-4.1: new high-speed USB device number 121 using xhci_hcd
[974637.635515] usb 1-4.1: New USB device found, idVendor=0525, idProduct=a4a2
[974637.635520] usb 1-4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[974637.635523] usb 1-4.1: Product: RNDIS/Ethernet Gadget
[974637.635525] usb 1-4.1: Manufacturer: Linux 4.4.143-46-rockchip-gef70dd2c725e with ff400000.usb
[974637.636655] cdc_subset: probe of 1-4.1:1.0 failed with error -22
[974637.637971] cdc_ether 1-4.1:1.0 usb0: register 'cdc_ether' at usb-0000:00:14.0-4.1, CDC Ethernet Device, 8a:11:bc:e7:60:26
[974637.650141] cdc_ether 1-4.1:1.0 enp0s20f0u4u1: renamed from usb0
[974637.678705] IPv6: ADDRCONF(NETDEV_UP): enp0s20f0u4u1: link is not ready
[974637.694633] IPv6: ADDRCONF(NETDEV_UP): enp0s20f0u4u1: link is not ready

enp0s20f0u4u1 is the "USB network card" for ROCK Pi E. ifconfig enp0s20f0u4u1 gives us the info about it.

Setup USB Network

On ROCK Pi E.

root@rockpie:~# IP=10.0.1.1
root@rockpie:~# HOST_IP=10.0.1.2
root@rockpie:~# ifconfig usb0 $IP netmask 255.255.255.0
root@rockpie:~# route

On host PC

radxa@x86_64_pc:~$ HOST_IP=10.0.1.2
radxa@x86_64_pc:~$ sudo ifconfig enp0s20f0u4u1 $HOST_IP netmask 255.255.255.0

Test the network, on ROCK Pi E

root@rockpie:~# ping $HOST_IP

Test network traffic, on host PC

radxa@x86_64_pc:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.2 port 5001 connected with 10.0.1.1 port 48264
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec   113 MBytes  94.6 Mbits/sec

Test network traffic, on ROCK Pi E:

root@rockpie:~# iperf -c $HOST_IP
------------------------------------------------------------
Client connecting to 10.0.1.2, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 10.0.1.1 port 48264 connected with 10.0.1.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   113 MBytes  94.8 Mbits/sec

Troubleshooting