当前位置: 首页 > news >正文

Bug: 升级内核后有线网络无法使用

预备知识

1.R8169驱动和R8168驱动区别

R8169驱动是Linux内核自带的开源驱动,支持的硬件范围比较广,但是跟随内核一起发布更新,因此对于新发布的硬件支持不够及时。R8168驱动是Realtek官方提供的闭源驱动,对特定硬件进行了优化,稳定性更高,更新及时。

R8169驱动主要针对Realtek的地段或早期千兆以太网芯片,包括但不限于RTL8101/8102E,RTL8168/8111,RTl8411/8412等。

R8168驱动是Realtek官方为RTL8168系列(如RTL8168B/C/D/E/F等)开发的专用驱动,针对性更强。

因此R8169驱动和R8168驱动都可以支持RTL8168芯片。

2.内核编译配置

编译内核源码之前可以通过make menuconfig配置内核编译选项,也可以基于defconfig创建自己的内核配置,例如 my_x86_desktop_defconfig ,配置完毕后再make my_x86_desktop_defconfig加载自定义配置。

安装内核后,通过 /boot/config-$(uname -r) 文件可以查看当前版本内核的配置选项

一、Bug描述

将内核从4.19-7322升级到4.19-7326后发现有线连接无法使用

二、Bug分析

查看4.19-7322内核的编译配置,发现只有CONFIG_R8168=m,而没有CONFIG_R8169=m;

查看4.19-7326内核的编译配置,发现只有CONFIG_R8169=m,而没有CONFIG_R8168=m;

查找到当前系统中存在/etc/modprobe.d/balcklist-r8169.conf,说明系统禁用了R8169模块。

再根据Bug描述,很容易分析出“由于4.19-7326内核不支持R8168驱动,同时又禁用了R8169驱动,所以才导致有线连接无法使用”的结论。

三、Bug修复

编写deb包,在psotinst中加入如下逻辑:

#检查内核配置文件是否存在
CONFIG_FILE="/boot/config-$(uname -r)"
if [ ! -f "$CONFIG_FILE" ]; thenexit 1
fi#检查内核配置是否支持R8169驱动且不支持R8168驱动
if grep -q "^CONFIG_R8169=[ym]$" "$CONFIG_FILE" && ( grep -q "^CONFIG_R8168=n$" "$CONFIG_FILE" || ! grep -q "^CONFIG_R8168=" "$CONFIG_FILE" ); then#检查R8169驱动是否被加入黑名单if [ -f /etc/modprobe.d/blacklist_r8169.conf ]; then#删除R8169的黑名单配置文件rm -f /etc/modprobe.d/blacklist_r8169.confecho "已删除 /etc/modprobe.d/blacklist_r8169.conf"fi
fi
http://www.dtcms.com/a/552759.html

相关文章:

  • 帕金森症手绘图像分类数据集
  • 本地生活曝光缺失?GEO语义锚点来救场
  • Rust开发之Result枚举与?运算符简化错误传播
  • Rust专项——其他集合类型详解:BTreeMap、VecDeque、BinaryHeap
  • 软件开发模式架构选择
  • 网站开发设计注册注册小程序
  • Git命令(三)
  • Spring Security 新手学习教程
  • 72.是否可以把所有Bean都通过Spring容器来管
  • DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(四)
  • 车载软件需求开发与管理 --- 需求收集与整理
  • [linux仓库]线程控制[线程·叁]
  • 从工行“余额归零”事件看CAP定理:当金融系统在一致性与可用性之间做出选择
  • Java的stream使用方案
  • 给网站做视频怎么赚钱电影网站系统源码
  • React Server Components 进阶:数据预取与缓存
  • MR30分布式I/O助力物流分拣系统智能化升级
  • 当UAF漏洞敲响提权警钟:技术剖析与应对之道
  • Flink(用Scala版本写Word Count 出现假报错情况解决方案)假报错,一直显示红色报错
  • Smartbi 10 月版本亮点:AIChat对话能力提升,国产化部署更安全
  • 网站备案单位商业网站源码免费下载
  • 外贸网站经典营销案例搭建服务器做网站
  • MQTT 协议详解与工业物联网架构设计指南
  • JMeter WebSocket异步接口测试简明指南
  • [论文]Colmap-PCD: An Open-source Tool for Fine Image-to-point cloud Registration
  • 网站开发合作协议自主建站系统
  • MySQL 8 查询逗号分隔字符串
  • react 源码2
  • 淮南电商网站建设苏州网站优化
  • AI应用市场崛起:聊天机器人、教育学习、视频创作三驾马车驱动创新