Usando DualShock 4 e controlador DualSense via Bluetooth

Usando DualShock 4 e controlador DualSense via Bluetooth

Como não tive sucesso emtroca de pilha unix, eu tento aqui. Talvez eu esteja impaciente, talvez essa não seja a boa maneira de pedir ajuda, fique à vontade para me contar!

Há algum tempo eu uso um controle Playstation DualShock 4 via Bluetooth para jogar na minha Linux Box. Detalhes sobre a caixa:

  • Equipamento: Asrock Beebox N3150
  • SO: Servidor Ubuntu 20.04.3
  • Programas: Kodi + Retroarca

Agora tenho um controlador DualSense. Posso emparelhá-lo via Bluetooth para usá-lo da mesma forma que o DS4. Ainda posso usar o DS4 se desconectar primeiro o controlador DualSense. Mas não consigo fazer os 2 controladores funcionarem ao mesmo tempo.

O que eu tentei:

  • Testando a mesma coisa em outro computador (também baseado no Ubuntu 20.04) => funciona, posso jogar um jogo multiplayer no Retroarch
  • Testando para instalar um kernel mais recente na caixa, ou seja, o kernel 5.13 (através do HWE conforme descritoaqui) para obter o driver hid_playstation oficial suportado pela Sony => não ajudou, embora eu tenha garantido que estava usando o driver correto para o DualSense
  • Testando usando primeiro uma conexão USB para autorizar o dispositivo e depois conectar via Bluetooth => sem melhorias
  • Testando usando um controlador via Bluetooth e outro via USB => funciona

O que eu suspeito (hipótese - posso estar errado):

  • O problema pode não estar relacionado à conexão Bluetooth. Eu costumava bluetoothctlemparelhar meus dispositivos e não encontrei nenhum problema no processo de emparelhamento. blueoothctlme disse que o dispositivo estava emparelhado e o LED nos dispositivos deixou de piscar para fixar a cor
  • O problema provavelmente está ligado ao driver, ou a qualquer outra coisa relacionada à comunicação com o dispositivo: quando o segundo controlador (seja DualSense ou DS4) está conectado, ele fica com uma cor fixa (cinza para o DS4, azul para o DualSense ) por algum tempo (geralmente menos de 1 minuto) e depois desligue. Acho que significa que está conectado por Bluetooth, mas não obtém a resposta desejada depois de algum tempo.

Alguém pode me ajudar a corrigir esse problema? Posso fornecer o log do que for necessário e ir e voltar do kernel 5.4 para o 5.13 (mas não tenho certeza se é necessário porque funciona com um controlador por vez no 5.4).

ATUALIZAR: Para garantir que o problema não esteja relacionado ao hardware, comprei um dongle USB bluetooth externo: TP-link UB500. Fiquei surpreso ao descobrir que não funcionou imediatamente: tive que instalar um kernel muito recente (>= 5.15.4) conforme mencionadoaqui. Então eu fui comeste tutoriale instalado 5.15.13. Depois de baixar os arquivos de firmware necessários, pude inicializar no novo kernel e... voltei ao mesmo ponto: posso emparelhar meu DS4 e DualSense com meu novo adaptador Bluetooth, mas apenas o primeiro conectado produz alguns logins /var/log/kern.loge é reconhecido como dispositivo de entrada (embora o segundo esteja conectado por Bluetooth). Também tentei desabilitar e colocar na lista negra o novo driver hid_playstation, mas não houve diferença alguma. Então, ainda estou preso com este problema:

  • O segundo dispositivo está conectado de acordo com bluetoothctl
  • O segundo dispositivo não é visto nem pelo kernel nem pelo Xorg ou pelos aplicativos do usuário final
  • Nenhuma configuração para o segundo dispositivo é criada em /sys/bus/hid/devicesou em/sys/devices/virtual/misc/uhid

informação relacionada