Linux

Display-Projekt – Teil 1

0

Nachdem die Idee und die Bauteile jetzt mehrere Jahre brach lagen, hab ich mich heute endlich mal wieder dazu durchringen k√∂nnen. Nach ein bisschen basteln und rumprobieren gibt es auch erste Erfolgserlebnisse. ūüôā

img_20161018_175647

Das 7″-Display wird per SPI (16MHz) angesprochen, was den Bildaufbau schon relativ flott macht. Der verbaute Controller auf dem Display ist vom Typ RA8875. F√ľr diesen Controller gibt es unter Raspbian direkt einen Framebuffer-Treiber. Lediglich der Controller vom Touchscreen (FT5306) str√§ubt sich noch ein wenig. Inzwischen h√§ngt das Display nicht mehr an dem Acme-SOC, sondern an einem Raspberry Pi Zero. Das vereinfacht die Entwicklung durch die Unterst√ľtzung der Community enorm. Ein erster Test mit fbi lief erfolgreich. Das Ergebnis kann man auf den Fotos sehen.

img_20161018_175612

Als N√§chstes werde ich versuchen den Touchcontroller ans Laufen zu bringen, ein Geh√§use zu bauen und die Komponenten dort einzupassen. Eventuell wirds auch eine Backplane geben. Mal schauen…
Ausserdem warte ich noch auf einen Ambient Light-Sensor und w√ľrde gern die Hintergrundbeleuchtung des Displays entsprechend ansteuern k√∂nnen, was der RA8875 wohl unterst√ľtzt, der Treiber allerdings nicht.

Stay tuned…

Probleme mit BtrFS

0

Dabei fing es so harmlos an…

Bevor ich meinen Homeserver vor ein paar Monaten zusammenbastelte, machte ich mich nat√ľrlich schlau was sich in Sachen Dateisysteme inzwischen alles getan hatte und welches sich f√ľr meine Zwecke am besten eignen w√ľrde. Nach ein paar Tagen, die ich mit Recherchen um rumprobieren verbrachte, fiel meine Entscheidung auf BtrFS. Das ist zwar nach wie vor im experiementellen Status, aber sollte angeblich sehr robust und auch schon ausgereift sein. Also Softraid angelegt, Verschl√ľsselung dr√ľbergelegt und das ganze mit ner Prise BtrFS garniert. Bis letzte Woche lief dann auch alles einwandfrei. Dann allerdings kam die Idee Backups nun auch auf einer USB-Platte anzulegen und daf√ľr USB 3.0 zu nutzen, welches der HPN54L nat√ľrlich nicht unterst√ľtzt. Also kurzerhand ne PCIe-Karte eingebaut, alles angeschlossen und drauflos gescriptet. Zumindest in der Theorie. In der Praxis st√ľrzte der Server nach etwas Last auf der Karte st√§ndig ab und lies sich nicht mal mehr reseten. Dabei ging dann auch ein gr√∂√üeres VM-Image fl√∂ten, welches zu dem Zeitpunkt nat√ľrlich ge√∂ffnet war. In der Folge bekam ich beim Zugriff st√§ndig csum-Fehler. Besonders beim t√§glichen Backup nervte das schon etwas und so kam der Wunsch, die Datei nach M√∂glichkeit zu retten oder zumindest die Fehler zu beseitigen.

Daf√ľr gibt es wie f√ľr jedes andere Dateisystem unter Linux diverse Tools. Auch hier kurz schlau gemacht, benutzte ich das mitgelieferte „btrfsck“, welches allerdings mit einer Fehlermeldung abbrach. Also weitergelesen, rumprobiert und irgendwann stiess ich auf den Tipp, dass man die Option „–init-csum-tree“ nutzen k√∂nnte, um den csum-Baum neu anzulegen und das Problem damit zu beseitigen. H√§tte ich mich an der Stelle weiter schlau gemacht, w√§re ich irgendwann auch einen Foreneintrag gestossen, der darauf hinweist, dass der Baum nicht neu aufgebaut, sondern schlichtweg gel√∂scht wird. Aber hinterher ist man ja immer schlauer…

Nachdem der Befehl etliche Stunden durchr√∂delte, lies sich das Device zwar mounten, aber das wars dann auch schon. Jetzt hagelte es Fehler und nach kurzer Zeit kam dann auch prompt ein Kernel-Panic. So kam ich an die Daten nicht mehr ran. Zum Gl√ľck gibt es aber zumindest eine M√∂glichkeit aus solch kaputtreparierten Devices die Daten heraus zu ziehen. Sie versteckt sich hinter der Option „restore“ des Tools „btrfs“. Einfach das Devices und den Ort wohin geschrieben werden soll angeben und schon gehts los. Als kleiner Fallstrick hat sich die Option „path-regex“ erwiesen, die nicht allzu intuitiv die M√∂glichkeit bietet und bestimmte Dateien wiederherzustellen. Hier ein kleines Beispiel:

btrfs restore /dev/mapper/vg_raid-raid /mnt/backup/restore/ -v –path-regex ‚^/(|abc(|/.*))$‘

 

Hier wird alles aus dem Unterordner „/abc“ rekursiv von Device vg_raid-raid wiederhergestellt. Es landet im Ordner „restore“ des Mounts „backup“ und weils so sch√∂n aussieht, schalten wir auch noch Verbose mit der Option -v ein. Bei mir hats bestens funktioniert, wenn ich auch lang f√ľr ein Beispiel f√ľr den regul√§ren Ausdruck suchen musste. Vielleicht sollte ich noch erw√§hnen, dass nur die reinen Daten zur√ľckgeholt werden. √Ąnderungsdatum, Rechte, Soft- und Hardlinks etc. sind allesamt futsch.

Scotty, wir brauchen mehr Entropie!

0

Heute bin ich √ľber einen Daemon gestolpert, der eigentlich auf jedem Linuxserver installiert sein sollte. Zumindest wenn man wenn man HRNG nicht traut. ūüėČ

Mt dem Tool „havege“ bzw. seinem Daemon „haveged“ kann man n√§mlich sch√∂n den Pool f√ľr Entropie auf Linuxrechnern aufstocken. Normalerweise sollte dort immer genug Vorrat vorhanden sein, aber gerade bei Headless-Systemen – also eben Servern – ohne Tastatur- und Mauseingaben schw√§chelt der schon mal. Hier springt „haveged“ ein und generiert aus den/dem Timer(n) der CPU zus√§tzliche Entropie. Gerade bei Servern, die √∂fter Keys generieren oder generell verschl√ľsseln, ein nicht zu untersch√§tzender Vorteil.

Go to Top