ACPI: 덮개 버튼 드라이버가 로드/바인딩되지 않았습니다.

ACPI: 덮개 버튼 드라이버가 로드/바인딩되지 않았습니다.

맞춤 장치에서 덮개 열기/닫기 이벤트에 반응하고 싶지만 덮개 버튼 드라이버가 올바르게 로드/바인딩되지 않는 것 같습니다.

제가 사용하고 있는 시스템은 핵심에 TQMxE39M 모듈(Intel CPU)이 있는 맞춤형 하드웨어입니다. 덮개 버튼 입력은 현재 베이스 보드의 간단한 스위치에 연결되어 있습니다. 소프트웨어에 관해서는 "poky" 및 "meta-intel" 레이어의 "sumo" 분기를 사용하는 사용자 정의 yocto 이미지를 사용하고 있습니다. 컴퓨터가 "genericx86-64"로 설정되어 있습니다. 사용된 커널은 Linux-yocto 4.14.30이며 두 가지 사소한 변경 사항만 있습니다(acpi에 연결되지 않음). ACPI 드라이버 "버튼"은 커널에 컴파일되어 있으며 내가 아는 한 이 드라이버는 덮개 버튼을 처리해야 하는 드라이버입니다.

부팅 후 /sys/bus/acpi/devices 아래에 덮개 장치가 "PNP0C0D:00"으로 표시됩니다. 적어도 나는 이것이 올바른 장치라고 믿습니다. 왜냐하면 acpi/button.c 드라이버 소스 파일이 "PNP0C0D"라는 이름을 덮개 버튼으로 참조하지만 장치에 드라이버가 바인딩되어 있지 않기 때문입니다.

내 질문은: 왜 Linux는 이 장치를 덮개 버튼으로 감지하고 올바른 드라이버를 바인딩하지 않습니까?

지금까지 내 관찰은 다음과 같습니다.

  1. 장치에 대한 ACPI 데이터를 덤프하고 디컴파일했는데 "LID0"이라는 장치가 EisaId "PNP0C0D"로 정의되어 있음을 알 수 있습니다. 이 장치는 "_SB.PCI0.LPCB" 범위에 정의됩니다.

  2. 동일한 드라이버가 작동하는 전원 버튼이 작동합니다! 이는 EisaId "PNP0C0C"를 사용하여 "_SB" 범위의 ACPI 데이터에 정의됩니다. 내가 이상하게 생각하는 점은 /sys/bus/acpi/devices 아래에 "PNP0C0C:00" 및 "PNP0C0C:01"이라는 두 개의 장치가 있다는 것입니다. 그 중 후자만 acpi/button 드라이버에 바인딩되어 있습니다.

  3. 또한 표준 xUbuntu 18.04.1을 사용하여 장치를 부팅했습니다. 이것은 똑같은 효과를 갖습니다. 전원 버튼은 2번 항목에 설명된 대로 작동하며 덮개 장치가 표시되지만 바인딩되지는 않습니다.

관련 정보