前言
由于之前使用redpill的引导,不能自动识别RTL8125BG网卡,当时卖家老板说arpl引导可以直连,由于不想从新换引导,所以尝试自己编译驱动解决
购买RTL8125BG网卡
在某宝可以买到,大概30到40左右。
驱动编译
驱动相关资料
- 大佬提供的RTL8125BG驱动源码: https://github.com/tabrezm/r8125-synology
里面有Readme,参考Readme 进行编译。 - arm编译系统
确定黑群晖的platform
nas:~$ uname -a
Linux nas 4.4.180+ #42218 SMP Mon Jan 16 18:00:01 CST 2023 x86_64 GNU/Linux synology_apollolake_918+
我这个平台是apollolake
开始按照Readme 编译
配置环境,下载编译工具脚本
$ apt-get update
$ apt-get install git python3 python3-pip
$ mkdir -p /toolkit
$ cd /toolkit
$ git clone https://github.com/SynologyOpenSource/pkgscripts-ng.git #如果无法下载,确定环境是否设置了代理或者网关是否正确
部署chroot环境配置
$ cd /toolkit/pkgscripts-ng
#确定你的DSM系统大版本号,切换到源码对应分支,我的是7.0.1,所以选的7.0
$ git checkout DSM7.0
#-p后面加上你对应平台名
$ ./EnvDeploy -v 7.0 -p `your platforms name`
$ cp /etc/ssl/certs/ca-certificates.crt /toolkit/build_env/ds.avoton-7.0/etc/ssl/certs/ca-certificates.crt # replace 'ds.avoton-7.0' with your platform and version
其中EnvDeploy脚本会从群晖服务器下载相关编译环境文件和依赖文件,如果无法从脚本下载,可以手动下载,
1.通过修改/toolkit/pkgscripts-ng/include/pkgdeploy.py->__download函数直接return
2.把手动下载的文件放到/toolkit/toolkit_tarballs下
https://global.synologydownload.com/download/ToolChain/toolkit/7.0/base/base_env-7.0.txz
https://cndl.synology.cn/download/ToolChain/toolkit/7.0/apollolake/ds.apollolake-7.0.dev.txz
https://cndl.synology.cn/download/ToolChain/toolkit/7.0/apollolake/ds.apollolake-7.0.env.txz
下载完文件,会更新相关环境并解压文件到
/toolkit/build_env
ps:如果报软连接pkgscripts-ng
失败,可能是进去chroot环境失败。
进去chroot环境系统,并下载驱动代码
注意是chroot环境系统下,不是本机环境下,如果进去失败,请网上查看原因
$ chroot /toolkit/build_env/ds.apollolake-7.0
$ mkdir -p /usr/src
$ cd /usr/src
$ git clone https://github.com/tabrezm/r8125-synology.git
$ cd r8125-synology/src
修改对应编译的DSM大版本
$ vi MAKEFILE
BASEDIR := /usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-7.0
开始编译
$ make
copy r8125.ko到DSM
$ sudo -i
$ cp r8215.ko /lib/modules
$ insmod /lib/modules/r8125.ko
$ lspci -v | grep r8125 #查看驱动是否加载成功
Kernel driver in use: r8125
$ ip link set up eth4 # replace 'eth4' with your interface
添加自动加载
$ ln -s /bin/kmod /sbin/depmod
$ depmod -a # warnings are safe to ignore
这里我设置后提示错误
nas:~# depmod -a
depmod: WARNING: could not open /lib/modules//modules.order: No such file or directorydepmod: WARNING: could not open /lib/modules//modules.builtin: No such file or directory
并且重启后,驱动无法自动加载,网卡不会自动获取ip,设置静态ip可以用,但是重启后就会出问题,上不了网。
最后解决办法:
vi /etc/rc.local
insmod /lib/modules/r8125.ko #加载驱动
ifconfig eth1 up #启用eth1
ovs-vsctl add-br ovs_eth1 #创建新的桥接节点
ovs-vsctl add-port ovs_eth1 eth1 #桥接到eth1
ifconfig ovs_eth1 up #启动桥接网卡
这样设置后,重启生效
##相关命令
lspci -v | grep r8125 #查询网卡是否加载
ls -ld /sys/class/net/*/device/driver #查询网卡对应的驱动