컨트롤러가 작동하지 않으면, 키보드를 의심해라

2025-12-11

시험 기간에 게임 회사들하고 인디 개발진이 게임(아니면 확장팩)을 출시하는 걸 법으로 금지해야 한다고 봅니다. 제 리눅스 머신마저도 마지막 보루로써 제 성적을 구해보려고 했는지, 게임에 진입하면 컨트롤러가 작동하질 않았습니다.

그러니까 가지고 있는 Xbox One 컨트롤러를 리눅스 노트북에 페어링과 연결도 할 수 있었고, Steam에서도 인식이 되었으며 Xbox 버튼을 누르면 “큰 화면 모드 (Big Picture Mode)“로 진입도 하였지만, 정작 게임에 진입하게 되면 조작에 아무런 반응이 안 나타나는 겁니다.

만약 Steam의 컨트롤러 번역 레이어를 거치면 나아지지 않을까 생각되어 Steam Input을 활성화해봤지만, 그것도 작동하지 않았습니다. 리눅스 커널에서는 컨트롤러가 어떻게 매핑되는지 궁금해서 /dev/input 안에 뒤적여보니, 안에서 js0을 찾을 수 있었습니다. (줄여서 joystick-0이라고 하는군요.)

그래서 cat /dev/input/js0을 하면, 컨트롤러에 입력을 했을 때 콘솔에 깨진 문자열이 나와야 되겠죠? 하지만 아직도 출력이 나오질 않았습니다.

그러다가 발견하게 된 js1.

다른 기기 폴더와 같이, /dev/inputby-id라는 폴더가 안에 있는데, 이전에 사용된 인식 순서 방식과 다르게 기기를 고유 식별 코드로 나열해 줍니다. 그리고 여기를 확인해 보니 역시:

$ ls /dev/input/by-id/*joystick
/dev/input/by-id/usb-Keychron_Keychron_K2_Pro-if02-event-joystick

그래서 노트북에 연결된 키보드를 빼고 다시 게임을 실행해 보니, 컨트롤러가 제대로 인식되기 시작했습니다.

이제 다음 주 금요일까지만 버틸 수 있을지.