oDroid XU4: Lüfter und Kühlkörper Austausch
Als mein oDroid XU4 angekommen ist war ich glücklich. Endlich mehr Dampf, als in einem Raspberry Pi, und dennoch wesentlich stromsparender als ein richtiger Homeserver. Wäre da nur nicht diese eine Sache, die mir sofort negativ aufgefallen ist: der oDroid XU4 Lüfter. Dieser gibt bei bereits geringen Umdrehungen extrem nervige Töne von sich.
Zum Bestellzeitpunkt wollte ich mir sogar die passiv gekühlte Version, den oDroid XU4Q, bestellen, allerdings war dieser ausverkauft und die Ungeduld siegte schließlich. Schlussendlich habe ich mir dann den offiziellen Kühlkörper nachbestellt – in der Hoffnung, dass er nun Ruhe bringt. Und er brachte Ruhe. Ich habe diesen Kühlkörper* auf Amazon gefunden, der wohl ebenso gut funktioniert. In Kombination mit klebender Wärmeleitpaste wird er genauso gut halten.
Die CPU-Temperatur lag bei durchschnittlich 55°C, ein in meinen Augen guter Wert. Das Problem war nur, dass Nextcloud und andere Dienste gerne auch Leistungsspitzen erzeugten und die CPU somit schnell auf bis zu 90°C trieb. Was macht der oDroid XU4, wenn er solche gefährlichen Temperaturen erreicht und misst? Richtig: runtertakten, um die CPU zu schützen. So können mich simple I/O-Anweisungen schnell zum frustrieren bringen. Ich musste mir also eine leise aktive Kühlung überlegen.
Wie machen es Andere?
Im Internet bin ich beim recherchieren auf verschiedene Lösungen gestoßen. Die Linux Monk3ys haben beispielsweise einen 60mm Lüfter genommen und einen Adapter von 60mm zu 40mm. In meinen Augen eine optimale Lösung, allerdings habe ich keinen bezahlbaren Adapter im Internet außer bei Alibaba gefunden – und das Problem war mir einfach zu dringend, als dass ich 60 Tage auf die Lieferung warte.
Im offiziellen oDroid Forum habe ich dann eine Fangemeinde des Noctua NF-A4x20* entdeckt. Er wird als flüsterleiser Lüfter vorgestellt und die Herstellung findet auch in Österreich statt – eine lange Lieferungszeit schien diesmal also ausgeschlossen. Als Kühlkörper wird oft ein gigantischer Turm verwendet, der nur leider überall ausverkauft schien, ironischerweise gab’s ihn aber natürlich wieder bei Alibaba.
Auf den Kühlkörper konnte ich verzichten, aber der Lüfter ließ mich nicht mehr los. Bei Amazon wurde er für knapp 15,00 € angeboten – in meinen Augen ein sehr stolzer Preis für einen 40mm Lüfter. Tagelang wog ich ab, um ihn schlussendlich dann doch in einer Nacht und Nebel Aktion (Danke Amazon Same-Day Delivery!) zu bestellen.
oDroid XU4 Lüfter und Kühlkörper Montage
Ich habe mir folgenden Artikel von Amazon bestellt:
Noctua NF-A4x20 5V leiser 40mm Premium-Lüfter*
* hierbei handelt es sich um Affiliatelinks. Das bedeutet, dass ich im Falle eines Kaufes Ihrerseits einen geringen Prozentsatz des Kaufpreises als Vermittlungsgebühr erhalte. Für Sie entstehen dabei keinerlei Mehrkosten.
Zu beachten ist, dass es bei dem NF-A4x20 verschiedene Varianten gibt. So werden manche über PWM oder FLX gesteuert, der oDroid XU4 steuert den Lüfter aber über die Stromstärke. Darüberhinaus liefert der oDroid nur 5 Volt, die 12 Volt Variante kommt somit auch nicht in Frage.
Als der Lüfter ankam war mein erster Gedanke: uff, was ein Brummer. Der oDroid XU4 Lüfter ist im Verhältnis nichts dagegen. Im Lieferumfang sind neben dem Lüfter zahlreiche Adapter, Kabel und Schrauben enthalten. Die braunen Stäbe die Ihr auf dem Bild sehen könnt sind Silikon-Schrauben.
Ich habe den Stecker vom alten Lüfter abgetrennt, ein Adapter Kabel genommen und diese beiden aneinander geklebt – dafür benötigt es keine Elektriker Ausbildung: einfach rot an rot und schwarz an schwarz. Kurzer Test: Lüfter läuft. Und gleich die nächste Erkenntnis: selbst auf 100% ist der Lüfter flüsterleise.
Als Kühlkorper habe ich mich für den nachbestellten von oDroid entschieden. Die Kühlleistung reicht für meine Anforderungen aus und – wie Ihr dem Seitennamen entnehmen könnt – stehe ich auf blau :). Auf Amazon habe ich einen ähnlichen Kühlkörper gefunden, der die selbe Leistung bringt. In Kombination mit klebender Wärmeleitpaste wird er genauso gut halten.
Den Lüfter habe ich mit zwei Schrauben die diagonal gegenüberliegen am Kühlkörper befestigt. Dabei keine Sorge, wenn etwas knackt oder sich Sträben verbiegen – die Schraube bohrt sich zwischen den Sträben fest und wenn diese verbogen sind hat es keinen wahrnehmbaren Einfluss auf die Kühlleistung. Dreht die Schraube aber behutsam rein und nicht soweit, dass eine Sträbe komplett rausbricht. Einfach eine halbe Drehung und danach kontrollieren, wie fest der Lüfter ist – dies solange, bis er fest genug ist.
Schlussendlich noch die zusammengeklebten Kabel mit ins Case verstaut, damit sich da nichts mehr groß bewegt und fertig ist das Upgrade des oDroid XU4 Lüfter. Folgend seht Ihr noch ein paar Bilder:
Automatische Lüftersteuerung unter Ubuntu (Nachtrag vom 09. Juni 2018)
Anfangs habe ich den Lüfter durchgehend auf 100% laufen lassen, dabei ist das in zweierlei Hinsicht nicht gut. Zum einen erhöht es den Stromverbrauch des Boards und zum anderen reduziert es die Haltbarkeit des Lüfters, denn selbstverständlich hält ein Lüfter länger, wenn er weniger Umdrehungen läuft.
Bei dem oDroid XU4 muss man beachten, dass sich die Ansteuerung des Lüfters bei verschiedenen Kerneln anders gestaltet. Auf meinem oDroid ist momentan die Version 4.14.24-113 installiert. Ihr könnt eure Kernel-Version mit folgendem Befehl in eurer Shell ermitteln:
1 | uname -r |
Sollte euer Kernel in der Version 3.X oder 4.9.X sein, empfehle ich euch entweder ein Kernel-Update durchzuführen oder folgenden Beitrag aus dem offiziellem oDroid Forum um die Lüftergeschwindigkeit anzupassen: [HOWTO] Control automatic fan settings on XU3/XU4. Bitte beachtet, dass bei einem Kernel-Update immer das Risiko besteht, dass euer System danach nicht mehr so lauffähig ist, wie ihr es gewohnt seid.
Lüftersteuerung Snippet
Sollte euer Kernel in der Version 4.14.X sein, so möchte ich euch folgend erklären wie ich meinen Lüfter kontrolliere. Als Snippet verwende ich dazu folgendes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # thermal trip points if [ -f /sys/devices/virtual/thermal/thermal_zone0/trip_point_0_temp ]; then echo '60000' > /sys/devices/virtual/thermal/thermal_zone0/trip_point_0_temp echo '70000' > /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp echo '80000' > /sys/devices/virtual/thermal/thermal_zone0/trip_point_2_temp fi if [ -f '/sys/devices/platform/pwm-fan/hwmon/hwmon0/fan_speed' ]; then # geschwindigkeit (0-255) pro trip point setzen echo "75 125 180 255" > /sys/devices/platform/pwm-fan/hwmon/hwmon0/fan_speed fi # aktiviere automatische Lueftersteuerung echo 1 > /sys/devices/platform/pwm-fan/hwmon/hwmon0/automatic |
Im ersten Block setze ich die sogenannten Thermal Trip Points, also die verschiedenen Temperatur-Schwellenwerte, bei denen der Lüfter verschiedene Lüftergeschwindigkeiten annehmen soll. Als Quelle wird dabei die Temperatur des CPU-Sensors genutzt. Diese Schwellenwerte werden durch echo in die jeweiligen Dateien geschrieben. 60000 entspricht dabei 60°C, 70000 entspricht 70°c und so weiter.
Im zweiten Block werden die Lüftergeschwindigkeiten für die verschiedenen Trip Points festgelegt. Als Wert kann man hierbei 0 (keine Lüfterdrehung; keine Stromstärke wird an den Lüfter weitergegeben) bis 255 (schnellste Lüfterdrehung; volle Stromstärke wird an den Lüfter weitergegeben) setzen. Die Werte werden nicht wie im ersten Block in verschiedene Dateien geschrieben, sondern in eine Einzige. Der erste Wert (in meinem Fall 75, also etwa 30% der maximal möglichen Umdrehungszahl) legt die Geschwindigkeit fest, wenn die CPU-Temperatur unterhalb des ersten gesetzten Schwellenwertes liegt, die darauffolgenden entsprechen den jeweiligen Nummerierungen der Trip Points.
Schlussendlich wird im letzten Block die automatische Lüftersteuerung des Kernel aktiviert.
Dieses Snippet habe ich in meinem Autostart, also /etc/rc.local, abgelegt. Bitte beachten, dass ihr am Ende der Datei immer noch das exit 0 habt, da ansonsten euer oDroid XU4 nicht hochfährt! Das Snippet also davor einfügen!
Um ein wenig zu experimentieren, empfehle ich euch das Snippet vorher in einer Bashdatei abzulegen und ein wenig mit verschiedenen Werten zu testen, denn jeder hat andere Anforderungen an Hardware und Last und verschiedene Umgebungsbegebenheiten; bei mir läuft der oDroid zum Beispiel auf dem Dachboden.
Kleiner Tipp noch von mir: da mechanische Teile immer kurz zum anlaufen benötigen, lass ich den Lüfter immer auf 30% laufen, damit ich Thermal Throttling durch kurzfristige hohe Leistungsanforderungen vorbeugen kann.
Fazit
Als Betriebssystem verwende ich Ubuntu 16.04 und genutzt wird der oDroid hauptsächlich zur Entwicklung und als Web-Server für u.A. nextcloud.
Setze ich den Governor aller 8 Kerne auf performance, so liegt die Temperatur durchschnittlich bei 41°C – beim setzen des Governors auf ondemand sinkt die Temperatur sogar auf durchschnittlich 37°C.
Schlussendlich bin ich mehr als glücklich mit der einfachen Lösung. Endlich kein Thermal Throttling mehr, der oDroid kann wieder seine Power nutzen und richtig durchatmen und das alles ohne mir auf die Nerven zu gehen.
Kommentare (5)
Hallo und danke für den Bericht!
Ich stehe vor dem Kauf eines xu4 und tendiere, aufgrund der negativen Berichte über die Lüfterlautstärke, zu dem passiv gekühlten Modell. Leider ist dieses zur Zeit nicht verfügbar. Optional würde ich aber auch einen xu4 und das originale Kühlelement zusammen bestellen und den Lüfter auszutauschen. Wie muss ich mir den Austausch vorstellen? Pass das Kühlelement nach der Demontage des Lüfters ohne Weiteres, oder muss ich mit Überraschungen oder Schwierigkeiten rechnen?
Danke für eine Antwort!
wowbagger
Die De- und Neumontage ist ein leichtes, da sollte man keine Probleme erwarten. Es sind zwei Pins, die einfach nur einrasten. Durch zusammen drücken kann man diese wieder lösen. Sowohl der Lüfter, als auch der originale Kühlkörper haben diese. Die Pins kann man auf der Produktseite vom Lüfter auf Pollin ganz gut erkennen: https://s.blaumedia.com/pollinkuehlkoerper
Hallo Dennis,
danke für den schönen Bericht. Ich hab mir den Lüfter gleich bestellt, nachdem ich deinen Blog gelesen habe. Ebenso hab ich einen neuen Kühlkörper (in blau!) dazugestellt. Den Lüfter kannst du mit 2 (oder gleich 4) Schrauben DIN912-M3x25 befestigen, das geht besser als die mitgelieferten Schrauben, und die Rippen werden nicht verformt.
Jetzt mal ne Frage: der Lüfter hat ja eigentlich drei Kabel: rot, schwarz und gelb. Hast du das gelbe Kabel auch verwendet, oder nur rot und schwarz?
Ein weiteres Problem ist die Stromversorgung bzw. der Platinenstecker. Solch winzige Stecker sind schwer zu kriegen. Wie hast du das gelöst?
Moin Ramon!
Ich habe Rot und Schwarz in den Stecker verbunden. Den Stecker habe ich damals von dem Stock-Lüfter abgeschnitten und mit dem Noctua-Fan verbunden.
Ich habe mal kurz gegoogelt und folgendes gefunden: https://forum.odroid.com/viewtopic.php?f=97&t=29106
Preislich biste dann bei etwa ~1€, wenn du 10 Stück bestellst – siehe: https://de.farnell.com/molex/51021-0200/buchsengeh-use-2pos/dp/889477
Meld dich gerne, wenn du weitere Fragen hast!
VG,
Dennis
Vielen lieben Dank für diesen Erfahrungsbericht!
Habe meinem ODROIDXU4 jetzt diese Kombination bestellt weil der alte Original Lüfter die Biege gemacht hat!