1. 添加RNDIS相关配置

<path_to_sdk>/rk3566/kernel/arch/arm64/config/rockchip_linux_defconfig追加以下配置。

1
2
3
4
5
# ADD RNDIS CONFIG
CONFIG_USB_NET_RNDIS_HOST=y
#CONFIG_USB_NET_RNDIS_WLAN=y
CONFIG_USB_F_RNDIS=y
CONFIG_USB_CONFIGFS_RNDIS=y

编译kernel,并将生成的boot.img烧录进开发板。

2. 检查是否新增USB网卡

boot.img烧录进开发板后,检查是否新增usb0网卡

1
2
3
4
5
6
7
8
9
10
root@linaro-alip:~# ifconfig usb0
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::b04f:31ff:fe31:b29a prefixlen 64 scopeid 0x20<link>
ether b2:4f:31:31:b2:9a txqueuelen 1000 (Ethernet)
RX packets 209 bytes 31177 (30.4 KiB)
RX errors 0 dropped 13 overruns 0 frame 0
TX packets 29 bytes 3744 (3.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

root@linaro-alip:~#

若执行ifconfig usb0可以看到usb0网卡,则说明RNDIS配置成功。

3. 验证usb网卡

理想状态下,在将USB-OTG口配置为RNDIS功能后,接上电脑可以识别成一个网络设备(如下)。

img

若识别不到设备,可以执行以下usbdevice restart命令,重新初始化usb设备。

若重新初始化后仍然识别不到,且在设备管理器中可以看到如下连接,则需检查一下USB-OTG是否与其他功能产生冲突。

img

修改/usr/bin/usbdevice脚本,修改以下配置。

img

RNDIS_EN配置为on,RNDIS_EN以外的功能配置为off。

保存退出后重新执行usbdevice restart,可以看到PC端成功识别到USB网卡设备。

将PC端识别到的USB网卡与开发板上的usb0网卡配置到同一网段。

这里以192.168.13.1为例,在开发板上执行以下命令。

1
2
3
4
5
6
7
8
9
10
11
12
root@linaro-alip:~# ifconfig usb0 192.168.13.6
root@linaro-alip:~# ifconfig usb0
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.13.6 netmask 255.255.255.0 broadcast 192.168.13.255
inet6 fe80::2caf:1fff:fee6:d59f prefixlen 64 scopeid 0x20<link>
ether 2e:af:1f:e6:d5:9f txqueuelen 1000 (Ethernet)
RX packets 1021 bytes 139582 (136.3 KiB)
RX errors 0 dropped 4 overruns 0 frame 0
TX packets 22 bytes 2698 (2.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

root@linaro-alip:~#

在PC端修改相应网卡配置:

img

右键选择属性。

img

修改网卡ip与开发板于同一网段。

img

pc端成功ping通开发板。

img

开发板成功ping通pc端。