Deepin15。11 下的藍芽驅動大概是最坑爹的因素了。這是RELTEK系列DEWIFI和BLUETOOTH二合一網路裝置,AMD出品。或許是太新的緣故,AMD官網上沒有給出LINUX下的閉源驅動,華為榮耀官網上也沒有,既然華為自帶的原生Deepin版本驅動好使,為何不把該驅動釋放出來?令人百思不得其解。
沒辦法只好在網路世界中尋找答案,這個答案到現在為止還是不好使,有哪位大俠弄出來,勞煩告知一下。這裡把趟過的坑列出來供參考。
先做些準備工作,看看核心:
> uname -a
Linux hunnish-PC 5。3。18-050318-generic #201912181133 SMP Wed Dec 18 16:36:09 UTC 2019 x86_64 GNU/Linux
這個核心已經包含了基本的藍芽驅動,奈何對這款筆記本不好使:
> lsmod |grep rt
btrtl 20480 1 btusb
bluetooth 577536 31 btrtl,btintel,btbcm,bnep,btusb,rfcomm
rtwpci 24576 0
rtw88 442368 1 rtwpci
mac80211 847872 2 rtwpci,rtw88
cfg80211 712704 2 mac80211,rtw88
parport_pc 40960 0
parport 53248 3 parport_pc,lp,ppdev
檢視USB裝置:
> sudo cat /sys/kernel/debug/usb/devices
。。。
。。。
T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 2。00 Cls=02(comm。) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=27c6 ProdID=5110 Rev= 2。00
S: Manufacturer=Shenzhen Goodix Technology Co。,Ltd。
S: Product=Goodix Fingerprint Device
C:* #Ifs= 2 Cfg#= 1 Atr=60 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm。) Sub=01 Prot=01 Driver=(none)
E: Ad=82(I) Atr=03(Int。) MxPS= 8 Ivl=16ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1。00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1358 ProdID=c123 Rev= 0。00
S: Manufacturer=Realtek
S: Product=Bluetooth Radio
S: SerialNumber=00e04c000001
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=81(I) Atr=03(Int。) MxPS= 16 Ivl=1ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
。。。
發現是有藍芽裝置的,而且還有Shenzhen Goodix(匯頂科技)的指紋。這兩個功能在Linux下都是心中的痛。
首先安裝 bluetooth 和blueman,啟動藍芽管理器:
> sudo apt-get install bluetooth blueman
但啟動管理器後,藍芽裝置無法配對。
懷疑是驅動不夠新,再次下載最新的驅動:
> git clone http://github。com/lwfinger/rtlwifi_new。git -b rtw88
> cd rtlwifi_new
> make
> sudo make install
此方法安裝rtw88驅動後,藍芽問題依然沒有解決,而且WIFI網路連結認證出問題,即使輸入原先正確的wifi密碼,也還總是提示密碼不對,解除安裝這個驅動,則恢復正常。
直接下載最新的 btusb。c , 然後編譯:
1。 下載 btusb。c 和三個標頭檔案:btbcm。h、btintel。h、btrtl。h, 放到同一個資料夾中
2。 建立一個Makefile檔案(注意M大寫):
> vim Makefile
寫入下面內容:
obj-m := btusb。o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
3。 編輯btusb。c,在下面內容前面:
/* Silicon Wave based devices */
{
USB_DEVICE
(
0x0c10
,
0x0000
),
。
driver_info
=
BTUSB_SWAVE
},
新增8822CE的定義:
/* Additional Realtek 8822CE Bluetooth devices */
{
USB_DEVICE
(
0x04ca
,
0x4005
),
。
driver_info
=
BTUSB_REALTEK
},
4。 編譯:
> make
5。 安裝編譯好的模組 (btusb。ko) :
> sudo make -C /usr/src/linux-headers-$(uname -r) M=$(pwd) modules_install
6。 執行:
>sudo depmod -a
這樣操作後,問題也沒有解決。
最後下載最新的核心5。5。1,查閱裡面的btusb。c,發現已經支援 RTK8822CE。直接將藍芽驅動加到核心中,進入原始碼目錄:
> make menuconfig
啟動配置介面:
勾選bluetooth的各個項,然後儲存退出。再花大半天時間編譯核心,然後重啟,結果藍芽功能還是不行。
看來這個問題要麼REALTEK解決,要麼華為來解決。查閱網上資料,有朋友能夠解決,但不知是怎麼就弄出來,現在可愛的藍芽滑鼠、很酷指紋登入、方便的手機一碰即傳等功能,都只能在win10下體驗了。期待華為花點精力來解決這個問題。