華為MagicBook銳龍版雙系統折騰記四:藍芽

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

但啟動管理器後,藍芽裝置無法配對。

華為MagicBook銳龍版雙系統折騰記四:藍芽

懷疑是驅動不夠新,再次下載最新的驅動:

> 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

啟動配置介面:

華為MagicBook銳龍版雙系統折騰記四:藍芽

勾選bluetooth的各個項,然後儲存退出。再花大半天時間編譯核心,然後重啟,結果藍芽功能還是不行。

看來這個問題要麼REALTEK解決,要麼華為來解決。查閱網上資料,有朋友能夠解決,但不知是怎麼就弄出來,現在可愛的藍芽滑鼠、很酷指紋登入、方便的手機一碰即傳等功能,都只能在win10下體驗了。期待華為花點精力來解決這個問題。