Centos 7下TP-LINK tg 3269e/RTL8168网络唤醒与安装网卡驱动中出现的错误

Centos 7下TP-LINK tg 3269e/RTL8168网络唤醒与安装网卡驱动中出现的错误

参考文章:centos7.8降级网卡驱动r8168
以下内容都是回忆内容,折腾了好几天驱动已装好就不复现了,写下这贴是给后来人避坑
起因是家里旧电脑装了centos后网络唤醒就用不了,各种排查下发现驱动有问题。
首先需要注意的是3269e这款网卡有两个版本1.0不支持linux,2.0才可以在linux下使用
使用ethtool -i 网卡名 发现driver是r8169
去tp官网下载驱动,也可以去螃蟹官网下
下载后丢到linux上解压,里面有个autorun.sh,先确定一下是否装了gcc和make,接着./autorun.sh发现有错误:
错误1 :xx目录不存在,这多半是kernel-devel未安装

yum install kernel-devel

再次执行autorun.sh
错误2:error: redefinition of ‘ether_addr_copy’等字样

vim +53 src/r8168.h //这里的+53是行号可以快速定位光标,这里写上error前的行号就行

将#if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)
// 改为
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
接着再次执行autorun.sh
错误3:error: unknown field ‘ndo_change_mtu’等字样

vim +26768  src/r8168_n.c

将ndo_change_mtu 改成 ndo_change_mtu_rh74
再次执行autorun.sh
错误4:error: ‘struct net_device’ has no member named ‘last_rx’等字样

vim +29487 src/r8168_n.c

注释//dev->last_rx = jiffies;
再次执行autorun.sh
会有一堆warning 不用管,最后有Completed.就行
这时候再次执行ethtool -i 网卡名就会发现driver变成了r8168,不要急着重启,重启后网卡又会变成r8169,继续下一步

mv /lib/modules/3.10.0-1127.el7.x86_64/kernel/drivers/net/ethernet/realtek/r8169.ko.xz{,_bak}

注意:这里3.10.0-1127.el7.x86_64可能和你的版本不一样,改成自己的即可

cp src/r8168.ko /lib/modules/3.10.0-1127.el7.x86_64/kernel/drivers/net/ethernet/realtek/
depmod -a  //刷新内核依赖
modprobe  r8168  //加载内核驱动r8168.ko
cp /boot/initramfs-3.10.0-1127.el7.x86_64.img{,_bak}
dracut -f /boot/initramfs-3.10.0-1127.el7.x86_64.img $(uname -r)

这里我直接用dracut --force也行
reboot后ethtool -i 网卡名 驱动还是r8168,安装成功

打开网络唤醒,vi/etc/sysconfig/network-scripts/ifcfg-网卡名 onboot改为yes
在加上ETHTOOL_OPTS=“wol g”

Completed!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值