HRex39/rtl8852be_bt

无法安装蓝牙驱动

Closed this issue · 8 comments

thinkbook14+ 6800h
安装好wlan驱动后无法在lsusb的输出中找到带bluetooth radio项的输出

具体输出如下:
Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 010 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 002: ID 30c9:0057
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 0bda:4853 Realtek Semiconductor Corp.
Bus 003 Device 003: ID 05ac:024f Apple, Inc.
Bus 003 Device 002: ID 1532:0098 Razer USA, Ltd
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

合理推测是这个设备

Bus 003 Device 004: ID 0bda:4853 Realtek Semiconductor Corp.

合理推测是这个设备

Bus 003 Device 004: ID 0bda:4853 Realtek Semiconductor Corp.

我修改了对应文件后还是无法编译通过
报错如下

make -C /lib/modules/5.4.0-124-generic/build M=/home/tanner/rtl8852be_bt-5.15 modules
make[1]: 进入目录“/usr/src/linux-headers-5.4.0-124-generic”
CC [M] /home/tanner/rtl8852be_bt-5.15/btusb.o
CC [M] /home/tanner/rtl8852be_bt-5.15/btrtl.o
CC [M] /home/tanner/rtl8852be_bt-5.15/btintel.o
CC [M] /home/tanner/rtl8852be_bt-5.15/btbcm.o
In file included from /home/tanner/rtl8852be_bt-5.15/btintel.c:17:0:
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_set_diag_combined’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:27: error: implicit declaration of function ‘hci_get_priv’; did you mean ‘hci_get_irk’? [-Werror=implicit-function-declaration]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:213:6: note: in expansion of macro ‘btintel_test_flag’
if (btintel_test_flag(hdev, INTEL_ROM_LEGACY))
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:213:6: note: in expansion of macro ‘btintel_test_flag’
if (btintel_test_flag(hdev, INTEL_ROM_LEGACY))
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_download_wait’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:1602:2: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_FIRMWARE_LOADED);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:183:23: note: in expansion of macro ‘btintel_get_flag’
wait_on_bit_timeout(btintel_get_flag(hdev), (nr), m, to)
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:1606:8: note: in expansion of macro ‘btintel_wait_on_flag_timeout’
err = btintel_wait_on_flag_timeout(hdev, INTEL_DOWNLOADING,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:1619:6: note: in expansion of macro ‘btintel_test_flag’
if (btintel_test_flag(hdev, INTEL_FIRMWARE_FAILED)) {
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_boot_wait’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:183:23: note: in expansion of macro ‘btintel_get_flag’
wait_on_bit_timeout(btintel_get_flag(hdev), (nr), m, to)
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:1641:8: note: in expansion of macro ‘btintel_wait_on_flag_timeout’
err = btintel_wait_on_flag_timeout(hdev, INTEL_BOOTING,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_boot’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:1670:2: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_BOOTING);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_download_fw’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:167:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:1750:3: note: in expansion of macro ‘btintel_clear_flag’
btintel_clear_flag(hdev, INTEL_BOOTLOADER);
^~~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:1815:8: note: in expansion of macro ‘btintel_test_flag’
if (!btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:1817:4: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_FIRMWARE_LOADED);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:1827:8: note: in expansion of macro ‘btintel_test_flag’
if (!btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:1829:4: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_FIRMWARE_LOADED);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:1849:2: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_DOWNLOADING);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:1856:4: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_FIRMWARE_LOADED);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_bootloader_setup’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:1906:2: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_BOOTLOADER);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:167:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:1920:2: note: in expansion of macro ‘btintel_clear_flag’
btintel_clear_flag(hdev, INTEL_BOOTLOADER);
^~~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_prepare_fw_download_tlv’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:167:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:2007:3: note: in expansion of macro ‘btintel_clear_flag’
btintel_clear_flag(hdev, INTEL_BOOTLOADER);
^~~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:2022:8: note: in expansion of macro ‘btintel_test_flag’
if (!btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:2024:4: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_FIRMWARE_LOADED);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:2045:2: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_DOWNLOADING);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:2054:4: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_FIRMWARE_LOADED);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_bootloader_setup_tlv’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:2103:2: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_BOOTLOADER);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:167:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:2117:2: note: in expansion of macro ‘btintel_clear_flag’
btintel_clear_flag(hdev, INTEL_BOOTLOADER);
^~~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btrtl.c: In function ‘btrtl_initialize’:
/home/tanner/rtl8852be_bt-5.15/btrtl.c:699:3: error: implicit declaration of function ‘hci_set_msft_opcode’; did you mean ‘hci_skb_opcode’? [-Werror=implicit-function-declaration]
hci_set_msft_opcode(hdev, 0xFCF0);
^~~~~~~~~~~~~~~~~~~
hci_skb_opcode
/home/tanner/rtl8852be_bt-5.15/btbcm.c: In function ‘btbcm_read_info’:
/home/tanner/rtl8852be_bt-5.15/btbcm.c:415:11: error: ‘HCI_QUIRK_BROKEN_READ_TRANSMIT_POWER’ undeclared (first use in this function); did you mean ‘HCI_QUIRK_BROKEN_STORED_LINK_KEY’?
set_bit(HCI_QUIRK_BROKEN_READ_TRANSMIT_POWER, &hdev->quirks);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HCI_QUIRK_BROKEN_STORED_LINK_KEY
/home/tanner/rtl8852be_bt-5.15/btbcm.c:415:11: note: each undeclared identifier is reported only once for each function it appears in
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_set_msft_opcode’:
/home/tanner/rtl8852be_bt-5.15/btintel.c:2171:3: error: implicit declaration of function ‘hci_set_msft_opcode’; did you mean ‘btintel_set_msft_opcode’? [-Werror=implicit-function-declaration]
hci_set_msft_opcode(hdev, 0xFC1E);
^~~~~~~~~~~~~~~~~~~
btintel_set_msft_opcode
In file included from /home/tanner/rtl8852be_bt-5.15/btintel.c:17:0:
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_setup_combined’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:2203:6: note: in expansion of macro ‘btintel_test_flag’
if (btintel_test_flag(hdev, INTEL_BROKEN_INITIAL_NCMD) ||
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:2204:6: note: in expansion of macro ‘btintel_test_flag’
btintel_test_flag(hdev, INTEL_BROKEN_SHUTDOWN_LED)) {
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:2262:4: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_ROM_LEGACY);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:2273:9: note: in expansion of macro ‘btintel_test_flag’
if (!btintel_test_flag(hdev,
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btusb.c: In function ‘btusb_work’:
/home/tanner/rtl8852be_bt-5.15/btusb.c:1798:25: error: ‘HCI_NOTIFY_ENABLE_SCO_CVSD’ undeclared (first use in this function); did you mean ‘HCI_OP_ENABLE_DUT_MODE’?
if (data->air_mode == HCI_NOTIFY_ENABLE_SCO_CVSD) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
HCI_OP_ENABLE_DUT_MODE
/home/tanner/rtl8852be_bt-5.15/btusb.c:1798:25: note: each undeclared identifier is reported only once for each function it appears in
/home/tanner/rtl8852be_bt-5.15/btrtl.c: In function ‘btrtl_set_quirks’:
/home/tanner/rtl8852be_bt-5.15/btrtl.c:757:11: error: ‘HCI_QUIRK_VALID_LE_STATES’ undeclared (first use in this function); did you mean ‘HCI_QUIRK_INVALID_BDADDR’?
set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
^~~~~~~~~~~~~~~~~~~~~~~~~
HCI_QUIRK_INVALID_BDADDR
/home/tanner/rtl8852be_bt-5.15/btrtl.c:757:11: note: each undeclared identifier is reported only once for each function it appears in
scripts/Makefile.build:270: recipe for target '/home/tanner/rtl8852be_bt-5.15/btbcm.o' failed
make[2]: *** [/home/tanner/rtl8852be_bt-5.15/btbcm.o] Error 1
make[2]: *** 正在等待未完成的任务....
/home/tanner/rtl8852be_bt-5.15/btusb.c:1806:32: error: ‘HCI_NOTIFY_ENABLE_SCO_TRANSP’ undeclared (first use in this function); did you mean ‘HCI_NOTIFY_ENABLE_SCO_CVSD’?
} else if (data->air_mode == HCI_NOTIFY_ENABLE_SCO_TRANSP) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
HCI_NOTIFY_ENABLE_SCO_CVSD
/home/tanner/rtl8852be_bt-5.15/btintel.c:2275:13: error: ‘HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED’ undeclared (first use in this function); did you mean ‘HCI_OP_READ_SC_SUPPORT’?
set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HCI_OP_READ_SC_SUPPORT
/home/tanner/rtl8852be_bt-5.15/btintel.c:2275:13: note: each undeclared identifier is reported only once for each function it appears in
/home/tanner/rtl8852be_bt-5.15/btrtl.c:758:11: error: ‘HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED’ undeclared (first use in this function); did you mean ‘HCI_OP_READ_SC_SUPPORT’?
set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HCI_OP_READ_SC_SUPPORT
/home/tanner/rtl8852be_bt-5.15/btusb.c: In function ‘btusb_setup_csr’:
/home/tanner/rtl8852be_bt-5.15/btusb.c:1933:31: error: ‘BLUETOOTH_VER_2_1’ undeclared (first use in this function); did you mean ‘BLUETOOTH_VER_1_1’?
le16_to_cpu(rp->hci_ver) > BLUETOOTH_VER_2_1)
^~~~~~~~~~~~~~~~~
BLUETOOTH_VER_1_1
/home/tanner/rtl8852be_bt-5.15/btintel.c:2295:13: error: ‘HCI_QUIRK_VALID_LE_STATES’ undeclared (first use in this function); did you mean ‘HCI_QUIRK_INVALID_BDADDR’?
set_bit(HCI_QUIRK_VALID_LE_STATES,
^~~~~~~~~~~~~~~~~~~~~~~~~
HCI_QUIRK_INVALID_BDADDR
/home/tanner/rtl8852be_bt-5.15/btusb.c:1937:31: error: ‘BLUETOOTH_VER_4_0’ undeclared (first use in this function); did you mean ‘BLUETOOTH_VER_2_0’?
le16_to_cpu(rp->hci_ver) > BLUETOOTH_VER_4_0)
^~~~~~~~~~~~~~~~~
BLUETOOTH_VER_2_0
In file included from /home/tanner/rtl8852be_bt-5.15/btintel.c:17:0:
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_shutdown_combined’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:2429:6: note: in expansion of macro ‘btintel_test_flag’
if (btintel_test_flag(hdev, INTEL_BROKEN_SHUTDOWN_LED)) {
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_bootup’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:181:72: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_and_clear_flag(hdev, nr) test_and_clear_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:2462:6: note: in expansion of macro ‘btintel_test_and_clear_flag’
if (btintel_test_and_clear_flag(hdev, INTEL_BOOTING))
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:173:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:2463:3: note: in expansion of macro ‘btintel_wake_up_flag’
btintel_wake_up_flag(hdev, INTEL_BOOTING);
^~~~~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c: In function ‘btintel_secure_send_result’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:2476:3: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_FIRMWARE_FAILED);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:181:72: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_and_clear_flag(hdev, nr) test_and_clear_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:2478:6: note: in expansion of macro ‘btintel_test_and_clear_flag’
if (btintel_test_and_clear_flag(hdev, INTEL_DOWNLOADING) &&
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.c:2479:6: note: in expansion of macro ‘btintel_test_flag’
btintel_test_flag(hdev, INTEL_FIRMWARE_LOADED))
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:173:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btintel.c:2480:3: note: in expansion of macro ‘btintel_wake_up_flag’
btintel_wake_up_flag(hdev, INTEL_DOWNLOADING);
^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:270: recipe for target '/home/tanner/rtl8852be_bt-5.15/btrtl.o' failed
make[2]: *** [/home/tanner/rtl8852be_bt-5.15/btrtl.o] Error 1
/home/tanner/rtl8852be_bt-5.15/btusb.c:1955:11: error: ‘HCI_QUIRK_BROKEN_ERR_DATA_REPORTING’ undeclared (first use in this function); did you mean ‘HCI_QUIRK_BROKEN_LOCAL_COMMANDS’?
set_bit(HCI_QUIRK_BROKEN_ERR_DATA_REPORTING, &hdev->quirks);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HCI_QUIRK_BROKEN_LOCAL_COMMANDS
cc1: some warnings being treated as errors
scripts/Makefile.build:270: recipe for target '/home/tanner/rtl8852be_bt-5.15/btintel.o' failed
make[2]: *** [/home/tanner/rtl8852be_bt-5.15/btintel.o] Error 1
In file included from /home/tanner/rtl8852be_bt-5.15/btusb.c:24:0:
/home/tanner/rtl8852be_bt-5.15/btusb.c: In function ‘btusb_recv_bulk_intel’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:27: error: implicit declaration of function ‘hci_get_priv’; did you mean ‘hci_get_irk’? [-Werror=implicit-function-declaration]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btusb.c:2045:6: note: in expansion of macro ‘btintel_test_flag’
if (btintel_test_flag(hdev, INTEL_BOOTLOADER))
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btusb.c:2045:6: note: in expansion of macro ‘btintel_test_flag’
if (btintel_test_flag(hdev, INTEL_BOOTLOADER))
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btusb.c: In function ‘btusb_recv_event_intel’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btusb.c:2053:6: note: in expansion of macro ‘btintel_test_flag’
if (btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btusb.c: In function ‘btusb_send_frame_intel’:
/home/tanner/rtl8852be_bt-5.15/btintel.h:178:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(((struct btintel_data *)hci_get_priv(hdev))->flags)
^
/home/tanner/rtl8852be_bt-5.15/btintel.h:180:52: note: in expansion of macro ‘btintel_get_flag’
#define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btusb.c:2092:7: note: in expansion of macro ‘btintel_test_flag’
if (btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
^~~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btusb.c: In function ‘btusb_mtk_setup’:
/home/tanner/rtl8852be_bt-5.15/btusb.c:2893:3: error: implicit declaration of function ‘hci_set_msft_opcode’; did you mean ‘hci_skb_opcode’? [-Werror=implicit-function-declaration]
hci_set_msft_opcode(hdev, 0xFD30);
^~~~~~~~~~~~~~~~~~~
hci_skb_opcode
/home/tanner/rtl8852be_bt-5.15/btusb.c:2894:3: error: implicit declaration of function ‘hci_set_aosp_capable’; did you mean ‘lmp_transp_capable’? [-Werror=implicit-function-declaration]
hci_set_aosp_capable(hdev);
^~~~~~~~~~~~~~~~~~~~
lmp_transp_capable
/home/tanner/rtl8852be_bt-5.15/btusb.c: In function ‘btusb_probe’:
/home/tanner/rtl8852be_bt-5.15/btusb.c:3789:9: error: implicit declaration of function ‘hci_alloc_dev_priv’; did you mean ‘hci_alloc_dev’? [-Werror=implicit-function-declaration]
hdev = hci_alloc_dev_priv(priv_size);
^~~~~~~~~~~~~~~~~~
hci_alloc_dev
/home/tanner/rtl8852be_bt-5.15/btusb.c:3789:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
hdev = hci_alloc_dev_priv(priv_size);
^
/home/tanner/rtl8852be_bt-5.15/btusb.c:3819:6: error: ‘struct hci_dev’ has no member named ‘prevent_wake’
hdev->prevent_wake = btusb_prevent_wake;
^~
In file included from /home/tanner/rtl8852be_bt-5.15/btusb.c:24:0:
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btusb.c:3874:4: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_ROM_LEGACY_NO_WBS_SUPPORT);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btusb.c:3877:4: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_BROKEN_INITIAL_NCMD);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btintel.h:161:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
struct btintel_data *intel = hci_get_priv((hdev));
^
/home/tanner/rtl8852be_bt-5.15/btusb.c:3880:4: note: in expansion of macro ‘btintel_set_flag’
btintel_set_flag(hdev, INTEL_BROKEN_SHUTDOWN_LED);
^~~~~~~~~~~~~~~~
/home/tanner/rtl8852be_bt-5.15/btusb.c:3962:11: error: ‘HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED’ undeclared (first use in this function); did you mean ‘HCI_OP_READ_SC_SUPPORT’?
set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HCI_OP_READ_SC_SUPPORT
/home/tanner/rtl8852be_bt-5.15/btusb.c:3965:11: error: ‘HCI_QUIRK_VALID_LE_STATES’ undeclared (first use in this function); did you mean ‘BTUSB_VALID_LE_STATES’?
set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
^~~~~~~~~~~~~~~~~~~~~~~~~
BTUSB_VALID_LE_STATES
cc1: some warnings being treated as errors
scripts/Makefile.build:270: recipe for target '/home/tanner/rtl8852be_bt-5.15/btusb.o' failed
make[2]: *** [/home/tanner/rtl8852be_bt-5.15/btusb.o] Error 1
Makefile:1762: recipe for target '/home/tanner/rtl8852be_bt-5.15' failed
make[1]: *** [/home/tanner/rtl8852be_bt-5.15] Error 2
make[1]: 离开目录“/usr/src/linux-headers-5.4.0-124-generic”
Makefile:17: recipe for target 'all' failed
make: *** [all] Error 2

我的内核是5.4.0的

请问你用的是什么版本内核,我重新编译尝试一下

这个库的内核只支持5.15以上的版本,lwfinger的rtw89-BT的库也是只支持5.15以上的内核。
这是因为:如果要为更久远的内核添加蓝牙驱动,需要修改的地方比较多。
但您如果对蓝牙不是刚需的话,就比较无所谓了。

回复一下您的问题:我采用的是5.15的内核