Probleme mit Hintergrundbeleuchtung des Samsung N210 unter Xubuntu 11.04 nach Boot

Seit längerem hatte ich schon ein Problem mit der Hintergrundbeleuchtung meines Samsung N210 unter Xubuntu. Das Problem äußerte sich dadurch, dass sich das Backlight direkt nach dem hochfahren nicht einstellen ließ. Beheben konnte ich das Problem jedoch durch einen Neustart der grafischen Oberfläche. Das wird auf dauer jedoch etwas nervig. Daher habe ich mich heute einmal daran gemacht eine Lösung für das Problem zu finden.

Da das Problem nicht immer auftrat, habe ich schon länger vermutet, dass es etwas mit dem Ladezeitpunkt des Linux on my Samsung Treibers samsung-backlight zu tun hat. Es scheint so als ob der Treiber vor der grafischen Oberfläche geladen werden muss, um die Funktion der Hintergrundbeleuchtung zu gewährleisten. Weil ein einfaches manuelles Laden durch die rc.local nicht funktionierte, habe ich mich mit den Upstartskripten beschäftigt.

Zunächst musste ich das automatische Laden des Treibers unterbinden. Zunächst also einen Eintrag am Ende der /etc/modprobe.d/blacklist.conf:

# Samsung Backlight Blacklist
# Manually loaded in /etc/init/modprobe-samsung-backlight.conf
blacklist samsung-backlight

Als nächstes muss ein Upstartskript her, welches das Laden des Treibers übernimmt. Dieses habe ich unter /etc/init/modprobe-samsung-backlight.conf gespeichert:

# Startup script loading samsung-backlight on runlevel 2
description "Loading samsung-backlight on runlevel 2"

start on runlevel 2

exec /sbin/modprobe samsung-backlight

Das Skript versucht den samsung-backlight Treiber im Runlevel 2 zu laden. Das einzige was nun noch zu tun war, war das starten der grafischen Oberfläche so lange zu verzögern, bis dieses Upstartskript geladen ist. Dafür musste ich in die Startbedingung des GDM Upstartskript (/etc/init/gdm.conf) eingreifen:

# Added last condition to ensure that samsung backlight is loaded before
# GDM is started
start on (filesystem
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udev-fallback-graphics)
          and stopped modprobe-samsung-backlight)

Die hinzugefügte Bedingung sollte die grafische Oberfläche erst starten, wenn das samsung-backlight Skript ausgeführt worden ist. Für andere Derivate von Ubuntu muss vermutlich ein ähnliches Skript angepasst werden (Bsp.: /etc/init/kdm.conf).

Bisher scheint der Workaround zu funktionieren. Eventuell wird noch ein sleep am Ende der modprobe-samsung-backlight.conf nötig sein.

Leave a Reply