Intel BE201: Getting Bluetooth to work on my Vivobook 14 Flip with Linux

A Blue Tooth

While trying to connect a Bluetooth device to my Asus Vivobook 14 Flip running under Debian Trixie, I noticed that Bluetooth did not work. Here’s an easy way to fix it.

Diagnoses

What kind of device do we have?

$ lspci | grep Network
00:14.3 Network controller: Intel Corporation BE201 320MHz (rev 10)
$ sudo lspci -v -s 00:14.3
00:14.3 Network controller: Intel Corporation BE201 320MHz (rev 10)
	DeviceName: Onboard - Ethernet
	Subsystem: Intel Corporation Device 00e4
	Flags: bus master, fast devsel, latency 0, IRQ 18, IOMMU group 10
	Memory at 3014328000 (64-bit, non-prefetchable) [size=16K]
00:14.3 Network controller: Intel Corporation BE201 320MHz (rev 10)
	DeviceName: Onboard - Ethernet
	Subsystem: Intel Corporation Device 00e4
	Flags: bus master, fast devsel, latency 0, IRQ 18, IOMMU group 10
	Memory at 3014328000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [c8] Power Management version 3
	Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
	Capabilities: [40] Express Root Complex Integrated Endpoint, IntMsgNum 0
	Capabilities: [80] MSI-X: Enable+ Count=32 Masked-
	Capabilities: [100] Latency Tolerance Reporting
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi

(sudo is only necessary to also get the capabilities listed.)

It is a PCIe networking card, supporting both WiFi-7 and Bluetooth. With the Trixie standard kernel (linux-image-6.12.48+deb13-amd64 package), installing /boot/vmlinuz-6.12.48+deb13-amd64 and friends, it only supports WiFi, even though Intel claims to support the BE201 starting at Linux 6.11+.

Listing modules also seems OK at first glance:

$ lsmod | grep 'bt[^r]'
btusb                  81920  0
btrtl                  36864  1 btusb
btintel                73728  1 btusb
btbcm                  24576  1 btusb
btmtk                  32768  1 btusb
bluetooth            1097728  44 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm
usbcore               425984  14 xhci_hcd,usbnet,snd_usb_audio,usbhid,snd_usbmidi_lib,btmtk,usblp,r8153_ecm,uvcvideo,btusb,xhci_pci,cdc_ether,r8152

There is a btintel («Bluetooth Intel») module available and loaded, but just for USB. Our BE201 is connected over PCIe, however, so it probably requires a different driver. And there is one, called btintel_pcie; this looks great.

$ sudo modprobe btintel_pcie

… does work and loads the module. However, it does not find anything to attach to. So this seems to go nowhere. Usage remains at 0.

$ lsmod | grep btintel
btintel_pcie           49152  0
btintel                73728  2 btintel_pcie,btusb
bluetooth            1097728  47 btrtl,btintel_pcie,btmtk,btintel,btbcm,bnep,btusb,rfcomm

Searching the web revealed instructions to compile the kernel, which I tried to avoid.

Solution: Kernel from Debian-Backports

Debian also maintains a list of backports, newer packages than what the stable Trixie distribution supports. The advice is to use it sparingly. But as Bluetooth is an essential requirement for me, I wanted it to work.

So I created a file called /etc/apt/sources.list.d/debian_backports.sources with the following contents:

Types: deb deb-src
URIs: http://deb.debian.org/debian
Suites: trixie-backports
Components: main
Enabled: yes
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Followed by the following commands:

$ sudo apt update
$ sudo apt install -t trixie-backports linux-image-amd64

This instructs the Debian package manager to look for a Linux kernel in the trixie-backports repository. As of this writing, this installed linux-image-6.16.3+deb13-amd64.

A reboot later, I had working Bluetooth! Hooray!

My previous posts to get my Asus Vivobook 14 Flip to run under Linux

,

Let’s stay in touch!

Receive a mail whenever I publish a new post.

About 1-2 Mails per month, no Spam.

Follow me on the Fediverse

Netfuture: The future is networked
Netfuture: The future is networked
@blog@netfuture.ch

The future of networking

210 posts
5 followers

Web apps


Leave a Reply

Only people in my network can comment.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)