Changing the default bluetooth adapter from the built in Realtek card to a USB bluetooth dongle

Is there a way to make the USB dongle the default upon boot-up or to disable the built in realtek bluetooth driver because it interferes with the WiFi speed

System:
  Kernel: 6.15.4-2-cachyos arch: x86_64 bits: 64 compiler: gcc v: 15.1.1
    clocksource: tsc avail: acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-cachyos
    root=UUID=e0869f39-b7a0-4c19-8e3f-ce38d8d65169 rw rootflags=subvol=@
    loglevel=3 sysrq_always_enabled=1 systemd.unified_cgroup_hierarchy=1
    ibt=off
  Desktop: GNOME v: 48.3 tk: GTK v: 3.24.49 wm: gnome-shell
    tools: gsd-screensaver-proxy dm: GDM v: 48.0 Distro: Garuda base: Arch Linux
Machine:
  Type: Laptop System: ASUSTeK product: X540LA v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: X540LA v: 1.0 serial: <superuser required>
    part-nu: ASUS-NotebookSKU uuid: <superuser required>
    UEFI: American Megatrends v: X540LA.303 date: 08/31/2018
Battery:
  ID-1: BAT0 charge: 21.0 Wh (97.7%) condition: 21.5/33.2 Wh (64.9%)
    power: 1.4 W volts: 10.8 min: 10.8 model: ASUSTeK ASUS Battery type: Li-ion
    serial: N/A status: charging cycles: 937
CPU:
  Info: model: Intel Core i3-5005U bits: 64 type: MT MCP arch: Broadwell
    gen: core 5 level: v3 note: check built: 2015-18 process: Intel 14nm
    family: 6 model-id: 0x3D (61) stepping: 4 microcode: 0x2F
  Topology: cpus: 1x dies: 1 clusters: 2 cores: 2 threads: 4 tpc: 2
    smt: enabled cache: L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB
    desc: 2x256 KiB L3: 3 MiB desc: 1x3 MiB
  Speed (MHz): avg: 1896 min/max: 500/1900 scaling: driver: intel_cpufreq
    governor: performance cores: 1: 1896 2: 1896 3: 1896 4: 1896 bogomips: 15963
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities: <filter>
Graphics:
  Device-1: Intel HD Graphics 5500 vendor: ASUSTeK driver: i915 v: kernel
    arch: Gen-8 process: Intel 14nm built: 2014-15 ports: active: DP-1
    off: eDP-1 empty: HDMI-A-1 bus-ID: 00:02.0 chip-ID: 8086:1616
    class-ID: 0300
  Device-2: IMC Networks USB2.0 VGA UVC WebCam driver: uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-5:5 chip-ID: 13d3:5a11
    class-ID: 0e02
  Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8
    compositor: gnome-shell driver: X: loaded: modesetting
    alternate: fbdev,intel,vesa dri: iris gpu: i915 display-ID: 0
  Monitor-1: DP-1 model: Samsung SyncMaster serial: <filter> built: 2009
    res: 1600x900 dpi: 92 gamma: 1.2 size: 443x249mm (17.44x9.8")
    diag: 508mm (20") ratio: 16:9 modes: max: 1600x900 min: 720x400
  Monitor-2: eDP-1 model: ChiMei InnoLux 0x15dc built: 2015 res: 1366x768
    dpi: 101 gamma: 1.2 size: 344x193mm (13.54x7.6") diag: 394mm (15.5")
    ratio: 16:9 modes: 1366x768
  API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris
    device: 1 drv: swrast gbm: drv: iris surfaceless: drv: iris wayland:
    drv: iris x11: drv: iris
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 25.1.4-arch1.2
    glx-v: 1.4 direct-render: yes renderer: Mesa Intel HD Graphics 5500 (BDW
    GT2) device-ID: 8086:1616 memory: 7.25 GiB unified: yes display-ID: :0.0
  API: Vulkan v: 1.4.313 layers: 5 device: 0 type: integrated-gpu name: Intel
    HD Graphics 5500 (BDW GT2) driver: mesa intel v: 25.1.4-arch1.2
    device-ID: 8086:1616 surfaces: N/A
  Info: Tools: api: eglinfo, glxinfo, vulkaninfo gpu: gputop,
    intel_gpu_top, lsgpu x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: Intel Broadwell-U Audio vendor: ASUSTeK driver: snd_hda_intel
    v: kernel bus-ID: 00:03.0 chip-ID: 8086:160c class-ID: 0403
  Device-2: Intel Wildcat Point-LP High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 chip-ID: 8086:9ca0
    class-ID: 0403
  API: ALSA v: k6.15.4-2-cachyos status: kernel-api tools: N/A
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: PipeWire v: 1.4.6 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Realtek RTL810xE PCI Express Fast Ethernet vendor: ASUSTeK
    driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: 4000
    bus-ID: 02:00.2 chip-ID: 10ec:8136 class-ID: 0200
  IF: enp2s0f2 state: down mac: <filter>
  Device-2: Realtek RTL8723BE PCIe Wireless Network Adapter vendor: Lite-On
    driver: rtl8723be v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: 3000
    bus-ID: 03:00.0 chip-ID: 10ec:b723 class-ID: 0280
  IF: wlan0 state: up mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Bluetooth:
  Device-1: Cambridge Silicon Radio Bluetooth Dongle (HCI mode) driver: btusb
    v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-1:7
    chip-ID: 0a12:0001 class-ID: e001
  Report: btmgmt ID: hci0 rfk-id: 4 state: up address: N/A
  Device-2: Realtek Bluetooth Radio driver: btusb v: 0.8 type: USB rev: 2.1
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-4:4 chip-ID: 0bda:b721
    class-ID: e001 serial: <filter>
  Report: ID: hci1 rfk-id: 1 state: up address: N/A
Drives:
  Local Storage: total: 704.24 GiB used: 38.87 GiB (5.5%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/sda maj-min: 8:0 vendor: TeamGroup model: T253256GB
    size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 227N scheme: GPT
  ID-2: /dev/sdb maj-min: 8:16 vendor: Western Digital
    model: WD5000LPCX-80VHAT1 size: 465.76 GiB block-size: physical: 4096 B
    logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 5400 serial: <filter>
    fw-rev: 1A02 scheme: GPT
Partition:
  ID-1: / raw-size: 15.18 GiB size: 15.18 GiB (100.00%)
    used: 10.25 GiB (67.5%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
  ID-2: /home raw-size: 19.53 GiB size: 19.53 GiB (100.00%)
    used: 9.42 GiB (48.2%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
  ID-3: /var/log raw-size: 15.18 GiB size: 15.18 GiB (100.00%)
    used: 10.25 GiB (67.5%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
  ID-4: /var/tmp raw-size: 15.18 GiB size: 15.18 GiB (100.00%)
    used: 10.25 GiB (67.5%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: zram size: 7.43 GiB used: 0 KiB (0.0%) priority: 100
    comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 65.0 C pch: 59.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 8 GiB note: est. available: 7.43 GiB used: 2.25 GiB (30.3%)
  Processes: 293 Power: uptime: 2m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 2.95 GiB services: gsd-power,
    power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
    tool: systemctl
  Packages: 1174 pm: pacman pkgs: 1127 libs: 277 tools: gnome-software,yay
    pm: flatpak pkgs: 47 Compilers: gcc: 15.1.1 Shell: garuda-inxi default: fish
    v: 4.0.2 running-in: blackbox inxi: 3.3.38
Garuda (2.7.3-1):
  System install date:     2024-09-21
  Last full system update: 2025-07-02
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut
  Windows dual boot:       No/Undetected
  Failed units:            lactd.service 

You can Disable it in the Asus BIOS Settings. I can disable it and even my wifi too.

you also can update the bios if the function is missing:

 date: 08/31/2018

you can uninstall Lactd if you dont need it . (Rani) I dont know if its support intel gpu. i use for my amd.

  Failed units:            lactd.service 
4 Likes

I suspect you can do this via blacklisting the module using dracut. You’ll need to add a file to /etc/dracut.conf.d/[filename].conf replace [filename].conf with the name of the file, for example bluetooth-blacklist.conf

In this file, you’ll want to add this line:
omit_dracutmodules+=" [MODULE_NAME] "

Please note that there is a space after the open quote and a space before the close quote - this is important and intentional. You will need to replace [MODULE_NAME] with the name of the module that’s being used for your internal BT. You can see all the modules that have been loaded with the kernel by issuing the lsmod command in terminal, and you can look for the name in the first column that belongs to your internal BT chip.

Hopefully someone more knowledgeable than I can provide more targeted instructions.

Good luck!

Edit: Oops! Forgot to mention, after you’ve saved that file, you’ll need to run sudo dracut-rebuild and then sudo update-grub

1 Like

how do I update the bios on linux

You’ll have to refer to your motherboard manufacturer’s instructions. @Duke187 posted a link in this comment: Changing the default bluetooth adapter from the built in Realtek card to a USB bluetooth dongle - #2 by Duke187 to the ASUS website for your model. There’s likely a firmware file you can download and save, then when you boot into your BIOS/UEFI, you’ll find an option to upgrade.

1 Like

Would doing that also kill the WiFi module ? because they share the same name

Oh…mmmmaaaaayyyybbbbeeeee yeah… If you can disable BT in your BIOS, that may actually solve the problem.

1 Like

I’ll check the bios out then . The bios had no option to disable the bluetooth driver

Sorry, I’ve now reached the limits of my knowledge/understanding. You may have to add a wifi dongle as well.

Edit: perhaps there’s something here that could be helpful: https://www.reddit.com/r/linuxquestions/comments/1jvfupg/any_way_to_disable_just_the_wifi_part_of_a/

It is pretty common on many laptops that the bios no longer has an option to disable the internal Bluetooth.

If it’s not possible to disable BT in your laptop’s bios there are other methods to accomplish this. The easiest method is to write a udev rule.

You should hopefully be able to disable your internal bluetooth device with a udev rule.

Create a udev rule with the proper name (in the required location), with the following command:

sudo touch /etc/udev/rules.d/81-bluetooth-hci.rules

Open the newly created /etc/udev/rules.d/81-bluetooth-hci.rules file with your favorite text editor.

In your text editor, paste the contents of the line below into the udev rule:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="b721", ATTR{authorized}="0"

Save the changes and exit the text editor, and then reboot.

Hope that helps if your bios cannot disable your internal Bluetooth.

3 Likes

AI had beaten you to that suggestion , I did it and it worked thank you guys .

You need to be very careful relying on AI’s for technical support. In this case your AI guidance was accurate, but I can assure you that AI’s are often very wrong with their tech support answers.

AI’s are simply data aggregators and much of the data they have scraped is badly outdated. Some AI advice could badly mess up your system if you do not realize the answer is outdated/inappropriate and potentially damaging.

Why bother requesting tech support here if you intend to follow AI advice. I could have given you a udev rule or a service I’d written years ago to solve this issue as soon as you created your help request. I generally track all network help requests, but you did not post to the networking sub-forum (I relocated your post). Otherwise you would likely have had your question answered shortly after posting.

Frankly that remark while I’m sure you never intended it that way, was more than a little insulting to me. I took the time and effort to write up a detailed solution to help you, and now frankly I’m left wondering why I even bothered.

We generally discourage posting any AI content on the Garuda forum.

3 Likes

I’m sorry i didn’t intend to insult you , I meant to say that I found the same solution with AI before checking your reply which was excellent . I deeply appreciate your help .

3 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.