« Back to home

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.…

Read more »

SocketCAN Hardwareunterstützung

Nachdem ich nun schon einmal für meine Diplomarbeit und einmal für Kayak rausfinden wollte, welche CAN-Hardware eigentlich von SocketCAN unterstützt wird, habe ich mich dazu entschieden, hier mal eine inoffizielle Liste zu veröffentlichen. Die Liste wird wahrscheinlich schnell veralten oder unvollständig sein. Es gibt auch weitere Treiber, die nicht im Kernel gepflegt werden. Für Ergänzungen bin ich natürlich dankbar. Die Information stammt aus dem Linux-Kernel Version 3.1-rc4. After searching for the supported CAN hardware of SocketCAN for my diploma thesis and for Kayak I choose to write an inofficial list on my own.…

Read more »

Es geht voran...

Nachdem die letzten Prüfungen geschrieben waren hatte ich wieder Zeit, mich Kayak zu widmen. In den letzten Wochen ist dort einiges passiert. Ich konnte aufräumen, das Interface vereinfachen und einige Bugs beheben. Außerdem hat Kayak dank Sebastian Dittmar ein Icon und einen eigenen Splash-Screen bekommen. Wie mir gerade auffällt noch mit einem kleinen Rechtschreib-“Fehler” ;) aber das macht schonmal ziemlich was her. Ich bin nämlich grafisch komplett untalentiert und musste daher auf externe Hilfe zurückgreifen.…

Read more »

SocketCAN und der socketcand unter Arch Linux

Der Arch Linux Kernel hat zur Zeit keine SocketCAN Module integriert. Die einfachste Möglichkeit, dies zu ändern, ist, den aktuellen Kernel über das ABS neu zu bauen und dabei die benötigten Module zu integrieren. Die Basis dafür ist dieser Artikel. **Custom Kernel mit SocketCAN-Support **Zunächst müssen einige Pakete installiert werden: $ pacman -S abs base-devel Jetzt wird ein Verzeichnis erstellt, in dem der Kernel neu kompiliert wird. Anschließend kann das PKGBUILD und Hilfsdateien des aktuellen Kernels in das Verzeichnis kopiert werden.…

Read more »

Kayak UI mockups

In den letzten Monaten ist bei der Entwicklung von Kayak einiges passiert. So langsam habe ich mich mit den grundlegenden Strukturen der Netbeans-Plattform vertraut gemacht und es geht etwas leichter von der Hand. Das Interface ist, wie ich finde, schon ganz schick und auch im Hintergrund funktioniert schon eine ganze Menge. Einen aktuellen Screenshot gibt es hier: [caption id=“attachment_470” align=“aligncenter” width=“590” caption=“Aktueller Screenshot von Kayak”][/caption] [caption id=“attachment_466” align=“alignright” width=“160” caption=“Log file explorer”][/caption]…

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.…

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.…

Read more »

SocketCAN Tutorial 1 - Virtuelle Busse

In einem älteren Post hatte ich ja schon eine kurze Einführung in SocketCAN gegeben. Da ich mich in der nächsten Zeit wohl etwas genauer damit beschäftigen werde hier ein kleines Tutorial. Ich fand die ersten Schritte doch etwas holprig und daher hier der Reihe nach: Das Ganze sollte mit einem aktuellen Linux funktionieren (Ubuntu 10.10 ist perfekt). Zunächst mal müssen wir die Kernel Module laden: <code>dschanoeh@Krikkit1:~$ modprobe can dschanoeh@Krikkit1:~$ modprobe can_raw dschanoeh@Krikkit1:~$ modprobe can_bcm dschanoeh@Krikkit1:~$ modprobe vcan</code> Anschließend kann ein neues virtuelles CAN-Device über…

Read more »