平台:飞凌 OK3399-C 系统: Linux ( linux 4.4.189+buildroot ) 方案: 开发板原生网口 + 绿巨能 LJN-HB0004( RTL8153)
Linux4.4.189 默认集成了 RTL8152 usb 转网口的驱动,内核编译选项如下:
![822f0b057ad816a2c75fb3922ba1feff.png](https://i-blog.csdnimg.cn/blog_migrate/10b71fdeb19d5881758fe6319ac86f0a.png)
OK3399-linux-source/kernel/drivers/net/usb/r8152.c
![347c3d30592915f630c4a1ba9681ed47.png](https://i-blog.csdnimg.cn/blog_migrate/00a3de673ea3ebad54b6ea5ab7b207d4.png)
当开发板插入 usb 接口的 RTL8153模块,系统没有识别该模块,报如下信息:
Unknown version 0x6010
检索了一下驱动代码,发现该驱动不支持0x6010 版本的模块,但是驱动的注释信息表明这个驱动是适用 rtl8153 的,应该只是版本兼容的问题,升级一下驱动版本应该就可以解决。
检索更高版本内核中的r8152.c ,确实 0x6010 版本已经支持了,升级驱动后,插入该模块系统自动识别并生成 eth1 接口,打印信息如下:
![0b79fee00be1be00db703b032055344d.png](https://i-blog.csdnimg.cn/blog_migrate/bb5945487e607248a12758df9c9c729f.png)
![7a518ae8fe52d8e8a61e28778fa0fa37.png](https://i-blog.csdnimg.cn/blog_migrate/01f8a470f6ee47f3a3c90cac671a5a51.png)
配置 eth1 端口:
[root@rk3399:/]# ifconfig eth0 down
[root@rk3399:/]# ifconfig eth1 up
[root@rk3399:/]# ifconfig eth1 192.168.2.85
使用 iperf 测速,环境如下:
OK3399-C开发板(192.168.2.85 ) -------- 交换机 -------- 电脑( 192.168.2.46 )
电脑端设置 iperf 服务端 :
![2698b884fcc86a4bb4fa9a5b81a9cccd.png](https://i-blog.csdnimg.cn/blog_migrate/bcb6484d37b8039efe42a60171ae4fac.png)
OK3399-C开发板端测试结果如下:
![60c5ae38eb0dc0192ef05e216d8eb7c7.png](https://i-blog.csdnimg.cn/blog_migrate/2f6f45e603c71d7b42ff642eff3558bb.png)
对比原生千兆网口,可以看到速率基本没有差别:
![d94613e5188a6c2410e09a0e9156a7cc.png](https://i-blog.csdnimg.cn/blog_migrate/fa4090ec08acd1467642f487d34e73fa.png)
![a5b83ade9801f204236d4243740893f8.png](https://i-blog.csdnimg.cn/blog_migrate/fbe6612236d632877cb3d5be736020cf.jpeg)