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

Neuer Desktop

Innenansicht
Innenansicht

Mittlerweile ist es ja schon sieben Wochen her, dass ich mir meinen neuen Desktop zusammengebaut habe und ich wollte schon längst einmal darüber berichten. Das hole ich jetzt nach. Zuerst eine Liste der verbauten Komponenten:

  • Intel Core 2 Quad Q8400, 4x 2.67GHz, boxed
  • ASUS EAH4870 DK/HTDI/1GD5, Radeon HD 4870, 1024MB GDDR5, 2x DVI, TV-out, PCIe 2.0
  • ASUS Maximus II GENE, P45 (dual PC2-6400U DDR2)
  • Mushkin DIMM Kit Black Ascent XP2-8500 4GB PC2-8500U CL5-5-5-15 (DDR2-1066)
  • ASUS TM-22 schwarz
  • Western Digital Caviar Blue 640GB, SATA II
  • Enermax LibertyECO 500W ATX 2.3

Das DVD-Laufwerk habe ich aus meinem alten Desktop weiterverwendet.

Die Zusammenstellung des Desktops habe ich unter zwei Voraussetzungen erstellt. Zum einen musste Sims 3 in FullHD mit höchsten Grafikeinstellungen darauf laufen, was mich auf den 4870 Chipsatz von ATI brachte. Zum zweiten musste der Rechner eine maximal Höhe von 40 cm aufweisen. Das war nur mit einem ?ATX Motherboard möglich.

Festplatte und RAM
Festplatte und RAM

Der ATI 4870 Chipsatz wird von verschiedenen Herstellern verbaut, aber die Dark Knight Karte schien die leiseste Option zu sein und hat außerdem mit 1 GB ausreichend Grafikspeicher auch für zukünftige Anwendungen.

Der Intel Core 2 Quad Q8400 war zum Zeitpunkt der Auswahl der Prozessor mit dem besten Preis/Leistungs Verhältnis aller Desktop Prozessoren.

Damit diese beiden zentralen Komponenten optimal miteinander kommunizieren können, musste der Chipsatz die maximalen Transferraten unterstützen. Der günstigste Chipsatz, der diese Bedingung erfüllt, war der Intel P45 und das einzige ?ATX Motherboard mit diesem Chipsatz war das ASUS Maximus II GENE.

Bei der Auswahl des Arbeitsspeichers habe ich mich vor allem nach der Dokumentation des Motherboards gerichtet. Der Mushkin Kit war kaum teurer als andere 4 GB Kits und hatte gute Testberichte und inkludierte Kühlkörper, die aber nicht zu groß für das kompakte Gehäuse schienen. Beim Einbauen stellte sich heraus, dass ich großes Glück hatte, da die Festplatte über den RAM Slot hinausragt und sich die Kühlkörper haargenau hinter der Festplatte ausgingen.

Damit die angeführten Komponenten nicht unter Leistungsengpässen zu leiden haben, musste ich ein 500 Watt Netzteil auswählen. Das Enermax LibertyECO wurde als ruhig beschrieben und für die gut ausgeführten Anschlüssel gelobt.

Bei der Gehäuseauswahl gab es also zwei Bedingungen: eine maximale Höhe von 40 cm und kein eingebautes Netzteil. Da in den Angaben auf der Herstellerseite ein Platz für den Frontlüfter angegeben wurde, fiel die Wahl aufgrund optischer Kriterien auf das TM-22. Diese Wahl war leider nicht gut, da vorne tatsächlich kein Platz für den Frontlüfter vorgesehen war. Das hätte ich mir nach den Bildern von der geschlossenen Frontblende denken können.

Rearlüfter
Rearlüfter

Trotzdem war die Enttäuschung groß, als ich feststellen musste, dass der Luftzug im Gehäuse nicht ausreicht um den Chipsatz am Motherboard unter 50 °C zu halten, was für einen stabilen Betrieb aber notwendig wäre. Bei Anwendungen mit hoher Belastung öffne ich im Augenblick das Gehäuse um das Absturzrisiko zu verringern.

Die Festplatte war mir eigentlich relativ gleichgültig. Die Western Digital Caviar Blue 640GB war eine günstige Wahl und schien jedenfalls auch in Zukunft genügend Platz zu bieten. Das Preis/Leistungs Verhältnis von größeren Platten war außerdem nicht besser.