Version 3.1.2
This is the usermode daemon for the Intrepid Control Systems SocketCAN support. This daemon requires that intrepid.ko
is loaded on your system.
-
Build and load the kernel module follwowing the instructions in intrepid-socketcan-kernel-module.
-
Install the dependencies needed. These are CMake 3.2+, GCC 4.8+, git, libusb-1.0-0-dev, and libpcap.
On Ubuntu or other Debian-based systems, run sudo apt install git cmake gcc libusb-1.0-0-dev libpcap-dev build-essential
.
-
Clone this repository recursively by running
git clone --recursive https://github.com/intrepidcs/icsscand.git
-
Switch into the cloned directory,
cd icsscand
-
Make a build directory and switch into it,
mkdir build && cd build
-
Invoke CMake,
cmake .. -DCMAKE_BUILD_TYPE=Release
-
Build the daemon,
make
-
The daemon is now available as
libicsneo-socketcan-daemon
-
Start the daemon up to begin connecting to devices. Use
sudo ./libicsneo-socketcan-daemon
. If you're happy with the results and would like to run in the background, runsudo ./libicsneo-socketcan-daemon -d
to run in daemon mode. -
CAN interfaces will have been created, but are "down" or, in other words, not enabled for transmit and receive yet. You can see them with
ip link
. They will be labelledcan0
,can1
, and etc. They will have an alias listed which corresponds to the serial number of the device and network on that device. -
Enable the CAN interface with
sudo ip link set can0 up
, replacingcan0
with whichever interface you'd like to enable -
You can now use any SocketCAN application with this interface. A good package for testing is the
can-utils
package. You can get this package withsudo apt install can-utils
. A good testing tool which comes with this package iscandump
. Runningcandump can0
will print a line for every incoming frame.