Thinkpad X220: BIOS Update
Mein kürzlich erstandenes Thinkpad X220 leidet unter den mit aktuellen Kerneln (~2.6.38 - 3.0.4) auftretenden Hitzeproblemen (Post folgt). Mit einem BIOS-Update soll sich laut Lenovo das Lüfterverhalten verbessern - Grund genug
In diversen Wikis werden die unterschiedlichsten Methoden beschrieben, das von Lenovo bereitgestellte CD-Image ohne optisches Laufwerk und mit Linux-Bordmitteln gebootet zu bekommen. Mit der gängigsten Methode (syslinux) bekam ich jedoch nur einen kompletten Freeze (nebst verbundenem Schreck).
Funktioniert hat mit meinem X220 die Variante Using grub4dos. An den Temperaturen hat das soweit ich sagen kann aber nichts geändert.
BeQuiet – wörtlich
Nach nun fast drei Jahren hat der Lüfter meines Netzteils (BeQuiet Dark Power Pro 750W) im unteren Drehzahlbereich hochgradig nervige Betriebsgeräusche entwickelt.
Entgegen einiger Forenbeiträge ließ er sich jedoch mit etwas Basteleinsatz (Kabel trennen und neu verbinden, Klemme irgendwo unterbringen) durch einen alten Papst-Lüfter ersetzen, der hier noch rumlag.
Ergebnis: himmlische Ruhe...
Netbox Fan-Mod
Mehr Kühlung kann die NetBox-nT330i aus dem Hause Foxconn gut gebrauchen: im Auslieferungszustand liegen die Temperaturen im Idle unter Xorg bei ca. 35°C für den Atom 330 und ca. 41°C auf der NVIDIA ION GPU.
Der Umstand des laufenden Xorg ist hier nicht zu vernachlässigen: ein bloßes Laden des nvidia-Moduls lässt den Grafikchip scheinbar nicht runtertakten - erst eine richrige Xorg-Instanz bewirkt das. Die CPU unterstützt kein Frequency Scaling und läuft daher immer mit Volldampf.
Wenn man die Box als HTPC verwenden möchte, stört einen der schon im Idle relativ hoch drehende, kleine Lüfter enorm - mal ganz davon abgesehen, dass die Temperaturen unter Last (HD-Videos per vdpau) kritische Bereiche anschneiden (~46°C CPU, ~70°C GPU) . Es besteht also Handlungsbedarf - hooray, ein Grund zum Basteln!
Da die Halterung für die ab Werk verbaute Kühler-Lüfter-Kombination proprietär zu sein scheint, scheidet ein Austausch der beiden aus. Die Wärmeleitpads hatte ich gleich zu Beginn durch Arctic MX-3 ausgetauscht, was aber nur leichte Verbesserungen brachte (~1°C). Neben der Idee, durch zusätzliche Kupferplättchen die Wärmeübertragung zum Standardkühler zu verbessern bleibt also nur die Verbesserung der Frischluftzufuhr: Case Modding.
Nach diversen Versuchen mit kleinen 8er Bohrungen auf der Oberseite des Gehäuses (siehe Löcher mit Klebestreifen) habe ich nun mit großem Geschütz in Form eines alten 120mm CoolerMaster-Lüfters, der für den Einsatz im PC-Case zu schwach, aber dafür recht leise war, Erfolg. Durch die komplett ausgesägte Öffnung in der Oberseite wird nun genügend kühle Luft angesaugt, die nebenbei auch noch Platte und RAM kühlt. Befestigt habe ich das Ding mit den üblichen Senkkopfschrauben von Innen.
Die Temperaturen bleiben auch unter Last mit 26°C CPU und 31°C GPU so niedrig, dass der integrierte Lüfter nur noch selten anspringt, und die verbaute Platte bleibt ebenfalls unter 32°C.
Den ohnehin schon recht leisen CoolerMaster-Lüfter betreibe ich an einem der rückseitigen USB-Ports, wo er aufgrund der Spezifikationen mit lediglich 100 mA laufen muss und daher auch nicht seine maximale Drehzahl erreicht - praktisch lautlos.
So betreibe ich das Ding unter Arch mit XBMC als MediaCenter, und umgebauter XBOX-Fernbedienung.
XBOX 360: RROD, Fix und Folgen (R.I.P.es)
Vor kurzem hatte ich die Gelegenheit, von einem Freund eine gebrauchte XBOX 360 Core zu erwerben. Meine alte XBOX der ersten Generation tat seit Langem gute Dienste an Silvester oder Filmeabenden, und so entschied ich mich, das gute alte Ding in die wohlverdiente Rente zu schicken und in der Konsolengeneration voranzuschreiten.
Da die neue Konsole in der Core-Version nur mit 20GB HDD und einem Controller verkauft wird, besorgte ich mir auch gleich einen zweiten Controller und eine 250GB Platte von Western Digital, die ich nach HowTo XBOX-tauglich flashen konnte - die Halsabschneiderei seitens Microsoft war damit umgangen.
Leider hatte ich nicht lange Freude an der Konsole - nach Installation des ersten Spiels auf der neuen HDD zeigte sich der sagenumwobene Red Ring of Death.
Nach einigen Google-Orgien und Rücksprache mit dem Vorbesitzer öffnete ich die Konsole (HowTo), zog die Klammern für CPU- und GPU-Kühler nach und wandte gleich noch den Baking-Fix und Fan-Shroud-Mod an. Und da ich mit überhitzenden Rechnerkomponenten leider schon oft zu tun hatte, ging ich auf Nummer sicher und rückte der armen Konsole noch mit Kneifzange zu Leibe, um den Strom der Abluft zu verbessern.
Leider alles umsonst, wie sich nach kurzer Zeit zeigte: die Konsole friert nach ca. 5-10 Minuten Uptime ein, unabhängig von Belastung oder Art der Nutzung. Weder Netzteil noch Kühlkörper werden nennenswert warm, und die Lüfter bleiben auf niedrigster Geschwindigkeit - ich schätze ich habe den armen Chip zu lange gebacken und ihm damit den Todesstoß versetzt
Bye, XBOX 360, es hat wohl nicht sollen sein. Aufheben werde ich das Teil wohl trotzdem - und wenn nur für verspielte Bastlereien an verregneten Sonntagnachmittagen. Die Controller lassen sich glücklicherweise auch am PC als Gamepad nutzen, und die 250GB HDD kann ich in eine andere Konsole packen, sobald ich das Backup der Original-Firmware finde...
XBOX-Fernbedienung auf USB
Lötkolben, die Zweite: diesmal ging es meiner alten XBOX-Fernbedienung bzw. deren Empfänger-Dongle an den Kragen. Das Ding sollte statt an der kaum noch benutzen XBOX an einen USB-Port der Foxconn NetBox, die ich als HTPC einsetze.
Die Kollateralschäden bei der Aktion fielen mit einem angeschmorten Mauspad und zwei Brandflecken auf dem Schreibtisch etwas höher aus als sonst - der Gewinn dafür letztendlich aber auch
Technisch gesehen sind die XBOX-Anschlüsse identisch mit USB, besitzen jedoch eine andere mechanische Kopplung (Steckerform) - klar, sonst könnte man am Ende noch normale Peripherie anschließen und wäre nicht auf Microsoft-Zubehör angewiesen... *grml*
Um das Ding nun auf USB umgefummelt zu bekommen, musste ein altes USB-Kabel dran glauben, dessen Adern es dann an die richtigen Punkte auf der Platine des Dongles anzulöten galt. Die richtigen Punkte fand ich in einem XBMC Wiki-Artikel.
Versuch 1: Anlöten als Zusatz: zuerst wollte ich die benötigten Adern zusätzlich an den Punkten des Dongles anlöten, um selbiges hinterher immer noch an der XBOX nutzen zu können. Das funktionierte zwar ganz gut, und mit altem Telefonkabel, was ich durch vier
Löcher an der Unterseite gesteckt hatte, lief zuerst auch alles wunderbar - hielt aber nicht lange, nach 10 Minuten Testen löste sich der erste Punkt.
Versuch 2: Anlöten als Ersatz: ...oder auch "Anlöten nach Ablöten"
Den XBOX-spezifischen Stecker entfernte ich mit einer wohl dosierten Mischung aus Hitze und roher Gewalt. Danach konnte ich die USB-Adern an der Rückseite der Platine unterbringen, was wesentlich besser funktionierte. Außerdem opferte ich ein weiteres Kabel, diesmal von einem alten USB 1.1 Hub, welches eine wunderbare Einkärbung gegen Zug am Kabel besaß. Win!
Die Konfiguration für lircd, bestehend aus /etc/lirc/lircd.conf und /etc/lirc/hardware.conf besorgte ich mir ebenfalls aus dem XBMC-Wiki, damit läuft das Ding nun einwandfrei.
Memo an mich selbst: zu Weihnachten Feinlötstation wünschen...
Audigy 2 – Eine Ode an die Vergangenheit
... oder Früher war alles besser! Der letzte Jammerpost beschreibt den Ärger, den man heute immer noch mit dem Thema "Sound unter Linux" haben kann - zumindest bei neuer (und minderwertiger) Hardware. Völlig schmerzfrei und absolut out-of-the-box kann es dagegen bei älterer (bzw. hochwertigerer) Hardware laufen:
Beim Verfassen des vergangenen Posts habe ich mich immer wieder versucht, zu erinnern, wie das früher so mit ALSA & Co. lief; dabei viel mir meine gute, alte Creative Soundblaster Audigy 2 Platinum ein, die irgendwo im Keller in der Hardwarekiste vor sich hin gammelte. "Moment, die war doch hardwaremixing-fähig..." - kurz Google befragt und bestätigt.
Problem bei der Audigy (und Grund für das Triste Dasein in der Kiste) war, dass das zugehörige Output-Rack für die Front bei Einbau in einen 5,25"-Schacht aufgrund der herausstehenden Regler das Schließen meiner Gehäusetür verhindern würde. Ohne Rack hätte es jedoch keinen Kopfhörer- und Mikro-Ausgang vorne am Gehäuse gegeben. Zumindest nicht so ohne Weiteres, was ich damals noch nicht wusste...
Nach ein par Google-Orgien fand ich diverse HowTos (z.B. hier oder hier), wie man an einen internen, 10-poligen Anschluss auf der Karte ein AC'97- bzw. HD-Audio Frontpanel anschließen kann. Nun ist dieser Anschluss leider bei der Audigy 2 (ohne "ZS") leider nicht bestückt - also Arbeit für den Lötkolben. Mit ein paar Zentimetern altem Telefonkabel konnte ich die benötigten Pins (1, 2, 4, 6, 8) schließlich emulieren und mithilfe einer kurzerhand umfunktionierten USB-Buchse an mein Frontpanel anschließen. Hierbei noch ein Tip: Wer Pin 1 (HP-Masse) nicht festgelötet bekommt, kann sich die Masse auch einfach vom Slotblech holen, verursacht keine Störgeräusche.
Also dann im BIOS die onboard-Karte deaktiviert, System gebootet und noch flux das emu10k1-Modul gebacken - fertig. Sound läuft direkt über ALSA mit parallelem Zugriff, 5.1 mit 48000Hz, out-of-the-box. Kein Soundserver, keine /etc/asound.conf, keine ~/.asoundrc - so einfach und elegant kann Sound unter Linux auch sein, die richtige Karte vorausgesetzt. Leider haben selbst die etwas besseren (=teureren) aktuellen Karten kaum noch Hardwaremixer.
Upmixing für Stereo-Signale erreiche ich mit den folgenden paar Zeilen:
# /etc/asound.conf
pcm.ch51dup {
type plug
slave.pcm "surround51"
slave.channels 6
route_policy duplicate
}Früher waren also zumindest die Soundkarten besser
aerotools Update
Dank der Semesterferien fand ich nun endlich Zeit, mein aerotools-Projekt auf Vordermann zu bringen. Neben einigen Bugfixes und Vereinfachungen am Daemon habe ich die Library auf libusb-1.0 portiert, was laut Homepage die empfohlene, aktuelle Version ist. Unter Arch coexistiert sie als libusb1 neben der libusb, die standardmäßig installiert wird - etwas verwirrend, wenn man den Hinweistext auf der Homepage nicht gelesen hat
Alle aquaero®-Besitzer seien also herzlich eingeladen, die neue Version zu testen! Bugreports sind immer willkommen, am Besten über die "Issues"-Funktion auf Github.
Temperatur > Tuning
Meinen Core i7-920 (2.67GHz Standardtakt) hatte ich bis vor kurzem noch per BCLK auf 3.6GHz übertaktet, was bei den 2009er Modellen erfreulicherweise recht zuverlässig funktioniert - ambitioniertere Tuner jagen die Dinger sogar permanent auf über 4GHz hoch. Negativer Nebeneffekt der Sache: Hitze. Der (alte) Core i7 hat mit 130W TDP auf Standardtakt schon eine recht hohe Verlustleistung; übertaktet entwickelt er sich dann endgültig zum Hitzkopf.
Trotz Wasserkühlung knackte mein Exemplar so nicht selten die 70°C - Marke, was mir im Hinblick auf den Sommer einige Sorgen bereitete. Zugegeben, mein System hat in Punkto Kühlungsdesign zwei entscheidende Defizite: 1.) Im Kreislauf hängt neben CPU auch eine GTX 280 als GraKa, die nicht unerheblich zur Hitze beiträgt. 2.) Der Rechner steht eingekeilt zwischen Schreibtisch-Seitenteil, Schrank und Tischplatte, sodass nur nach vorne Luft zu- und wegströmen kann.
Das alles veranlasste mich kürzlich zu einem konkreten Benchmark mit linpack:
Intel(R) LINPACK data Current date/time: Fri May 7 19:49:37 2010 CPU frequency: 3.610 GHz Number of CPUs: 8 Number of threads: 8 Parameters are set to: Number of tests : 1 Number of equations to solve (problem size) : 21000 Leading dimension of array : 21000 Number of trials to run : 100 Data alignment value (in Kbytes) : 4 Maximum memory requested that can be used = 3528424096, at the size = 21000 ============= Timing linear equation system solver ================= Size LDA Align. Time(s) GFlops Residual Residual(norm) 21000 21000 4 252.846 24.4215 3.959026e-10 3.178913e-02 21000 21000 4 252.587 24.4466 3.959026e-10 3.178913e-02 21000 21000 4 252.602 24.4451 3.959026e-10 3.178913e-02 21000 21000 4 252.614 24.4439 3.959026e-10 3.178913e-02 21000 21000 4 252.531 24.4520 3.959026e-10 3.178913e-02 21000 21000 4 252.550 24.4501 3.959026e-10 3.178913e-02 21000 21000 4 252.500 24.4549 3.959026e-10 3.178913e-02 21000 21000 4 252.466 24.4583 3.959026e-10 3.178913e-02 21000 21000 4 252.481 24.4568 3.959026e-10 3.178913e-02 21000 21000 4 252.489 24.4560 3.959026e-10 3.178913e-02 21000 21000 4 252.467 24.4582 3.959026e-10 3.178913e-02 21000 21000 4 252.475 24.4574 3.959026e-10 3.178913e-02 21000 21000 4 252.482 24.4567 3.959026e-10 3.178913e-02 21000 21000 4 252.477 24.4573 3.959026e-10 3.178913e-02
Intel(R) LINPACK data Current date/time: Mon May 10 20:33:50 2010 CPU frequency: 2.670 GHz Number of CPUs: 8 Number of threads: 8 Parameters are set to: Number of tests : 1 Number of equations to solve (problem size) : 21000 Leading dimension of array : 21000 Number of trials to run : 100 Data alignment value (in Kbytes) : 4 Maximum memory requested that can be used = 3528424096, at the size = 21000 ============= Timing linear equation system solver ================= Size LDA Align. Time(s) GFlops Residual Residual(norm) 21000 21000 4 342.691 18.0188 3.959026e-10 3.178913e-02 21000 21000 4 342.756 18.0154 3.959026e-10 3.178913e-02 21000 21000 4 342.765 18.0149 3.959026e-10 3.178913e-02 21000 21000 4 342.770 18.0146 3.959026e-10 3.178913e-02
Summa summarum also ~25% Performance-Einbuße, genau der linearer Weise erwartete Wert. Nun zu den Auswirkungen auf die Temperaturen:
| CPU idle | CPU Last | Case | Wasser | |
| OC'ed | 47°C | 75°C | 38°C | 43°C |
| norm. | 42°C | 53°C | 31°C | 33°C |
Alle Werte außer "CPU Last" beziehen sich auf eine Uptime von ca. 4h bei normalem Office-Workload und einer Raumtemperatur von ca. 23°C.
Fazit: 25% weniger (theoretische) CPU-Performance für 30% bessere Temperaturwerte - für den Sommer ein wie ich finde fairer Tausch. Zumal bei den einzigen wirklich Rechenintensiven Anwendungen (Games!) hauptsächlich GPU und weniger CPU belastet wird.
Hier noch die relevanten Settings für beide Modi:
| BCLK | Multipl. | DRAM Freq. | VCore | |
| OC'ed | 180.0MHz | 20.0 | DDR3-1443MHz | 1.18750V |
| norm. | 133.0MHz | 20.0 | --* | --* |
Die *-Werte werden noch nachgeliefert. Am VCore könnte man sicher noch etwas Undervolting betreiben, hier heißt das Ziel <1.0V
Canon Pixma iP4500 unter Arch
Heute trieb mich ein weiterer Bug in TurboPrint dazu, meinen Drucker endlich mal mit den Canon-Treibern neu in CUPS einzubinden. Verlief alles viel einfacher als erwartet, hier ein kleiner Abriss:
- Treiber von der Canon-Homepage besorgen (Link)
- Treiber entpacken, .deb werden nicht gebraucht:
tar -xf 28476.tgz && rm *.deb
- rpms auspacken (rpmextract muss installiert sein):
rpmextract.sh cnijfilter-common-2.80-1.i386.rpmrpmextract.sh cnijfilter-ip4500series-2.80-1.i386.rpm
- Den Inhalt des erstellten usr-Ordners an Ort und Stelle schieben:
mv usr/* /usr
- Per Webinterface (http://localhost:631) den neuen Drucker anlegen, als Treiber wird "Canon iP4500 series Ver.2.80" gewählt
- Soweit so gut, es fehlen noch Settings für Druckqualität und Auflösung. Hier ist Handarbeit in
/etc/cups/ppd/Canon_iP4500.ppdgefragt:- in der Resolution-Section können folgende Auflösungen hinzugefügt werden:
*Resolution 300/300 dpi: "<>setpagedevice" *Resolution 1200/1200 dpi: "<>setpagedevice" *Resolution 2400/2400 dpi: "<>setpagedevice" *Resolution 4800/4800 dpi: "<>setpagedevice"
- nach der Resolution-Section ist Folgende Section einzufügen:
*OpenUI *CNQuality/Quality: PickOne *DefaultCNQuality: 3 *CNQuality 2/High: "2" *CNQuality 3/Normal: "3" *CNQuality 4/Standard: "4" *CNQuality 5/Economy: "5" *CloseUI: *CNQuality
- in der Resolution-Section können folgende Auflösungen hinzugefügt werden:
- Da Canon nur 32bit-Treiber anbietet müssen auf einem x86_64-System noch diverse 32bit-libs installiert werden. Was genau fehlt, lässt sich mit
ldd32 /usr/lib/cups/filter/pstocanonijüberprüfen; bei mir waren es folgende:- lib32-libgpg-error
- lib32-libgcrypt
- lib32-opencdk
- lib32-libtasn1
- lib32-lzo2
- lib32-ncurses
- lib32-readline
- lib32-gnutls
- lib32-libpng
- lib32-libcups
- lib32-popt
- lib32-db
- lib32-heimdal
- lib32-sqlite3
Das Ganze ließe sich bestimmt auch per PKGBUILD automatisieren, aber da ich mir nicht sicher bin, ob das mit den Canon-Lizenzen verträglich wäre, belasse ich es lieber bei einem HowTo.
Mehr S100 Tuning
Über Pfingsten ist mal wieder Zeit zum Basteln geblieben. Die S100 bekam einen aktiven CPU-Fan (leider habe ich noch keine Möglichkeit gefunden, die CPU-Temperatur auszulesen) nebst zugehörigem Retro-Kippschalter unter der klappbaren Frontblende, einen mittleren Papst-Lüfter als Case-Fan und einen Netzschalter. Außerdem wurden diverse Kabelführungen verbessert und der Anschluss fürs externe Netzteil versenkt.
(keine Kommentare wegen der abenteuerlichen Verbindungsstellen, wird noch gefixt
)













