ฉันเพิ่งซื้ออะแดปเตอร์ Tp-link bluetooth 5.0 usb (UB500) ฉันได้ตรวจสอบแล้วและชิปของมันคือ Realtek RTL8761B มันใช้งานได้ดีบน Windows 10 แต่ฉันมีปัญหากับ Ubuntu ฉันใช้ Ubuntu 21.10 และเพิ่งอัปเกรดเป็นเคอร์เนลเวอร์ชันเสถียรล่าสุด: 5.14.14.0 ก่อนอัปเกรดฉันลองใช้วิธีแก้ปัญหานี้ แต่ไม่สำเร็จ: https://linuxreviews.org/Realtek_RTL8761B

ฉันได้ลองเกือบทุกอย่างที่ฉันพบทางออนไลน์แล้ว แต่วิธีแก้ปัญหาส่วนใหญ่ใช้ไม่ได้เพราะไม่มีปัญหาที่ชัดเจน: อะแดปเตอร์ดูเหมือนจะติดตั้งอย่างถูกต้องและทำงานอย่างถูกต้อง อย่างไรก็ตาม การสแกนไม่รับอุปกรณ์บลูทูธใดฉันได้ลองใช้ชุดหูฟังสองตัว (ซึ่งฉันรู้ว่าใช้งานได้ปกติ) และโทรศัพท์ของฉัน แต่ไม่ประสบความสำเร็จ เมื่อทำการสแกนบนโทรศัพท์ของฉัน คอมพิวเตอร์ไม่ปรากฏขึ้น แม้ว่าฉันจะตั้งค่าให้มองเห็นได้ก็ตาม

ฉันไม่สามารถเข้าใจได้ว่าปัญหาคืออะไร

    dmesg |grep -i bluetooth
    [    3.596913] Bluetooth: Core ver 2.22
    [    3.596935] NET: Registered PF_BLUETOOTH protocol family
    [    3.596936] Bluetooth: HCI device and connection manager initialized
    [    3.596939] Bluetooth: HCI socket layer initialized
    [    3.596941] Bluetooth: L2CAP socket layer initialized
    [    3.596945] Bluetooth: SCO socket layer initialized
    [   93.519895] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [   93.519899] Bluetooth: BNEP filters: protocol multicast
    [   93.519903] Bluetooth: BNEP socket layer initialized
    [  144.060814] Bluetooth: RFCOMM TTY layer initialized
    [  144.060821] Bluetooth: RFCOMM socket layer initialized
    [  144.060825] Bluetooth: RFCOMM ver 1.11
    hciconfig -a
    hci0:    Type: Primary  Bus: USB
        BD Address: E8:48:B8:C8:20:00  ACL MTU: 1021:6  SCO MTU: 255:12
        UP RUNNING 
        RX bytes:4264 acl:0 sco:0 events:560 errors:0
        TX bytes:9000 acl:0 sco:0 commands:490 errors:0
        Features: 0xff 0xff 0xff 0xfe 0xdb 0xfd 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
        Link policy: RSWITCH HOLD SNIFF PARK 
        Link mode: SLAVE ACCEPT 
        Name: 'gaia-ubuntu-desktop'
        Class: 0x7c0104
        Service Classes: Rendering, Capturing, Object Transfer, Audio, Telephony
        Device Class: Computer, Desktop workstation
        HCI Version: 5.1 (0xa)  Revision: 0xb
        LMP Version: 5.1 (0xa)  Subversion: 0x8761
        Manufacturer: Realtek Semiconductor Corporation (93)
    rfkill list
    0: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no
    lsusb
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 004: ID 046d:0826 Logitech, Inc. HD Webcam C525
    Bus 003 Device 003: ID 04b8:013d Seiko Epson Corp. Epson Perfection V39
    Bus 003 Device 002: ID 0c76:2068 JMTek, LLC. USB MIC-SG01
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 003: ID 2357:0604 TP-Link TP%Link UB500 Adapter
    Bus 001 Device 002: ID 062a:3633 MosArt Semiconductor Corp. Full-Speed Mouse
    Bus 001 Device 004: ID 145f:0176 Trust Isla Keyboard
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
usb-devices | awk '/0604/' RS=
T:  Bus=01 Lev=01 Prnt=01 Port=07 Cnt=03 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2357 ProdID=0604 Rev=02.00
S:  Manufacturer= 
S:  Product=TP%Link UB500 Adapter
S:  SerialNumber=E848B8C82000
C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#=0x1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
answer

ฉันประสบปัญหาเดียวกันกับอะแดปเตอร์ Tp-Link UB500 และฉันสามารถแก้ปัญหานี้ได้ตามที่แนะนำโดย Pilot6 ทำตามขั้นตอนด้านล่าง ขอบคุณ Pilot6

ขั้นตอนที่ 1: ดาวน์โหลดและแตกไฟล์ต้นทางเคอร์เนล Linux

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.tar.xz
tar xpvf linux-5.11.tar.xz

อย่าลืมใช้เวอร์ชันเคอร์เนลตามระบบของคุณ (สามารถตรวจสอบได้ด้วยuname -r )

ขั้นตอนที่ 2: แก้ไข btusb.c

cd linux-5.11/drivers/bluetooth
gedit btusb.c

เพิ่มต่อไปนี้

/* Tp-Link UB500 */
{ USB_DEVICE(0x2357, 0x0604), .driver_info = BTUSB_REALTEK },

ภายใต้ส่วน "คง const struct usb_device_id blacklist_table[]" หลัง /* อุปกรณ์ที่ใช้ซิลิคอนเวฟ */

ขั้นตอนที่ 3: แก้ไข hci_ldisc.c

(อาจไม่จำเป็นสำหรับเคอร์เนลบางรุ่น)

แทนที่

static ssize_t hci_uart_tty_read(struct tty_struct *tty, struct file *file,
                 unsigned char __user *buf, size_t nr)

ถึง

static ssize_t hci_uart_tty_read(struct tty_struct *tty, struct file *file,
                 unsigned char __user *buf, size_t nr,
                 void **cookie, unsigned long offset)

ขั้นตอนที่ 4: รวบรวมโมดูล

make -C /lib/modules/$(uname -r)/build M=$(pwd) clean
cp /usr/src/linux-headers-$(uname -r)/.config ./
cp /usr/src/linux-headers-$(uname -r)/Module.symvers Module.symvers
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
sudo cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth

หากคุณมีการบูตแบบปลอดภัย ก็จำเป็นต้องลงชื่อในโมดูลด้วย โดยค้นหา "วิธีลงชื่อสำหรับ Secure Boot"

ขั้นตอนที่ 5: เปลี่ยนโมดูลเก่า

sudo cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth

ขั้นตอนที่ 6: โหลด btusb . ใหม่

sudo modprobe -r btusb
sudo modprobe -v btusb

มันใช้งานได้สำหรับฉัน!

หากอุปกรณ์คือ จำเป็นต้อง RTL8761Bใช้โปรแกรมแก้ไขbtusb.cสำหรับรหัสเคอร์เนล โดยเพิ่มสิ่งนี้:

 /* Tp-Link UB500 */
{ USB_DEVICE(0x2357, 0x0604), .driver_info = BTUSB_REALTEK },

ปัญหาคือยังไม่มีใครเพิ่มอุปกรณ์นี้ในเคอร์เนล Linux ดูเหมือนว่าจะรองรับชิป แต่ไม่มี Tp-Link id

ฉันขอแนะนำให้รายงานสิ่งนี้ไปยัง Launchpad บูตด้วยเคอร์เนล Ubuntu และรันในเทอร์มินัล

ubuntu-bug linux

ที่จะสร้างรายงานข้อผิดพลาด

ฉันทำตามขั้นตอนในคำตอบ @gauthsree และระบบหยุดตรวจพบอะแดปเตอร์

จากนั้น (หลังจากค้นหาและอ่านเป็นจำนวนมาก) ฉันจึงวิ่งไปlsusb; dmesg | egrep -i 'blue|firm'และได้สิ่งนี้:

RTL: firmware file rtl_bt/rtl8761b_fw.bin not found

ดังนั้นฉันจึงดาวน์โหลดไฟล์และวางใน: /lib/firmware/rtl_bt/

จากนั้นรีบูตระบบและในที่สุดก็ใช้งานได้!

ฉันทำตามบทช่วยสอนนี้: ชิปเซ็ต Bluetooth 5.0 Realtek RTL8761Bเพื่อดาวน์โหลดและคัดลอกเฟิร์มแวร์

ระบบของฉัน:

  • ระบบปฏิบัติการ: Ubuntu 20.04.1
  • เคอร์เนล: 5.11.0-46-generic

หวังว่านี่จะช่วยได้!