收起左侧

RTL8111/RTL8168网卡驱动问题

1
回复
34
查看
[ 复制链接 ]

0

主题

9

回帖

0

牛值

江湖小虾

引言

笔者自己组装了一台飞牛小主机,最近有一个多月未启动飞牛Nas不知道为什么系统引导失效了。所以不得不重新安装一遍飞牛系统。

之前就因为网卡一直不是千兆网络重新安装了驱动,这次重装系统后又得重新安装一下网卡驱动,所以记录一下过程。

笔者在论坛中参考的文件我也列一下,感谢各位大佬的分享:

  • https://club.fnnas.com/forum.php?mod=viewthread&tid=20142&highlight=
  • https://club.fnnas.com/forum.php?mod=viewthread&tid=4991&highlight=

下面进入正题。

重置root账号

参考文章:

  • https://club.fnnas.com/forum.php?mod=viewthread&tid=48856&highlight=
# 执行以下命令,按提示输入新的 root 密码(输入时密码不显示,按回车确认) 
sudo passwd root

验证: 用命令切换到root账户,测试密码是否生效。

su root 

输入密码完成用户切换。

安装网卡驱动

如果第一次安装飞牛系统后,你的网卡不工作 或者 你的网卡显示的是百兆的速度,那可能因为飞牛默认没有使用最适配你的网络的驱动程序。

网卡驱动请到官网(https://www.realtek.com)自行下载,这里就不做介绍了。

这里我已经下载到硬盘了。

下面的步骤请切换到root用户下执行,因为默认用户权限不够。

更新系统的依赖包

# 切换到root用户
su root

# 更新
apt update

# 安装gcc
apt install gcc

编译安装驱动

解压下载好的驱动文件

tar -jxvf r8168_8.055.00.orig.tar.bz2

编译并安装驱动

cd r8168-8.055.00/src
make all

如果有报错,修复它们:

  1. gcc: not found

安装gcc

# 更新 apt
apt update -y
apt install gcc
  1. 修复System.map

报错信息:

Warning: modules_install: missing 'System.map' file. Skipping depmod.

检查System.map文件

# 注意这里的版本号可能发生变化,请根据情况来修改
ls /usr/src/linux-headers-6.12.18-trim
# arch  include  Makefile  Module.symvers  scripts  tools
# 检查是否有System.map,没有则需修复,否则后续DEPMOD阶段会跳过

修复

# 链接文件, 同样注意你的版本号
ln -s /boot/System.map-6.12.18-trim /usr/src/linux-headers-6.12.18-trim/System.map

问题修复完后,重新进行编译

make all

如果不再有报错会看到成功的信息:

  INSTALL /lib/modules/6.12.18-trim/kernel/drivers/net/ethernet/realtek/r8168.ko
  DEPMOD  /lib/modules/6.12.18-trim

可选步骤:

如果害怕上述步骤不能正常安装驱动,那么可以运行驱动文件夹中提供的脚本

# 跳出 r8168-8.055.00/src 目录
cd ..
# 给脚本添加执行权限
chmod +x autorun.sh

# 执行安装脚本
./autorun.sh

最后重启飞牛

reboot

祝大家好运。

收藏
送赞
分享

0

主题

9

回帖

0

牛值

江湖小虾

前天 22:18 楼主 显示全部楼层

网卡依旧显示100M

重启后,网卡工作正常可以访问外部网络,使用ping命令有正常的返回。

ping baidu.com

但是在飞牛界面上查看 网络设置的时候依然显示的是 100Mb/s

查看网卡信息:

ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 70:85:c2:78:fd:22 brd ff:ff:ff:ff:ff:ff

可以看到一个 enp1s0 是我们的网卡。

继续查看详情

ethtool enp1s0

Settings for enp1s0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Supported pause frame use: Symmetric Receive-only
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Advertised pause frame use: Symmetric Receive-only
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Link partner advertised link modes:  10baseT/Half 10baseT/Full
	                                     100baseT/Half 100baseT/Full
	Link partner advertised pause frame use: Symmetric
	Link partner advertised auto-negotiation: Yes
	Link partner advertised FEC modes: Not reported
	Speed: 100Mb/s
	Duplex: Full
	Auto-negotiation: on
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	MDI-X: on
	Supports Wake-on: pumbg
	Wake-on: d
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
	Link detected: yes

(如果报错,可能是因为命令没有安装,运行 apt install ethtool -y 安装)

# 支持 千兆/全双工
Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
# 网卡的另一端设备可协商的工作模式
Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                        100baseT/Half 100baseT/Full
# 当前速率是百兆
Speed: 100Mb/s
# 自动协商是开启状态
Auto-negotiation: on
# 网卡是连接状态
Link detected: yes

显示网卡支持千兆全双工 1000baseT/Full
但是因为对端设备(就是网线的另一头接的设备,一般是路由器)只提供了 十兆百兆的工作模式,
最终协商出来的速度是百兆网速 Speed: 100Mb/s

此时要检查一下,自己用的网线或者路由器是不是支持千兆网络。

可能有用的解决办法:

# 尝试重新协商
ethtool -r enp1s0

# 等待几秒后检查
ethtool enp1s0


# 尝试强制设置 千兆
ethtool -s enp1s0 speed 1000 duplex full autoneg on

# 如果报错 或者 网络断开连接可能是网卡或者上游设备不支持千兆 
# 使用 ping 命令检查网络是否断开
ping baidu.com

# 如果失败了 设置会百兆模式恢复网络
ethtool -s enp1s0 speed 1000 duplex full autoneg on

笔者这边的问题是因为临时使用的路由器只支持百兆网络,所以造成了最终网卡只工作在百兆模式下,切换到家中的主网络后网卡恢复正常。

如果以上不能解决你的问题,求助AI是一个很好的办法。以上命令都是DeepSeek提供的。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则