기계식 키보드 소프트웨어가 윈도우 전용이라 Opus 5.5로 리버스 엔지니어링해서 리눅스용 Rust 앱으로 포팅함
My mechanical keyboard's software only runs on Windows, so I had Opus 5.5 reverse engineer it and port it into a Rust app for Linux
핵심 요약
윈도우 전용 키보드 소프트웨어를 AI를 활용해 리눅스용 Rust 앱으로 직접 포팅한 사례를 공유함.
- 리버스 엔지니어링 — Ghidra를 활용해 윈도우 드라이버를 분석하고 리눅스용으로 재구현함
- Rust 개발 — 리눅스 환경에서 작동하는 네이티브 Rust 앱으로 포팅 완료
- 기능 구현 — 조명 제어, 키 매핑, 매크로, 음악 동기화 등 핵심 기능 지원
- 커뮤니티 반응 — 기술적 성취에는 긍정적이나 서브레딧 성격과 맞지 않는다는 지적 존재

나 AULA F75 쓰고 있는데, 이거 RGB 조명에 볼륨 노브 달린 75% 배열 기계식 키보드임. 전용 소프트웨어(조명, 키 매핑, 매크로 설정)가 윈도우 전용이라, 이런 키보드들이 다 그렇듯 리눅스(Fedora) 쓰는 나로서는 좀 빡치더라. 그래서 Perplexity Computer에 있는 Opus 5.5한테 이렇게 물어봤음.
“port aula f75's windows driver files to my fedora machine in rust”
이놈이 클라우드 샌드박스에서 AULA 윈도우 설치 파일을 다운받아서 압축 풀고, 어디에도 문서화된 게 없으니까 Ghidra headless 돌려서 디컴파일까지 하더라. 디컴파일된 코드 보면서 앱이 키보드랑 어떻게 통신하는지 알아내더니, 윈도우 앱이랑 똑같이 작동하는 리눅스용 네이티브 Rust 앱으로 포팅해버림. 창 닫아도 트레이에 상주하고, 키보드 2D/3D 뷰로 조명 상태까지 다 보여줌.
음악 싱크 모드도 그대로 가져왔음. AULA 앱에 음악 재생에 맞춰서 반응하는 조명 모드가 10개 있는데, Computer가 디컴파일된 코드 보고 하나하나 다 다시 짜서 윈도우랑 똑같이 작동함. 몇 개는 좀 번쩍거리는 게 심하긴 한데, 원래 AULA 앱에서도 똑같으니까 뭐.
얼마나 걸렸냐, 토큰 얼마나 썼냐고 물어보기 전에 말하는데, 이거 한 번에 끝난 거 아님. 키보드라는 게 잘못된 명령어 보내면 설정 다 꼬일 수 있어서 천천히 진행했음. Computer가 내 컴퓨터에서 작은 테스트들 돌리게 시키고, 키보드가 뭐라고 응답하는지 다시 보내주는 식으로 했거든. 처음엔 케이블, 그다음엔 동글, 마지막엔 블루투스 순으로. 설정 바꾸는 명령어는 확실하게 확인된 다음에만 보냈음. 케이블이랑 무선 동글이랑 작동 방식이 미묘하게 달라서 실제 키보드에 대고 각각 따로 테스트 다 했고. 테스트하고 수정하고 주고받는 과정을 꼬박 하루 동안 여러 번 반복했음.
지금까지 작동하는 기능:
조명 효과, 밝기, 속도 및 키별 색상 설정
키 매핑
매크로 (일단 케이블 연결 시에만 가능)
프로필
음악 싱크 (AULA 기본 10개 모드 + 추가 모드 몇 개 더)
USB 케이블 및 2.4G 무선 동글 지원 (블루투스는 아직 지원 안 함)
버그가 분명히 있을 거니까, 자기 F75에 써보고 문제 생기면 댓글 달아줘. 고쳐볼게.



