O Linux detecta a tecla do joypad pressionada mesmo se não houver nenhuma tecla pressionada

1

Estou tendo um problema muito estranho na minha máquina Arch Linux. Bem, eu tenho tido isso por um par de anos, mas desde que eu não uso joypads muitas vezes eu apenas o ignorei na primeira vez. É um problema muito estranho, então leia com atenção.

Há algum tempo, tentei usar meu bloco Xbox 360 para jogar alguns jogos antigos de PSX em emuladores (não se preocupe, eles eram discos originais). Quando tentei configurar o pad (usando o módulo kernel do xpad), o emulador (PCSX rodando nativamente) continuava me dizendo que o gatilho direito era mantido pressionado, tornando a configuração das outras chaves impossível (já que todas as chaves que tentei configurar continuavam sendo atribuído ao gatilho direito).

Eu tentei outro emulador, o ePSXe rodando no Wine (e depois o ePSXe nativo), e tive o mesmo problema. Neste ponto eu já estava extremamente desconfiado, estou usando um controlador com fio e xpad que funciona perfeitamente com o Xbox 360, que é usado por todos os outros, por que não funcionaria? No entanto, eu não desisti e tentei soluções alternativas, como o driver do xboxdrv userspace. Sem sorte. Então eu desisti, já que eu não queria perder o sono por isso.

Recentemente, comprei um adaptador USB para controladores PS2. Eu liguei, tentei configurar no eus e ... o que? Eles continuam me dizendo que o botão R2 (que está na mesma posição que o gatilho direito do controlador X360) está sendo pressionado! Quais são as chances de que dois controladores totalmente funcionais apresentem o mesmo problema ao usar drivers diferentes e softwares diferentes? Pelo menos agora está claro que não é o software do pad ou do x360 ou o do emulador.

Tendo excluído todos esses suspeitos, há apenas uma única explicação que eu poderia sugerir, que seria que o módulo do kernel do joypad estava bagunçado. Mas eu nunca toquei em arquivos de configuração sobre joypads e meu kernel é o kernel padrão dos repositórios do Arch Linux. Você pode por favor me ajudar com o meu problema? Eu investi muito tempo e dinheiro nessa questão em particular.

Por que ele detecta sempre a mesma tecla (o disparador direito / R2) mesmo que essas chaves sejam tecnicamente diferentes vindas de diferentes joypads usando drivers diferentes (embora eu ache que o xpad apenas "traduz" entrada para o módulo joypad do kernel)? Tenha em mente que as outras teclas funcionam corretamente, uma vez eu consegui atribuí-las manualmente e cada uma delas funcionou, desde que eu não atribuísse o trigger / R2 correto a qualquer função.

Por que isso não funcionaria para mim se eu não estivesse usando um kernel modificado e nunca toquei em um arquivo de configuração relacionado ao joypad? Alguem mais achou este problema? Eu nem sei o que digitar no mecanismo de busca. Muito obrigado pela leitura.

    
por El Unlucko 05.07.2012 / 11:54

1 resposta

0

Parece que pode haver um problema com os módulos do xpad, mas apenas porque ele pode não reconhecer seu (s) controlador (es), fazendo com que ele caia no modo 'bloco desconhecido'.

Você pode modificar a operação do módulo com três parâmetros:
+ dpad_to_buttons : Mapeie o D-PAD para botões em vez de eixos para blocos desconhecidos
+ triggers_to_buttons : Mapear acionadores para botões em vez de eixos para blocos desconhecidos
+ sticks_to_null : não mapeie nada para blocos desconhecidos

Ao adicionar / alterar uma linha em um arquivo em /etc/modprobe.d , você pode definir / redefinir esses parâmetros.

Crie um arquivo em /etc/modprobe.d , ele DEVE terminar com ' .conf ', outro não será reconhecido como um arquivo de configuração. / p>

Neste arquivo, coloque esta linha:

options xpad {option} [{option}...]

Adicione ou remova opções conforme desejado. Eu recomendaria comentar ( # ) a linha se não houver opções listadas, ou apenas apagar o arquivo completamente.

Provavelmente você precisará do rmmod módulo xpad , depois modprobe para recarregá-lo com as novas opções.

Se as opções não parecem ser reconhecidas, você pode precisar executar depmod -a para reconstruir as tabelas de dependência do módulo.

Você pode ver quais parâmetros são válidos para um módulo com o comando modinfo .

    
por 06.07.2012 / 07:41