星光2之USB无线网卡使用教程【新增RTL8832AU WiFi6双频无线网卡】

星光板2(VisionFive 2)开发板没有自带WiFi模块,所以要连上WiFi,可以使用USB无线网卡。
要使用USB无线网卡,和通用Linux中加载USB无线网卡一样,只要驱动对了,通常就能用了。

一、测试过的USB无线网卡
我手头除了官方提供的 WiFi dongle,还有4种以前用过的,具体如下:


新增的RTL8832AU WiFi6双频无线网卡,请查看第七节

在上图中:

  • 绿色板子的,就是官方提供的 WiFi dongle,奕斯伟ESWIN的ECR6600U,其具体参数如下:


    其中,802.11ax就是第六代WiFi标准,简称WiFi 6,虽然不是双频的,但货真价实的WiFi6。

  • 左边黑色和右边白的色,分别是小米和小度随身WiFi,芯片用的都是MTU7601,大致参数如下:

  • 中间黑色EDUP的,是EDUP EP-N1572,参数如下:

这三种芯片四个无线网卡,我都官方提供的Debian 69镜像版本一一测试,都可以正常使用,下面将各网卡的具体使用方式详细说明。
69镜像版本地址: VisionFive 2 Debian Image Released - VisionFive 2 (English Forum) - RVspace Forum

因为官方提供的镜像中,Debian系统的内核以及内核模块,不一定都提供了所需要的驱动,所以我们需要重新编译内核,提供对相应USB网卡的支持。

编译内核需要在Linux环境下进行,方便起见,我们直接在星光板2的Debian系统中进行编译,虽然编译需要的时间要长一些,但大家在同一个环境,有问题也好查找处理。
如果在其他环境中,可以参考,毕竟如果用Debian或者Ubuntu系统,大家操作都差不多。

星光板2烧录好Debian系统,连接好网线,确保网络联通以后,再用 USB转TTL工具连接串口操作,或者远程连接到ssh操作,都可以。

二、基本编译环境准备
系统能够正常使用后,还需要安装一些基础的软件包,才好进行编译。
要安装的软件包,包括但不限于如下操作中的,实际遇到了问题,可以根据提示安装需要的。

# root用户安装sudu
su root
apt update
apt install sudo
# 添加用户到sudo组,请修改为你自己的普通用户
usermod -a -G sudo honestqiao 
exit

# 安装基本工具和编译工具
sudo apt install -y build-essential gcc-riscv64-linux-gnu libncurses-dev
sudo apt install -y git flex bison bc vim-tiny wget
sudo apt install iw im-config usbutils pciutils iputils-ping

安装完成以后,检查一下riscv64-linux-gnu-gcc安装是否正确:

riscv64-linux-gnu-gcc -v

输出如下:


安装正确,可以进行后续的实际操作了。

三、编译基础内核
赛昉官方提供了星光2系统的定制内核源码,使用git下载即可。

mkdir ~/repos
git clone https://github.com/starfive-tech/linux.git
cd linux
git checkout -b JH7110_VisionFive2_devel origin/JH7110_VisionFive2_devel
git pull

然后,进行内核配置处理:

# 生成默认内核配置
make starfive_visionfive2_defconfig CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv

# 打开内核配置:暂时可以直接Exit,后续需要使用
make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv menuconfig

# 编译内核
time make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv -j4

最后一条,添加time指令在最前面,这样编译完成后,就可以看到实际花费了多长时间。
一般第一次编译时间较长,后续如果源码没有大的变动,那么需要时间很短。

正常情况下,最终结果如下:

因为编译次数的不同,最终的信息,可能和上面的有差异,只要没有Error、Failed等字样出现,就算成功了。

这说明,我们的环境,可以编译内核了,后面就要进行网卡的驱动了。

四、RTL8192CU无线网卡的驱动
多年前,我在笔记本电脑上装FreeBSD的时候,驱动不了自带的网卡,我就用了这个EDUP无线网卡。
所以,星光板2要用WiFi的时候,我第一时间拿出了珍藏已久的这个EDUP无线网卡。
这个EDUP无线网卡是RTL8192CU的,属于较为通用的一款。
要在星光板2上使用,需要以下两个部分的支持:

  1. 内核驱动的支持:在内核配置中,开启对应的支持选项即可;部分需要外部驱动的支持
  2. 网卡firmware的支持:需要找到对应的bin文件

具体步骤如下:

  1. 首先,在内核中开启对应的支持选项:
# 打开内核配置:
make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv menuconfig

选项的选择路径如下:
首屏 – Device Drivers – Network device support – Wireless LAN:


把红框内,涉及到8192CU的选项(包括子选项中的),全部设置为 ※ ,使得其直接编译到内核中。
设置好以后,需要使用底部的Save保存一次,再退出,不然白选了。

  1. 然后,编译新的内核:
# 编译内核:
time make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv -j4

# 生成vmliunz:
make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv INSTALL_PATH=~/repos/compiled/ zinstall -j4

# 查看结果:
ls -lh arch/riscv/boot/Image.gz arch/riscv/boot/dts/starfive/jh7110-visionfive-v2*.dtb ~/repos/compiled/

实际的输出如下:

现在,新内核生成好了,可以直接使用了。可以用新的内核,直接覆盖老的内核,也可以添加一项新的配置,如果新内核调用失败,还能够启用老的内核。

  1. 启用新的内核的步骤如下:
  1. 安装新的内核:
# 安装内核文件
sudo mkdir /boot/boot/dtbs/new
sudo mkdir /boot/boot/dtbs/new/starfive
sudo cp arch/riscv/boot/dts/starfive/jh7110-visionfive-v2*.dtb /boot/boot/dtbs/new/starfive/
sudo cp -r arch/riscv/boot/dts/starfive/vf2-overlay /boot/boot/dtbs/new/starfive/
sudo cp ~/repos/compiled/vmlinuz-5.15.0_for_HonestQiao /boot/boot/vmlinuz-5.15.0_for_HonestQiao

# 查看结果:
tree /boot/boot/dtbs/new/

注意,上述最后一步的vmlinuz-5.15.0文件具体名称,应根据前一步ls的结果中来修改为实际的。
执行完成后,输出如下:

  1. 配置启动新的内核:
    编辑 /boot/boot/extlinux/extlinux.conf 文件,在最后添加下面的配置:
label l1
        menu label Debian GNU/Linux 5.15.0 for HonestQiao
        linux /boot/vmlinuz-5.15.0_for_HonestQiao
        initrd /boot/initrd.img-5.15.0-starfive
        fdtdir /boot/dtbs/new/
        append  root=/dev/mmcblk1p3 rw console=tty0 console=ttyS0,115200 earlycon rootwait stmmaceth=chain_mode:1 selinux=0


该配置,参考l0的,将linux、fdtdir修改为新的即可。
extlinux.conf 中的default l1,表示默认启用l1对应的配置,就是新添加的。

  1. 安装RTL8192CU的firmware:
    下载这个安装包:firmware-realtek_20190114-2~deb9u1_all.deb 到 ~/repos/
    然后在星光板2上,使用下面的指令安装:
sudo apt install ~/repos/firmware-realtek_20190114-2_deb9u1_all.deb
  1. 重启电脑使用新内核
    重启电脑后,可以使用 uname -a指令查看新内核是否生效:

此时,可以插上USB的RTL8192CU无线网卡,然后使用dmegs查看输出信息:


如果没有安装firmware-realtek_20190114-2~deb9u1_all.deb,则会提示firmware加载失败。

使用lsusb,也能查看到网卡被识别到了:

使用/sbin/ifconfig -a,可以添加了一个新的wl开头的网卡设备:

星光板2上自带的有线网口,识别的名称为eth0、eth1,而USB网卡这个名称,太长不好使用,可以用udev规则来设定:

# 设置udev规则为网卡命名
sudo vim /etc/udev/rules.d/70-persistent-net.rules
### 添加下面的行 ###
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="e8:4e:06:29:2f:81", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan0"

# 使新的udev规则生效
sudo udevadm control --reload-rules

上述配置中的 address 为我的无线网卡的mac地址,请根据ifconfig的显示,修改为实际的mac地址。

然后重新插拔网卡,就能使用/sbin/ifconfig -a看到无线网卡被命名为wlan0了:

  1. 使用nmcli管理无线网卡的连接:
    nmcli管理无线网卡连接非常方便,使用如下的指令即可:
# 设置无线连接
sudo nmcli device wifi connect WiFi名称 password WiFi密码 ifname wlan0 &

# 设置该连接开机自动生效
sudo nmcli connection modify WiFi名称 connection.autoconnect yes

设置完成后,稍等一会,就可以查看连接情况:

# 查看dmesg输出
dmesg | tail -n 10

# 查看网络连接情况
/sbin/ifconfig wlan0


此时,可以使用ping指令,从星光板2来ping路由器的ip,或者从电脑ping星光板的ip

五、使用官方的WiFi dongle
星光板2官配的USB无线网卡是ESWIN的ECR6600U,在内核配置中,应对应的选项,但是开启后,不能直接使用,需要安装驱动才能用。

  1. 首先,从以下路径,打开ECR6600U的支持
    首屏 – Device Drivers – Network device support – Wireless LAN:



    设置好以后,参考RTL8192CU的方式,重新编译安装新内核。

  2. 安装ECR6600U的开源驱动:

cd ~/repos
# git下载驱动源码
git clone https://github.com/eswincomputing/eswin_6600u.git
cd eswin_6600u

# 编译驱动:路径需要指定正确
time make KERNELDIR=~/repos/linux/ KBUILDDIR=~/repos/linux/ product=6600u

# 安装对应firmware的bin文件
sudo cp firmware/ECR6600U_transport.bin /lib/firmware/

# 加载驱动:
sudo insmod ~/repos/eswin_6600u/wlan_ecr6600u_usb.ko

# 查看加载的驱动:
sudo lsmod

# 查看dmesg输出
dmesg | tail -n 5

最后能到如下的结果:

  1. 使用ECR660U无线网卡:
    将ECR660U接上USB,然后查看dmesg输出:

也可以使用/sbin/ifconfig -a查看,此时又会多出两个wl开头,名称超长的网卡设备。
其中,第一个设备是普通无线网卡设备,第二个设备是WIFI-DIRECT。
参考RTL8192CU为网卡命名的设置, 对新的两个网卡谁设备进行设置:

sudo vim /etc/udev/rules.d/70-persistent-net.rules
### 添加下面的行 ###
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="2c:05:47:a1:1c:31", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="2e:05:47:a1:1c:31", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="p2p1"


# 使新的udev规则生效
sudo udevadm control --reload-rules

上述配置中的 address 为我的无线网卡的mac地址,请根据ifconfig的显示,修改为实际的mac地址。

设置完成后,重新插拔ECR6600U,再次使用/sbin/ifconfig查看,网卡名称就正常命名了。
然后,参考使用nmcli为RTL8192CU设置wifi连接的方式,为ECR6600U设置即可。

注意:今天使用使用最新的官方linux代码编译安装内核,再更新ECR660U驱动,发现使用会存在问题,重新插拔可能导致死机,需要重启后,才能使用insmod加载驱动并使用该无线网卡

六、使用小米/小度随身WiFi
小米和小度随身WiFi使用的是MT7601U,非常好启用。
步骤也是两个,1是内核配置开启支持选项,2是安装对应的bin文件。

1 内核配置开启支持选项:


设备保存后,再重新编译安装内核

2 安装bin文件:

wget -c 'http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/mt7601u.bin'
sudo mv mt7601u.bin /lib/firmware/mt7601u.bin

安装完成后重启,再插入MT7601U无线网卡,dmesg可以看到如下的信息:

使用/sbin/ifconfig可以看到又打了一个wl开头的网卡设备:

同样的,设置udev规则,做好命名:

sudo vim /etc/udev/rules.d/70-persistent-net.rules
### 添加下面的行 ###
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="8c:be:be:03:5e:74", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan3"

# 使新的udev规则生效
sudo udevadm control --reload-rules

上述配置中的 address 为我的无线网卡的mac地址,请根据ifconfig的显示,修改为实际的mac地址。

再次重新插拔MT7601U无线网卡,使用/sbin/ifconfig查看,现在命名正确:


然后参考RTL8192CU,使用nmcli为其设置WiFi连接,即可投入使用。

七、【新增】RTL8832AU WiFi6双频无线网卡
这几天趁着过节,在京东抢了一块【翼联(EDUP)EP-1696S WiFi6无线网卡 电竞1800兆USB无线网卡)】,讲过一番尝试,成功驱动使用。

该网卡具体情况如下:



这款网卡EP-1696S,是翼联出的,和我前面用的RTL8192CU无线网卡,是一个厂家。EP-1696S 在网上的评价非常不错,芯片是RTL8832AU。RTL8832AU系列网卡,是除了AX200系列外,是最值得考虑的一个型号。参考 一文读懂WiFi6无线网卡,WiFi6网卡选购最全指南 - 知乎 (zhihu.com) 文章,可以了解该芯片的参数:

  • WiFi规格:AX1800规格,2.4G与AX200相当;但5G由于不支持160MHz,只有1201Mbps;双频双天线;
  • 接口:使用USB 3.0接口,当前唯一一款支持USB接口的WiFi6网卡;
  • 支持免驱安装;
  • 系统支持全面,可以在win7、win8等旧系统上使用,无需为了使用WiFi6而升级系统;
  • 支持模拟AP功能;
  • 热插拔:USB接口的特有优势,即插即用,支持热插拔;

要驱动该网卡,只需要编译安装驱动即可,不需要 firmware 的bin文件,具体操作步骤如下:

# 下载驱动
cd ~/repos
git clone https://github.com/lwfinger/rtl8852au
cd rtl8852au

# 编译驱动
make CROSS_COMPILE=riscv64-linux-gnu- ARCH=riscv KERNELDIR=~/repos/linux/ KBUILDDIR=~/repos/linux/

# 加载驱动
insmod ~/repos/rtl8852au/8852au.ko &

# 插上网卡,然后使用dmesg和lsusb查看信息
dmesg

# 查看设备信息:
lsusb


使用/sbin/ifconfig可以看到又打了一个wl开头的网卡设备。
同样的,设置udev规则,做好命名:

sudo vim /etc/udev/rules.d/70-persistent-net.rules
### 添加下面的行:注意 ###
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="90:de:80:25:47:c5", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan4"

# 使新的udev规则生效
sudo udevadm control --reload-rules

上述配置中的 address 为我的无线网卡的mac地址,请根据ifconfig的显示,修改为实际的mac地址。

再次重新插拔该无线网卡,使用/sbin/ifconfig查看,现在命名正确:

然后参考RTL8192CU,使用nmcli为其设置WiFi连接,即可投入使用。
该网卡是可以连接2.4GHz和5GHz,可以自由连接。

八、总结
如前面所说,要使用USB无线网卡,需要以下两个部分的支持:

  1. 内核驱动的支持:在内核配置中,开启对应的支持选项即可;部分需要外部驱动的支持
  2. 网卡firmware的支持:需要找到对应的bin文件
    本文演示的三种芯片四个无线网卡,RTL8192CU、MT7601U的,内核开启对应的支持选项即可,然后安装好对应的bin文件,重启后就能使用。而ECR6600U,则需要使用外部驱动来支持。

如果你使用的是其他的无线网卡,那么需要做的就是:

  1. 查看该无线网卡所使用的具体芯片,并找到对应的firmware的bin文件
  2. 在内核menuconfig从查看,是否已经提供了支持
  3. 如果内核本身提供了支持,那么开启对应的选项,重新编译内核安装,并安装firmware的bin文件,重启后,根据实际输出,设置好runles命名规则,就能使用了
  4. 如果内核本身没有提供支持,那么就需要找到对应的Linux驱动(驱动安装包或者源码编译),试试看看能否加载驱动使用了。

九、感谢
研究使用无线网卡的过程中,主要参考的资料或者信息如下:

希望大家都能顺利的使用起来无线网卡,畅快的玩起星光板2。

顺祝大家新年快乐,万事如意,大展鸿兔,钱兔似锦!!!

16 Likes

好文章 mark

多谢如此详尽的教程。我买了一块EP-1685S,也是WiFi6双频无线网卡,驱动是rtl8188gu,最后也成功用上了~

我是在vf2板上编译的,直接编译内核的耗时和你机器上交叉编译相比差不多哈

real    37m35.969s
user    138m24.692s
sys     8m2.403s

另外,搜到了RTL8832AU的差评@@:

好用就成。
EP-1696S/RTL8832AU我这边用起来非常好。

我使用你的方式对官方WiFi(ECR6600U)进行编辑,插入后出现以下错误,请问这应该怎么解决
root@starfive:~# dmesg | tail -n 5
[ 231.117376] [ecrnx] send finish:ecrnx_cfg80211_scan
[ 232.608718] [ecrnx] ecrnx_rx_scanu_start_cfm: receive scanu cfm, status:0
[ 232.615716] [ecrnx] ecrnx_rx_scanu_start_cfm: cfm status:0, scan_request:0x00000000f9c03e56
[ 235.107651] [ecrnx] ecrnx_open: Status Error(1)
[ 235.114813] [ecrnx] ecrnx_open: Status Error(1)

无视,驱动可能还不完善。
但,能够正常使就好。

请楼主救救我,按照文章方法操作了出现几个问题(板子是预售的百兆+千兆组合网口的那款4g):

  1. 有一个网口不能正常使用了(插上网线正常闪黄灯,但板子没联网。。。)另一个亮绿灯的口子是正常的
  2. ecr6600u重命名没有成功不知道为啥。。。
  3. wifi连上后,再插不正常的那个网口,wifi就断了。
    nmtui连接时报错IP configuration could not be reserved (no available address, timeout, etc.)
  1. 有一个网口不能正常使用了(插上网线正常闪黄灯,但板子没联网。。。)另一个亮绿灯的口子是正常的

查看一下/etc/network/interfaces内,对应网卡使用的是静态地址,还是DHCP,一般先设置为DHCP。清楚具体如何使用后,再设置为静态的。

  1. ecr6600u重命名没有成功不知道为啥。。。

可以结合dmesg查看一下,响应的信息是否和udev配置中完全匹配

  1. wifi连上后,再插不正常的那个网口,wifi就断了。
    nmtui连接时报错IP configuration could not be reserved (no available address, timeout, etc.)

没有遇到过这个情况,所以暂时没有好的建议。有可能/etc/network/interfaces配置不正确导致。

板子随盒子附赠ECR6600U吗,我在微雪家买,需要额外购买

标注了附赠的才有,默认没有

1 Like

image
我手上USB WiFi 的就是您教程中提到的绿色的板子,既官方提供的WiFi dongle ,奕斯伟ESWIN的ECR6600U。 您的教程刚好能用上,太棒了,非常感谢。

1 Like

参考老师的教程,我也遇到使用ecr6600u重命名没有成功的问题。其它都正常,ecr6600u能正常获取的IP和正常上网。
root@starfive:~# ifconfig -a

wlx2c0547a11ba0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 62:77:7f:9e:d5:ad txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlx2c0547a11ba1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.35 netmask 255.255.255.0 broadcast 192.168.3.255
ether 2c:05:47:a1:1b:a1 txqueuelen 1000 (Ethernet)
RX packets 139 bytes 12502 (12.2 KiB)
RX errors 0 dropped 50 overruns 0 frame 0
TX packets 94 bytes 12162 (11.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

此外,我和老师的步骤稍微不同,但是原理是相同的。我的内核编译是在我的linux的仿真环境完成的(VMware+Ubunut20.04.6), 操作过程参考了官方的文档 Updating Kernel 这一章节 Updating Kernel

其它步骤,如重启单板使用新内核,以及nmcli管理无线网卡的连接等,都是参考老师的步骤来进行配置和操作的 :+1:

2 Likes

上次参考老师的思路,通过重新编译包含USB WIFI ECR6600U驱动的内核,并且让VisionFive 2单板工作在这个新的内核的方式,最后通过nmcli命令连接到可用的WIFI网络。这次采用了一个比较简单的方式,直接使用 WiFi dongle。

  1. 烧录了202303的img到Micro-SD Card

  2. 设置VisionFive 2 的Boot Mode为SDIO3.0,并开机启动

  3. 通过串口访问VisionFive 2, 使用lsmod命令查询,确认ecr6600u的驱动已经安装
    root@starfive:/etc/udev/rules.d# lsmod
    Module Size Used by
    wlan_ecr6600u_usb 339968 0
    jpu 24576 0
    vdec 32768 0
    venc 28672 0
    root@starfive:/etc/udev/rules.d#

  4. 查询WiFi dongle的端口
    root@starfive:/etc/udev/rules.d# ifconfig -a

    wlx2c0547a11ba1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
    ether 46:3d:1f:88:3c:db txqueuelen 1000 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

  5. 使用 nmcli连接可用的WiFi,
    5.1 如下命令sudo nmcli device wifi connect 然后tab键,显示WiFi列表,下面第二列内容是WiFi名
    root@starfive:/etc/udev/rules.d# sudo nmcli device wifi connect
    00:66:19:59:F9:08 C8:F7:42:E2:F1:40
    02:E5:8B:84:43:C2 C8:F7:42:E3:F5:18
    02:E5:8B:84:43:D0 C8:F7:42:F3:68:3F
    06:0E:3C:74:42:DE ChinaNet-nVy5
    1701 DC:84:E9:94:1D:86
    18:3C:B7:D6:AE:D4 DE:84:E9:44:1D:86
    3E:E9:0E:D6:F0:67 DIRECT-DE-HP\ Laser\ 108w
    42f3683f Tineco_0730
    8C:68:C8:BB:C4:EC XUSIYUAN

    5.2 接着上面命令输入WiFi名,然后是password和ifname,命令如下(xxx代码WiFi 名, yyy代表 WiFi密码)
    root@starfive:/etc/udev/rules.d# sudo nmcli device wifi connect xxx password
    yyy ifname wlx2c0547a11ba1 &

  6. 再次使用ifconfig -a 命令查询,发现无线端口wlx2c0547a11ba1,已经获取到IP地址, 然后VisionFive 2可以正常上网了。
    root@starfive:/etc/udev/rules.d# ifconfig -a
    wlx2c0547a11ba1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.3.35 netmask 255.255.255.0 broadcast 192.168.3.255
    inet6 fe80::e26a:505a:5582:5788 prefixlen 64 scopeid 0x20
    ether 2c:05:47:a1:1b:a1 txqueuelen 1000 (Ethernet)
    RX packets 1395 bytes 83360 (81.4 KiB)
    RX errors 0 dropped 1184 overruns 0 frame 0
    TX packets 109 bytes 9338 (9.1 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    root@starfive:/etc/udev/rules.d#