Category Archives: FOSS

Best of breed CAN device driver hitting mainline Linux Kernel 2.6.31

Starting with the upcoming 2.6.31 Linux Kernel (already available as 2.6.31-rc1) a functional version of the socketcan device driver found its way into mainline.

While socketcan itself has been in mainline for quite a while, there where no drivers for actual real-world hardware. This has now changed and I will therefore be able to run a Kernel which is one step closer to mainline.

Unfortunately however some kind of unioning filesystem is still missing.

Anyway, back to Controller–area network!

Since I wrote my own CAN device driver as a character device a couple of years ago I started thinking about a CAN-bus driver beeing implemented as a Network device. I wrote my own driver in the first place, because I needed concurrent access which is (needless to say) also possible with socketcan.

Fortunately two guys at Volkswagen Research finally started doing exactly this. Thank you to the socketcan people for providing such a nice piece of software!

So here is a mini HOWTO for getting it up and running.

What you need:

  • A GNU/Linux machine
  • A decent Kernel (2.6.31-rc1 or higher)
  • git and subversion
  • A supported CAN-bus card. I’m using one sold by EMS Wünsche, but a lot of other SJA1000 based cards may also work.
  • The simple userland utilities from svn://svn.berlios.de/socketcan/trunk/can-utils
  • A decent Version of iproute2 (not yet available in current GNU/Linux distributions at the time of writing)

How to get it up and running:

First of all compile and boot a Kernel where all CAN-related support is enabled either as a module or build into the Kernel.
Afterwords check out the userland utilities from subversion (svn checkout svn://svn.berlios.de/socketcan/trunk/can-utils) and compile them by just typing make.
Same goes for iproute2 (git clone git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git); just type make as well. Copy all the resulting binaries to an appropriate place (e.g. /usr/local/bin). Do not use make install at least in iproute2 sourcetree, because this will replace your systems ip command.

Now all you need to do ist to enable you can0 interface by means of the following command:

ip link set can0 up txqueuelen 1000 type can bitrate 1000000

Use another value than 1000000 for different bitrates.

The txqueuelen might not be needed in your case if you don’t have peak traffic like I do.

OK, that`s it! You can now connect your bus to some device and use candump for watching your raw CAN pakets on the bus.

For integration into Debian GNU/Linux you may use something like the following in /etc/network/interfaces for automatically starting up your can0 device on system boot:


--cut--
auto can0
iface can0 inet manual
# bitrate 1MBps
# increase TX queue length because of the pulsed nature of
# the traffic we generate
up /usr/local/bin/ip link set can0 up txqueuelen 1000 type can bitrate 1000000
down /sbin/ifconfig $IFACE down
--cut--

See Documentation/networking/can.txt inside your Kernel tree for further documentation.

Das Internet der CDU ist nicht das Internet das ich kenne

Gestern Abend lief auf Phoenix im Rahmen der Sendung “Unter den Linden” ein Streitgespräch mit dem Titel “Unter Piraten – Wem gehört das geistige Eigentum?” zwischen Prof. Rupert Scholz (CDU) und Dirk Hillbrecht, dem Vorsitzenden der Piratenpartei.

Jetzt auf dem Weg zum Linuxtag nach Berlin hatte ich im ICE genug Zeit mir mal den Podcast davon anzusehen.

Im Großen und Ganzen hat sich der Herr Hillbrecht für einen Amateurpolitiker eigentlich recht gut geschlagen.

Die Äußerungen des Herrn Scholz hingegen waren gar nicht gut für meinen Blutdruck!

Deutlich wurde die Tatsache, dass es sich bei dem Begriff “geistiges Eigentum” um einen Propagandabegriff handelt durch die Aussage von Herrn Scholz, dass Urheberrecht, Patentrecht und Markenrecht ja im Kern das selbe wären und durch das Grundgesetz als Eigentum geschützt wären.

Wenn ich so etwas höre kommt mir ja echt die Galle hoch. Digitale Inhalte sind eben gerade kein Eigentum wie es das Grundgesetz (zu Recht!) unter Schutz stellt. Außerdem tut hier definitiv differenzierte Betrachtung Not. Hier hätte Herr Hillbrecht deutlicher widersprechen müssen!

Bei Strafrechtlern ist es offensichtlich wie bei Innenministern. Da ist die Verschiebung der subjektiven Wahrnehmung weg von der Freiheit hin zu Sicherheit und Repression offensichtlich qua Amt gegeben.

Schade, dass Freie Software kein Thema war, denn die ist zusammen mit Wikipedia und anderen Projekten wie Openstreetmap (in dem ich selbst aktiv bin) das Beste Beispiel dafür, dass das Netz eben nicht nur strafrechtlich relevante Dinge enthält. Ja, dass Kreativität sogar ganz gut ohne finanzielle Anreize funktioniert.

Die Zeit hat hier guten Artikel der aufzeigt wie rückwärts gewandt die Netzpolitik der CDU ist.

Auch das Thema Internetzensur wurde angesprochen und da gab es eine sehr interessante Argumentation von Herrn Scholz warum man Netzssperren unbedingt braucht: Internationales Strafrecht sei viel zu kompliziert um die Täter zu verfolgen!

Wie man daraus schlußfolgern kann, dass man also quasi als Alternative (höchstwahrscheinlich) verfassungswidrige Websperren braucht kann offensichtlich nur jemand nachvollziehen der das Netz nicht ansatzweise verstanden hat.

Wann kapieren solche Leute eigentlich endlich, dass die Welt längst flach geworden ist und dass es in Zukunft schlichtweg überhaupt keine Alternative zu einem besser funktionierenden internationalen Strafrecht geben wird?

Die Zeit in der wir uns in unserem Nationalstaat einigeln können ist doch (dank Internet) schon längst vorbei.

Wer meint mit Hilfe von Netzzensur die Zeit zurückdrehen zu können, der tut mir echt leid.

Was ich zum Schluß noch loswerden möchte. Wie kann man ein Medium wie das Internet immer noch als Neu bezeichnen, wo es doch selbst das Web schon seit 15 Jahren gibt.

Ich selber bin seit genau dieser Zeit dabei. Damals noch mit .public_html auf dem Hochschulrechner.

Lassen wir es nicht zu, dass uns alte Männer mit Kugelschreibern das Internet kaputt machen.

Categories: