Linux on MacBook Air with NVIDIA drivers

In order to use the proprietary NVIDIA driver on a MacBook Air 3,1 (11-inch, late 2010) with the NVIDIA GeForce 320M chipset booting openSUSE Leap 42.1 in EFI mode, create the file /etc/grub.d/01_enable_vga.conf with the following content:

#!/bin/sh
set -e

# Initialize the PCI-E registers of MBA 3,1 for the nvidia driver

cat << EOF
btrfs-mount-subvol /dev/sda3 /boot/grub2/x86_64-efi /@/boot/grub2/x86_64-efi
insmod setpci
setpci -s "00:17.0" 3e.b=8
setpci -s "02:00.0" 04.b=7
EOF

and run grub2-mkconfig -o /boot/grub2/grub.cfg to update the bootloader configuration. Be aware that you might need to determine the PCI bus ids for your machine first by running lshw -businfo -class bridge -class display as described in this post on askubuntu. (Please note that using only the setpci command as suggested in that post for Ubuntu systems does not suffice on openSUSE systems, because on this system the setpci functionality is provided as a separate GRUB module and must be loaded explicitly with the insmod command; since the GRUB modules are not installed on the boot partition, their location has to be mounted first using the btrfs-mount-subvol command.)

Reboot and verify that the settings have actually been applied by running the setpci command on the command line as root without the part after the equal sign (e.g. setpci -s "00:17.0" 3e.b). This should return the values assigned before, i.e. 8 or 7 respectively.

Then proceed installing the nvidia driver by choosing the appropriate package on the openSUSE Community website. In my case (NVIDIA GeForce 320M), that means choosing the „Geforce 8 series and later“ option.

Nonkonform

Leider hat Samsung mit dem Fernseher UE37ES6300 nicht geschafft, standardkonforme (VESA) Montagebuchsen für  vorzusehen, weshalb beispielsweise die Vogels EFW 8105 Superflat S Wandhalterung nicht ohne weiteres daran zu befestigen ist:

Abhilfe bringen vier Stück M8 Schrauben mit 3cm Länge aus dem Baumarkt.

Fedora 15 on NVIDIA NVS 3100M

In an earlier post, I already wrote about how to install the proprietary video driver on Fedora. In a brief update I suggested to change the acpi_sleep kernel option to accomplish proper display wake-up from standby. Unfortunately, that solution doesn’t work reliably in my experience. Today I found a solution that seems to successfully work around the problem of the black screen by waking up the screen „manually“.

Gernot Walzl wrote a „nasty workaround“ (quoting himself) in the form of the following script:

#!/bin/sh

# nvidia_dpms_fix.sh
# 2011-06-12
# by Gernot WALZL

# nasty workaround for nvidia drivers to resume from dpms off/suspend

export DISPLAY=:0

getXauthority () {
  export XAUTHORITY=$(ps -C X -f | grep "$DISPLAY" \
    | sed -n 's/.* -auth \([^ ]*\).*/\1/p')
}

handle_line () {
  if echo "$1" | grep -e "(EE) NVIDIA.* DisplayPort link training failed" \
      > /dev/null; then
    getXauthority
    xset dpms force on
  fi
}

tail --follow=name /var/log/Xorg.0.log --retry --lines=1 2> /dev/null \
  | while read line; do
    handle_line "$line"
  done

To actually make this do its job, I copied it into /usr/local/bin, made it executable and created an autostart entry for GNOME 3 by saving the following lines under ~/.config/autostart/nvidia_dpms_fix.sh.desktop

[Desktop Entry]
Type=Application
Exec=/usr/local/bin/nvidia_dpms_fix.sh
Hidden=false
X-GNOME-Autostart-enabled=true
Name=NVidia DPMS fix
Comment=Wakes up the display properly

I believe the problem that is being worked around is indicated by a line in the Xorg.0.log:

(WW) NVIDIA(GPU-0): AUO (DFP-3): Failed to set DisplayPort power state

Although I could only test this on my machine (HP EliteBook 8440p), with some luck this works for all cases where a similar log message is found.

HP Ambient Light Sensor on Linux

Often, the simple answers are those you don’t find on the web. Here is one of them with hopefully enough keywords to make it findable:
To activate the Ambient Light Sensor on my new HP EliteBook 8440p (article and pictures will follow later) running Fedora 13, the following command (issued by root obviously) did the trick:

echo 1 > /sys/devices/platform/hp-wmi/als

Also don’t forget to check if the ALS is enabled in the BIOS if this doesn’t work. It seems to be enabled by default though.

Umbau der ASUS EAH4870 Dark Knight

Mein Desktop Rechner, den ich mir Mitte letzten Jahres wie berichtet zusammengestellt habe, hatte seitdem ein gravierendes Problem: obwohl ich bei der Auswahl darauf geachtet hatte, produzierte das Gerät einen unangenehm hohen Lärmpegel. Der Schuldige war die zentrale Komponente, um die herum ich damals die Zusammenstellung aufgebaut hatte, die Grafikkarte. Dabei handelt es sich um die ASUS EAH4870 Dark Knight mit 1 GB Video RAM. Der darauf verbaute Kühlkörper mit Ventilator war bei weitem lauter als ich mir das vorgestellt hatte.

Da ich mich mit dieser Situation nicht dauerhaft abfinden wollte, recherchierte ich vergangene Woche bezüglich so genannten after-market Kühlern für Grafikkarten. In die engere Auswahl kamen folgende Kühler:

Andere Modelle musste ich aus Platzgründen von vornherein ausschließen. Von den drei angegebenen ist der Accelero zwar der günstigste, aber laut diversen testberichten auch der lauteste. Fairer Weise muss man dazusagen, dass bei dem Thermalright Kühler im Unterschied zu den beiden anderen keine Ventilatoren mitgeliefert werden. Nachdem ich den Platz in meinem ASUS TM-22 Gehäuse ausgemessen hatte, musste ich leider feststellen, dass für den favorisierten Musashi sehr wahrscheinlich nicht genügend Platz gewesen wäre.

Daher fiel meine Wahl auf den T-Rad2, den ich dann auch bestellte und heute Früh geliefert bekam. Dazu nahm ich zwei Noiseblocker Black Silent XE2 Ventilatoren, um die Luftzirkulation um den Kühlkörper sicherzustellen. Die Fotos dokumentieren den Umbau. Das Ergebnis ist sehr zufriedenstellend und die Geräusche des Rechners werden jetzt von der Festplatte dominiert. Bei inaktiver Festplatte hört man hauptsächlich den von Intel mitgelieferten CPU Ventilator.

Der Ausgangszustand
Nach Abnehmen des Originalkühlers
Nach der Reinigung der GPU und der VRAM Bausteine
Mit neuen Video-RAM Kühlkörper
T-Rad2 Kühlkörper
Das geht sich, wie erwartet, haarscharf aus
Kühler mit Ventilatoren
Ansicht von unten
Die Grafikkarte samt neuer Kühllösung ist wieder im Gehäuse verbaut