¿Qué hacen los parámetros del kernel acpi_osi = linux y acpi_backlight = vendor?

21

Tuve problemas con el control de brillo de la pantalla en mi computadora portátil y lo arreglé agregando los parámetros acpi_osi=linuxy acpi_backlight=vendoral archivo grub.cfg. Me gustaría saber qué significan estos parámetros y por qué funcionan.

usuario91655
fuente

Respuestas:

28

Los parámetros del kernel están documentados en kernel.org .

Para entender lo que acpi_osihace, necesita saber aproximadamente cómo funciona ACPI. ACPI consiste en las llamadas tablas que el BIOS carga en la RAM antes de que se inicie el sistema operativo. Algunos de ellos simplemente contienen información sobre dispositivos esenciales en la placa base en un formato fijo, pero algunos como la tabla DSDT contienen código AML. El sistema operativo ejecuta este código y proporciona al sistema operativo una estructura de árbol que describe muchos dispositivos en la placa base y las funciones invocables que ejecuta el sistema operativo cuando, por ejemplo, se habilita el ahorro de energía. El código AML puede preguntar al sistema operativo qué sistema operativo es llamando a la _OSIfunción. Con frecuencia, los proveedores lo utilizan para solucionar el problema, por ejemplo, para solucionar errores en algunas versiones de Windows.

Como muchos proveedores de hardware solo prueban sus productos con la última versión (en ese momento) de Windows, las rutas de código "normales" sin las soluciones alternativas a menudo son defectuosas. Debido a esto, Linux generalmente responde que sí cuando se le pregunta si es Windows. Linux también solía responder que sí cuando se le preguntaba si era "Linux", pero eso hacía que los proveedores de BIOS evitaran errores o faltaran funciones en la (en ese momento) última versión del kernel de Linux en lugar de abrir informes de errores o proporcionar parches. Cuando se corrigieron estos errores, las soluciones causaron penalizaciones innecesarias de rendimiento y otros problemas para todas las versiones posteriores de Linux.

acpi_osi=Linux hace que Linux responda sí nuevamente cuando se le pregunta si es "Linux" por el código ACPI, permitiendo así que el código ACPI habilite soluciones alternativas para Linux y / o deshabilite soluciones alternativas para Windows.

acpi_backlight=vendorcambia el orden en que se verifican los controladores ACPI para las luces de fondo. Por lo general, Linux usará el videocontrolador genérico , cuando el DSPI de ACPI proporciona un dispositivo de luz de fondo que afirma compatibilidad estándar y solo verificará los controladores específicos de otros proveedores si no se encuentra dicho dispositivo. acpi_backlight=vendorinvierte este orden, de modo que los controladores específicos del proveedor se prueban primero.

cg909
fuente
3

El primer resultado de Google para "acpi_osi" explica acpi_osi=linux:

[...] La BIOS generalmente desactiva la funcionalidad si Windows no se detecta [...] por defecto, el núcleo responde falso cuando se le pregunta si Linux se está ejecutando. acpi_osi=Linuxle dice al kernel que responda verdadero. (ver drivers/acpi/osl.c) Parece que necesita decirle al BIOS la verdad.

El segundo resultado de Google para "acpi_osi" explica acpi_backlight=vendor:

acpi_backlight=vendorpreferirán controlador específico del proveedor (por ejemplo thinkpad_acpi, sony_acpi, etc.) en lugar de la ACPI video.koconductor.

Martin von Wittich
fuente
Yo diría que estas respuestas (especialmente para acpi_osi) no se detallan lo suficiente.
Cestariano