키보드 백라이트 제어 키가 작동하지 않기 때문에 4.17.1용 ASUS 노트북 드라이버를 추적하고 있습니다. 게다가 드라이버를 로드할 수 없고 항상 "해당 장치가 없습니다"라고 보고되는 것을 발견했습니다. 그러다가 이것이 acpi 드라이버의 add() 메소드(asus_acpi_add)가 입력되지 않았기 때문이라는 것을 알게 되었습니다. 적어도 4.4.14와 같은 일부 이전 커널 버전에는 동일한 문제가 있지만 아직 작동하는 버전을 찾지 못했습니다.
누구든지 단서가 있습니까? 감사해요. -목재
답변1
모듈을 로드한 후 시스템에 PNP ID가 또는 인 장치가 포함되어 있다고 펌웨어가 나타내는 경우 asus_acpi_add
ACPI 하위 시스템은 이 함수를 호출해야 합니다 . 이는 주소를 인수로 사용하는 모듈 초기화 호출에 의해 정렬됩니다. 이 구조에는 이 드라이버가 인식하는 PNP/ACPI ID 테이블이 요소로 포함됩니다.ATK0100
ATK0101
acpi_bus_register_driver
static struct acpi_driver asus_acpi_driver
.ids
따라서 가장 먼저 확인해야 할 것은 시스템에 ATK0100 또는 ATK0101 장치 ID가 있는지 여부입니다.
다음을 실행하세요:
cat /sys/bus/pnp/devices/*/id
결과는 한 줄에 하나씩 PNP ID 목록이어야 합니다. 목록에 ATK0100
nor 가 포함되어 있지 않으면 ATK0101
모듈이 로드되지 않는 이유는 ACPI 펌웨어가 모듈에서 사용할 인터페이스를 선언하지 않았기 때문입니다.
Stack Overflow에 대한 다른 질문에서asus_wmi
모듈이 실제로 노트북에서 자동으로 감지된다고 언급하셨습니다 . 이 모듈에서 액세스하는 WMI 인터페이스에는 키보드 백라이트 제어를 포함하여 많은 기타 기능이 있는 것으로 보입니다. 하드웨어에서 지원하는 기능은 분명히 SFUN 값으로 표시되지만 개발자는 SFUN 값의 몇 비트의 의미만 알고 있습니다 asus_wmi
.
따라서 asus-nb-wmi.c
소스 코드 파일에는 Asus 노트북 모델 목록과 각 모델에 대한 컨트롤 키 드라이버의 특정 설정이 포함되어 있습니다. FX503은 아직 목록에 없는 것 같습니다. 자신만의 커널을 컴파일할 수 있다면 노트북 모델을 목록에 추가하고 비슷한 기능을 갖춘 다른 ASUS 노트북 모델에서 이상한 값을 테스트해 볼 수 있습니다. 하드웨어/펌웨어 구현은 크게 다르지 않으며 작동하는 설정을 찾을 수 있습니다.
이 작업에 성공하면 asus_wmi
드라이버 작성자에게 결과를 보고하십시오. 이렇게 하면 귀하의 작업이 귀하와 동일한 모델을 사용하는 다른 사람들에게도 도움이 될 것입니다. 귀하의 이름은 Linux 커널 기여자의 긴 목록에도 추가됩니다.
또한 드라이버 개발자에게 이메일을 보내 조언을 구할 수도 있습니다. 노력할 의향이 있다면 개발자가 좀 더 구체적인 시도를 제안할 수도 있습니다.