« Back to home

Samba-based TimeMachine with Big Sur

It’s been driving me nuts that file sharing between my linux server and my Mac has been flaky for quite a while with the mounting sometimes failing and TimeMachine having stopped working ages ago.

Therefore, I finally spent some time to dig deeper and to find a working solution. This has been quite complicated since most information on this online is outdated by now because either AFP is still used or the most recent changes through Big Sur aren’t considered.

Read more »

Linux (not on my) Desktop

Ich verkaufe meinen Laptop. Das war mein letzter aktiv genutzter Linux-Computer zu Hause. Mein Desktop-PC wanderte Anfang des Jahres zu meiner Mutter und ich kaufte mir einen iMac. Seitdem lag der Laptop auch eigentlich nur noch im Regal rum. Und das hatte einen guten Grund:

Ich habe keine Lust mehr.

Für’s Studium verkaufte ich damals mein MacBook und legte mir zum Basteln und Entwickeln PC und Laptop zu. Das war damals eine sehr gute Entscheidung und ich hatte während des Studiums viel Vergnügen damit und habe sicher auch einiges gelernt. In manchen Vorlesungen hatte man auch gut Zeit, sich um gebrochene Updates und das Patchen des Kernels zu kümmern. Jetzt ist dem leider nicht mehr so. Im Nachhinein betrachtet sieht das Verhältnis zwischen dem was ich für die Geräte gemacht habe und dem was ich mit den Geräten gemacht habe sicherlich nicht sonderlich gut aus. Das kann und möchte ich mir im Moment nicht mehr leisten. Mein primärer Computer muss immer ins Internet kommen, Video und Audio abspielen und einige andere Dinge tun. Dafür möchte ich keine Zeit investieren müssen. Gar keine.

Read more »

Das SocketCAN-Gateway cangw

Mit dem kürzlich veröffentlichten Linux Kernel 3.2 hat das SocketCAN-Subsystem eine neue Funktionalität erhalten. Über das Tool cangw aus den can-utils ist es möglich, den Kernel anzuweisen, dass er zwischen verschiedenen CAN-Bussen ein Routing von bestimmten Frames durchführen soll. Die Bedienung ist an das bekannte iptables für IP-Pakete angelehnt. Dies hat den Vorteil, dass man einerseits keine Latenzprobleme beim Routen der Frames bekommt, wie es in einem Multiuser-Betriebssystem bei einem Gateway-Programm im User-Space der Fall wäre. Außerdem lässt sich so sehr schnell und einfach mit ein paar Aufrufen aus einem Startskript ein komplexes Routing-Setup aufbauen.…

Read more »

Neuer Fernsehabend-Bespaßungs-Rechner

Letzte Woche starb mein alter Fernsehabend-Bespaßungs-Rechner (Gigabyte MA78GM-S2H und AMD Athlon X2). Er riss sogar noch zwei USB-Sticks mit in den Tod. Ein wenig kündigte sich das Ganze schon vorher an. Ton kam bei meinem Setup über HDMI und da fing er gegen Ende nach einiger Zeit an zu Knistern und Knacken. Man musste die Lautstärke einmal komplett auf Null drehen und dann ging es erst mal wieder. Zum Schluss ging er dann letztendlich zwar noch an, zeigte aber kein Bild mehr an und fuhr nicht hoch.…

Read more »

Reglerentwurf mit Scilab

Ich fand ja Matlab immer irgendwie komisch. Alles was man so an einfacherer Mathematik machen musste konnte mein Taschenrechner auch und dann verteufelt viel Geld für so ein Programm ausgeben? Nein Danke! In der Regelungstechnik gibt es aber doch eine Menge Aufgaben, die man nicht so leicht lösen kann. Unser Dozent machte in der Vorlesung ziemlich schicke Sachen mit Matlab, die mich dann doch aufhorchen ließen. Das kann der Taschenrechner nicht und mit den ganzen freien Mathematik-Umgebungen wie Octave und ähnlichen bin ich auch nie warm geworden. Nachdem ich vor Jahren schonmal das abgrundtief hässliche Scicoslab ausprobiert habe musste ich feststellen, dass Scilab (entspricht Matlab) und die “Erweiterung” Xcos (entspricht Simulink) eine ziemlich schicke Sache sind. Das Programm ist frei und für Linux, Mac OS und Windows verfügbar. Es gibt ein paar Tutorials und eine Online-Hilfe. Was mir jedoch am meisten geholfen hat ist die Kurzanleitung der UNI Siegen. Also zum Glück doch nicht in die FH rennen, um dort mit Matlab zu arbeiten. Ein Glück! Hier habe ich mal ein paar Funktionen für die Regelungstechnik hervorgehoben, die ich gebraucht habe:…

Read more »

Bash-Prompt mit Git-Informationen

Die Bash ist die Standard-Shell unter Linux und vielen Unixen. Der Prompt ist jedoch leider meist ein wenig armselig und längst nicht so hilfreich, wie er eigentlich sein könnte. Das habe ich vor ein paar Wochen bei mir mal geändert und bin ziemlich zufrieden damit. Zunächst mal wollte ich ihn hervorheben, damit es leichter ist, Programmausgaben von Befehlseingaben zu unterscheiden. Das hilft besonders wenn man durch eine lange History durchblättern möchte:…

Read more »

Diagramme mit einfachsten Mitteln

Ich habe gerade eine kleine Umfrage durchgeführt und möchte die Ergebnisse jetzt auswerten. Ein PHP-Skript hat im Ordner results die Dateien res, res1, res2… abgelegt, in denen die Ergebnisse gespeichert wurden:

/* Variablen holen */
$konfiguration = $_POST["konfiguration"];

$path = "results/"; $filename = "res";

/* Dateinamen bestimmen */ while (file_exists($path.$filename)) { $fnum++; $filename = "res".$fnum; }

$fp = fopen($path.$filename, "w") or die("Konnte das Ergebnis nicht speichern!");

fwrite($fp, "konfiguration: "); fwrite($fp, $konfiguration); fwrite($fp, "\n"); /* … */ fclose($fp);

Der Inhalt einer Datei sieht dann folgendermaßen aus:

Read more »

SocketCAN Tutorial 2 - PEAK Adapter

Diese Anleitung wurde am 27.02.2012 aktualisiert und bezieht sich nun auf Treiber-Version 7.4 und Ubuntu 11.10.

Dieses Tutorial ist eine Fortsetzung des ersten SocketCAN Tutorials, das die Verwendung von virtuellen CAN-Devices beschreibt. In diesem Tutorial soll es jetzt um reale Busse und deren Verwendung mit SocketCAN gehen. Im Speziellen geht es um die PCAN-USB Adapter der Firma PEAK.

Kompilieren des PEAK Treibers

Die Treiber für die Adapter werden zur Zeit für Linux nur im Sourcecode bereitgestellt. Auf der Downloadseite finden sich einige Informationen über die unterstützte Hardware und die Einstellungsmöglichkeiten. Im Folgenden installieren wir die aktuelle Version 7.4 des Treibers. Es wird von einer aktuellen Ubuntu-Installation (11.10) ausgegangen.

Read more »

RAW- und BCM-Sockets

Kayak benötigt für Zugriff auf einen CAN-Bus auf der socketcand-Seite einen CAN-Socket. Das kann entweder ein RAW-Socket oder ein BCM-Socket sein, die sich grundlegend durch ihr Verhalten unterscheiden.

RAW-Socket

  • kein Abonnement von IDs

  • keine Komfortfunktionen zum zyklischen Senden von Nachrichten

  • die eintreffenden Frames werden einfach weitergeleitet

BCM-Socket

  • ausschließlich Übertragung von IDs, die auch vorher abonniert wurden. Daher ist es bei einem CAN 2.0B mit 2^29 IDs nicht möglich, diese alle in absehbarer Zeit zu abonnieren

    Read more »

Weihnachten! Endlich ein bisschen Zeit...

Nachdem dieses Semester nun endlich zu Ende gegangen ist habe ich in den nächsten Tagen hoffentlich Zeit, mich mit meinem Projekt für die Diplomarbeit zu beschäftigen. Ein Bericht muss noch abgegeben und eine Präsentation gehalten werden aber dann sollte etwas Luft sein. Ich möchte kurz vorstellen, was ich eigentlich gerade entwickle:

Das Projekt heißt Kayak und soll ein CAN-Diagnosetool für die Linux SocketCAN-Implementierung werden. Es dient dem Senden und Empfangen von Frames auf einem CAN-Bus und zur grafischen Darstellung und Auswertung selbiger. Im Gegensatz zu den meisten aktuellen Produkten, die diesen Zweck erfüllen, findet die Kommunikation jedoch über einen TCP/IP-Socket statt. Dies hat den Charme, dass man keine direkte Verbindung zum zu beobachtenden Bus mehr benötigt. Ein Laptop kann also die Busdaten in einem Raum aufnehmen, während mehrere Benutzer live von unterschiedlichen Orten die Daten auf dem Bus verfolgen (und verändern) können.

Read more »