今天在 Freenode 的 #fedora-zh 上,有个网友的笔记本有线网卡使用的是 r8168,无线网卡是 rtl8723be,r8168 的驱动 r8169 存在问题,rtl8723be 的驱动才刚刚进入 Linux 3.16。因此两者均无法使用,需要下载 Realtek 发布的驱动。
如果在有网络的情况下,倒是非常好解决的。啥,你说没网?请先阅读《无网络》部分,使其有网络后,从这里继续。
硬件辨识
rtl8723be:
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device 5227 (rev 01)
05:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device b723
r8168
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
安装开发工具
yum update kernel # 注意,此时内核已经升级,需要重新编译驱动,你要保证你已经下载好驱动(安装倒是可以无网),否则千万别重启!
yum install kernel-devel make automake gcc git
一个典型的问题是,当前运行的内核版本并非是最新的版本,因此升级 kernel 并安装 kernel-devel 让其对应。
不过这些驱动的 Makefile 都有些弱智,只能识别正在运行的内核。因此你需要在现在还有网络的时候,直接完成下面的“下载”部分。重启后,网络不可用,这时再完成“安装”部分。
升级内核 -> 安装开发工具 -> 下载驱动 -> 重启 -> 编译安装
r8168
### 下载
wget https://tomli.blog//files/linux/drivers/3.11.10-301.fc20.x86_64/src/r8168-8.038.00.tar.bz2
tar -xf r8168-8.038.00.tar.bz2
### 编译安装
cd r8168-8.038.00/
make
# 屏蔽有问题的 r8169
echo "blacklist r8169" > /etc/modprobe.d/blacklist-r8169.conf
rtl8723be
### 下载
git clone git://github.com/biergaizi/rtl8723be.git
### 编译安装
cd rtl8723be
make
make install
无网络
如果像这位 IRC 网友一样,没有任何网络连接可用,而且 Fedora 20 是全新安装的版本,内核为 3.11.10-301.fc20.x86_64,我已经编译好了二进制驱动。
到 https://tomli.blog//files/linux/drivers/3.11.10-301.fc20.x86_64/ 下载 r8168.tar.xz 和 rtl8723be.tar.xz,解压缩,分别用 root 运行各目录下的 install.sh 即可。
注意,此二进制驱动仅适用于全新的 Fedora 20 x86_64,且内核版本为 3.11.10-301.fc20.x86_64。如果系统更新过,内核早已是 3.14 系列,不适用于此驱动。
重新编译驱动
即使你现在已经拥有网络,每次系统升级后,内核版本可能会发生变化,导致驱动失效,需要重新编译。
因此应该去进行安装开发工具和两个驱动的下载部分。每次,当升级内核,驱动失效后,再进行编译安装部分即可。
2014年06月08日 — 14:40
为什么不用DKMS?
2014年06月10日 — 09:54
DKMS……我在 Ubuntu 以外的系统下从没成功过,也几乎没有任何 Gentoo 用户用它。而且这些驱动里有些 #if 内核版本 代码1 #else 代码2 #endif 的预处理,DKMS 能保证正常吗?