1 Reply Latest reply on Sep 8, 2017 3:21 PM by Intel Corporation

    Bios for DN2820FYK is not exposing ACPI methos for backlight control under Linux




      I have a nuc DN2820FYK running GNU/Linux, it mostly works fine except for the graphics card, I never was able to control the brigthness, it is running always to maximun brightness and it is burning my eyes so this time I did some debugging following this page: Kernel/Debugging/Backlight - Ubuntu Wiki and indeed it seems the bios (I'm running the lastest version - 059) is not exposing the ACPI methods for backlight control (_BCL, _BCM, _BCQ). Since writing ACPI methods is out of my reach I would like to known if some community member can help me in some way.


      this is that I have tried:


      first I boot the operating system with kernel parameters as recommend by https://wiki.archlinux.org/index.php/backlight#Kernel_command-line_options , but no matter what parameters I use it never works, using any combination of acpi_backlight and acpi_osi results in not backlight controls:


      nuc ~ # ls -l /sys/class/backlight/

      total 0

      nuc ~ # acpidump -o acpidump.txt

      nuc ~ # acpixtract acpidump.txt


      Intel ACPI Component Architecture

      ACPI Binary Table Extraction Utility version 20160729-64

      Copyright (c) 2000 - 2016 Intel Corporation


      Acpi table [DSDT] -   46249 bytes written to dsdt.dat

      Acpi table [SSDT] -    1891 bytes written to ssdt1.dat

      Acpi table [SSDT] -     656 bytes written to ssdt2.dat

      Acpi table [SSDT] -     378 bytes written to ssdt3.dat

      Acpi table [SSDT] -     351 bytes written to ssdt4.dat

      Acpi table [SSDT] -    1088 bytes written to ssdt5.dat

      Acpi table [SSDT] -     141 bytes written to ssdt6.dat

      Acpi table [SSDT] -    1075 bytes written to ssdt7.dat


      8 binary ACPI tables extracted

      nuc ~ # iasl -d *dat 2>&1 | grep Output

      ASL Output:    dsdt.dsl - 426096 bytes

      ASL Output:    ssdt1.dsl - 9929 bytes

      ASL Output:    ssdt2.dsl - 7673 bytes

      ASL Output:    ssdt3.dsl - 4371 bytes

      ASL Output:    ssdt4.dsl - 2919 bytes

      ASL Output:    ssdt5.dsl - 9649 bytes

      ASL Output:    ssdt6.dsl - 1323 bytes

      ASL Output:    ssdt7.dsl - 16934 bytes


      nuc ~ # grep _BCL *dsl

      nuc ~ # grep -i -e linux -e windows *dsl

      dsdt.dsl:                    If (_OSI ("Windows 2001"))

      dsdt.dsl:                    If (_OSI ("Windows 2001 SP1"))

      dsdt.dsl:                    If (_OSI ("Windows 2001 SP2"))

      dsdt.dsl:                    If (_OSI ("Windows 2006"))

      dsdt.dsl:                    If (_OSI ("Windows 2009"))

      dsdt.dsl:                    If (_OSI ("Windows 2012"))

      dsdt.dsl:                    If (_OSI ("Windows 2013"))

      dsdt.dsl:            Name (_CID, EisaId ("PNP0D80") /* Windows-compatible System Power Management Controller */)  // _CID: Compatible ID

      nuc ~ #


      there are strings for Windows but not for Linux.


      any comment will be welcome, thank you.