Web reference


There are currently 3 CAN libraries usable with protocoltool.

Note: CAN bus messages have only 8 bytes of data, so protocoltool breaks lines into 8-byte packets.


The library can-0.7.1 is outdated and doesn't compile on Ubuntu Feisty. It's now merged with lincan.

Ocera Linux CAN driver (hosts the lincan drivers)

Get release lincan-0.3.4 or later from this site:

To compile within Ubuntu, I had to switch the experimental OMK make to

the standard one. See the lincan's README file for details.


make install

should install the library, the can module, and make the entries in /dev

Before starting protocoltool

To use this library, the module can(.ko) must be installed

modprobe can (additional parameters)

For virtual CAN

modprobe can hw=virtual io=0

if this returns "FATAL: module can not found", then

modprobe can (additional parameters)

depmod -a

should do the trick.

copy these headers from lincan-*/include into /usr/local/include/can

can.h, canmsg.h

On Slackware 10.1 (Kernel 2.4) I had to create the file /dev/can0 manually.


A GPL library for use with specific devices

To compile on Ubuntu, it needs a symbolic link pointing to the latest generic headers. Newer versions of Ubuntu makes the link automatically.

linux -> linux-headers-2.6.27-11-generic(for Ubuntu 8.10)

A library exists for Windows it can be linked with GCC. See the README file for the installation.


Another library which contains a virtualcan port, useful for software development.

A library exists for Windows, it can also be linked with GCC. See the README file for the installation.