前提
大部分情況都是因為當前系統的內核不滿足驅動文件的編譯條件,可以通過驅動文件中的文檔來確定是否要升級內核還是降級內核,
對於升級內核只需要下載指定的內核版本安裝即可,降級內核(暫時不清楚是否會引發其他問題)
找到適合自己的內核
github 搜索 RTL88x2BU,會出現很多大神維護的驅動文件,然后檢查自己的設備是否符合驅動的編譯條件,如果自己系統的內核版本和gcc都符合要求,那就是皆大歡喜,直接按照要求編譯安裝就可以了;如果不滿足要求,調整自己的內核和gcc版本;
https://github.com/cilynx/rtl88x2BU_WiFi_linux_v5.3.1_27678.20180430_COEX20180427-5959
https://github.com/cilynx/rtl88x2BU_WiFi_linux_v5.2.4.4_26334.20180126_COEX20171012-5044
https://github.com/its-izhar/rtl88x2bu-driver
升級內核
關於版本的要求並沒有測試出來,實際測試可用的內核
驅動文件
https://pan.baidu.com/s/1xC2i3JtPoaYlLMbP7Op8Fg&shfl=sharepset
centos
uname -r
4.4.197-1.el7.elrepo.x86_64
ubuntu
uname -r
4.4.0-148-generic
具體升級步驟
centos
升級指定版本
# 內核文件
kernel-lt-4.4.197-1.el7.elrepo.x86_64.rpm
# 編譯驅動需要的文件
kernel-lt-devel-4.4.197-1.el7.elrepo.x86_64.rpm
# 安裝
rpm -ivh kernel-lt*.rpm
# 查看內核插入順序
awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 查看當前實際啟動順序
grub2-editenv list
# 設置默認啟動
# grub2-set-default 0 // 0代表 是 awk 查詢的結果,根據實際需要選擇,也可以使用名稱,如下
grub2-set-default 'CentOS Linux (4.xx.xx-1.el7.elrepo.x86_64) 7 (Core)'
grub2-editenv list
ubuntu
手動下載安裝
# 下載自己需要的內核版本
http://kernel.ubuntu.com/~kernel-ppa/mainline/
# 需要三個 all 、headers、image
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.4.148/linux-headers-4.4.148-0404148_4.4.148-0404148.201808151240_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.4.148/linux-headers-4.4.148-0404148-generic_4.4.148-0404148.201808151240_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.4.148/linux-image-4.4.148-0404148-generic_4.4.148-0404148.201808151240_amd64.deb
# 安裝內核文件
sudo dpkg -i *.deb
# 查看內核版本
uname -r
4.4.0-148-generic
apt安裝
# 安裝
sudo apt-get install linux-image-4.4.0-179-generic linux-headers-4.4.0-179 linux-headers-4.4.0-179-generic
# 查看是否安裝成功
dpkg -l | grep 3.16.0-43-generic
# 編輯grub文件
sudo vim /etc/default/grub
# GRUB_DEFAULT=0
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-179-generic"
# 更新 Grub 引導
sudo update-grub
ohers(刪除多於的內核)
# 查看多余的內核
dpkg --get-selections| grep linux
# 刪除其他版本的內核(deinstall的需要使用dpkg卸載)
sudo apt-get remove linux-headers-4.15.0-33
sudo dpkg -P linux-image-4.8.0-36-generic
編譯
centos
cd rtl88x2BU_WiFi_linux_v5.2.4.1_22719_COEX20170518-4444.20170613/
make
# 提示 /lib/modules/4.4.197-1.el7.elrepo.x86_64/build 不存在
cd /lib/modules/4.4.197-1.el7.elrepo.x86_64/
ls -l build
lrwxrwxrwx 1 root root 44 10月 18 15:35 build -> /usr/src/kernels/4.4.197-1.el7.elrepo.x86_64
# 發現軟連接對應的文件夾不存在,安裝 kernel-lt-devel
yum --enablerepo=elrepo-kernel install kernel-lt-devel
# 安裝完后,再查看一下
ls -l build
# 然后繼續編譯驅動,得到“88x2bu.ko”
cd rtl88x2BU_WiFi_linux_v5.2.4.1_22719_COEX20170518-4444.20170613/
make
sudo make install