Bluetooth cắt ngẫu nhiên trong Ubuntu


13

Tóm tắt sự cố : bluetooth của máy tính xách tay của tôi bị cắt ngẫu nhiên trong khi tôi đang sử dụng và sau đó có ghi "Không tìm thấy bluetooth; cắm vào một cái khóa để sử dụng bluetooth".

Q: nó có thể là phần cứng không? Tôi khá chắc chắn rằng đó không phải là vấn đề phần cứng vì điều này chưa từng xảy ra trước đây trong Windows (Tôi khởi động kép ubfox và windows).

Q: bluetooth có thực sự hoạt động không? Khởi động lại máy tính thường khôi phục bluetooth và tôi có thể kết nối và sử dụng chuột bluetooth của mình, mặc dù vậy, nó thường sẽ bị cắt một thời gian ngắn sau đó.

Thông tin máy tính

Máy tính của tôi là một HP Spectre x360 Convertible 15-bl1XX (Z4Z38UA#ABA)và thông tin sản phẩm đầy đủ được liệt kê dưới đây.

Đầu ra của sudo lshw | grep product

product: HP Spectre x360 Convertible 15-bl1XX (Z4Z38UA#ABA)
   product: 827F
         product: HP26D4S9S8MH-8
         product: HP26D4S9S8MH-8
      product: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
      product: Intel Corporation
         product: Intel Corporation
         product: Skylake Processor Thermal Subsystem
         product: Intel Corporation
         product: Sunrise Point-LP USB 3.0 xHCI Controller
         product: Sunrise Point-LP Thermal subsystem
         product: Sunrise Point-LP Serial IO I2C Controller #0
         product: Sunrise Point-LP CSME HECI #1
         product: Intel Corporation
            product: NVIDIA Corporation
         product: Sunrise Point-LP PCI Express Root Port #5
         product: Sunrise Point-LP PCI Express Root Port #7
            product: Wireless 8265 / 8275
         product: Sunrise Point-LP PCI Express Root Port #8
            product: RTS525A PCI Express Card Reader
         product: Sunrise Point-LP PCI Express Root Port #9
            product: NVMe SSD Controller SM961/PM961
         product: Intel Corporation
         product: Sunrise Point-LP PMC
         product: Intel Corporation
         product: Sunrise Point-LP SMBus
   product: KB06079XL

Đầu ra của lscpu

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  2
Core(s) per socket:  4
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               142
Model name:          Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
Stepping:            10
CPU MHz:             800.052
CPU max MHz:         4000.0000
CPU min MHz:         400.0000
BogoMIPS:            3984.00
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            8192K
NUMA node0 CPU(s):   0-7
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp

Đầu ra của lspci -knn | grep Net -A3; lsusb

3b:00.0 Network controller [0280]: Intel Corporation Wireless 8265 / 8275 
[8086:24fd] (rev 78)
    Subsystem: Intel Corporation Wireless 8265 / 8275 [8086:1010]
    Kernel driver in use: iwlwifi
    Kernel modules: iwlwifi
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 064e:3401 Suyin Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Tôi hiện đang chạy Ubuntu 18.04.


Vui lòng chỉnh sửa câu hỏi của bạn và thêm đầu ra của lspci -knn | grep Net -A3; lsusblệnh đầu cuối.
Pilot6

Cố gắng vô hiệu hóa btcoexbằng sudo tee /etc/modprobe.d/iwlwifi-opt.conf <<< "options iwlwifi bt_coex_active=N", sau đó khởi động lại.
Pilot6

@ Pilot6: Thiết lập bt_coex_activetrong iwlwififalse làm cho không có sự khác biệt trong các triệu chứng; bộ điều khiển Bluetooth vẫn bị cắt theo định kỳ.
Deltik

Câu trả lời:


10

Cập nhật hạt nhân của bạn

linux-image-genericphiên bản 4.15.0-46.49và mới hơn chứa bản sửa lỗi. Trích đoạn Changelog :

  * Bionic update: upstream stable patchset 2019-01-17 (LP: #1812229)
    - xhci: Fix perceived dead host due to runtime suspend race with event handler

Bản linux-image-genericsửa lỗi đã có sẵn cho các bản phát hành Ubuntu này:

  • 18.10 (vũ trụ) - 28 tháng 10 năm 2018 - phiên bản 4.17.0-7.8mới hơn
  • 18.04 (bionic) - 15 tháng 2 năm 2019 - phiên bản 4.15.0-46.49mới hơn
  • 16.04 (xenial) - 27 tháng 9 năm 2018 - phiên bản 4.4.0-136.162mới hơn

Để xem phiên bản nào của linux-image-genericbạn và phiên bản nào có sẵn cho bạn, hãy chạy các lệnh sau:

sudo apt update
apt-cache policy linux-image-generic

Nếu bạn có một ứng cử viên với bản sửa lỗi mà bạn có thể cập nhật, chỉ cần chạy một bản nâng cấp như vậy:

sudo apt full-upgrade

Cài đặt linux-oemkernel

Ngoài ra, bạn có thể thử chuyển sang linux-oemkernel, đã nhận được bản sửa lỗi sớm hơn nhiều tháng so với linux-image-genericchi nhánh đã làm:

sudo apt install -y linux-oem

Vào ngày 20 tháng 7 năm 2018, linux-oemphiên bản 4.15.0-1012.15 đã được xuất bản lên bionic-securitybionic-updatesrepo . Nó bao gồm những thay đổi từ phiên bản 4.15.0-1010.13:

  * xhci hangs; reset results in NULL pointer dereference (LP: #1763594)
    - xhci: Create new structures to store xhci port information
    - xhci: set hcd pointers for xhci usb2 and usb3 roothub structures
    - xhci: Add helper to get xhci roothub from hcd
    - xhci: xhci-hub: use new port structures to get port address instead of port
      array
    - xhci: xhci-hub: use new port structures for cas and wake mask functions.
    - xhci: xhci-ring: use port structures for port event handler
    - xhci: rename faked_port_index to hcd_portnum
    - xhci: change xhci_set_link_state() to work with port structures
    - xhci: change xhci_test_and_clear_bit() to use new port structure
    - xhci: use port structures instead of port arrays in xhci.c functions
    - xhci: xhci-hub: use port structure members instead of xhci_get_ports()
    - xhci-mtk: use xhci hub structures to get number of ports in roothubs
    - xhci: xhci-mem: remove port_arrays and the code initializing them
    - xhci: debugfs: add usb ports to xhci debugfs
    - xhci: debugfs: add debugfs interface to enable compliance mode for a port
    - xhci: Fix perceived dead host due to runtime suspend race with event handler

Bản vá cuối cùng trong danh sách đó sẽ khắc phục sự cố cắt Bluetooth ngẫu nhiên (cũng như máy ảnh và máy quét dấu vân tay, nếu bạn có những thứ đó).

Lỗi xHCI chưa được áp dụng cho kernel chính tại thời điểm viết, do đó, linux-oembản phát hành kernel Ubuntu được đóng gói duy nhất có bản sửa lỗi.

Để theo dõi thông tin về lỗi này, hãy xem phần "Tài nguyên" ở cuối câu trả lời này.

Hack: Khôi phục Bluetooth mà không cần khởi động lại

Nếu bạn muốn đợi một bản sửa lỗi được nhập vào kernel Ubuntu chung, bạn có thể chạy bản hack này bất cứ khi nào Bluetooth bị cắt.

Máy ảnh, đầu đọc dấu vân tay và bộ điều khiển Bluetooth của máy tính xách tay của bạn sẽ nhanh chóng kết nối lại sau khi chạy lệnh này (cả hai dòng):

echo 1 | sudo tee /sys/bus/pci/devices/0000:00:14.0/remove &&
echo 1 | sudo tee /sys/bus/pci/rescan

Lưu ý: Đảm bảo rằng đó 0000:00:14.0thực sự là bộ điều khiển xHCI trước khi chạy lệnh đầu tiên. Bạn có thể tìm thấy vị trí với lệnh này:lspci -k | grep -B2 xhci

Giải trình

Đây là một Band-Aid và không khắc phục được nguyên nhân gốc rễ. Để theo dõi lỗi và thảo luận bên ngoài, hãy xem phần "Tài nguyên" ở cuối câu trả lời này.

Đây là cách lỗi chạy:

Vấn đề bắt đầu

Một lỗi trong xhci_hcdtrình điều khiển thuyết phục rằng bộ điều khiển máy chủ xHCI đã ngừng đáp ứng. Kết quả là, nó ngắt kết nối tất cả các thiết bị được kết nối với bộ điều khiển:

Jul 25 09:07:31 host kernel: [121258.765591] xhci_hcd 0000:00:14.0: xHC is not running.
Jul 25 09:07:31 host kernel: [121258.772300] xhci_hcd 0000:00:14.0: xHCI host controller not responding, assume dead
Jul 25 09:07:31 host kernel: [121258.772319] xhci_hcd 0000:00:14.0: HC died; cleaning up
Jul 25 09:07:31 host kernel: [121258.806828] usb 1-7: USB disconnect, device number 2
Jul 25 09:07:31 host kernel: [121258.807915] usb 1-8: USB disconnect, device number 3
Jul 25 09:07:31 host kernel: [121258.808717] usb 1-12: USB disconnect, device number 5
Jul 25 09:07:31 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.1
Jul 25 09:07:31 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8
Jul 25 09:07:31 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0
Jul 25 09:07:31 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-7
Jul 25 09:07:31 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12:1.0/bluetooth/hci0/hci0:256/0005:0A5C:4503.001E
Jul 25 09:07:31 host systemd[1]: bluetooth.target: Unit not needed anymore. Stopping.
Jul 25 09:07:31 host systemd[1]: Stopped target Bluetooth.
Jul 25 09:07:31 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12:1.1
Jul 25 09:07:31 host bluetoothd[12402]: Endpoint unregistered: sender=:1.61 path=/MediaEndpoint/A2DPSource
Jul 25 09:07:31 host bluetoothd[12402]: Endpoint unregistered: sender=:1.61 path=/MediaEndpoint/A2DPSink
Jul 25 09:07:31 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12:1.0
Jul 25 09:07:31 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-12
Jul 25 09:07:31 host NetworkManager[4095]: <info>  [1532527651.6587] bluez5: NAP: removed interface 28:16:AD:2B:5C:40

(Từ /var/log/syslog)

Loại bỏ bộ điều khiển xHCI

Chạy echo 1 | sudo tee /sys/bus/pci/devices/0000:00:14.0/removenóng - loại bỏ thiết bị PCI của bộ điều khiển xHCI:

Jul 25 09:09:57 host kernel: [121405.007193] xhci_hcd 0000:00:14.0: remove, state 4
Jul 25 09:09:57 host kernel: [121405.007208] usb usb2: USB disconnect, device number 1
Jul 25 09:09:57 host kernel: [121405.008109] xhci_hcd 0000:00:14.0: USB bus 2 deregistered
Jul 25 09:09:57 host kernel: [121405.008215] xhci_hcd 0000:00:14.0: remove, state 4
Jul 25 09:09:57 host kernel: [121405.008226] usb usb1: USB disconnect, device number 1
Jul 25 09:09:57 host kernel: [121405.010736] xhci_hcd 0000:00:14.0: USB bus 1 deregistered
Jul 25 09:09:57 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb2/2-0:1.0
Jul 25 09:09:57 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-0:1.0
Jul 25 09:09:57 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb2
Jul 25 09:09:57 host upowerd[6035]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1

(Từ /var/log/syslog)

Khôi phục bộ điều khiển xHCI

Chạy echo 1 | sudo tee /sys/bus/pci/rescantái khám phá thiết bị PCI chúng tôi vừa gỡ bỏ. Người xhci_hcdlái xe thấy thiết bị PCI được tái phát hiện là một bus USB mới và thiết lập bus và các thiết bị của nó:

Jul 25 09:10:11 host kernel: [121418.409659] pci 0000:00:14.0: [8086:a12f] type 00 class 0x0c0330
Jul 25 09:10:11 host kernel: [121418.409686] pci 0000:00:14.0: reg 0x10: [mem 0x3e820000-0x3e82ffff 64bit]
Jul 25 09:10:11 host kernel: [121418.409773] pci 0000:00:14.0: PME# supported from D3hot D3cold
Jul 25 09:10:11 host kernel: [121418.428182] pci 0000:00:14.0: BAR 0: assigned [mem 0x3e820000-0x3e82ffff 64bit]
Jul 25 09:10:11 host kernel: [121418.428928] xhci_hcd 0000:00:14.0: xHCI Host Controller
Jul 25 09:10:11 host kernel: [121418.428936] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
Jul 25 09:10:11 host kernel: [121418.430031] xhci_hcd 0000:00:14.0: hcc params 0x200077c1 hci version 0x100 quirks 0x00109810
Jul 25 09:10:11 host kernel: [121418.430037] xhci_hcd 0000:00:14.0: cache line size of 128 is not supported
Jul 25 09:10:11 host kernel: [121418.430401] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
Jul 25 09:10:11 host kernel: [121418.430404] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
Jul 25 09:10:11 host kernel: [121418.430407] usb usb1: Product: xHCI Host Controller
Jul 25 09:10:11 host kernel: [121418.430410] usb usb1: Manufacturer: Linux 4.15.0-29-generic xhci-hcd
Jul 25 09:10:11 host kernel: [121418.430412] usb usb1: SerialNumber: 0000:00:14.0
Jul 25 09:10:11 host kernel: [121418.430671] hub 1-0:1.0: USB hub found
Jul 25 09:10:11 host kernel: [121418.430725] hub 1-0:1.0: 16 ports detected
Jul 25 09:10:11 host kernel: [121418.432783] xhci_hcd 0000:00:14.0: xHCI Host Controller
Jul 25 09:10:11 host kernel: [121418.432792] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
Jul 25 09:10:11 host kernel: [121418.433063] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
Jul 25 09:10:11 host kernel: [121418.433067] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
Jul 25 09:10:11 host kernel: [121418.433070] usb usb2: Product: xHCI Host Controller
Jul 25 09:10:11 host kernel: [121418.433076] usb usb2: Manufacturer: Linux 4.15.0-29-generic xhci-hcd
Jul 25 09:10:11 host kernel: [121418.433078] usb usb2: SerialNumber: 0000:00:14.0
Jul 25 09:10:11 host kernel: [121418.436200] hub 2-0:1.0: USB hub found
Jul 25 09:10:11 host kernel: [121418.436223] hub 2-0:1.0: 10 ports detected
Jul 25 09:10:11 host kernel: [121418.771883] usb 1-7: new high-speed USB device number 2 using xhci_hcd
Jul 25 09:10:11 host kernel: [121418.949715] usb 1-7: New USB device found, idVendor=04ca, idProduct=7053
Jul 25 09:10:11 host kernel: [121418.949721] usb 1-7: New USB device strings: Mfr=3, Product=1, SerialNumber=2
Jul 25 09:10:11 host kernel: [121418.949725] usb 1-7: Product: HP HD Camera
Jul 25 09:10:11 host kernel: [121418.949729] usb 1-7: Manufacturer: DETNQ019I53FY0
Jul 25 09:10:11 host kernel: [121418.949732] usb 1-7: SerialNumber: 200901010001
Jul 25 09:10:11 host kernel: [121418.958393] uvcvideo: Found UVC 1.00 device HP HD Camera (04ca:7053)
Jul 25 09:10:11 host kernel: [121418.961311] uvcvideo 1-7:1.0: Entity type for entity Extension 4 was not initialized!
Jul 25 09:10:11 host kernel: [121418.961319] uvcvideo 1-7:1.0: Entity type for entity Processing 2 was not initialized!
Jul 25 09:10:11 host kernel: [121418.961324] uvcvideo 1-7:1.0: Entity type for entity Camera 1 was not initialized!
Jul 25 09:10:11 host kernel: [121418.962085] input: HP HD Camera: HP HD Camera as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/input/input59
Jul 25 09:10:11 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb2/2-0:1.0
Jul 25 09:10:11 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb2
Jul 25 09:10:11 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-0:1.0
Jul 25 09:10:11 host kernel: [121419.091967] usb 1-8: new full-speed USB device number 3 using xhci_hcd
Jul 25 09:10:11 host kernel: [121419.241717] usb 1-8: New USB device found, idVendor=138a, idProduct=003f
Jul 25 09:10:11 host kernel: [121419.241723] usb 1-8: New USB device strings: Mfr=0, Product=0, SerialNumber=1
Jul 25 09:10:11 host kernel: [121419.241727] usb 1-8: SerialNumber: 00b080f6fa9d
Jul 25 09:10:12 host kernel: [121419.371938] usb 1-12: new full-speed USB device number 4 using xhci_hcd
Jul 25 09:10:12 host kernel: [121419.529258] usb 1-12: New USB device found, idVendor=8087, idProduct=0a2b
Jul 25 09:10:12 host kernel: [121419.529263] usb 1-12: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Jul 25 09:10:12 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1
Jul 25 09:10:12 host kernel: [121419.537804] Bluetooth: hci0: Firmware revision 0.0 build 176 week 45 2017
Jul 25 09:10:12 host mtp-probe: checking bus 1, device 2: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-7"
Jul 25 09:10:12 host mtp-probe: checking bus 1, device 3: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8"
Jul 25 09:10:12 host mtp-probe: bus: 1, device: 2 was not an MTP device
Jul 25 09:10:12 host mtp-probe: bus: 1, device: 3 was not an MTP device
Jul 25 09:10:12 host kernel: [121419.589011] Bluetooth: hci0: Hardware error 0x0c
Jul 25 09:10:12 host NetworkManager[4095]: <info>  [1532527812.3141] bluez5: NAP: added interface 28:16:AD:2B:5C:40
Jul 25 09:10:12 host kernel: [121419.598737] Bluetooth: hci0: last event is not cmd complete (0x0f)
Jul 25 09:10:12 host kernel: [121419.598745] Bluetooth: hci0: Retrieving Intel exception info failed (-16)
Jul 25 09:10:12 host bluetoothd[12402]: Endpoint registered: sender=:1.61 path=/MediaEndpoint/A2DPSource
Jul 25 09:10:12 host bluetoothd[12402]: Endpoint registered: sender=:1.61 path=/MediaEndpoint/A2DPSink
Jul 25 09:10:12 host systemd[1]: Reached target Bluetooth.
Jul 25 09:10:12 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8
Jul 25 09:10:12 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.1
Jul 25 09:10:12 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12:1.1
Jul 25 09:10:12 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12:1.0
Jul 25 09:10:12 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-12
Jul 25 09:10:12 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0
Jul 25 09:10:12 host upowerd[6035]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-7

(Từ /var/log/syslog)

Do đó, xhci_hcdtrình điều khiển sẽ tìm lại camera, đầu đọc dấu vân tay và bộ điều khiển Bluetooth kèm theo.


Tài nguyên


0

Mẹo: sử dụng && nếu bàn phím của bạn sẽ nằm trong bộ điều khiển đó để tránh bị dừng trước khi gõ lệnh thứ hai ...

echo 1 | sudo tee /sys/bus/pci/devices/0000:00:14.0/remove && echo 1 | sudo tee /sys/bus/pci/rescan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.