Imac12,1 (21.5" 2011) can't change backlight (brightness)

I’ve installed Manjaro 20.2.1 Nibia on my old iMac12,1 (21.5" 2011) in EFI mode. Most works out of box, except the displayer backlight.

There is acpi_video0 under /sys/class/backlight. I can move the brightness slider in KDE system tray. Though the value of /sys/class/backlight/acpi_video0/brightness can be changed, the displayer stays unchanged.

The displayer will get stuck in discomfortable highest brightness after suspend. So I have to reboot to restore the original brightness.

I’ve googled this problem for days. All suggest the kernel command line parameter acpi_backlight. I’ve tried all possible values video, vendor, native, and none, with kernel 5.4, 5.9, and 5.10.

acpi_backlight=video changes nothing, just as absence of this parameter. Other values result in the empty /sys/class/backlight/ dir, then no slider in Battery and Brightness widget at all.

Some people reported it worked on their imac12,2 (27" 2011). The baclight would be adjusted via the /sys/class/backlight/radeon_bl0. It’s almost the same hardware except more powerful CPU/GPU and bigger displayer. But it didn’t on my smaller imac12,1.

Below is basic info:

System:    Kernel: 5.10.18-1-MANJARO x86_64 bits: 64 Desktop: KDE Plasma 5.21.1 Distro: Manjaro Linux 
Machine:   Type: Desktop System: Apple product: iMac12,1 v: 1.0 serial: <filter> 
           Mobo: Apple model: Mac-942B5BF58194151B serial: <filter> UEFI: Apple v: 87.0.0.0.0 date: 06/14/2019 
CPU:       Info: Quad Core model: Intel Core i5-2400S bits: 64 type: MCP L2 cache: 6 MiB 
           Speed: 2328 MHz min/max: 1600/3300 MHz Core speeds (MHz): 1: 2328 2: 2255 3: 2794 4: 2254 
Graphics:  Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics driver: i915 v: kernel 
           Device-2: Advanced Micro Devices [AMD/ATI] Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] driver: radeon 
           v: kernel 
           Device-3: Apple FaceTime HD Camera (Built-in) type: USB driver: uvcvideo 
           Display: x11 server: X.Org 1.20.10 driver: loaded: ati,intel,radeon unloaded: modesetting resolution: 
           1: 1920x1080~60Hz 2: 1680x1050~60Hz 
           OpenGL: renderer: AMD TURKS (DRM 2.50.0 / 5.10.18-1-MANJARO LLVM 11.1.0) v: 3.3 Mesa 20.3.4 
Audio:     Device-1: Intel 6 Series/C200 Series Family High Definition Audio driver: snd_hda_intel 
           Device-2: AMD Turks HDMI Audio [Radeon HD 6500/6600 / 6700M Series] driver: snd_hda_intel 
           Sound Server: ALSA v: k5.10.18-1-MANJARO 
Network:   Device-1: Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe driver: tg3 
           IF: enp2s0 state: up speed: 1000 Mbps duplex: full mac: <filter> 
           Device-2: Qualcomm Atheros AR93xx Wireless Network Adapter driver: ath9k 
           IF: wlp3s0 state: down mac: <filter> 
           IF-ID-1: br-6c39ac847b4b state: down mac: <filter> 
           IF-ID-2: docker0 state: down mac: <filter> 
Bluetooth: Device-1: Apple Built-in Bluetooth 2.0+EDR HCI type: USB driver: btusb 
           Message: Required tool hciconfig not installed. Check --recommends 
Drives:    Local Storage: total: 465.76 GiB used: 65.37 GiB (14.0%) 
           ID-1: /dev/sda vendor: Seagate model: ST3500418AS size: 465.76 GiB 
Partition: ID-1: / size: 456.66 GiB used: 65.08 GiB (14.3%) fs: ext4 dev: /dev/sda2 
           ID-2: /boot/efi size: 196.9 MiB used: 23.4 MiB (11.9%) fs: vfat dev: /dev/sda1 
Swap:      ID-1: swap-1 type: file size: 256 MiB used: 0 KiB (0.0%) file: /swapfile 
Sensors:   System Temperatures: cpu: 45.0 C mobo: N/A 
           Fan Speeds (RPM): cpu: 1197 
Info:      Processes: 262 Uptime: 6h 15m Memory: 23.47 GiB used: 5.37 GiB (22.9%) Shell: Zsh inxi: 3.3.01

Have the same problem with my iMac 13,2 (27" late 2012). Only with Kernel 5.4 (LTS) I can adjust the brightness. Every newer Kernel does not work.

There was a major change since Kernel 5.8 with OLED displays. So I found no solution yet.

Maybe you can try the workaround from comment 5 : 1878433 – Maximum screen brightness only since kernel 5.8

Thanks for your reply.

But the comment 5 from your link doesn’t work on my machine.

I find a clue after searching for months.

Model iMac12,1 has two dedicated graphics options:

  • AMD Radeon HD 6750M / TURKS ChipID=0x6741
  • AMD Radeon HD 6770M / TURKS ChipID=0x6740

Model iMac12,2 aslo has two dedicated graphics options:

  • AMD Radeon HD 6770M / TURKS ChipID=0x6740
  • AMD Radeon HD 6970M / BARTS ChipID=0x6720

Inspecting systemd-analyze logs (if provided) from Linux Hardware Database,
iMac12 with 6770M (0x6740) or 6970M (0x6720) had both
systemd-backlight@backlight:acpi_video0.service
and
systemd-backlight@backlight:radeon_bl0.service (or radeon_bl1 on some machines)
started.

That means there were directories
/sys/class/backlight/acpi_video0/
and
/sys/class/backlight/radeon_bl0/
exposed by ACPI interface.

But all iMac12,1 with 6750M (0x6741) had only systemd-backlight@backlight:acpi_video0.service.
So we could find /sys/class/backlight/acpi_video0/ only in system, but not /sys/class/backlight/radeon_bl0/.

All of them did not touch kernel boot parameters, especially the acpi_osi or acpi_backlight.

In most posts, the suggested solution is kernel parameters acpi_backlight or acpi_osi.
Someone responded with success, some not. It may be caused by difference between Radeon 6750M and 6770M.

I guess it’s probably a ACPI kernel module or radeon driver bug for iMac12,1 with 6750M.