Bluetooth doesn't work on new mini-pc

From: Steven Friedrich <freebsdlouisville_at_gmail.com>
Date: Wed, 12 Jun 2024 05:05:51 UTC
I recently bought a GMKtek K8 (zen4 AMD Ryzen 7) with AMD Radeon 780M 
graphics.  It's an $800 mini-pc and I got it for $640 direct from GMKtec.

I installed FreeBSD 14.1-Release.

This message appears on-screen, but not in dmesg
/etc/rc.d/bluetooth: ERROR: Unable to setup Bluetooth stack for device ubt0

I hope someone can fix this soon.

usbconfig -d ugen0.5 dump_all_desc
ugen0.5: <MediaTek Inc. WirelessDevice> at usbus0, cfg=0 md=HOST 
spd=HIGH (480Mbps) pwr=ON (100mA)

   bLength = 0x0012
   bDescriptorType = 0x0001
   bcdUSB = 0x0210
   bDeviceClass = 0x00ef  <Miscellaneous device>
   bDeviceSubClass = 0x0002
   bDeviceProtocol = 0x0001
   bMaxPacketSize0 = 0x0040
   idVendor = 0x0e8d
   idProduct = 0xc616
   bcdDevice = 0x0100
   iManufacturer = 0x0005  <MediaTek Inc.>
   iProduct = 0x0006  <Wireless_Device>
   iSerialNumber = 0x0007  <000000000>
   bNumConfigurations = 0x0001

  Configuration index 0

     bLength = 0x0009
     bDescriptorType = 0x0002
     wTotalLength = 0x00fe
     bNumInterfaces = 0x0003
     bConfigurationValue = 0x0001
     iConfiguration = 0x0008  <Config_01>
     bmAttributes = 0x00e0
     bMaxPower = 0x0032

     Additional Descriptor

     bLength = 0x08
     bDescriptorType = 0x0b
     bDescriptorSubType = 0x00
      RAW dump:
      0x00 | 0x08, 0x0b, 0x00, 0x03, 0xe0, 0x01, 0x01, 0x04


     Interface 0
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0003
       bInterfaceClass = 0x00e0  <Wireless controller>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0001  <BT_ACL_If>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0081  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0010
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 2
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0002  <OUT>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 1
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0001
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00e0  <Wireless controller>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0002  <BT_SCO_If>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0000
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0003  <OUT>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0000
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 1 Alt 1
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0001
       bAlternateSetting = 0x0001
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00e0  <Wireless controller>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0002  <BT_SCO_If>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0009
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0003  <OUT>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0009
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 1 Alt 2
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0001
       bAlternateSetting = 0x0002
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00e0  <Wireless controller>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0002  <BT_SCO_If>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0011
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0003  <OUT>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0011
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 1 Alt 3
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0001
       bAlternateSetting = 0x0003
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00e0  <Wireless controller>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0002  <BT_SCO_If>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0019
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0003  <OUT>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0019
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 1 Alt 4
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0001
       bAlternateSetting = 0x0004
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00e0  <Wireless controller>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0002  <BT_SCO_If>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0021
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0003  <OUT>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0021
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 1 Alt 5
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0001
       bAlternateSetting = 0x0005
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00e0  <Wireless controller>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0002  <BT_SCO_If>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0031
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0003  <OUT>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0031
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 1 Alt 6
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0001
       bAlternateSetting = 0x0006
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00e0  <Wireless controller>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0002  <BT_SCO_If>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x003f
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0003  <OUT>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x003f
         bInterval = 0x0004
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 2
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0002
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00e0  <Wireless controller>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0003  <BT_ISO_If>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x008a  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0040
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x000a  <OUT>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0040
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 2 Alt 1
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0002
       bAlternateSetting = 0x0001
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00e0  <Wireless controller>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0003  <BT_ISO_If>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x008a  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0200
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x000a  <OUT>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0200
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000