Giter Club home page Giter Club logo

rtw89-bt's Introduction

rtw89-BT

Out-of-kernel driver for Realtek BT devices found in rtw89 devides.

This driver will build for kernels 5.15+. If you get build errors, please report them in this repo as an issue. I will make every attempt to backport the code to older kernels.

The repository contains BT drivers for the known BT parts of the following:

Realtek 8852AE, RTW8852BE, and RTW8852CE.

Installation instruction

Requirements

You will need to install "make", "gcc", "kernel headers", "kernel build essentials", and "git".

For Ubuntu: You can install them with the following command

sudo apt-get update
sudo apt-get install make gcc linux-headers-$(uname -r) build-essential git

Users of Debian, Ubuntu, and similar (Mint etc) may want to scroll down and follow the DKMS instructions at the end of this document instead.

For Fedora: You can install them with the following command

sudo dnf install kernel-headers kernel-devel
sudo dnf group install "C Development Tools and Libraries"

For openSUSE: Install necessary headers with

sudo zypper install make gcc kernel-devel kernel-default-devel git libopenssl-devel

##### Installation
For all distros:
```bash
git clone [email protected]:lwfinger/rtw89-BT.git
cd rtw89-BT
make
sudo make install
Installation with module signing for SecureBoot

For all distros:

git clone [email protected]:lwfinger/rtw89-BT.git
cd rtw89-BT
make
sudo make sign-install

You will be promted a password, please keep it in mind and use it in next steps. Reboot to activate the new installed module. In the MOK managerment screen:

  1. Select "Enroll key" and enroll the key created by above sign-install step
  2. When promted, enter the password you entered when create sign key.
  3. If you enter wrong password, your computer won't not bebootable. In this case, use the BOOT menu from your BIOS, to boot into your OS then do below steps:
sudo mokutil --reset

Restart your computer Use BOOT menu from BIOS to boot into your OS In the MOK managerment screen, select reset MOK list Reboot then retry from the step make sign-install

DKMS packaging for debian and derivatives

DKMS is commonly used on debian and derivatives, like ubuntu, to streamline building extra kernel modules.
By following the instructions below and installing the resulting package, the rtw89 driver will automatically rebuild on kernel updates. Secure boot signing will happen automatically as well, as long as the dkms signing key (usually located at /var/lib/dkms/mok.key) is enrolled. See your distro's secure boot documentation for more details.

Prerequisites:

sudo apt install dh-sequence-dkms debhelper build-essential devscripts

This workflow uses devscripts, which has quite a few perl dependencies.
You may wish to build inside a chroot to avoid unnecessary clutter on your system. The debian wiki page for chroot has simple instructions for debian, which you can adapt to other distros as needed by changing the release codename and mirror url.
If you do, make sure to install the package on your host system, as it will fail if you try to install inside the chroot.

Build and installation

# If you've already built as above clean up your workspace or check one out specially (otherwise some temp files can end up in your package)
git clean -xfd

git deborig HEAD
dpkg-buildpackage -us -uc
sudo apt install ../rtw89bt-dkms_1.0.0_all.deb

This will install the package, and build the module for your currently active kernel. The new module will load automatically on boot. You can also load it right away, but because it has the same module name as the mainline bluetooth usb driver, that one needs to be unloaded first. This can be done with the following commands:

sudo modprobe -rv btusb
sudo modprobe -v btusb
A note regarding firmware

Firmware from userspace is required to use this driver. This package will attempt to pull the firmware in automatically as a Recommends. However, if your distro does not provide one of firmware-realtek >= 20230117-1 or linux-firmware >= 20220329.git681281e4-0ubuntu3.10, the driver will fail to load, and dmesg will show an error about a specific missing firmware file. In this case, you can download the firmware files directly from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/rtl_bt.

rtw89-bt's People

Contributors

johnrtitor avatar lwfinger avatar sney avatar whitty avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

rtw89-bt's Issues

Build error on 6.9.3-76060903-generic

make
make -C /lib/modules/6.9.3-76060903-generic/build M=/home/ste/Downloads/rtw89-BT modules
make[1]: Entering directory '/usr/src/linux-headers-6.9.3-76060903-generic'
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu122.04) 12.3.0
You are using: gcc-12 (Ubuntu 12.3.0-1ubuntu1
22.04) 12.3.0
CC [M] /home/ste/Downloads/rtw89-BT/btusb.o
/home/ste/Downloads/rtw89-BT/btusb.c: In function ‘btusb_probe’:
/home/ste/Downloads/rtw89-BT/btusb.c:4346:21: error: ‘struct hci_dev’ has no member named ‘dev_type’
4346 | hdev->dev_type = HCI_AMP;
| ^~
/home/ste/Downloads/rtw89-BT/btusb.c:4346:34: error: ‘HCI_AMP’ undeclared (first use in this function); did you mean ‘HCI_UP’?
4346 | hdev->dev_type = HCI_AMP;
| ^~~~~~~
| HCI_UP
/home/ste/Downloads/rtw89-BT/btusb.c:4346:34: note: each undeclared identifier is reported only once for each function it appears in
/home/ste/Downloads/rtw89-BT/btusb.c:4348:21: error: ‘struct hci_dev’ has no member named ‘dev_type’
4348 | hdev->dev_type = HCI_PRIMARY;
| ^~
/home/ste/Downloads/rtw89-BT/btusb.c:4348:34: error: ‘HCI_PRIMARY’ undeclared (first use in this function); did you mean ‘HCI_PRIVACY’?
4348 | hdev->dev_type = HCI_PRIMARY;
| ^~~~~~~~~~~
| HCI_PRIVACY
/home/ste/Downloads/rtw89-BT/btusb.c: At top level:
/home/ste/Downloads/rtw89-BT/btusb.c:4842:10: error: ‘struct usb_driver’ has no member named ‘drvwrap’
4842 | .drvwrap = {
| ^~~~~~~
/home/ste/Downloads/rtw89-BT/btusb.c:4842:9: warning: braces around scalar initializer
4842 | .drvwrap = {
| ^
/home/ste/Downloads/rtw89-BT/btusb.c:4842:9: note: (near initialization for ‘btusb_driver.soft_unbind’)
/home/ste/Downloads/rtw89-BT/btusb.c:4843:17: error: field name not in record or union initializer
4843 | .driver = {
| ^
/home/ste/Downloads/rtw89-BT/btusb.c:4843:17: note: (near initialization for ‘btusb_driver.soft_unbind’)
/home/ste/Downloads/rtw89-BT/btusb.c:4843:17: warning: braces around scalar initializer
/home/ste/Downloads/rtw89-BT/btusb.c:4843:17: note: (near initialization for ‘btusb_driver.soft_unbind’)
/home/ste/Downloads/rtw89-BT/btusb.c:4844:25: error: field name not in record or union initializer
4844 | .coredump = btusb_coredump,
| ^
/home/ste/Downloads/rtw89-BT/btusb.c:4844:25: note: (near initialization for ‘btusb_driver.soft_unbind’)
/home/ste/Downloads/rtw89-BT/btusb.c:4844:37: warning: initialization of ‘unsigned char:1’ from ‘void (*)(struct device *)’ makes integer from pointer without a cast [-Wint-conversion]
4844 | .coredump = btusb_coredump,
| ^~~~~~~~~~~~~~
/home/ste/Downloads/rtw89-BT/btusb.c:4844:37: note: (near initialization for ‘btusb_driver.soft_unbind’)
/home/ste/Downloads/rtw89-BT/btusb.c:4844:37: error: initializer element is not computable at load time
/home/ste/Downloads/rtw89-BT/btusb.c:4844:37: note: (near initialization for ‘btusb_driver.soft_unbind’)
make[3]: *** [scripts/Makefile.build:244: /home/ste/Downloads/rtw89-BT/btusb.o] Error 1
make[2]: *** [/usr/src/linux-headers-6.9.3-76060903-generic/Makefile:1925: /home/ste/Downloads/rtw89-BT] Error 2
make[1]: *** [Makefile:240: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.9.3-76060903-generic'
make: *** [Makefile:34: all] Error 2

AUR package

Hello and thanks for the amazing work with this repository!
I was able to revive BT adapter of my Xiaomi RedmiBook 16' radeon edition with the help of these drivers.
It would be great if there is an aur package for dkms driver made from this repo. So may I submit it to aur registry? Or can someone of maintainers do it?
Here is working version of PKGBUILD:

# Maintainer: Some Person <some-mail (at)some-domain(dot)com>

pkgname=rtw89bt-dkms-git
pkgver=5.15.0.r18.g7a6abee
pkgrel=1
pkgdesc="Out-of-kernel driver for Realtek BT devices found in rtw89 devices (8852AE, RTW8852BE, RTW8852CE)"
arch=('i686' 'x86_64')
url="https://github.com/lwfinger/rtw89-BT"
license=('GPL2')
depends=('dkms' 'bc' 'linux>=5.15.0' 'linux-headers')
makedepends=('git')
conflicts=("${pkgname}")
source=("git+https://github.com/lwfinger/rtw89-BT.git")
sha256sums=('SKIP')
pkgver() {
    cd ${srcdir}/rtw89-BT
    printf '%s.r%s.g%s' '5.15.0' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

package() {
    cd ${srcdir}/rtw89-BT
    mkdir -p ${pkgdir}/usr/src/${pkgname}-${pkgver}
    cp -pr * ${pkgdir}/usr/src/${pkgname}-${pkgver}
    cp ${srcdir}/rtw89-BT/debian/rtw89bt-dkms.dkms ${pkgdir}/usr/src/${pkgname}-${pkgver}/dkms.conf
}

make install doesn't replace .ko.xz files

For awhile I thought the driver didn't work for my asus x670-p motherboard. It turned out the default fedora btusb and btrtl drivers were taking priority over the ones I built and installed using make install. the .ko files were installed along side but weren't used until I removed the default .ko.xz files for btusb and btrtl. Maybe the makefile can account for this and install .ko.xz files or maybe remove the default ones?

RTL8852AE does not work on Linux 5.19

Builds and installs fine, shows no issues in dmesg, but BT cannot be enabled.
Worked perfectly fine until 5.18. The driver shipped with 5.19 works well, though,

Issue during making on kernel 6.1.43

I have a Rock 5b with kernel 6.1.43.
Compiling for wi-fi (https://github.com/lwfinger/rtw89) has been fine.
The Wi-Fi works.
But for the bluetooth (https://github.com/lwfinger/rtw89-BT) I got somes issues:

JMD@claud:/usr/local/src/rtw89-BT# sudo make
make -C /lib/modules/6.1.43-vendor-rk35xx/build M=/usr/local/src/rtw89-BT modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.43-vendor-rk35xx'
  CC [M]  /usr/local/src/rtw89-BT/btmtk.o
/usr/local/src/rtw89-BT/btmtk.c: In function ‘btmtk_coredump_notify’:
/usr/local/src/rtw89-BT/btmtk.c:91:14: error: ‘HCI_DEVCOREDUMP_IDLE’ undeclared (first use in this function)
   91 |         case HCI_DEVCOREDUMP_IDLE:
      |              ^~~~~~~~~~~~~~~~~~~~
/usr/local/src/rtw89-BT/btmtk.c:91:14: note: each undeclared identifier is reported only once for each function it appears in
/usr/local/src/rtw89-BT/btmtk.c:94:14: error: ‘HCI_DEVCOREDUMP_ACTIVE’ undeclared (first use in this function)
   94 |         case HCI_DEVCOREDUMP_ACTIVE:
      |              ^~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/rtw89-BT/btmtk.c:97:14: error: ‘HCI_DEVCOREDUMP_TIMEOUT’ undeclared (first use in this function); did you mean ‘HCI_DISCONN_TIMEOUT’?
   97 |         case HCI_DEVCOREDUMP_TIMEOUT:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              HCI_DISCONN_TIMEOUT
/usr/local/src/rtw89-BT/btmtk.c:98:14: error: ‘HCI_DEVCOREDUMP_ABORT’ undeclared (first use in this function)
   98 |         case HCI_DEVCOREDUMP_ABORT:
      |              ^~~~~~~~~~~~~~~~~~~~~
/usr/local/src/rtw89-BT/btmtk.c:99:14: error: ‘HCI_DEVCOREDUMP_DONE’ undeclared (first use in this function)
   99 |         case HCI_DEVCOREDUMP_DONE:
      |              ^~~~~~~~~~~~~~~~~~~~
/usr/local/src/rtw89-BT/btmtk.c: In function ‘btmtk_register_coredump’:
/usr/local/src/rtw89-BT/btmtk.c:362:31: error: ‘HCI_DEVCOREDUMP_IDLE’ undeclared (first use in this function)
  362 |         data->cd_info.state = HCI_DEVCOREDUMP_IDLE;
      |                               ^~~~~~~~~~~~~~~~~~~~
/usr/local/src/rtw89-BT/btmtk.c:365:16: error: implicit declaration of function ‘hci_devcd_register’; did you mean ‘hci_dev_reset’? [-Werror=implicit-function-declaration]
  365 |         return hci_devcd_register(hdev, btmtk_coredump, btmtk_coredump_hdr,
      |                ^~~~~~~~~~~~~~~~~~
      |                hci_dev_reset
/usr/local/src/rtw89-BT/btmtk.c: In function ‘btmtk_process_coredump’:
/usr/local/src/rtw89-BT/btmtk.c:379:14: error: ‘HCI_DEVCOREDUMP_IDLE’ undeclared (first use in this function)
  379 |         case HCI_DEVCOREDUMP_IDLE:
      |              ^~~~~~~~~~~~~~~~~~~~
/usr/local/src/rtw89-BT/btmtk.c:380:23: error: implicit declaration of function ‘hci_devcd_init’; did you mean ‘hci_sock_init’? [-Werror=implicit-function-declaration]
  380 |                 err = hci_devcd_init(hdev, MTK_COREDUMP_SIZE);
      |                       ^~~~~~~~~~~~~~
      |                       hci_sock_init
/usr/local/src/rtw89-BT/btmtk.c:386:44: error: ‘struct hci_dev’ has no member named ‘dump’
  386 |                 schedule_delayed_work(&hdev->dump.dump_timeout,
      |                                            ^~
/usr/local/src/rtw89-BT/btmtk.c:389:14: error: ‘HCI_DEVCOREDUMP_ACTIVE’ undeclared (first use in this function)
  389 |         case HCI_DEVCOREDUMP_ACTIVE:
      |              ^~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/rtw89-BT/btmtk.c:391:23: error: implicit declaration of function ‘hci_devcd_append’; did you mean ‘hci_dev_open’? [-Werror=implicit-function-declaration]
  391 |                 err = hci_devcd_append(hdev, skb);
      |                       ^~~~~~~~~~~~~~~~
      |                       hci_dev_open
/usr/local/src/rtw89-BT/btmtk.c:402:33: error: implicit declaration of function ‘hci_devcd_complete’ [-Werror=implicit-function-declaration]
  402 |                                 hci_devcd_complete(hdev);
      |                                 ^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:250: /usr/local/src/rtw89-BT/btmtk.o] Error 1
make[1]: *** [Makefile:2012: /usr/local/src/rtw89-BT] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.1.43-vendor-rk35xx'
make: *** [Makefile:34: all] Error 2

what should I do ?

make error on rtl b852

I can use the driver before, but after pull, it turns out make error.

➜ rtw89-BT git:(main) sudo make
[sudo] password for arthur:
make -C /lib/modules/5.15.0-97-generic/build M=/home/arthur/rtw89-BT modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-97-generic'
CC [M] /home/arthur/rtw89-BT/btusb.o
/home/arthur/rtw89-BT/btusb.c: In function ‘btusb_setup_csr’:
/home/arthur/rtw89-BT/btusb.c:2342:7: error: implicit declaration of function ‘skb_pull_data’; did you mean ‘skb_put_data’? [-Werror=implicit-function-declaration]
2342 | rp = skb_pull_data(skb, sizeof(*rp));
| ^~~~~~~~~~~~~
| skb_put_data
/home/arthur/rtw89-BT/btusb.c:2342:5: warning: assignment to ‘struct hci_rp_read_local_version *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
2342 | rp = skb_pull_data(skb, sizeof(*rp));
| ^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:297: /home/arthur/rtw89-BT/btusb.o] Error 1
make[1]: *** [Makefile:1911: /home/arthur/rtw89-BT] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-97-generic'
make: *** [Makefile:34: all] Error 2
➜ rtw89-BT git:(main)

Ubuntu 6.5 Build Errors

I'm seeing the following build errors when attempting to make:
Screenshot from 2024-01-16 08-51-21

Output from lsusb:
Screenshot from 2024-01-16 08-51-45

Installed firmware:
Screenshot from 2024-01-16 08-53-42

Output from uname -r (ubuntu 22.04):
Screenshot from 2024-01-16 08-52-53

Looks like some of the files are correctly compiling, but it's choking on at least one.

For more context, the issue I'm facing is non-functional bluetooth on a tp link network card. The bluetooth is "on", but can't actually detect or connect to anything. I'm hoping that this driver will do the trick (rtw89 worked beautifully for my network card), as long as I can get it to compile.

Debian 11 compilation issues

Hi, I'm currently facing the issue where my bluetooth scanning never ends and never shows devices. I have compiled the repository for rtw89 successfully (changing the makefile as below), and have working wifi, investigating into why the bluetooth does not work [I've found a related the issue] (lwfinger/rtw89#148 (comment)) where installation of this repository is advised.

In order for make to work had to changed the Makefile's lines;

# This line
#KSRC := /lib/modules/$(KVER)/build
# Replaced with this line
KSRC := /usr/src/linux-headers-$(KVER)

And the installation worked, have working wifi.

Now. Since I have no bluetooth scanned devices, tried to install this drive but got an error trace. I'm using Debian 11 stable with the kernel

root@tethys:~/rtw89-bt# uname -r
5.10.0-23-amd64

Using GCC version

root@tethys:~/rtw89-bt# gcc --version
gcc (Debian 10.2.1-6) 10.2.1 20210110
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Make version

root@tethys:~/rtw89-bt# make --version
GNU Make 4.3
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

That's the configuration that worked on the wifi driver.

When doing make on the root of the current main branch I get the following error trace:

root@tethys:~/rtw89-bt# make
make -C /usr/src/linux-headers-5.10.0-23-amd64 M=/root/rtw89-bt modules
make[1]: Entering directory '/usr/src/linux-headers-5.10.0-23-amd64'
  CC [M]  /root/rtw89-bt/btusb.o
In file included from /root/rtw89-bt/btusb.c:26:
/root/rtw89-bt/btusb.c: In function ‘btusb_recv_bulk_intel’:
/root/rtw89-bt/btintel.h:183:27: error: implicit declaration of function ‘hci_get_priv’; did you mean ‘hci_get_irk’? [-Werror=implicit-function-declaration]
  183 |  (((struct btintel_data *)hci_get_priv(hdev))->flags)
      |                           ^~~~~~~~~~~~
/root/rtw89-bt/btintel.h:185:52: note: in expansion of macro ‘btintel_get_flag’
  185 | #define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
      |                                                    ^~~~~~~~~~~~~~~~
/root/rtw89-bt/btusb.c:2190:6: note: in expansion of macro ‘btintel_test_flag’
 2190 |  if (btintel_test_flag(hdev, INTEL_BOOTLOADER))
      |      ^~~~~~~~~~~~~~~~~
/root/rtw89-bt/btintel.h:183:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  183 |  (((struct btintel_data *)hci_get_priv(hdev))->flags)
      |    ^
/root/rtw89-bt/btintel.h:185:52: note: in expansion of macro ‘btintel_get_flag’
  185 | #define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
      |                                                    ^~~~~~~~~~~~~~~~
/root/rtw89-bt/btusb.c:2190:6: note: in expansion of macro ‘btintel_test_flag’
 2190 |  if (btintel_test_flag(hdev, INTEL_BOOTLOADER))
      |      ^~~~~~~~~~~~~~~~~
/root/rtw89-bt/btusb.c: In function ‘btusb_recv_event_intel’:
/root/rtw89-bt/btintel.h:183:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  183 |  (((struct btintel_data *)hci_get_priv(hdev))->flags)
      |    ^
/root/rtw89-bt/btintel.h:185:52: note: in expansion of macro ‘btintel_get_flag’
  185 | #define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
      |                                                    ^~~~~~~~~~~~~~~~
/root/rtw89-bt/btusb.c:2198:6: note: in expansion of macro ‘btintel_test_flag’
 2198 |  if (btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
      |      ^~~~~~~~~~~~~~~~~
/root/rtw89-bt/btusb.c: In function ‘btusb_send_frame_intel’:
/root/rtw89-bt/btintel.h:183:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  183 |  (((struct btintel_data *)hci_get_priv(hdev))->flags)
      |    ^
/root/rtw89-bt/btintel.h:185:52: note: in expansion of macro ‘btintel_get_flag’
  185 | #define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
      |                                                    ^~~~~~~~~~~~~~~~
/root/rtw89-bt/btusb.c:2237:7: note: in expansion of macro ‘btintel_test_flag’
 2237 |   if (btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
      |       ^~~~~~~~~~~~~~~~~
/root/rtw89-bt/btusb.c: In function ‘btusb_mtk_setup’:
/root/rtw89-bt/btusb.c:2729:3: error: implicit declaration of function ‘hci_set_aosp_capable’; did you mean ‘lmp_transp_capable’? [-Werror=implicit-function-declaration]
 2729 |   hci_set_aosp_capable(hdev);
      |   ^~~~~~~~~~~~~~~~~~~~
      |   lmp_transp_capable
/root/rtw89-bt/btusb.c: In function ‘btusb_probe’:
/root/rtw89-bt/btusb.c:3738:9: error: implicit declaration of function ‘hci_alloc_dev_priv’; did you mean ‘hci_alloc_dev’? [-Werror=implicit-function-declaration]
 3738 |  hdev = hci_alloc_dev_priv(priv_size);
      |         ^~~~~~~~~~~~~~~~~~
      |         hci_alloc_dev
/root/rtw89-bt/btusb.c:3738:7: warning: assignment to ‘struct hci_dev *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
 3738 |  hdev = hci_alloc_dev_priv(priv_size);
      |       ^
In file included from /root/rtw89-bt/btusb.c:26:
/root/rtw89-bt/btintel.h:166:32: warning: initialization of ‘struct btintel_data *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  166 |   struct btintel_data *intel = hci_get_priv((hdev)); \
      |                                ^~~~~~~~~~~~
/root/rtw89-bt/btusb.c:3830:4: note: in expansion of macro ‘btintel_set_flag’
 3830 |    btintel_set_flag(hdev, INTEL_ROM_LEGACY_NO_WBS_SUPPORT);
      |    ^~~~~~~~~~~~~~~~
/root/rtw89-bt/btintel.h:166:32: warning: initialization of ‘struct btintel_data *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  166 |   struct btintel_data *intel = hci_get_priv((hdev)); \
      |                                ^~~~~~~~~~~~
/root/rtw89-bt/btusb.c:3833:4: note: in expansion of macro ‘btintel_set_flag’
 3833 |    btintel_set_flag(hdev, INTEL_BROKEN_INITIAL_NCMD);
      |    ^~~~~~~~~~~~~~~~
/root/rtw89-bt/btintel.h:166:32: warning: initialization of ‘struct btintel_data *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  166 |   struct btintel_data *intel = hci_get_priv((hdev)); \
      |                                ^~~~~~~~~~~~
/root/rtw89-bt/btusb.c:3836:4: note: in expansion of macro ‘btintel_set_flag’
 3836 |    btintel_set_flag(hdev, INTEL_BROKEN_SHUTDOWN_LED);
      |    ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [/usr/src/linux-headers-5.10.0-23-common/scripts/Makefile.build:291: /root/rtw89-bt/btusb.o] Error 1
make[2]: *** [/usr/src/linux-headers-5.10.0-23-common/Makefile:1852: /root/rtw89-bt] Error 2
make[1]: *** [/usr/src/linux-headers-5.10.0-23-common/Makefile:192: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.10.0-23-amd64'
make: *** [Makefile:34: all] Error 2

I will provide any additional information we can use to debug this issue, upon request

Kernel 5.15.0-92 - Make Compilation Error

I could install the rtw86 driver for Wifi, however when I compiled the code for Bluetooth, it has shown up an implicit declaration error:

thangtran@homelaptop:~/rtw89-BT$ make
make -C /lib/modules/5.15.0-92-generic/build M=/home/thangtran/rtw89-BT modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-92-generic'
  CC [M]  /home/thangtran/rtw89-BT/btusb.o
/home/thangtran/rtw89-BT/btusb.c: In function ‘btusb_setup_csr’:
/home/thangtran/rtw89-BT/btusb.c:2342:14: error: implicit declaration of function ‘skb_pull_data’; did you mean ‘skb_put_data’? [-Werror=implicit-function-declaration]
 2342 |         rp = skb_pull_data(skb, sizeof(*rp));
      |              ^~~~~~~~~~~~~
      |              skb_put_data
/home/thangtran/rtw89-BT/btusb.c:2342:12: warning: assignment to ‘struct hci_rp_read_local_version *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
 2342 |         rp = skb_pull_data(skb, sizeof(*rp));
      |            ^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:297: /home/thangtran/rtw89-BT/btusb.o] Error 1
make[1]: *** [Makefile:1909: /home/thangtran/rtw89-BT] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-92-generic'
make: *** [Makefile:34: all] Error 2

Thank you for your support.

Unable to scan and find BT devices on 8852AE

Unable to scan and find BT devices on 8852AE

image
5.17.15-1-MANJARO

Bus 001 Device 004: ID 0cb8:c549 Opticis Co., Ltd Bluetooth Radio

T: Bus=01 Lev=01 Prnt=01 Port=03 Cnt=03 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 1.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0cb8 ProdID=c549 Rev= 0.00
S: Manufacturer=Realtek
S: Product=Bluetooth Radio
S: SerialNumber=00e04c000001
C:* #Ifs= 2 Cfg#= 1 Atr=e0 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

BT unreliable and breaking WIFI with 8852be

Hello,
I was excited when I ran into this project after so much researching about by BT not working on Ubuntu 22.04. Therefore thanks so much for the effort.

I do not bring good news, however, on getting it to work. The starting point is that I followed the instructions here to install the driver for my RealTek WIFI device. This worked like a charm for WIFI, but then I was not able to detect any BT device.

I then installed rtw98-BT and I was able to discover and pair my handset, but the connection is unreliable and sound not good (only left speaker).

If I can be of any assistance in troubleshooting I am happy to help.

Bluetooth stutters when wifi is enabled

To be honest, I do not know whether the issues is on the bluetooth driver here or on the Kernel's wifi driver. Anyway, when both wifi and Bluetooth are enabled, Bluetooth stutters and lags (e.g., headphones have stuttering audio, or bluetooth game controller misses inputs).

Before you ask, my Wifi is connected to a 5Ghz wifi, so there should not be interferences.

8852BE Bluetooth not working after BIOS update

Hi

Connected to the other issue on the wifi driver I managed to get further, at least now the BT driver is loaded and prints some info into dmesg. I discovered, that the BT product ID has been changed to b85c which was NOT present in the btusb.c. I now added it and now the lines starting with ****** appeared, so the btrtl.ko is loaded now, but then it fails.

[ 24.126755] usb 1-3: new full-speed USB device number 15 using xhci_hcd
[ 24.169045] usb 1-3: New USB device found, idVendor=0bda, idProduct=b85c, bcdDevice= 0.00
[ 24.169051] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 24.169053] usb 1-3: Product: Bluetooth Radio
[ 24.169054] usb 1-3: Manufacturer: Realtek
[ 24.169055] usb 1-3: SerialNumber: 00e04c000001
[ 24.179062] ************** Entering btusb_probe, driver_info 0x0
[ 24.179066] **************** output of usb_match_id 000000003893a4d1
[ 24.179068] ************** driver_info 0x210000
[ 24.179074] ***************** configuring Realtek callbacks
[ 24.194313] *************** Entering btrtl_setup_realtek
[ 24.201148] Bluetooth: hci0: RTL: HCI_OP_READ_LOCAL_VERSION failed (-71)
[ 24.201155] ************ btrtl_initialize failed with error -71

And because of this failure the USB ports 1-3 are restarted continuously.

Please tell me if I should try diverse things or provide additional information.

this is my lspci output

00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14b5 (rev 01)
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Device 14b6
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14b7 (rev 01)
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14b7 (rev 01)
00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14ba
00:02.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14ba
00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14b7 (rev 01)
00:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14cd
00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14b7 (rev 01)
00:04.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14cd
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 14b7 (rev 01)
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14b9 (rev 10)
00:08.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 14b9 (rev 10)
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 71)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1679
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 167a
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 167b
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 167c
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 167d
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 167e
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 167f
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1680
01:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device b852
02:00.0 Non-Volatile memory controller: Sandisk Corp WD PC SN810 / Black SN850 NVMe SSD (rev 01)
63:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt (rev d4)
63:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device 1640
63:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] VanGogh PSP/CCP
63:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Device 161d
63:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Device 161e
63:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] Raven/Raven2/FireFlight/Renoir Audio Processor (rev 60)
63:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) HD Audio Controller
64:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] Device 161f
64:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15d6
64:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15d7
64:00.5 USB controller: Advanced Micro Devices, Inc. [AMD] Device 162e
64:00.6 USB controller: Advanced Micro Devices, Inc. [AMD] Device 162f

Error during compiling

I am ready to be your tester :) I really need BT for my laptop

make                                                                                                                                       1 ✘  10:39:37   
make -C /lib/modules/5.15.49-1-MANJARO/build M=/home/alex/rtw89-BT modules
make[1]: Entering directory '/usr/lib/modules/5.15.49-1-MANJARO/build'
  CC [M]  /home/alex/rtw89-BT/btusb.o
/home/alex/rtw89-BT/btusb.c: In function ‘btusb_intr_complete’:
/home/alex/rtw89-BT/btusb.c:1029:25: error: implicit declaration of function ‘hci_cmd_sync_cancel’; did you mean ‘hci_cmd_sync’? [-Werror=implicit-function-declaration]
 1029 |                         hci_cmd_sync_cancel(hdev, -err);
      |                         ^~~~~~~~~~~~~~~~~~~
      |                         hci_cmd_sync
/home/alex/rtw89-BT/btusb.c: In function ‘btusb_setup_csr’:
/home/alex/rtw89-BT/btusb.c:2083:25: error: ‘HCI_QUIRK_BROKEN_FILTER_CLEAR_ALL’ undeclared (first use in this function)
 2083 |                 set_bit(HCI_QUIRK_BROKEN_FILTER_CLEAR_ALL, &hdev->quirks);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/rtw89-BT/btusb.c:2083:25: note: each undeclared identifier is reported only once for each function it appears in
/home/alex/rtw89-BT/btusb.c: In function ‘btusb_setup_qca’:
/home/alex/rtw89-BT/btusb.c:3364:17: error: ‘HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN’ undeclared (first use in this function)
 3364 |         set_bit(HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN, &hdev->quirks);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/alex/rtw89-BT/btusb.c: In function ‘btusb_probe’:
/home/alex/rtw89-BT/btusb.c:3734:13: error: ‘struct hci_dev’ has no member named ‘wakeup’
 3734 |         hdev->wakeup = btusb_wakeup;
      |             ^~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:288: /home/alex/rtw89-BT/btusb.o] Error 1
make[1]: *** [Makefile:1871: /home/alex/rtw89-BT] Error 2
make[1]: Leaving directory '/usr/lib/modules/5.15.49-1-MANJARO/build'
make: *** [Makefile:25: all] Error 2

Is it an error from my side?

build errors

whaiy@loader:/opt/repo/rtw89-BT$ uname -a
Linux loader 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux
whaiy@loader:/opt/repo/rtw89-BT$ sudo make
make -C /lib/modules/5.10.0-21-amd64/build M=/opt/repo/rtw89-BT modules
make[1]: 进入目录“/usr/src/linux-headers-5.10.0-21-amd64”
  CC [M]  /opt/repo/rtw89-BT/btusb.o
In file included from /opt/repo/rtw89-BT/btusb.c:26:
/opt/repo/rtw89-BT/btusb.c: In function ‘btusb_recv_bulk_intel’:
/opt/repo/rtw89-BT/btintel.h:183:27: error: implicit declaration of function ‘hci_get_priv’; did you mean ‘hci_get_irk’? [-Werror=implicit-function-declaration]
  183 |  (((struct btintel_data *)hci_get_priv(hdev))->flags)
      |                           ^~~~~~~~~~~~
/opt/repo/rtw89-BT/btintel.h:185:52: note: in expansion of macro ‘btintel_get_flag’
  185 | #define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
      |                                                    ^~~~~~~~~~~~~~~~
/opt/repo/rtw89-BT/btusb.c:2190:6: note: in expansion of macro ‘btintel_test_flag’
 2190 |  if (btintel_test_flag(hdev, INTEL_BOOTLOADER))
      |      ^~~~~~~~~~~~~~~~~
/opt/repo/rtw89-BT/btintel.h:183:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  183 |  (((struct btintel_data *)hci_get_priv(hdev))->flags)
      |    ^
/opt/repo/rtw89-BT/btintel.h:185:52: note: in expansion of macro ‘btintel_get_flag’
  185 | #define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
      |                                                    ^~~~~~~~~~~~~~~~
/opt/repo/rtw89-BT/btusb.c:2190:6: note: in expansion of macro ‘btintel_test_flag’
 2190 |  if (btintel_test_flag(hdev, INTEL_BOOTLOADER))
      |      ^~~~~~~~~~~~~~~~~
/opt/repo/rtw89-BT/btusb.c: In function ‘btusb_recv_event_intel’:
/opt/repo/rtw89-BT/btintel.h:183:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  183 |  (((struct btintel_data *)hci_get_priv(hdev))->flags)
      |    ^
/opt/repo/rtw89-BT/btintel.h:185:52: note: in expansion of macro ‘btintel_get_flag’
  185 | #define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
      |                                                    ^~~~~~~~~~~~~~~~
/opt/repo/rtw89-BT/btusb.c:2198:6: note: in expansion of macro ‘btintel_test_flag’
 2198 |  if (btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
      |      ^~~~~~~~~~~~~~~~~
/opt/repo/rtw89-BT/btusb.c: In function ‘btusb_send_frame_intel’:
/opt/repo/rtw89-BT/btintel.h:183:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  183 |  (((struct btintel_data *)hci_get_priv(hdev))->flags)
      |    ^
/opt/repo/rtw89-BT/btintel.h:185:52: note: in expansion of macro ‘btintel_get_flag’
  185 | #define btintel_test_flag(hdev, nr) test_bit((nr), btintel_get_flag(hdev))
      |                                                    ^~~~~~~~~~~~~~~~
/opt/repo/rtw89-BT/btusb.c:2237:7: note: in expansion of macro ‘btintel_test_flag’
 2237 |   if (btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
      |       ^~~~~~~~~~~~~~~~~
/opt/repo/rtw89-BT/btusb.c: In function ‘btusb_mtk_setup’:
/opt/repo/rtw89-BT/btusb.c:2729:3: error: implicit declaration of function ‘hci_set_aosp_capable’; did you mean ‘lmp_transp_capable’? [-Werror=implicit-function-declaration]
 2729 |   hci_set_aosp_capable(hdev);
      |   ^~~~~~~~~~~~~~~~~~~~
      |   lmp_transp_capable
/opt/repo/rtw89-BT/btusb.c: In function ‘btusb_probe’:
/opt/repo/rtw89-BT/btusb.c:3738:9: error: implicit declaration of function ‘hci_alloc_dev_priv’; did you mean ‘hci_alloc_dev’? [-Werror=implicit-function-declaration]
 3738 |  hdev = hci_alloc_dev_priv(priv_size);
      |         ^~~~~~~~~~~~~~~~~~
      |         hci_alloc_dev
/opt/repo/rtw89-BT/btusb.c:3738:7: warning: assignment to ‘struct hci_dev *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
 3738 |  hdev = hci_alloc_dev_priv(priv_size);
      |       ^
In file included from /opt/repo/rtw89-BT/btusb.c:26:
/opt/repo/rtw89-BT/btintel.h:166:32: warning: initialization of ‘struct btintel_data *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  166 |   struct btintel_data *intel = hci_get_priv((hdev)); \
      |                                ^~~~~~~~~~~~
/opt/repo/rtw89-BT/btusb.c:3830:4: note: in expansion of macro ‘btintel_set_flag’
 3830 |    btintel_set_flag(hdev, INTEL_ROM_LEGACY_NO_WBS_SUPPORT);
      |    ^~~~~~~~~~~~~~~~
/opt/repo/rtw89-BT/btintel.h:166:32: warning: initialization of ‘struct btintel_data *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  166 |   struct btintel_data *intel = hci_get_priv((hdev)); \
      |                                ^~~~~~~~~~~~
/opt/repo/rtw89-BT/btusb.c:3833:4: note: in expansion of macro ‘btintel_set_flag’
 3833 |    btintel_set_flag(hdev, INTEL_BROKEN_INITIAL_NCMD);
      |    ^~~~~~~~~~~~~~~~
/opt/repo/rtw89-BT/btintel.h:166:32: warning: initialization of ‘struct btintel_data *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  166 |   struct btintel_data *intel = hci_get_priv((hdev)); \
      |                                ^~~~~~~~~~~~
/opt/repo/rtw89-BT/btusb.c:3836:4: note: in expansion of macro ‘btintel_set_flag’
 3836 |    btintel_set_flag(hdev, INTEL_BROKEN_SHUTDOWN_LED);
      |    ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [/usr/src/linux-headers-5.10.0-21-common/scripts/Makefile.build:291:/opt/repo/rtw89-BT/btusb.o] 错误 1
make[2]: *** [/usr/src/linux-headers-5.10.0-21-common/Makefile:1861:/opt/repo/rtw89-BT] 错误 2
make[1]: *** [/usr/src/linux-headers-5.10.0-21-common/Makefile:185:__sub-make] 错误 2
make[1]: 离开目录“/usr/src/linux-headers-5.10.0-21-amd64”
make: *** [Makefile:33:all] 错误 2

Installation failed "cannot stat '*.bin'"

When running make sign-install, it fails saying cannot stat '*.bin' no such file or directory, and indeed looking through the files, there are no bin files.

I'm on Linux Mint (Ubuntu/Debian Based) 21, Kernel Version 5.15.0-72-generic

Cant be build on debian

Debian dpkg have no dh-modaliases package, and installing one from ubuntu repo is not possible due to missing zst compression support in dpkg

FYI: 8852AE (Thinkapd P14s Gen2 AMD) Issues and Fixes

Sorry, not a real issue, but this information belongs in this repo:

The 8852AE caused nothing but trouble with BT headsets. The constant buffer underruns when using mSBC made it basically useless, forcing me to buy a USB BT dongle.

Using this driver fixed this issue, although toggling BT on and off completely knocked out the driver, breaking Bluetooth altogether, forcing a reboot (haven't tried unloading, and reloading the module).

Somewhere with Linux 5.18 (5.18.15?, sorry no time to bisect), however, all issues this was resolved(at least when adding iommu=pt to the kernel cmdline).

Sorry for the low quality info, but I really do not have the time to investigate ATM.

8852be archlinux bluetooth see any peripheral

Hello,
My Bluetooth doesn't see any peripheral :

I have an asus x670-P Wifi motherboard, look like it come with rtw8852be, i have installed the driver rtw89
The wifi works
09:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]
Subsystem: AzureWave Device [1a3b:5471]
Kernel driver in use: rtw89_8852be
Kernel modules: rtw_8852be

I am on archlinux-next.

The ble doesn't works, can't see any periphera
gaby@archlinux ~> lsusb
...
Bus 003 Device 002: ID 13d3:3571 IMC Networks Bluetooth Radio

gaby@archlinux ~> bluetoothctl scan on
Discovery started
[CHG] Controller E8:FB:1C:4D:69:F9 Discovering: yes
...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.