커널 매개 변수 acpi_osi = linux와 acpi_backlight = vendor는 무엇을합니까?


21

랩톱의 화면 밝기 조절에 문제가 있었고 파일에 acpi_osi=linuxacpi_backlight=vendor매개 변수를 추가하여 문제를 해결했습니다 grub.cfg. 이 매개 변수의 의미와 작동 이유를 알고 싶습니다.

답변:


28

커널 매개 변수는 kernel.org에 문서화되어 있습니다.

이해하기 acpi_osi 대략 ACPI 작동 방식을 알아야합니다. ACPI는 운영 체제가 시작되기 전에 BIOS가 RAM에로드하는 소위 테이블로 구성됩니다. 이들 중 일부는 메인 보드의 필수 장치에 대한 정보를 고정 형식으로 포함하지만 DSDT 테이블과 같은 일부에는 AML 코드가 포함되어 있습니다. 이 코드는 운영 체제에서 실행되며 메인 보드의 많은 장치를 설명하는 트리 구조와 절전 기능이 활성화 된 경우 OS에서 실행되는 호출 가능한 기능을 OS에 제공합니다. AML 코드는 _OSI함수 를 호출하여 OS에 OS를 요청할 수 있습니다 . 이것은 종종 벤더가 일부 Windows 버전의 버그와 같은 문제를 해결하기 위해 사용합니다.

많은 하드웨어 공급 업체가 당시의 최신 Windows 버전으로 만 제품을 테스트하기 때문에 해결 방법이없는 "일반적인"코드 경로는 종종 버그가 있습니다. 이 Linux 때문에 Windows인지 묻는 질문에 일반적으로 yes로 응답합니다. 리눅스는 또한 "리눅스"인지 물었을 때 예라고 대답했지만, BIOS 벤더들이 (당시) 최신 리눅스 커널 버전에서 버그 나 기능 상실을 해결하도록했습니다. 버그 보고서를 열거 나 패치를 제공하는 대신 ( . 이러한 버그가 수정되면이 해결 방법으로 인해 모든 이후 Linux 버전에서 불필요한 성능 저하 및 기타 문제가 발생했습니다.

acpi_osi=Linux ACPI 코드에서 "Linux"인지 묻는 메시지가 표시되면 Linux가 다시 예라고 응답하여 ACPI 코드가 Linux에 대한 해결 방법을 활성화하거나 Windows에 대한 해결 방법을 비활성화 할 수 있습니다.

acpi_backlight=vendor백라이트의 ACPI 드라이버가 확인되는 순서를 변경합니다. 일반적으로 Linux는 videoACPI DSDT가 표준 호환성을 요구하는 백라이트 장치를 제공하고 해당 장치를 찾을 수없는 경우 다른 공급 업체 특정 드라이버 만 검사 할 때 일반 드라이버 를 사용합니다 . acpi_backlight=vendor공급 업체별 드라이버를 먼저 시도 할 수 있도록이 순서를 반대로합니다.


3

"acpi_osi"에 대한 첫 번째 Google 결과는 다음과 같습니다.acpi_osi=linux 같습니다.

[...] BIOS는 일반적으로 Windows가 감지되지 않으면 기능을 비활성화합니다. [...] 기본적으로 커널은 Linux가 실행 중인지 묻습니다. acpi_osi=Linux커널에게 true로 응답하도록 지시합니다. (참조 drivers/acpi/osl.c) BIOS에 진실을 알려야 할 것 같습니다.

"acpi_osi"에 대한 두 번째 Google 결과는 다음과 acpi_backlight=vendor같습니다.

acpi_backlight=vendor(예를 들어, 벤더 고유 드라이버 선호 thinkpad_acpi, sony_acpi대신에 ACPI들 등) video.ko드라이버.


나는이 답변 (특히 acpi_osi의 경우)이 충분하지 않다고 주장합니다.
Cestarian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.