Désactiver la carte bluetooth interne d'un ordinateur portable sous Ubuntu 16.04
Linux ne reconnaît pas correctement toutes les cartes Bluetooth des ordinateurs portable. C'est le cas de la carte native de l'ordinateur Asus N750-JV qui présente de nombreuses instabilités sous Ubuntu.
On peut bien entendu, ouvrir la machine et remplacer la carte par une carte compatible. Une solution moins intrusive consiste à utiliser une clé USB Bluetooth comme la König Micro Bluetooth Dongle v4.0. Dans ces conditions, il peut être utile de désactiver la carte d'origine pur être sûr d'utiliser la clé USB.
Voici comme procéder...
On peut bien entendu, ouvrir la machine et remplacer la carte par une carte compatible. Une solution moins intrusive consiste à utiliser une clé USB Bluetooth comme la König Micro Bluetooth Dongle v4.0. Dans ces conditions, il peut être utile de désactiver la carte d'origine pur être sûr d'utiliser la clé USB.
Voici comme procéder...
D'abord, il faut identifier correctement la carte grâce à la commande :
Sur le N750-JV, on obtient la hiérarchie suivante :
Il s'agit ensuite de créer un fichier "blacklistant" le matériel en choisissant les attributs significatifs du bon niveau. Pour cela on peut créer le fichier
Un reboot...
Il suffit ensuite de lancer
(source : https://projectgus.com/2014/09/blacklisting-a-single-usb-device-from-linux/
udevadm info -a -p /sys/class/bluetooth/hci0
Sur le N750-JV, on obtient la hiérarchie suivante :
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/bluetooth/hci0':
KERNEL=="hci0"
SUBSYSTEM=="bluetooth"
DRIVER==""
ATTR{address}=="54:27:1e:18:14:57"
ATTR{name}=="ChromeLinux_24E7"
ATTR{type}=="BR/EDR"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0':
KERNELS=="1-5:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="btusb"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceClass}=="e0"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bInterfaceProtocol}=="01"
ATTRS{bInterfaceSubClass}=="01"
ATTRS{bNumEndpoints}=="03"
ATTRS{supports_autosuspend}=="1"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-5':
KERNELS=="1-5"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{authorized}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bConfigurationValue}=="1"
ATTRS{bDeviceClass}=="e0"
ATTRS{bDeviceProtocol}=="01"
ATTRS{bDeviceSubClass}=="01"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bMaxPower}=="100mA"
ATTRS{bNumConfigurations}=="1"
ATTRS{bNumInterfaces}==" 2"
ATTRS{bcdDevice}=="0002"
ATTRS{bmAttributes}=="e0"
ATTRS{busnum}=="1"
ATTRS{configuration}=="BT HCI"
ATTRS{devnum}=="5"
ATTRS{devpath}=="5"
ATTRS{idProduct}=="3402"
ATTRS{idVendor}=="13d3"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Atheros Communications"
ATTRS{maxchild}=="0"
ATTRS{product}=="Bluetooth USB Host Controller"
ATTRS{quirks}=="0x0"
ATTRS{removable}=="fixed"
ATTRS{serial}=="Alaska Day 2006"
ATTRS{speed}=="12"
ATTRS{urbnum}=="138"
ATTRS{version}==" 1.10"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{authorized}=="1"
ATTRS{authorized_default}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bConfigurationValue}=="1"
ATTRS{bDeviceClass}=="09"
ATTRS{bDeviceProtocol}=="01"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bMaxPower}=="0mA"
ATTRS{bNumConfigurations}=="1"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bcdDevice}=="0402"
ATTRS{bmAttributes}=="e0"
ATTRS{busnum}=="1"
ATTRS{configuration}==""
ATTRS{devnum}=="1"
ATTRS{devpath}=="0"
ATTRS{idProduct}=="0002"
ATTRS{idVendor}=="1d6b"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Linux 4.2.0-36-generic xhci-hcd"
ATTRS{maxchild}=="14"
ATTRS{product}=="xHCI Host Controller"
ATTRS{quirks}=="0x0"
ATTRS{removable}=="unknown"
ATTRS{serial}=="0000:00:14.0"
ATTRS{speed}=="480"
ATTRS{urbnum}=="88"
ATTRS{version}==" 2.00"
looking at parent device '/devices/pci0000:00/0000:00:14.0':
KERNELS=="0000:00:14.0"
SUBSYSTEMS=="pci"
DRIVERS=="xhci_hcd"
ATTRS{broken_parity_status}=="0"
ATTRS{class}=="0x0c0330"
ATTRS{consistent_dma_mask_bits}=="64"
ATTRS{d3cold_allowed}=="1"
ATTRS{device}=="0x8c31"
ATTRS{dma_mask_bits}=="64"
ATTRS{driver_override}=="(null)"
ATTRS{enable}=="1"
ATTRS{irq}=="27"
ATTRS{local_cpulist}=="0-7"
ATTRS{local_cpus}=="ff"
ATTRS{msi_bus}=="1"
ATTRS{numa_node}=="-1"
ATTRS{subsystem_device}=="0x129d"
ATTRS{subsystem_vendor}=="0x1043"
ATTRS{vendor}=="0x8086"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
Il s'agit ensuite de créer un fichier "blacklistant" le matériel en choisissant les attributs significatifs du bon niveau. Pour cela on peut créer le fichier
/etc/udev/rules.d/81-bluetooth-hci.rules
avec le contenu (qui dépend du matériel à blacklister) :#builtin Bluetooth car disabled
SUBSYSTEM=="usb", ATTRS{idVendor}=="13d3", ATTRS{idProduct}=="3402", ATTR{authorized}="0"
Un reboot...
Il suffit ensuite de lancer
bluetoothctl
et de vérifier que le contrôleur d'origine (repérable ici par l'adresse MAC 54:27:1e:18:14:57) n'apparaît plus.(source : https://projectgus.com/2014/09/blacklisting-a-single-usb-device-from-linux/
Commentaires
Afficher les commentaires en Vue non groupée | Vue groupée