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.