安装 YT6801 网卡驱动问题
背景
机械革命无界14x 笔记本电脑配备了一款 裕太微 YT6801 千兆以太网卡。该网卡在 Linux 下需要单独安装驱动。 官方提供了驱动源码包YT6801千兆PCIE以太网控制器芯片,但在较新的内核(如 Linux 6.17)上编译时会因内核 API 变更而失败。 本文记录了在 AnduinOS(基于 Ubuntu 22.04/24.04,内核 6.17.0-12-generic)上成功安装并启用 YT6801 驱动的完整过程。
环境信息
- 笔记本:机械革命无界14x
- 操作系统:AnduinOS 1.4.2 x86_64
- 内核:Linux 6.17.0-14-generic
- 网卡:YT6801(裕太微电子)
- 目标:使有线网卡正常工作(千兆速率)
官方驱动的问题
最初尝试使用官方提供的驱动包 yt6801-linux-driver-1.0.31.tar.gz,按照说明执行安装脚本:
sudo ./yt_nic_install.sh
但脚本执行失败,提示 Fail to make。手动进入源码目录执行 sudo make 出现编译错误:
cd yt6801-1.0.31/
sudo make
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc (Ubuntu 15.2.0-4ubuntu4) 15.2.0
You are using: gcc (Ubuntu 15.2.0-4ubuntu4) 15.2.0
CC [M] fuxi-gmac-common.o
fuxi-gmac-common.c: In function ‘fxgmac_default_config’:
fuxi-gmac-common.c:75:23: error: ‘FXGMAC_INT_MODERATION_ENABLED’ undeclared (first use in this function); did you mean ‘FXGMAC_WOL_FEATURE_ENABLED’?
75 | pdata->intr_mod = FXGMAC_INT_MODERATION_ENABLED;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| FXGMAC_WOL_FEATURE_ENABLED
这是因为官方驱动并未适配 Linux 6.x 内核,其中使用的宏 FXGMAC_INT_MODERATION_ENABLED 在新内核中已不存在或更名。尽管安装了 build-essential 和对应内核头文件,编译仍无法通过。
解决方案:使用社区适配版驱动
在查找解决方案时,发现 GitHub 上已有开发者针对新版内核(如 Fedora 40)适配了 YT6801 驱动,仓库地址:silent-reader-cn/yt6801。该版本解决了因内核 API 变化导致的编译问题。
步骤一:克隆适配版驱动
cd ~/下载
git clone https://github.com/silent-reader-cn/yt6801.git
cd yt6801
步骤二:执行安装脚本(需 root 权限)
该脚本会检查旧驱动、编译新模块并更新 initramfs。注意脚本提示不要用 sudo 直接运行,而是先切换到 root 用户:
sudo su
./yt_nic_install.sh
执行过程中会看到一些编译警告(如缺少函数原型、BTF 生成跳过等),但没有错误,最终输出:
Make ok.
Install ok.
步骤三:更新模块依赖并重启
退出 root 环境后,运行:
sudo depmod -a
sudo reboot
步骤四:验证驱动是否成功加载
重启后,检查网卡状态:
ip link show
应该能看到名为 enp1s0(或其他名称)的有线网卡,状态为 UP。例如:
6: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether b0:25:aa:7f:05:bc brd ff:ff:ff:ff:ff:ff
查看内核日志,确认驱动初始化及链路速率:
dmesg | grep -i yt6801
输出中应包含:
[ 4428.051453] yt6801 0000:01:00.0 enp1s0: renamed from eth0
[ 4431.714107] yt6801 now is link up, mac_speed=1000.
mac_speed=1000 表示已成功协商为千兆速率。
注意事项
1. 关于内核污染警告
日志中会出现:
yt6801: loading out-of-tree module taints kernel.
yt6801: module verification failed: signature and/or required key missing - tainting kernel
这是正常现象,因为驱动并非来自官方内核树且未签名,不影响网卡功能。
2. 内核更新后驱动失效
由于驱动是单独编译的内核模块,当系统通过 apt upgrade 升级内核版本(例如从 6.17 升级到 6.18)后,原有模块将不再适用,网卡会失效。此时只需重新进入驱动目录,再次以 root 执行安装脚本即可:
cd ~/下载/yt6801
sudo su
./yt_nic_install.sh
exit
sudo depmod -a
sudo reboot
3. 网络管理器配置
如果网卡已识别但未自动获取 IP,请检查 NetworkManager 或 systemd-networkd 配置,确保有线连接已启用。
总结
通过使用社区适配版驱动(silent-reader-cn/yt6801),机械革命无界14x 的 YT6801 网卡在 AnduinOS(内核 6.17)上成功驱动并实现千兆网络。该方案同样适用于其他 Ubuntu 衍生版及新版内核。遇到类似编译错误的用户可参考本文步骤,避免手动修改源码的繁琐过程。
参考资料