LinCAN is a Linux kernel module that implements a CAN driver capable of working with multiple cards, even with different chips and IO methods. Each communication object can be accessed from multiple applications concurrently. It supports RT-Linux, 2.2, 2.4, and 2.6 with fully implemented select, poll, fasync, O_NONBLOCK, and O_SYNC semantics and multithreaded read/write capabilities. It works with the common Intel i82527, Philips 82c200, and Philips SJA1000 (in standard and PeliCAN mode) CAN controllers. It is part of a set of CAN/CANopen related components originally developed as part of OCERA framework. The CAN related components have been separated into its own OrtCAN repository.

The list of supported hardware and boards

LinCAN Quick Build Instructions

There are more options to build LinCAN driver. The first one is to use standalone driver module build. The latest version of standalone LinCAN sources can be obtained from GIT repository and build by next commands

git clone git://ortcan.git.sourceforge.net/gitroot/ortcan/lincan
cd lincan
./build-lincan.sh

The other option is to build LinCAN driver as part of the whole OrtCAN tree

git clone git://ortcan.git.sourceforge.net/gitroot/ortcan/ortcan
cd ortcan/
git submodule update --init
make default-config
make

The default configuration options should be overridden by user specified options in toplevel "config.omk" file before final "make" invocation. The choices 'y'/'n' can be specified to enable or disable build of specified hardware/board support, it would be next line in "config.omk" file for tscan1 card for example

CONFIG_OC_LINCAN_CARD_tscan1=y

If the build should target other then actually running kernel then LINUX_DIR option in "config.omk" file is used to specify location, where kernel has been build. If a build for non-native architecture is required then cross-compiler binaries have to be specified

LINUX_DIR=/usr/src/linux-2.6-mpc51200-build
CC=powerpc-linux-gnu-gcc
CXX=powerpc-linux-gnu-g++
AR=powerpc-linux-gnu-ar
LD=powerpc-linux-gnu-ld