O que está fazendo com que meu dispositivo Bluetooth Intel 7260 se desconecte quando eu o desbloquear com o rfkill?

6

SOLUTION : O problema parece ser que o módulo Bluetooth não funciona bem com xHCI no Linux. Existe uma configuração do BIOS denominada "XHCI PRE-BOOT MODE", que deve ser definida como "Disabled". Se não estiver, o Linux tratará o módulo Bluetooth como se estivesse conectado a um barramento xHCI em vez de um barramento EHCI, causando erros de comunicação. NO ENTANTO, ESTA FIXÃO DESABILITA O USB 3.0 EM SEU SISTEMA . Eu não tenho uma solução melhor neste momento, mas pelo menos isso funciona.

Eu tenho um novo laptop ASUS UX301LA e estou executando o Ubuntu Gnome 13.10 (Saucy). O kernel parece saber sobre o dispositivo bluetooth do laptop na inicialização, mas ele desaparece sempre que eu uso o rfkill para desbloquear o bluetooth. Por exemplo:

$ sudo rfkill block bluetooth
$ dmesg | tail -5
[ 2024.876537] usb 2-4: new full-speed USB device number 8 using xhci_hcd
[ 2024.894043] usb 2-4: New USB device found, idVendor=8087, idProduct=07dc
[ 2024.894053] usb 2-4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 2024.908190] Bluetooth: hci0: read Intel version: 370710018002030d00
[ 2024.908271] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq
[ 2025.057051] Bluetooth: hci0: Intel Bluetooth firmware patch completed and activated

$ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: asus-wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
2: asus-bluetooth: Bluetooth
    Soft blocked: yes
    Hard blocked: no
3: hci0: Bluetooth
    Soft blocked: yes
    Hard blocked: no

$ sudo hciconfig -a
hci0:   Type: BR/EDR  Bus: USB
    BD Address: XX:XX:XX:XX:XX:XX  ACL MTU: 1021:5  SCO MTU: 96:5
    DOWN 
    RX bytes:568 acl:0 sco:0 events:29 errors:0
    TX bytes:390 acl:0 sco:0 commands:29 errors:0
    Features: 0xff 0xfe 0x0f 0xfe 0xdb 0xff 0x7b 0x87
    Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
    Link policy: RSWITCH HOLD SNIFF 
    Link mode: SLAVE ACCEPT 

$ sudo rfkill unblock bluetooth
$ dmesg | tail -1
[ 2391.749122] usb 2-4: USB disconnect, device number 8

$ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: asus-wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
2: asus-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no

$ sudo hciconfig -a
[no output]

EDITAR : O dispositivo Bluetooth é exibido como um dispositivo USB sem fio Intel 7260, ID 8087: 07dc. A única informação que encontrei que pode ser relevante é um bug para o qual uma correção foi emitida, mencionada no Launchpad aqui: Suporte para o bluetooth Intel 7260 [8087: 07dc]

EDIT : Eu atualizei o firmware para a nova versão 22.1.7.0 do site da Intel (Saucy vem com o 22.0.7.0), e o mesmo problema ocorre.

EDIT : Além disso, a pesquisa nos logs mostra que o dispositivo USB Bluetooth está completamente desconectado quando eu executo o comando unblock:

$ lsusb -d 8087:07dc
Bus 001 Device 007: ID 8087:07dc Intel Corp. 
$ rfkill unblock bluetooth
$ lsusb -d 8087:07dc
[no output]
$ dmesg | tail -1
[  438.284647] usb 1-4: USB disconnect, device number 7

EDIT : A atualização do driver iwlwifi para um backport (mais recente) do kernel 3.13 não ajuda. A versão atual do driver:

$ modinfo iwlwifi
filename:       /lib/modules/3.11.0-15-generic/updates/drivers/net/wireless/iwlwifi/iwlwifi.ko
version:        backported from Linux (v3.13-rc8-0-g7e22e91) using backports v3.13-rc8-1-0-gae71bd3
license:        GPL
author:         Copyright(c) 2003-2013 Intel Corporation <[email protected]>
version:        in-tree:d
description:    Intel(R) Wireless WiFi driver for Linux
firmware:       iwlwifi-100-5.ucode
firmware:       iwlwifi-1000-5.ucode
firmware:       iwlwifi-135-6.ucode
firmware:       iwlwifi-105-6.ucode
firmware:       iwlwifi-2030-6.ucode
firmware:       iwlwifi-2000-6.ucode
firmware:       iwlwifi-5150-2.ucode
firmware:       iwlwifi-5000-5.ucode
firmware:       iwlwifi-6000g2b-6.ucode
firmware:       iwlwifi-6000g2a-5.ucode
firmware:       iwlwifi-6050-5.ucode
firmware:       iwlwifi-6000-4.ucode
firmware:       iwlwifi-3160-7.ucode
firmware:       iwlwifi-7260-7.ucode
srcversion:     F6C7F0E202757B474065F3B
alias:          pci:v00008086d0000095Asv*sd00005490bc*sc*i*
[... trimmed several "alias" lines ...]
alias:          pci:v00008086d00004232sv*sd00001201bc*sc*i*
depends:        compat,cfg80211
vermagic:       3.11.0-15-generic SMP mod_unload modversions 
parm:           debug:debug output mask (uint)
parm:           swcrypto:using crypto in software (default 0 [hardware]) (int)
parm:           11n_disable:disable 11n functionality, bitmap: 1: full, 2: agg TX, 4: agg RX (uint)
parm:           amsdu_size_8K:enable 8K amsdu size (default 0) (int)
parm:           fw_restart:restart firmware in case of error (default true) (bool)
parm:           antenna_coupling:specify antenna coupling in dB (defualt: 0 dB) (int)
parm:           wd_disable:Disable stuck queue watchdog timer 0=system default, 1=disable, 2=enable (default: 0) (int)
parm:           nvm_file:NVM file name (charp)
parm:           bt_coex_active:enable wifi/bt co-exist (default: enable) (bool)
parm:           led_mode:0=system default, 1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0) (int)
parm:           power_save:enable WiFi power management (default: disable) (bool)
parm:           power_level:default power save level (range from 1 - 5, default: 1) (int)

EDIT : Como Bernhard sugeriu nas respostas, tentei forçar o adaptador a usar o comando echo "on" > /sys/class/bluetooth/hci0/device/../power/control . Enquanto bluetooth foi bloqueado via rfkill, isso pareceu não ter efeito, e hciconfig hci0 up respondeu que o dispositivo ainda estava bloqueado. Quando o bluetooth foi desbloqueado usando rfkill, /sys/class/bluetooth/hci0 não existe, então a tentativa de ativá-lo manualmente falha. Eu tentei adicionar isso para /etc/rc.local , e não houve diferença aparente em relação a simplesmente executar os comandos como root no console.

EDITAR : enviei um e-mail para os desenvolvedores de Wi-Fi da Intel e eles emitiram uma resposta incrivelmente útil:

Hello,

I am afraid you are asking the wrong people. We are WiFi people and not Bluetooth.

Thanks,
(name removed)

Tentarei hackear os drivers do Bluetooth para ver se consigo tirar mais informações de depuração deles.

Alguém tem alguma sugestão para me ajudar? Alguém já experimentou isso antes? Há algum usuário do Ubuntu que tenha um ASUS UX301LA que possa ter alguma dica?

Deixe-me saber que outras informações podem ser úteis e as publicarei. Eu só não queria sobrecarregar esse primeiro post com dados inúteis.

    
por PaSTE 26.12.2013 / 18:34

4 respostas

1

Eu também tenho o UX301LA e agora estou executando 14.10. Eu sofri do mesmo problema, mas descobri uma solução alternativa que não é a ideal, mas funciona por enquanto.

Basicamente, parece que o módulo asus-nb-wmi não é totalmente compatível com esse hardware. Embora, o problema real pareça existir muito mais profundamente, bloquear esse módulo evita a criação de novas entradas de correspondência correspondentes a WiFi e Bluetooth e depois o estado padrão após a inicialização é com Wi-Fi e Bluetooth funcionando (mesmo usando USB 3.0). O interruptor F2 ainda quando ON faz o Bluetooth desaparecer, mas quando OFF (padrão após a inicialização), ele não desativa o WiFi, enquanto o dispositivo Bluetooth aparece. A desvantagem é que as teclas Fx param de funcionar quando o módulo é bloqueado, pois também são suportadas por este módulo. Para obter esse efeito, basta adicionar blacklist asus-nb-wmi a /etc/modprobe.d/blacklist.conf

Uma solução melhor seria reportar o bug no upstream ou por enquanto mudar a fonte do módulo para desabilitar o tratamento do wifi / bluetooth enquanto ainda manuseia outras chaves Fx.

    
por Andrzej Pronobis 25.10.2014 / 20:39
0

O mesmo problema ocorre com o meu Lenovo T440s. Eu não tenho uma solução neste momento, mas parece que somos afetados por um bug do kernel (uma discussão sobre isso pode ser encontrada em aqui ).

Adicionando

echo "on" > /sys/class/bluetooth/hci0/device/../power/control

para /etc/rc.local parece ajudar um pouco, mas a conexão com meu mouse Bluetooth ainda é instável.

    
por Bernhard 29.12.2013 / 13:16
0

Dê uma olhada em: /usr/share/gnome-bluetooth/pin-code-database.xml

O seu mouse existe lá (busca usando o OUI, que é o "Identificador Único do OEM", que são os primeiros 3 octetos do endereço MAC do mouse. Por exemplo, se o endereço MAC do seu mouse for AA: BB: CC: DD: EE: FF, então o OUI é "AA: BB: CC")?

Se já existir, verifique se se parece com algo:

(observe os dois pontos à direita: "AA: BB: CC * : *" - não o deixe de fora).

Se ainda não existir, adicione-o.

Além disso, não tenho certeza se isso está relacionado, mas há um problema bem conhecido com o Intel 7260 WiFi (desconexões esporádicas freqüentes). Para solucionar o problema do WiFi, descobri que a única coisa que funciona é desativar o 802.11n:

  1. Abra o terminal.
  2. sudo vi /etc/modprobe.d/wifi-disable11n.conf
  3. Adicione esta linha: options iwlwifi 11n_disable = 1
  4. Salve e reinicie.

Estou apenas pegando uma guia no escuro, mas valeria a pena (IMHO).

    
por TheUnknownHobo 20.01.2014 / 18:51
-1

Eu resolvi meus problemas instalando um novo firmware link

Usando um Acer S7 392, o Intel Wireless 7260 rev6b, o Kubuntu 13.10, o kernel 3.11.0-15-genérico

    
por MiXiM 21.01.2014 / 22:29