Xbox One controller bluetooth no Ubuntu 18.04
sábado, 21 de dezembro de 2019
Tuxmind
Para o gamepad do xbox funcionar pelo bluetooth você vai ter de instalar o sysfsutils.
sudo apt install sysfsutils
Depois tera de editar o /etc/sysfs.conf (com o sudo) e dicionar o seguinte no final do arquivo.
/module/bluetooth/parameters/disable_ertm=1
Depois e só salvar e reiniciar o pc.
O problema é que o ertm sempre ativo causa incompatibilidades com outros dispositivos bluetooth.
A solução é ativar o ertm sempre que queremos usar o gamepad e desativar quando não estiver a ser usado.
Mas... Vou ter de estar sempre a editar o /etc/sysfs.conf e a reiniciar a máquina? Claro que não! Vamos usar um shell script com três funcionalidades. Ativar o ertm, desativar o ertm e por fim verificar o estado (ver se está ativado ou não).
Guarde com o nome de ertm_gamepad.sh e de permissão para executar através do comando:
Para ativar o ertm:
Para desativar:
E se você já não se lembra se está ativado ou não:
Este script foi testado no Ubuntu 18.04 LTS. Infelizmente não obtive sucesso a "emparelhar" o xbox controller no Ubuntu 19.10 via bluetooth.
sudo apt install sysfsutils
Depois tera de editar o /etc/sysfs.conf (com o sudo) e dicionar o seguinte no final do arquivo.
/module/bluetooth/parameters/disable_ertm=1
Depois e só salvar e reiniciar o pc.
O problema é que o ertm sempre ativo causa incompatibilidades com outros dispositivos bluetooth.
A solução é ativar o ertm sempre que queremos usar o gamepad e desativar quando não estiver a ser usado.
Mas... Vou ter de estar sempre a editar o /etc/sysfs.conf e a reiniciar a máquina? Claro que não! Vamos usar um shell script com três funcionalidades. Ativar o ertm, desativar o ertm e por fim verificar o estado (ver se está ativado ou não).
#!/bin/bash
#Este script ativa e desativa o ertm para xbox gamepad funcionar.
#O ertm causa instabilidade com outros dispositivos com bluetooth. Por isso ligar o ertm apenas quando precisar do gamepad.
#Para este script funcionar primeiro deve emparelhar o gamepad no ubuntu.
#Testado no ubuntu 18.04.3LTS
#tuxmind.blogspot.com
get_status()
{
ERTM=`cat /sys/module/bluetooth/parameters/disable_ertm`
if [ "$ERTM" = "Y" ]; then
echo "[ ON ] ertm ativado para o gamepad"
elif [ "$ERTM" = "N" ]; then
echo "[ OFF ] ertm desativado para o gamepad"
fi
}
liga_gamepad()
{
sudo rfkill block bluetooth &&
echo "[ OK ] a desligar bluetooth..." &&
echo 1 | sudo tee /sys/module/bluetooth/parameters/disable_ertm &&
echo "[ OK ] a ativar ertm..." &&
sudo systemctl stop bluetooth.service &&
echo "[ OK ] desativando serviço o bluetooth..." &&
sudo modprobe -r btusb &&
echo "[ OK ] removendo o modulo bluetooth btusb..." &&
sudo modprobe btusb &&
echo "[ OK ] adicionando o modulo bluetooth btusb..." &&
sudo systemctl start bluetooth.service &&
echo "[ OK ] ativando serviço o bluetooth..." &&
sudo rfkill unblock bluetooth &&
echo "[ OK ] a ligar bluetooth..." &&
echo "[ OK ] ertm game pad on!" ||
echo "[ ERRO ] script falhou"
}
desliga_gamepad()
{
sudo rfkill block bluetooth &&
echo "[ OK ] a desligar bluetooth..." &&
echo 0 | sudo tee /sys/module/bluetooth/parameters/disable_ertm &&
echo "[ OK ] a remover ertm..." &&
sudo systemctl stop bluetooth.service &&
echo "[ OK ] desativando serviço o bluetooth..." &&
sudo modprobe -r btusb &&
echo "[ OK ] removendo o modulo bluetooth btusb..." &&
sudo modprobe btusb &&
echo "[ OK ] adicionando o modulo bluetooth btusb..." &&
sudo systemctl start bluetooth.service &&
echo "[ OK ] ativando serviço o bluetooth..." &&
echo "[ OK ] ertm game pad off!" ||
echo "[ ERRO ] script falhou a desativar ertm"
}
case "$1" in
"on")
echo "a ligar gamepad..."
liga_gamepad
;;
"off")
echo "a desligar gamepad..."
desliga_gamepad
;;
"status")
get_status
;;
*)
echo "Erro. Parametros possíveis: [on] [off] [status] "
;;
esac
exit
#Este script ativa e desativa o ertm para xbox gamepad funcionar.
#O ertm causa instabilidade com outros dispositivos com bluetooth. Por isso ligar o ertm apenas quando precisar do gamepad.
#Para este script funcionar primeiro deve emparelhar o gamepad no ubuntu.
#Testado no ubuntu 18.04.3LTS
#tuxmind.blogspot.com
get_status()
{
ERTM=`cat /sys/module/bluetooth/parameters/disable_ertm`
if [ "$ERTM" = "Y" ]; then
echo "[ ON ] ertm ativado para o gamepad"
elif [ "$ERTM" = "N" ]; then
echo "[ OFF ] ertm desativado para o gamepad"
fi
}
liga_gamepad()
{
sudo rfkill block bluetooth &&
echo "[ OK ] a desligar bluetooth..." &&
echo 1 | sudo tee /sys/module/bluetooth/parameters/disable_ertm &&
echo "[ OK ] a ativar ertm..." &&
sudo systemctl stop bluetooth.service &&
echo "[ OK ] desativando serviço o bluetooth..." &&
sudo modprobe -r btusb &&
echo "[ OK ] removendo o modulo bluetooth btusb..." &&
sudo modprobe btusb &&
echo "[ OK ] adicionando o modulo bluetooth btusb..." &&
sudo systemctl start bluetooth.service &&
echo "[ OK ] ativando serviço o bluetooth..." &&
sudo rfkill unblock bluetooth &&
echo "[ OK ] a ligar bluetooth..." &&
echo "[ OK ] ertm game pad on!" ||
echo "[ ERRO ] script falhou"
}
desliga_gamepad()
{
sudo rfkill block bluetooth &&
echo "[ OK ] a desligar bluetooth..." &&
echo 0 | sudo tee /sys/module/bluetooth/parameters/disable_ertm &&
echo "[ OK ] a remover ertm..." &&
sudo systemctl stop bluetooth.service &&
echo "[ OK ] desativando serviço o bluetooth..." &&
sudo modprobe -r btusb &&
echo "[ OK ] removendo o modulo bluetooth btusb..." &&
sudo modprobe btusb &&
echo "[ OK ] adicionando o modulo bluetooth btusb..." &&
sudo systemctl start bluetooth.service &&
echo "[ OK ] ativando serviço o bluetooth..." &&
echo "[ OK ] ertm game pad off!" ||
echo "[ ERRO ] script falhou a desativar ertm"
}
case "$1" in
"on")
echo "a ligar gamepad..."
liga_gamepad
;;
"off")
echo "a desligar gamepad..."
desliga_gamepad
;;
"status")
get_status
;;
*)
echo "Erro. Parametros possíveis: [on] [off] [status]
;;
esac
exit
Guarde com o nome de ertm_gamepad.sh e de permissão para executar através do comando:
chmod +x ertm_gamepad.sh
Para ativar o ertm:
ertm_gamepad.sh on
Para desativar:
ertm_gamepad.sh off
E se você já não se lembra se está ativado ou não:
ertm_gamepad.sh status
Este script foi testado no Ubuntu 18.04 LTS. Infelizmente não obtive sucesso a "emparelhar" o xbox controller no Ubuntu 19.10 via bluetooth.
Nenhum comentário:
Postar um comentário