Skip to content
Please note that GitHub no longer supports your web browser.

We recommend upgrading to the latest Google Chrome or Firefox.

Learn more
Linux-CAN / SocketCAN user space applications
C Makefile Other
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake CMake first pass (#90) Aug 17, 2018
config/m4 add autotools infrastructure Apr 19, 2010
include/linux can/j1939.h: sync with latest kernel state Aug 26, 2019
.gitignore add jcat Jan 4, 2019
.travis.yml CI: treat gcc warning as errors Sep 13, 2018
Android.mk can-utils: added isotpperf tool for performance measurements Feb 4, 2015
CMakeLists.txt buildsystem: add SCM_TIMESTAMPING_OPT_STATS if not already defined May 9, 2019
GNUmakefile.am include: add errqueue.h, net_tstamp.h, netlink.h May 9, 2019
Makefile buildsystem: add SCM_TIMESTAMPING_OPT_STATS if not already defined May 9, 2019
README.md README: properly annotate codeblocks Aug 17, 2018
asc2log.c Add SPDX identifiers Jun 19, 2019
autogen.sh do not use --symlink for autoreconf Jul 2, 2014
bcmserver.c Add SPDX identifiers Jun 19, 2019
can-calc-bit-timing.c Relicense GPL-2.0-or-later files to GPL-2.0-only Jul 10, 2019
can-j1939-kickstart.md can-j1939: remove trailing whitespace Jan 18, 2018
can-j1939.md can-j1939: remove obsolete sections from documentation Jan 18, 2018
canbusload.c Add SPDX identifiers Jun 19, 2019
candump.c candump: silence format-overflow warning Aug 23, 2019
canfdtest.c Relicense GPL-2.0-or-later files to GPL-2.0-only Jul 10, 2019
canframelen.c Add SPDX identifiers Jun 19, 2019
canframelen.h Add SPDX identifiers Jun 19, 2019
cangen.c Add SPDX identifiers Jun 19, 2019
cangw.c cangw: add CAN FD support Aug 16, 2019
canlogserver.c fix include to find SIOCGSTAMP with latest kernel Jul 14, 2019
canplayer.c Add SPDX identifiers Jun 19, 2019
cansend.c Add SPDX identifiers Jun 19, 2019
cansniffer.c fix include to find SIOCGSTAMP with latest kernel Jul 14, 2019
configure.ac buildsystem: add SCM_TIMESTAMPING_OPT_STATS if not already defined May 9, 2019
isotpdump.c isotpdump: fix service 0x23 naming according to UDS specification Jul 30, 2019
isotpperf.c fix include to find SIOCGSTAMP with latest kernel Jul 14, 2019
isotprecv.c Add SPDX identifiers Jun 19, 2019
isotpsend.c Add SPDX identifiers Jun 19, 2019
isotpserver.c Add SPDX identifiers Jun 19, 2019
isotpsniffer.c fix include to find SIOCGSTAMP with latest kernel Jul 14, 2019
isotptun.c isotptun: fix stringop-truncation warnings Aug 25, 2019
jacd.c j1939: drop SO_J1939_RECV_OWN support Aug 26, 2019
jcat.c Relicense GPL-2.0-or-later files to GPL-2.0-only Jul 10, 2019
jspy.c Add SPDX identifiers Jun 19, 2019
jsr.c Add SPDX identifiers Jun 19, 2019
lib.c Add SPDX identifiers Jun 19, 2019
lib.h Add SPDX identifiers Jun 19, 2019
libj1939.c Add SPDX identifiers Jun 19, 2019
libj1939.h libj1939: add libj1939_parse_canaddr and reuse it by testj1939 Jan 4, 2019
log2asc.c Add SPDX identifiers Jun 19, 2019
log2long.c Add SPDX identifiers Jun 19, 2019
page.theme import sample program & help page Nov 20, 2013
slcan_attach.c slcan tools: fix stringop-truncation warnings Aug 25, 2019
slcand.c slcan tools: fix stringop-truncation warnings Aug 25, 2019
slcanpty.c fix include to find SIOCGSTAMP with latest kernel Jul 14, 2019
style.css import sample program & help page Nov 20, 2013
terminal.h Add SPDX identifiers Jun 19, 2019
testj1939.c Add SPDX identifiers Jun 19, 2019

README.md

SocketCAN logo

SocketCAN userspace utilities and tools

This repository contains some userspace utilities for Linux CAN subsystem (aka SocketCAN):

Basic tools to display, record, generate and replay CAN traffic

  • candump : display, filter and log CAN data to files
  • canplayer : replay CAN logfiles
  • cansend : send a single frame
  • cangen : generate (random) CAN traffic
  • cansniffer : display CAN data content differences (just 11bit CAN IDs)

CAN access via IP sockets

  • canlogserver : log CAN frames from a remote/local host
  • bcmserver : interactive BCM configuration (remote/local)
  • socketcand : use RAW/BCM/ISO-TP sockets via TCP/IP sockets

CAN in-kernel gateway configuration

  • cangw : CAN gateway userpace tool for netlink configuration

CAN bus measurement and testing

  • canbusload : calculate and display the CAN busload
  • can-calc-bit-timing : userspace version of in-kernel bitrate calculation
  • canfdtest : Full-duplex test program (DUT and host part)

ISO-TP tools ISO15765-2:2016 for Linux

  • isotpsend : send a single ISO-TP PDU
  • isotprecv : receive ISO-TP PDU(s)
  • isotpsniffer : 'wiretap' ISO-TP PDU(s)
  • isotpdump : 'wiretap' and interpret CAN messages (CAN_RAW)
  • isotpserver : IP server for simple TCP/IP <-> ISO 15765-2 bridging (ASCII HEX)
  • isotpperf : ISO15765-2 protocol performance visualisation
  • isotptun : create a bi-directional IP tunnel on CAN via ISO-TP

Log file converters

  • asc2log : convert ASC logfile to compact CAN frame logfile
  • log2asc : convert compact CAN frame logfile to ASC logfile
  • log2long : convert compact CAN frame representation into user readable

Serial Line Discipline configuration (for slcan driver)

  • slcan_attach : userspace tool for serial line CAN interface configuration
  • slcand : daemon for serial line CAN interface configuration
  • slcanpty : creates a pty for applications using the slcan ASCII protocol

CMake Project Generator

  • Place your build folder anywhere, passing CMake the path. Relative or absolute.
  • Some examples using a build folder under the source tree root:
  • Android : cmake -DCMAKE_TOOLCHAIN_FILE=~/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-21 -DANDROID_ABI=armeabi-v7a .. && make
  • Android Studio : Copy repo under your project's app folder, add add_subdirectory(can-utils) to your CMakeLists.txt file after cmake_minimum_required(). Generating project will build Debug/Release for all supported EABI types. ie. arm64-v8a, armeabi-v7a, x86, x86_64.
  • Raspberry Pi : cmake -DCMAKE_TOOLCHAIN_FILE=~/rpi/tools/build/cmake/rpi.toolchain.cmake .. && make
  • Linux : cmake -GNinja .. && ninja
  • Linux Eclipse Photon (Debug) : CC=clang cmake -G"Eclipse CDT4 - Unix Makefiles" ../can-utils/ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ECLIPSE_VERSION=4.8.0
  • To override the base installation directory use: CMAKE_INSTALL_PREFIX ie. CC=clang cmake -DCMAKE_INSTALL_PREFIX=./out .. && make install

Additional Information:

You can’t perform that action at this time.