Score:8

การสแกนบลูทูธไม่พบอุปกรณ์ใดๆ บน Ubuntu 21.10

ธง us

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

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

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

    dmesg |grep -i บลูทูธ
    [ 3.596913] บลูทูธ: คอร์เวอร์ชั่น 2.22
    [ 3.596935] NET: ตระกูลโปรโตคอล PF_BLUETOOTH ที่ลงทะเบียนแล้ว
    [ 3.596936] Bluetooth: อุปกรณ์ HCI และตัวจัดการการเชื่อมต่อเริ่มต้นแล้ว
    [ 3.596939] Bluetooth: เลเยอร์ซ็อกเก็ต HCI เริ่มต้นแล้ว
    [ 3.596941] Bluetooth: เลเยอร์ซ็อกเก็ต L2CAP เริ่มต้นแล้ว
    [ 3.596945] Bluetooth: เริ่มต้นเลเยอร์ซ็อกเก็ต SCO
    [ 93.519895] บลูทูธ: BNEP (Ethernet Emulation) เวอร์ชัน 1.3
    [ 93.519899] บลูทูธ: ฟิลเตอร์ BNEP: โปรโตคอลมัลติคาสต์
    [ 93.519903] Bluetooth: เลเยอร์ซ็อกเก็ต BNEP เริ่มต้นแล้ว
    [ 144.060814] Bluetooth: เลเยอร์ RFCOMM TTY เริ่มต้นแล้ว
    [ 144.060821] Bluetooth: เลเยอร์ซ็อกเก็ต RFCOMM เริ่มต้นแล้ว
    [144.060825] บลูทูธ: RFCOMM เวอร์ชั่น 1.11
    hciconfig -a
    hci0: ประเภท: บัสหลัก: USB
        ที่อยู่ BD: E8:48:B8:C8:20:00 ACL MTU: 1021:6 SCO MTU: 255:12
        วิ่งขึ้น 
        RX ไบต์:4264 acl:0 sco:0 เหตุการณ์:560 ข้อผิดพลาด:0
        TX ไบต์:9000 acl:0 sco:0 คำสั่ง:490 ข้อผิดพลาด:0
        คุณสมบัติ: 0xff 0xff 0xff 0xfe 0xdb 0xfd 0x7b 0x87
        ประเภทแพ็คเก็ต: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
        นโยบายการเชื่อมโยง: RSWITCH HOLD SNIFF PARK 
        โหมดลิงก์: ยอมรับทาส 
        ชื่อ: 'gaia-ubuntu-desktop'
        คลาส: 0x7c0104
        คลาสบริการ: การเรนเดอร์ การจับภาพ การถ่ายโอนวัตถุ เสียง โทรศัพท์
        คลาสอุปกรณ์: คอมพิวเตอร์ เวิร์กสเตชันเดสก์ท็อป
        เวอร์ชัน HCI: 5.1 (0xa) การแก้ไข: 0xb
        เวอร์ชัน LMP: 5.1 (0xa) การโค่นล้ม: 0x8761
        ผู้ผลิต: Realtek Semiconductor Corporation (93)
    รายการ rfkill
    0:hci0:บลูทูธ
        ซอฟต์บล็อค: ไม่
        ฮาร์ดบล็อก: ไม่
    แย่แล้ว
    บัส 004 อุปกรณ์ 001: ID 1d6b:0003 รูทฮับ Linux Foundation 3.0
    อุปกรณ์บัส 003 004: ID 046d:0826 Logitech, Inc. HD Webcam C525
    Bus 003 Device 003: ID 04b8:013d Seiko Epson Corp. Epson Perfection V39
    รถบัส 003 อุปกรณ์ 002: ID 0c76:2068 JMTek, LLC. USB ไมค์-SG01
    อุปกรณ์บัส 003 001: ID 1d6b:0002 รูตฮับ Linux Foundation 2.0
    อุปกรณ์บัส 002 001: ID 1d6b:0003 รูตฮับ Linux Foundation 3.0
    บัส 001 อุปกรณ์ 003: ID 2357:0604 อะแดปเตอร์ TP-Link TP%Link UB500
    Bus 001 Device 002: ID 062a:3633 MosArt Semiconductor Corp. เมาส์ความเร็วสูง
    บัส 001 อุปกรณ์ 004: ID 145f:0176 Trust Isla Keyboard
    อุปกรณ์บัส 001 001: ID 1d6b:0002 รูทฮับ Linux Foundation 2.0
อุปกรณ์ usb | awk '/0604/' RS=
T: รถบัส=01 Lev=01 Prnt=01 พอร์ต=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: ผู้ขาย=2357 ProdID=0604 Rev=02.00
S: ผู้ผลิต= 
S: ผลิตภัณฑ์=อะแดปเตอร์ TP%Link UB500
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
Pilot6 avatar
cn flag
`lsusb` แสดงอะไร
us flag
ฉันได้แก้ไขโพสต์ต้นฉบับและรวม lsusb แล้ว
Pilot6 avatar
cn flag
ไม่รองรับโดยเคอร์เนลที่มีอยู่ โปรดเพิ่มผลลัพธ์ของ `usb-devices | awk '/0604/' RS=`
us flag
แก้ไขอีกครั้ง ขอบคุณ btw
Pilot6 avatar
cn flag
ยากที่จะบอกว่าชิปคืออะไร? ใครบอกคุณว่ามันคือ RTL8761B? หากเป็นชิปตัวนั้นจริงๆ เคอร์เนลแพตช์ธรรมดาจะแก้ไขได้
Someone avatar
my flag
ได้โปรดให้ผลลัพธ์ของ sudo lshw ,
us flag
ฉัน googled ID และพบที่นี่: https://usb-ids.gowdy.us/read/UD/2357/0604 @Pilot6
Pilot6 avatar
cn flag
ตกลง. จากนั้นควรเพิ่มใน `btusb.c` ฉันขอแนะนำให้ส่งจุดบกพร่องไปที่ Launchpad แต่ก็เป็นไปได้ที่จะสร้างโมดูล dkms ขนาดเล็กด้วยรหัส
us flag
@AkshajSingla มันยาวเกินไปที่จะโพสต์
us flag
@Pilot6 ดี! คุณช่วยฉันด้วยได้ไหม ฉันไม่รู้ว่าจะทำอย่างไร
Pilot6 avatar
cn flag
ใครก็ได้ช่วยที คุณสามารถสร้างเคอร์เนลด้วยแพตช์ หรือสร้างโมดูล dkms หากอุปกรณ์ใช้งานได้ ควรส่งแพตช์อัปสตรีมเพื่อเพิ่มไปยังรหัสการฉีดยา
Score:6
ธง bt

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

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

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.tar.xz
tar xpvf ลินุกซ์-5.11.tar.xz

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

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

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

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

/* ทีพีลิงค์ UB500 */
{ USB_DEVICE(0x2357, 0x0604), .driver_info = BTUSB_REALTEK },

ภายใต้ส่วน "static const struct usb_device_id blacklist_table[]" หลังจาก /* อุปกรณ์ที่ใช้ Silicon Wave */.

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

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

แทนที่

คง ssize_t hci_uart_tty_read (struct tty_struct * tty, ไฟล์ struct * ไฟล์,
                 ถ่านที่ไม่ได้ลงนาม __user * buf, size_t nr)

ถึง

คง ssize_t hci_uart_tty_read (struct tty_struct * tty, ไฟล์ struct * ไฟล์,
                 ถ่านที่ไม่ได้ลงนาม __user * buf, size_t nr,
                 เป็นโมฆะ **คุกกี้ offset ยาวที่ไม่ได้ลงนาม)

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

ทำให้ -C /lib/modules/$(uname -r)/build M=$(pwd) สะอาด
cp /usr/src/linux-headers-$(uname -r)/.config ./
cp /usr/src/linux-headers-$(uname -r)/Module.symvers Module.symvers
สร้างโมดูล -C /lib/modules/$(uname -r)/build M=$(pwd)
sudo cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth

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

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

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

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

sudo modprobe -r btusb
sudo modprobe -v btusb

มันได้ผลสำหรับฉัน!

us flag
ขอบคุณมาก! แค่คำถาม: ฉันควรเพิ่มบรรทัดเหล่านี้ที่จุดใดของ btusb.c เพียงเพื่อให้แน่ใจว่าฉันจะไม่ทำผิดพลาดอีก
bt flag
ฉันได้เพิ่มในส่วน "static const struct usb_device_id blacklist_table[]" หลังจาก /* อุปกรณ์ที่ใช้ Silicon Wave */.
us flag
มันได้ผล! ขอบคุณมาก!
Pilot6 avatar
cn flag
คุณช่วยอธิบาย `void **cookie, unsigned long offset` ได้ไหม ดูเหมือนว่า "แฮ็คสกปรกสำหรับฉัน" เราจำเป็นต้องอัปสตรีมแพตช์หากต้องการใน Linux
Pilot6 avatar
cn flag
เพื่อเป็นการแก้ปัญหาชั่วคราว คุณควรสร้างโมดูล dkms `btusb` เพื่อให้ทำงานร่วมกับการอัปเดตเคอร์เนลได้ มันค่อนข้างง่าย
de flag
หืม ดูเหมือนจะไม่ทำงานสำหรับฉันบน Ubuntu 21.04
br flag
ฉันคิดว่าสิ่งนี้ใช้ไม่ได้กับ Ubuntu 20.04
Thomas Kimber avatar
cn flag
สิ่งนี้น่าจะได้รับการแก้ไขในแพทช์ Ubuntu ที่กำลังจะมาถึงเร็วแค่ไหน?
us flag
Ash
สิ่งนี้ไม่ได้แก้ปัญหาของฉัน แต่ไม่ใช่ทุกวันที่คุณจะได้เรียนรู้วิธีแก้ไขเคอร์เนล - ขอบคุณ มันยอดเยี่ยมมาก!
We are Borg avatar
cn flag
ไม่ทำงาน รับ /hci_vhci.c:181:7: ข้อผิดพลาด: âHCI_ISODATA_PKTâ ไม่ได้ประกาศขณะรวบรวม
Score:2
ธง in

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

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

RTL: ไม่พบไฟล์เฟิร์มแวร์ rtl_bt/rtl8761b_fw.bin

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

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

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

ระบบของฉัน:

  • ระบบปฏิบัติการ: อูบุนตู 20.04.1
  • เคอร์เนล: 5.11.0-46-ทั่วไป

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

SRG avatar
jp flag
SRG
ขอบคุณมาก Laion! นี่เป็นขั้นตอนสุดท้ายที่ขาดหายไปจากคำตอบของ @ gauthsree ฉันยังต้องตรวจสอบความถูกต้องของแป้นพิมพ์และทำตามคำแนะนำนี้เพื่อแก้ปัญหา: https://itectec.com/ubuntu/ubuntu-pairing-bluetooth-keyboard-that-needs-code-failed-to-pair-org-bluez-error-authenticationfailed/
Alexander Soare avatar
in flag
ช่วยชีวิต! สิ่งนี้ใช้ได้กับฉันใน Ubuntu 20.04
Score:2
ธง cn

หากเป็นอุปกรณ์ RTL8761Bแล้วแพทช์ไป btusb.c ต้องการรหัสเคอร์เนล เพิ่มสิ่งนี้:

 /* ทีพีลิงค์ UB500 */
{ USB_DEVICE(0x2357, 0x0604), .driver_info = BTUSB_REALTEK },

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

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

ลินุกซ์ข้อผิดพลาดอูบุนตู

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

us flag
เอ้ย ฉันไม่รู้ว่าต้องทำยังไง ฉันได้เพิ่มบรรทัดเหล่านั้นใน btusb.c แล้ว แต่ฉันไม่รู้ว่าต้องทำอย่างไรหลังจากนั้น ฉันจะรายงานต่อไป ขอขอบคุณ
Pilot6 avatar
cn flag
หลังจากนั้นคุณต้องสร้างเคอร์เนล ติดตั้งและทดสอบว่า BT ใช้งานได้หรือไม่
us flag
ฉันแค่ไม่เคยทำมาก่อน
us flag
มันยังใช้งานไม่ได้ :/
Pilot6 avatar
cn flag
คุณสร้างเคอร์เนลที่กำหนดเองแล้วหรือยัง
us flag
จริง ๆ แล้วฉันไม่แน่ใจ 100% ว่าฉันทำอะไรไป แต่เห็นได้ชัดว่ามันไม่ได้ผล และฉันหมายถึง uname -r ไม่แสดงเวอร์ชันเคอร์เนลที่ฉันคิดว่ากำลังติดตั้ง แต่เป็นเวอร์ชันที่ฉันมีมาก่อน ฉันค่อนข้างหลงทาง ฉันอาจจะแค่รายงานจุดบกพร่อง
Pilot6 avatar
cn flag
กรุณาวางลิงค์จาก Launchpad บางทีฉันอาจจะสร้างโมดูลถ้ามีเวลา BTW คุณสามารถสร้างได้เฉพาะโมดูล `btusb`
us flag
นี่มันแย่มากเนื่องจาก ubuntu-bug ดูเหมือนจะไม่ทำงาน https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1948502 btw ขอบคุณสำหรับเวลาของคุณ
vn flag
ดูเหมือนว่ามีการส่งแพตช์ที่คล้ายกันไปที่: https://www.spinics.net/lists/linux-bluetooth/msg94476.html
vn flag
... ซึ่งควรลงจอดในเคอร์เนล linux 5.16 ตาม: https://bbs.archlinux.org/viewtopic.php?pid=2003276#p2003276
Score:0
ธง za

นี่คือสคริปต์ที่ทำทุกขั้นตอนของ Aeolun

นอกจากนี้ยังมีการดาวน์โหลดและคัดลอกไดรเวอร์ดังที่ Laion อธิบายไว้

(ฉันเพิ่งเรียนรู้ที่จะทุบตีสคริปต์และฉันลองทำสิ่งนี้และฉันก็แบ่งปัน)

#!/bin/bash

# การเริ่มต้น

FIX_UB_500_BT_Stick () {
echo -e "สคริปต์นี้มีวัตถุประสงค์เพื่อแก้ไข BT Stick UB 500 ที่ไม่ทำงานโดย TP-Link"
เสียงสะท้อน -e ""
echo -e "ตามที่อธิบายไว้ใน https://askubuntu.com/questions/1370663/bluetooth-scan-doesnt-detect-any-device-on-ubuntu-21-10"
เสียงสะท้อน -e ""
echo -e "สคริปต์นี้จะแนะนำคุณตลอดขั้นตอนที่จำเป็น อย่างไรก็ตาม โปรดระวัง เพราะอาจทำให้ระบบของคุณเสียหาย หรืออย่างน้อยก็ทำลายบลูทูธของคุณ"
เสียงสะท้อน -e ""
echo -e "\033[33mStep 1: ดาวน์โหลดและแตกไฟล์ซอร์สเคอร์เนล Linux"
เสียงสะท้อน -e "\033[0m"
เสียงสะท้อน -e ""
echo -e "เวอร์ชันเคอร์เนลของคุณ: "
รุ่น = $ (uname -r)
สะท้อน $ รุ่น
echo -e "ถ้าไม่ใช่ 5.13 ให้เปลี่ยนสคริปต์แล้วรีสตาร์ท! (แค่ค้นหาและแทนที่ 5.13 ด้วยเวอร์ชันของคุณ ตราบใดที่ยังเป็น 5.x)"
อ่าน -n 1 -p "คุณต้องการดำเนินการต่อหรือไม่ [y/n]" เริ่ม
  ถ้า [ "$start" = "y" ] ; แล้ว
    ซีดี /โฮม/สูงสุด/
    mkdir FIX_UB_500_BT_Stick
    ซีดี FIX_UB_500_BT_Stick
    wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.13.tar.xz
    tar xpvf ลินุกซ์-5.13.tar.xz
    echo -e "\033[33mดาวน์โหลดตำแหน่งและไฟล์:"
    เสียงสะท้อน -e "\033[0m"
    รหัสผ่าน
    ล
    echo -e "\033[33mตำแหน่งของไฟล์ที่จะเปลี่ยน:"
    เสียงสะท้อน -e "\033[0m"
    cd linux-5.13/drivers/bluetooth
    รหัสผ่าน
    echo -e "\033[33mStep 2: แก้ไข btusb.c"
    เสียงสะท้อน -e "\033[31m"
    echo "เพิ่ม:"
    เสียงสะท้อน -e "\033[0m"
    echo "/* Tp-Link UB500 */"
    echo "{ USB_DEVICE(0x2357, 0x0604), .driver_info = BTUSB_REALTEK },"
    เสียงสะท้อน -e "\033[33m"
    echo "ในหัวข้อ"
    เสียงสะท้อน -e "\033[0m"
    echo "คงที่ const struct usb_device_id blacklist_table []"
    เสียงสะท้อน -e "\033[33m"
    เสียงสะท้อน "หลังจาก"
    เสียงสะท้อน -e "\033[0m"
    echo "/* อุปกรณ์ที่ใช้ Silicon Wave */"
    เสียงสะท้อน -e "\033[33m"
    echo "ใน btusb.c"
    เสียงก้อง ""
    echo "ควรมีลักษณะดังนี้:"
    เสียงสะท้อน -e "\033[0m"
    echo "/* อุปกรณ์ที่ใช้ Silicon Wave */"
    echo "{ USB_DEVICE(0x0c10, 0x0000), .driver_info = BTUSB_SWAVE },"
    echo "/* Tp-Link UB500 */"
    echo "{ USB_DEVICE(0x2357, 0x0604), .driver_info = BTUSB_REALTEK }, "
    echo "{ }/* รายการสิ้นสุด */"
    เสียงก้อง ""
    echo -e "\033[31m ปลอดภัยและปิด KWrite"
    นอน5
    kwrite btusb.ค
    อ่าน -n 1 -p "คุณเปลี่ยนไฟล์และต้องการดำเนินการต่อหรือไม่ [y/n]" filechange1
    ถ้า [ "$filechange1" = "y" ]; แล้ว
      เสียงสะท้อน -e "\033[33m"
      echo "ตกลง กำลังดำเนินการต่อ"
      เสียงสะท้อน -e "\033[0m"
    elif [ "$filechange1" = "n" ];แล้ว
      sudo rm -r /home/max/FIX_UB_500_BT_Stick
      ทางออก
    อื่น
      echo -e "\033[31mคุณเปลี่ยนไฟล์และต้องการทำต่อหรือไม่ [y/n]; กด ctrl+c เพื่อยกเลิก"
      เสียงสะท้อน -e "\033[0m"
      อ่าน -n 1
    ไฟ
    echo -e "\033[33mStep 3: แก้ไข hci_ldisc.c"
    เสียงสะท้อน -e "\033[0m"
    เสียงสะท้อน -e ""
    ไฟล์ = "hci_ldisc.c"
    ถ้า grep -q "void **cookie, offset ยาวที่ไม่ได้ลงนาม)" "$File"; แล้ว
      echo -e "\033[ไม่จำเป็น 33mStep ไฟล์ถูกต้องแล้ว"
      เสียงสะท้อน -e "\033[0m"
    อื่น
      echo -e "\033[33mChange:"
      เสียงสะท้อน -e "\033[0m"
      echo "คงที่ ssize_t hci_uart_tty_read (struct tty_struct *tty, ไฟล์ struct *ไฟล์"
      echo " ถ่านที่ไม่ได้ลงนาม __user * buf, size_t nr)"
      เสียงก้อง ""
      เสียงสะท้อน -e "\033[33นาที"
      เสียงสะท้อน -e "\033[0m"
      echo "คงที่ ssize_t hci_uart_tty_read (struct tty_struct *tty, ไฟล์ struct *ไฟล์"
      echo " ถ่าน __user * buf, size_t nr, "
      echo " void **cookie, offset ยาวที่ไม่ได้ลงนาม) "
      เสียงสะท้อน -e "\033[33m"
      echo "ใน hci_ldisc.c"
      เสียงก้อง ""
      echo "ปลอดภัยและปิด KWrite (ขั้นตอนนี้อาจไม่จำเป็นสำหรับบางเวอร์ชั่น)"
      นอน5
      kwrite hci_ldisc.c
      อ่าน -n 1 -p "คุณเปลี่ยนไฟล์และต้องการดำเนินการต่อหรือไม่ [y/n]" filechange2
      ถ้า [ "$filechange2" = "y" ]; แล้ว
        เสียงสะท้อน -e "\033[33m"
        echo "ตกลง กำลังดำเนินการต่อ"
        เสียงสะท้อน -e "\033[0m"
      elif [ "$filechange2" = "n" ];แล้ว
        sudo rm -r /home/max/FIX_UB_500_BT_Stick
        ทางออก
      อื่น
      echo -e "\033[31mคุณเปลี่ยนไฟล์และต้องการทำต่อหรือไม่ [y/n];"
        อ่าน -n 1
      ไฟ
    ไฟ
    echo -e "\033[33mStep 4: คอมไพล์โมดูล"
    เสียงสะท้อน -e "\033[0m"
    ทำให้ -C /lib/modules/$(uname -r)/build M=$(pwd) สะอาด
    echo -e "\033[33mทำ 1 เสร็จแล้ว"
    เสียงสะท้อน -e "\033[0m"
    cp /usr/src/linux-headers-$(uname -r)/.config ./
    cp /usr/src/linux-headers-$(uname -r)/Module.symvers Module.symvers
    สร้างโมดูล -C /lib/modules/$(uname -r)/build M=$(pwd)
    echo -e "\033[33mทำ 2 เสร็จแล้ว"
    echo -e "\033[33mStep 5: แทนที่โมดูลเก่า"
      เสียงสะท้อน -e "\033[0m"
    sudo cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth
    echo -e "\033[33mคัดลอกไปยังเคอร์เนลปัจจุบัน"
    เสียงสะท้อน -e ""
    echo -e "\033[33mStep 6: โหลด btusb ใหม่"
    เสียงสะท้อน -e "\033[0m"
    sudo modprobe -r btusb
    sudo modprobe -v btusb
    echo -e "\033[33mModprobe เสร็จแล้ว"
    เสียงสะท้อน -e "\033[0m"


    ถ้า [[ ! -f "/lib/firmware/rtl_bt/rtl8761b_fw.bin" ]]
    แล้ว
        echo -e "\033[33mStep 7: ดาวน์โหลดเฟิร์มแวร์สำหรับ UB500 จาก Realteks GIT"
        อ่าน -n 1 -p "FW สำหรับ UB500 BT-Dongle ไม่มีอยู่ใน /lib/firmware/rtl_bt//n คุณต้องการดาวน์โหลดไฟล์จาก Realteks Git และคัดลอกไปยังระบบของคุณหรือไม่? [y/n]" FW_Install
          ถ้า [ "$FW_Install" = "y" ]; แล้ว
            เสียงสะท้อน -e "\033[33m"
            echo "ตกลง กำลังดำเนินการต่อ"
            เสียงสะท้อน -e "\033[0m"
            cd /home/max/FIX_UB_500_BT_Stick
            mkdir FW
            ซีดี เอฟดับบลิว
            wget https://github.com/Realtek-OpenSource/android_hardware_realtek/raw/rtk1395/bt/rtkbt/Firmware/BT/rtl8761b_fw
            sudo cp /home/max/FIX_UB_500_BT_Stick/FW/rtl8761b_fw /lib/firmware/rtl_bt/rtl8761b_fw.bin
            ถ้า [[ -f "/lib/firmware/rtl_bt/rtl8761b_fw.bin" ]]; แล้ว
              echo -e "\033[คัดลอก 33mFW สำเร็จ รีบูตและลองใช้แท่งบลูทูธของคุณ มันควรจะใช้งานได้ทันที"
            อื่น
              echo -e "\033[33mมีบางอย่างผิดพลาด คุณจะต้องดาวน์โหลด FW ด้วยตัวคุณเองและวางไว้ในโฟลเดอร์ /lib/firmware/rtl_bt/ ด้วยชื่อ rtl8761b_fw.bin /n คุณจะพบไฟล์ใน Repo นี้: https://github.com/Realtek-OpenSource/android_hardware_realtek/raw/rtk1395/bt/rtkbt/Firmware/BT/rtl8761b_config /n หากคุณวางไฟล์ไว้ที่นั่น ให้รีบูตและ UB500 ของคุณควรใช้งานได้ทันที"
            ไฟ
          elif [ "$fFW_Install" = "n" ];จากนั้น
            sudo rm -r /home/max/FIX_UB_500_BT_Stick
            echo -e "\033[33mFW ไม่ได้ดาวน์โหลด คุณจะต้องดาวน์โหลด FW ด้วยตัวคุณเองและวางไว้ในโฟลเดอร์ /lib/firmware/rtl_bt/ ด้วยชื่อ rtl8761b_fw.bin /n คุณจะพบไฟล์ใน Repo นี้ : https://github.com/Realtek-OpenSource/android_hardware_realtek/raw/rtk1395/bt/rtkbt/Firmware/BT/rtl8761b_config /n หากคุณวางไฟล์ไว้ที่นั่น ให้รีบูตและ UB500 ของคุณควรใช้งานได้ทันที"
            เสียงสะท้อน -e "\033[0m"
            ทางออก
          อื่น
          echo -e "\033[31mดาวน์โหลด FW? [y/n];"
            อ่าน -n 1
          ไฟ
    อื่น
      echo -e "\033[33mดูเหมือนว่า /lib/firmware/rtl_bt/rtl8761b_fw.bin มีอยู่แล้ว ไม่จำเป็นต้องมีขั้นตอนเพิ่มเติมรีบูตและลองใช้ UB500 BT-Stick ของคุณ"
    ไฟ
    sudo rm -r /home/max/FIX_UB_500_BT_Stick
    echo -e "\033[33mDeleted ไฟล์ที่ดาวน์โหลดและไดเร็กทอรี /home/max/FIX_UB_500_BT_Stick"
    เสียงสะท้อน -e "\033[0m"
  elif [ "$start" = "n" ];แล้ว
    sudo rm -r /home/max/FIX_UB_500_BT_Stick
    ทางออก
  อื่น
    echo -e "\033[33mคุณป้อนการเลือกที่ไม่ถูกต้อง!"
    echo -e "\033[33mโปรดลองอีกครั้ง!"
    เสียงสะท้อน -e ""
    echo -e "\033[31mกดปุ่มใดก็ได้เพื่อดำเนินการต่อ..."
    อ่าน -n 1

  ไฟ
  }

FIX_UB_500_BT_Stick

ในขั้นตอนที่ 3 น่าเศร้าที่การเช็คอิน hci_ldisc.c ไม่ทำงาน ดังนั้นคุณต้องตรวจสอบด้วยตนเอง

มันใช้ kwrite เป็นตัวแก้ไขข้อความ

ห้ามเรียกใช้สคริปต์เป็น sudo รอให้ขอ sudo จากคุณ

หากคุณเป็นเหมือนฉันที่ยังใหม่กับมันทั้งหมด:

เพื่อให้ใช้งานได้ ให้สร้างไฟล์ข้อความแต่ใช้นามสกุล .sh ไม่ใช่ .txt

คัดลอกรหัสทั้งหมดในนั้นและปลอดภัย

ในไดเร็กทอรีของคุณให้เปิดเทอร์มินัล

chmod a+x YOURFILE.sh

ทุบตี YOURFILE.sh

ปฏิบัติตามคำแนะนำอย่างแม่นยำ

ฉันแก้ไขคำตอบค่อนข้างมาก ดังนั้นจึงมีประโยชน์มากกว่า

Pilot6 avatar
cn flag
ไม่ชัดเจนว่าโพสต์นี้เกี่ยวกับอะไร มันตอบคำถามหรือไม่? หรือเป็นการแก้ไขบางอย่างสำหรับ KDE Neon ซึ่งอยู่นอกหัวข้อที่นี่
Max Christian Potaß avatar
za flag
สคริปต์ที่ทำทุกขั้นตอนของ Aeolun ดังนั้นการแก้ไขทั่วไปสำหรับอูบุนตู ซึ่งไม่ได้ผลสำหรับฉันอีกต่อไป
Pilot6 avatar
cn flag
จะโพสต์ทำไมถ้ามันไม่ทำงาน?
Max Christian Potaß avatar
za flag
มันทำสิ่งที่ Aeolun โพสต์ไว้เป็นวิธีแก้ไขที่เป็นไปได้ การแก้ไขนี้ใช้ได้กับฉันใน Kubuntu มันใช้ไม่ได้กับฉันใน KDE Neon อย่างไรก็ตาม ดังนั้น อาจช่วยได้ อาจไม่ช่วยก็ได้ ฉันไม่รู้. แต่ถ้าคุณต้องการลอง คุณสามารถใช้สคริปต์ซึ่งทำให้ง่ายขึ้น ฉันไม่แน่ใจ มีอะไรที่ไม่ชัดเจนเกี่ยวกับเรื่องนั้น
Max Christian Potaß avatar
za flag
ฉันเปลี่ยนส่วนด้านล่างของสคริปต์ อาจจะเป็นอย่างนั้น?
Max Christian Potaß avatar
za flag
@Pilot6 ตรวจสอบอีกครั้ง ฉันอัปเดตสคริปต์ของฉันแล้ว มันแก้ไขได้อย่างสมบูรณ์ในขณะนี้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา