XPS 15 ein Odysee

Mein damals 6 Jahre alter Mac (MBP mid 2010) hat langsam aber sicher seinen Geist aufgegeben, daher musste ich mich nach einem Ersatz umschauen.

Wichtig für mich war dass der Laptop genügend Leistung hat um einen Desktop zu ersetzen, aber trotzdem mobil genug ist um produktiv in der Uni zu sein.

Relativ fix habe ich den XPS 15 als idealen Ersatz ausgemacht, da er genügend Leitstung hat, gleichzeitg aber auch leicht genug ist um mit ihm Unterwegs zu sein. Nach der nächsten Rabattaktion von Dell kam dann auch der Laptop und wurde zuerst kurz mit Windows betrieben, bis ich dann auf Linux umgestiegen bin.


RMA1

Nach einem halben Jahr kamen dann die ersten Probleme, der linke Lautsprecher ist plötzlich ausgefallen und das Touchpad hat sich aufgelöst. Dabei hat sich vermutlich die obere Glasplatte mit dem kapazitiven Sensor von der unteren Tasterhalterung getrennt. Besonders störend dabei war dass man bei jedem Klick zwei unterscheidbare Klicks gespürt und gehört hat. Kurzum bei Dell angerufen, ein Techniker kam und hat alles anstandslos getauscht. Das Touchpad ist fest mit dem Carbon-Teil des Gehäuses verbunden also musste das komplett getauscht werden.

Danach lief wieder alles reibungslos, daher erst mal ein Lob an den Support!


RMA2

Gut ein Jahr nach dem Kauf trat dann das nächste Problem auf. Das Touchpad ließ sich immer schwerer drücken, insbesondere dann wenn das Gerät warm wurde. Bevor ich jetzt schon wieder den Support rufen wollte habe ich den Deckel aufgemacht und erstmal verdutzt geschaut. Das komplette Akkupack war aufgeblasen.

Inzwischen hatte sich der Akku soweit ausgedehnt dass er das Touchpad von unten aus dem Gehäuse drückte.

Nach einem länglichen aber entschiedenen Anruf beim Support haben sie uns angeboten ein neues Gerät im Austuasch zu schicken, allerdings erst nachdem wir mit Nachdruck auf die in Deutschland geltende Gewährleistung hingewiesen hatten.


RMA3

Nachdem ich ein komplett neues Gerät in meinen Händen hatte, hoffte ich dass ich nun endlich Ruhe hätte – zu früh gefreut. 2 Wochen vor Abgabe meiner Bachelorarbeit hat er micht dann komplett verlassen. Nach einem Reboot hat er nichts mehr gemacht, die Power-LED ging kurz an (<1 sec), die Lüfter drehten kurz hoch – das war es dann aber auch.

Kurzerhand habe ich dann das Internet hektisch und etwas verzweifelt durchforstet und nach möglichen Bugfixes etc. gesucht (interessant was man alles an so einem Gerät resetten kann). Effektiv hat aber nichts geholfen.

Danach hab ich ihn erst einmal beiseite gelegt um mit meiner Arbeit zu widmen. Gut ein Monat nachdem er ausgefallen war ging der Spaß dann erst richtig los. Mein Wunsch das Gerät nach 3 Mängeln zurückzugeben wurde hartnäckig vom Support abgewiesen. Das neue Gerät (RMA2) gilt nicht als Reperatur, daher zählen die 2 Versuche bis zum Fehlschlag der Nachbesserung von neuem, und bequemerweise laufen die 2 Jahre Gewährleistung in gut einem Monat ab.

Nach einiger Diskussion mit dem netten Mitarbeiter, der Beschreibung der beiden vorangegangenen RMAs (insbesondere des aufgeblasenen Akkus) und dem nahenden Ende der Gewährleistungsfrist, ist uns Dell entgegengekommen.

Auf Basis von Kulanz hat Dell angeboten das Gerät zurückzunehmen, was ich primär auf den verständnisvollen Mitarbeiter im Callcenter zurückführe.


PS:

Am Rande will ich noch ein paar Gedanken über das Gerät an sich loswerden. Insegsamt hat mir das Gerät gut gefallen, wenn ich ihn allerdings mit meinem alten Mac vergleiche fällt mir auf dass ich trotzdem einige Sachen vermisse.

  • Die Kamera ist einfach schlecht positioniert, insbesondere da sie es auch als Business Rechner vermarketen.
  • Der Bildschirm lässt sich nur schwer öffnen – wackelt dann aber trotzdem stark.
  • Ein Helligkeitssensor für eine automatische Regelung fehlt.
  • Der Bildschirm ist im Dunklen zu hell, am Tag hat er aber sobald die Sonne scheint keine Chance mehr.
  • Die Tastaturbeleuchtung ist ungleichmäßig, insbesondere bei Sonderzeichen sind nur Teile der Zeichen beleuchtet.
  • Das BIOS beherrscht keine Hardwareverschlüsselung für nvme, nur für SATA – und das steht dann natürlich nur irgendwo in den Support Foren. Das selbe gilt für die sichere Löschfunktion.

Ich werde mir jetzt erstmal keinen Dell mehr kaufen, aber das liegt eher daran dass die Erinnerungen frisch sind, nicht zwangsweise dass es bei anderen Herstellern besser wäre.

Leider hatte ich auch konstant das Gefühl, dass der große Bruder des xps 13 eher Stiefmütterlich behandelt wurde. Insgesamt ist das Gerät immer noch sehr gut, allerdings hat es viele Ecken und Kanten die den Gesamteindruck stark trüben.


PPS:

Hier noch ein kleiner Dank an den Dell Support: auch wenn das Produkt seine Fehler hatte und ich genau wissen musste was ich sagen muss (Gewährleistung etc.) habt ihr mir doch weiter geholfen. Danke dafür und das Verständnis das mir entgegen gebracht wurde.

Vermutlich macht man sich das Leben deutlich leichter indem man einfach direkt am Anfang die Extrakosten für die erweiterete Herstellergarantie berappt, und sich das für beide Seiten sparen kann.

APA 102 Zimmerbeleuchtung

Bereits seit längerem suche ich nach einer neuen Zimmerbeleuchtung für meine Studentenwohnung. Eine Voraussetzung ist dass die Lampen gedimmt werden können. Zweitens muss sie eine bessere Ausleuchtung als die bisherige Wand montierte Neonröhre erreichen. Ein zusätzlicher Bonus wäre wenn die Lampen auch digital Angesteuert werden können.


Ein Freund von mir hat bereits in seiner Wohnung mit LED-Lichtstreifen herumexperimentiert und damit einen Teil seiner Beleuchtung realisiert. Im Gegensatz zu ihm wollte ich meine Neonröhre komplett ersetzen.

Er verwendet die älteren und günstigeren WS2812 LEDs die sehr Timing sensitiv sind. Daher müssen diese faktisch mit einem low-level Chip angesteuert werden. Traditionell mit einem Arduino, Teensy oder vergleichbaren Mikrokonroller. Zusätzlich haben diese Chips eine feste “Bild”-Wiederholrate was gerade bei vielen LEDs in Reihe zu langsameren Updates führen kann. Für eine statische Beleuchtung ist das kein Problem, bei flotten Animationen kann es allerdings zu unschönen Artefakten kommen.


Daher habe ich mich Entschieden eine neuere Alternative einzusetzen. Die APA 102 haben keine feste Timings sondern werden über SPI inklusive eigener Clock-Line angesteuert. So kann Beispielweise auch ein Raspberry-Pi verwendet werden um die LED’s anzusteuern.

Wer eine gute Übersicht über die verschiedenen Chips sucht kann ich nur die Wiki der FastLED-Bibliothek empfehlen: https://github.com/FastLED/FastLED/wiki/Chipset-reference.

RPI ist dabei ein gutes Stichwort, er ist gut geeignet für solche Zwecke: der Support in der Community ist erstklassig, der Hersteller bietet fleißig Sicherheits-Updates an und versucht kontinuierlich die Software als auch die Hardware weiter zu entwickeln. Für eine so primitive Aufgabe wie das Licht an zu schalten ist er in Deutschland mit 36€ jedoch deutlich zu teuer. Auch der Pi Zero für 15€ ist in Deutschland deutlich zu teurer für das was er leistet (und ich ihn verwenden will).

Eine kurze Suche auf AliExpress nach den günstigsten Alternativen bringt den Orange Pi Zero zu Tage. Klein, günstig, genügend Rechenleitstung auch für komplexere Animationen und sogar integriertes W-LAN und Ethernet sind sehr gute Kaufargumente. Der Support und der Hersteller im generellen sind hier jedoch klar der Haken an der Sache. Daher hier ein dickes Dankeschön an das Armbian-Projekt und an Linux-Sunxi die sich um den Support der ARM-Allwinner CPU’s annehmen.


Nach der Installation von Armbian Debian stretch und den nötigen Bibliotheken habe ich auf dem Orange Pi Zero auch eine APA-102 Python-Implementierung zum laufen gebracht. Nur die korrekte SPI Schnittstelle (spidev) musste angepasst werden.

Seitdem gilt: Gott sprach es werde Licht

Aktuell sind meine beiden Bänder nicht miteinander synchronisiert und ich muss jedes mal eine SSH-Verbindung (incl. sudo für den Hardwarezugriff) zu den beiden Orange-Pi’s aufbauen um etwas an der Beleuchtung zu verändern. Aber all der Aufwand hat sich gelohnt, denn ich kann endlich dimmen und die Neonröhre komplett für den nächsten Studenten aufsparen.


Für die Zukunft werde ich beide Bänder synchronisieren müssen und mit einem Schalter verbinden, mit dem ich die LED-Streifen genau so wie die anderen Lampen bedienen kann.

Eine Spielerei wäre ein Helligkeitssensor der automatisch die Beleuchtung regelt oder eine Koppelung mit der Musik Wiedergabe. Am Hilfreichsten schätze ich jedoch eine Weckerfunktion ein, die gleichzeitig mit dem Wecker die Beleuchtung sanft anschaltet, ähnlich wie Philipps sie aktuell verkauft.

Ultimaker 2 Schrittmotor defekt

Bei einem Druck ist zwischendrin einer der Schrittmotoren kaputtgegangen. Abgesehen davon, dass es echt gemein war so kurz vor Schluss muss man den Motor irgendwie wieder flott machen.

 

Ein kompletter Austausch des Motors ist teuer, also den Motor aufmachen und nachschauen was genau kaputt ist. Aus den Kugellagern tritt ein klebriges Gemisch aus Metallspähnen und Schmiermittel aus. Wenn man die Abdeckung vom Kugellager entfernt sieht man, dass innen alles voller Rost ist, der das Lager blockiert.

Wenn man sich die Kugellager genauer anschaut kann man auch erkennen warum. Die Typbezeichnung “625 Z” sagt aus, dass die Lager durch Metalldeckelscheiben abgedichtet werden sollen. Da die Motoren warm werden und sich das Metall ausdehnt kann Schmiermittel austreten, was eigentlich die Korrosion verhindern soll.

Beheben kann man das Problem relativ leicht, indem man neue Kugellager mit Plastikabdeckung kauft die besser abdichtet. (625 2Z)

NetCup SSD vs SAS

Aktuell gibt es bei NetCup wieder Sonderangebote, wie es sie bei NetCup häufiger gibt.
Einerseits kann man zwischen verschiedenen Größenpaketen wählen, als auch zwischen jeweils zwischen einer SSD und einer normalen SAS HDD.
Leider hab ich selbst keine Benchmarks dazu gefunden, beziehungsweise dann nur entweder von unterschiedlichen Servern oder sie waren sich selber nicht ganz sicher ob die Werste so stimmen können.

Also ganz einfach: selber messen. Dazu verwende ich die aktuellen Server (RS 2000) mit und ohne SSD, als auch meinen alten NetCup Server (M SSD v6) der ein Jahr alt ist.

Zuerst mit hdparm, mit und ohne  Cache (-t -T), mit und ohne Kernel Page cache (–direct).

SAS – RS 2000 SAS G7SEa1

 

SSD – RS 2000 SSD G7SEa1

 

old SSD – Root-Server M SSD v6

 

Anschließend messen wir noch mal etwas genauer nach mit fio (Optionen aus dem Netcup-Thread genommen).

SAS – RS 2000 SAS G7SEa1

SSD – RS 2000 SSD G7SEa1

old SSD – Root-Server M SSD v6

 

Vielen Dank an den Besitzer des SSD Servers für die Benchmarks.

Gitlab Docker Backup restore

Ich musste meine Gitlab-Instanz auf einen anderen Server umziehen. Bereits vor dem Umzug habe ich Gitlab in Docker verwendet (sameersbn/gitlab). Dabei bietet dieses Image auch die Möglichkeit automatische Backups zu erstellen die auch aktiviert hatte.

Bei der Wiederherstellung der Daten auf dem neuen Server gab es jedoch ein Problem. Da dieses Image keine der beiden Zusatzsoftwares (PostgreSQL, Redis) integriert hat, habe ich diese separat laufen lassen und über docker-compose zusammengeschaltet. Das Kommando zur Wiederherstellung startet jedoch nur gitlab an sich. Da es im Endeffekt nur einen bereits von Gitlab bereitgestellten Rake-Task aufruft, wollte ich diesen manuell starten.

Gitlab machte dies auch brav und alle Daten wurde übernommen. Sobald jedoch ein Repository aufgerufen wurde konnte er die Daten nicht mehr finden. Nach langer Suche im Dateipfad in dem sich das Repository normalerweise befindet sind mir Symbolic-Links aufgefallen. Docker folgt jedoch in gemounteten Verzeichnissen keinen Links aus Sicherheitsgründen. Die Daten müssen aber außerhalb des Containers liegen, sonst würden sie ja beim nächsten Update verloren gehen.

Das im Image enthaltene Start-Script (Entrypoint) muss also irgendwie die Symlinks umgehen.

Um das Start-Script in docker-compose aufzurufen muss man nur dies nur in der docker-compose.yml Datei angeben. Wichtig ist ebenfalls anzugeben, dass der Container nicht selbständig neu startet, sonst stellt er sich in einer Endlosschleife vom Backup wieder her. Hierbei ist es wichtig den Timestamp des Backups anzugeben welches man wiederherstellen will sowie alle Fragen zu unterdrücken, da man keine Interaktive Eingabe hat und alle Fragen zum Abbruch führen würden.

Nachdem man den Service einmal gestartet hat und alles vom Backup wiederhergestellt wurde kann man ihn wieder Stoppen und das Kommando wieder aus der Konfiguration löschen sowie die Restart-Policy zurücksetzen.

Jetzt sollten wieder alle Daten aus dem Backup in Gitlab vorhanden sein.

 

TL;DR

Docker folgt in Volumes keinen Symlinks. Das im Image enthaltene Entrypoint-Script umgeht die Verwendung von Symlinks.