bluetooth on Intel AX200 , 201 , 210

HI,

Intel AX201 spec says it supports Blutooth 5.2 standard . but CHip not listed in Freebsd 14.3 Hardware Notes chapter 3.11.

ng_ubt driver loads , ubt0 is listed in DMESG but no /dev/ubt0 appears.


# service bluetooth start ubt0
/etc/rc.d/bluetooth: ERROR: Unable to setup Bluetooth stack for device ubt0

should I expect this to be able to run or give up already ?
 
Bluetooth is usually routed over USB signaling on Wifi modules.

So a good thing to check is the VID/PID present in source tree /sys/dev/usb/usbdevs.

You can find the VID and PID information with usbconfig.
 
I found my Atheros AR9462 bluetooth is not in usbdevs. So adding it is required. I have minimal interest in using custom kernels on my daily driver..

I have bought a AX201 module for testing 80211AC but did not realize it was wrong M.2 keying. E-Key only. I need A+E Key model on Dell 5530.

Which brings me to this point. Just among AX201 there are many varieties. I look at the pins and wonder what in the world while Ebay browsing.
How could same chipset card have different gold fingers on circuit card..... Along with some E-Key and some A+E keyed.
I am guessing this is branding stuff. Lenovo vs Dell vs Panasonic might be different?

Did your machine come with this card or is it a transplant? Is the WiFi side working fine?

The reason I am blathering on about gold fingers and keying is the M.2 socket needs to have usb signaling to it along with PCIe for Bluetooth on Wifi cards.
I never realized USB signaling was needed for Wifi cards. I only assumed Cellular Modems needed USB signaling.
So if you plopped a AX201 into a M.2 socket without USB signaling the wifi radio would work but bluetooth would not.
 
Give usbconfig a whirl. See if you have an Intel Bluetooth device there.

Did you load the Intel Bluetooth Firmware blob too?

I built a OpenWRT router for testing AX201 on FreeBSD. Very interesting stuff.
Still trying to tune channel range for VHT80. Using Atheros QCA9880 with hostapd on APU1.
 

Attachments

  • 18-57-15 OpenWrt - LuCI.jpg
    18-57-15 OpenWrt - LuCI.jpg
    93.1 KB · Views: 164
so
instructions in the Handbook talks about inserting a Bluetooth dongle in a USB port.
This is obviously not the case here as the AX201 M.2. card includes the Bluetooth circuitry and the Bluetooth antenna is pre-installed in the laptop.

this is what I can discover ,

# dmesg -a | grep AX201

iwlwifi0: Detected Intel(R) Wi-Fi 6 AX201 160MHz

# dmesg -a | grep ubt0

ubt0 on uhub1
ubt0: <vendor 0x8087 product 0x0026, class 224/1, rev 2.01/0.02, addr 5> on usbus0

In /usr/src/sys/dev/usb/usbdevs

vendor INTEL2 0x8087 Intel
.
.
product INTEL2 HSP 0x0026 Harrison Peak (22560) Bluetooth Module



# usbconfig
ugen1.1: <XHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.1: <XHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.2: <EM7421 Sierra Wireless, Inc.> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen0.3: <Integrated Camera Chicony Electronics Co., Ltd> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen0.4: <Oz776 1.1 Hub O2 Micro, Inc.> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE (2mA)
ugen0.5: <OZ776 CCID Smartcard Reader O2 Micro, Inc.> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (0mA)
ugen0.6: <AX201 Bluetooth Intel Corp.> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)



# iwmbtfw -I -d ugen0.6
iwmbt_is_supported: found iwmbtfw compatible
main: Firmware has already been downloaded
main: Firmware download is successful!


Looks like the Hardware should work but :

# service bluetooth start ubt0
/etc/rc.d/bluetooth: ERROR: Unable to setup Bluetooth stack for device ubt0
 
You might need to bring onboard a Bluetooth specialist at this point. That's all I have. It is supported by usbdevs so it should work.
 
so
instructions in the Handbook talks about inserting a Bluetooth dongle in a USB port.
This is obviously not the case here as the AX201 M.2. card includes the Bluetooth circuitry and the Bluetooth antenna is pre-installed in the laptop.

this is what I can discover ,

# dmesg -a | grep AX201

iwlwifi0: Detected Intel(R) Wi-Fi 6 AX201 160MHz

# dmesg -a | grep ubt0

ubt0 on uhub1
ubt0: <vendor 0x8087 product 0x0026, class 224/1, rev 2.01/0.02, addr 5> on usbus0

In /usr/src/sys/dev/usb/usbdevs

vendor INTEL2 0x8087 Intel
.
.
product INTEL2 HSP 0x0026 Harrison Peak (22560) Bluetooth Module



# usbconfig
ugen1.1: <XHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.1: <XHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.2: <EM7421 Sierra Wireless, Inc.> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen0.3: <Integrated Camera Chicony Electronics Co., Ltd> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen0.4: <Oz776 1.1 Hub O2 Micro, Inc.> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE (2mA)
ugen0.5: <OZ776 CCID Smartcard Reader O2 Micro, Inc.> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (0mA)
ugen0.6: <AX201 Bluetooth Intel Corp.> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)



# iwmbtfw -I -d ugen0.6
iwmbt_is_supported: found iwmbtfw compatible
main: Firmware has already been downloaded
main: Firmware download is successful!


Looks like the Hardware should work but :

# service bluetooth start ubt0
/etc/rc.d/bluetooth: ERROR: Unable to setup Bluetooth stack for device ubt0
In my case I get "unsupported device" to the last command with a 210.
 
well , yes I got to "unsupported device" as well .
You can see what is happening by doing ;


cd /etc/rc.d

/etc/rc.d # sh -x bluetooth start

( it ends with )


+ eval ' bluetooth_start '
+ bluetooth_start
+ local _file
+ dev=''
+ err 1 'Unsupported device: '
+ exitval=1
+ shift
+ [ -x /usr/bin/logger ]
+ logger 'bluetooth: ERROR: Unsupported device: '
+ echo 'bluetooth: ERROR: Unsupported device: '
bluetooth: ERROR: Unsupported device:
+ exit 1

So the start script does not detect the device correctly ( eg dev= ' ' )
 
If I hardcode dev=ubt0 in the start script it continues but fails to setup bluetooth stack later on.
 
cd /etc/rc.d

/etc/rc.d # sh -x bluetooth start

( it ends with )


+ eval ' bluetooth_start '
+ bluetooth_start
+ local _file
+ dev=''
+ err 1 'Unsupported device: '
+ exitval=1
+ shift
+ [ -x /usr/bin/logger ]
+ logger 'bluetooth: ERROR: Unsupported device: '
+ echo 'bluetooth: ERROR: Unsupported device: '
bluetooth: ERROR: Unsupported device:
+ exit 1

So the start script does not detect the device correctly ( eg dev= ' ' )

  • I have a laptop with AX201 here, so hopefully I can contribute something useful, but FWIW I'm starting with zero bluetooth experience.
  • Did you start hcsecd, like the Handbook suggested?
    https://docs.freebsd.org/en/books/handbook/advanced-networking/#network-bluetooth
  • By running the bluebooth script with sh -x, I think you are on the right track to debugging this.
  • In your script invocation above, it looks like you didn't supply the bluetooth interface name on the bluetooth start command -- probably why the dev shell variable did not get set. I suggest you try:
    Code:
    sh -x /etc/rc.d/bluetooth start ubt0
    and then examine the trace/output.
  • Once or twice, I saw no output when I ran sh -x /etc/rc.d/bluetooth start ubt0, but the first time I ran /etc/rc.d/bluetooth, I got the same error you first reported (note that when I got the error message, it printed only after several seconds of delay). I suspect that some intermediate step only-occasionally fails with an AX201 ubt0.
  • I was eventually able to successfully do hccontrol -n ubt0hci remote_name_request my_BD_ADDR where my_BD_ADDR was the BD_ADDR field returned by hccontrol -n ubt0hci inquiry, so I think there is hope for eventually figuring this out. The device shown by remote_name_request was a remote bluetooth device right next to my laptop that I didn't even know existed (a TV).
Hope this helps..
 
Back
Top