Sonntag, 7. April 2013

pimp my AppleTV (1st Gen)

Seit ziemlich genau fünf Jahren versieht ein AppleTV der ersten Generation bei mir im Wohnzimmer seinen Dienst als Heimserver. Im Vergleich zu einem NAS ermöglicht mir die potentere (inzwischen nicht mehr zeitgemäße) CPU, Filmmitschnitte zu encoden. Wie ich finde, durchaus eine Alternative zu den NetTops - nur der Speicher ist mit 256MB unzeitgemäß winzig.

Auch preislich ist der aTV1 attraktiv, mein Gerät war ein USA Eigenimport für umgerechnet 160EUR. Inwischen sind Gebrauchtgeräte bei eBay deutlich unter diesem Preis zu bekommen.

Die initiale Installation von Linux ist inzwischen dank dem aTV-USB-Creator kein Hexenwerk mehr. Anfang 2013 habe ich aus thermischen und akustischen (Laufgeräusch) Gründen die Festplatte gegen ein eine IDE-SSD augetauscht und dazu das perfekte RecoveryTool v1.0 von der ursprünglichen Entwicklerseite des aTV-Bootloader genutzt. Hier gibt es auch noch einige wertvolle Tipps, die den aTV1 betreffen.



Auf meinem aTV läuft ein Debian (inzwischen Wheezy). Reibereien wegen der Treiber braucht man längst nicht mehr befürchten, seit ein paar Jahren schon läuft bei mir der Standard-Kernel. Als Head-less System verzichte ich bewusst auf die Grafikfähigkeiten. Hier ein paar Auszüge meiner Modulkonfiguration:

#/etc/modprobe.d/blacklist_local.conf
#

# these watchdog drivers break some systems
blacklist iTCO_wdt

# ueberfluessige module entfernen
blacklist button
blacklist i2c_i801
blacklist rng_core
blacklist 8139cp

# Grafiktreiber wird nicht benoetigt
blacklist nouveau
blacklist video

blacklist tpm
blacklist tpm_tis
blacklist tpm_bios

Zur Sicherheit übergebe ich dem Soundtreiber noch den verbauten Typ:
#/etc/modprobe.d/sound.conf
#

options snd-hda-intel model=imac24

Zum Stromsparen:
#/etc/modprobe.d/powersave.conf
#

install acpi_cpufreq    modprobe --ignore-install acpi_cpufreq ; \
                                modprobe cpufreq_stats ; \
                                echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ; \
                                echo 360000 > /proc/sys/vm/dirty_writeback_centisecs ; \
                                echo 5 > /proc/sys/vm/laptop_mode


options processor max_cstate=2

Da die Grafikkarte brach liegt und der Arbeitsspeicher ohnehin knapp bemessen ist, nutze ich die grandiose Idee aus dem aTV-Bootloader Forum, den Speicher der Grafikkarte als SWAP zu nutzen. (SWAP auf einer SSD soll ja auch nicht so gut sein...):
#/etc/modprobe.d/phram.conf
#

options phram phram=VRAM,0x20000000,15Mi phram=VRAM,0x10000000,63Mi
install phram   modprobe --ignore-install phram ; \
                modprobe mtdblock ; \
                mkswap /dev/mtdblock0 ; \
                mkswap /dev/mtdblock1 ; \
                swapon /dev/mtdblock0 -p 10 ; \
                swapon /dev/mtdblock1 -p 5


Ich wollte es nicht glauben, aber im aTV ist tatsächlich ein Lüfter verbaut, der zudem wegen seiner geringen Größe auch noch recht schnell dreht. Von diesem nämlich stammte das surrende Geräusch, welches ich für die Festplatte gehalten hatte (weshalb diese gegen eine SSD getauscht wurde).
Neben dem Lüfter ist die blinkende Front-LED ein weiteres Ärgernis, welches man dank des ATV-Tool von Peter Korsgard beides in den Griff bekommen kann. (Im Zusammenhang mit dem IR-Receiver existiert für die LED auch noch ein Tool namens ATVCLIENT, allerdings kann hier der Lüfter nicht gesteuert werden.
atvtool -f -l 0 -r


Schaltet man nur den Lüfter aus, wird das System selbst beim Nichts-tun ziemlich heiß. Überprüfen lässt sich das mit dem auf der Grafikkarte verbauten Thermosensor. Dafür nutze ich das Programm NVClock (nvclock -T) welches eigentlich zum übertakten von Nvidia Grafikkarten dient.
Verwendet man das Programm genau zum gegenteiligen Zweck (untertakten), dann wird's auch nicht mehr so warm im aTV:
nvclock -f -n 1