{"id":13435585,"url":"https://github.com/linux-can/can-utils","last_synced_at":"2025-05-14T19:02:23.884Z","repository":{"id":28171784,"uuid":"31673071","full_name":"linux-can/can-utils","owner":"linux-can","description":"Linux-CAN / SocketCAN user space applications","archived":false,"fork":false,"pushed_at":"2024-08-09T13:02:26.000Z","size":1199,"stargazers_count":2391,"open_issues_count":60,"forks_count":711,"subscribers_count":128,"default_branch":"master","last_synced_at":"2024-10-29T15:04:10.761Z","etag":null,"topics":["automotive","can-bus","industrial-automation","linux"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linux-can.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/BSD-3-Clause","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-04T18:34:07.000Z","updated_at":"2024-10-27T11:15:24.000Z","dependencies_parsed_at":"2023-09-27T16:55:33.305Z","dependency_job_id":"a52ece3f-4fdf-44d0-a73b-862978a419b3","html_url":"https://github.com/linux-can/can-utils","commit_stats":{"total_commits":972,"total_committers":93,"mean_commits":"10.451612903225806","dds":0.6563786008230452,"last_synced_commit":"6526683a10d8700ceea5148e5d2652fadaf3db6d"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-can%2Fcan-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-can%2Fcan-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-can%2Fcan-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-can%2Fcan-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linux-can","download_url":"https://codeload.github.com/linux-can/can-utils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161259,"owners_count":21057552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automotive","can-bus","industrial-automation","linux"],"created_at":"2024-07-31T03:00:37.123Z","updated_at":"2025-04-10T04:51:10.543Z","avatar_url":"https://github.com/linux-can.png","language":"C","funding_links":[],"categories":["C","Libraries and Tools","Network and Middleware","Utils","System"],"sub_categories":["C","Controller Area Network","Linux related","Network and Middleware"],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/linux-can/can-logos/raw/master/png/SocketCAN-logo-60dpi.png\" alt=\"SocketCAN logo\"/\u003e\n\u003c/p\u003e\n\n### SocketCAN userspace utilities and tools\n\nThis repository contains some userspace utilities for Linux CAN\nsubsystem (aka SocketCAN):\n\n#### Basic tools to display, record, generate and replay CAN traffic\n\n* candump : display, filter and log CAN data to files\n* canplayer : replay CAN logfiles\n* cansend : send a single frame\n* cangen : generate (random) CAN traffic\n* cansequence : send and check sequence of CAN frames with incrementing payload\n* cansniffer : display CAN data content differences\n\n#### CAN access via IP sockets\n* canlogserver : log CAN frames and serves them\n* bcmserver : interactive BCM configuration (remote/local)\n* [socketcand](https://github.com/linux-can/socketcand) : use RAW/BCM/ISO-TP sockets via TCP/IP sockets\n* [cannelloni](https://github.com/mguentner/cannelloni) : UDP/SCTP based SocketCAN tunnel\n\n#### CAN in-kernel gateway configuration\n* cangw : CAN gateway userspace tool for netlink configuration\n\n#### CAN bus measurement and testing\n* canbusload : calculate and display the CAN busload\n* can-calc-bit-timing : userspace version of in-kernel bitrate calculation\n* canfdtest : Full-duplex test program (DUT and host part)\n* canerrsim : CAN error message simulator\n\n#### ISO-TP tools [ISO15765-2:2016 for Linux](https://github.com/hartkopp/can-isotp)\n* isotpsend : send a single ISO-TP PDU\n* isotprecv : receive ISO-TP PDU(s)\n* isotpsniffer : 'wiretap' ISO-TP PDU(s)\n* isotpdump : 'wiretap' and interpret CAN messages (CAN_RAW)\n* isotpserver : IP server for simple TCP/IP \u003c-\u003e ISO 15765-2 bridging (ASCII HEX)\n* isotpperf : ISO15765-2 protocol performance visualisation\n* isotptun : create a bi-directional IP tunnel on CAN via ISO-TP\n\n#### J1939/ISOBus tools\n* j1939acd : address claim daemon\n* j1939cat : take a file and send and receive it over CAN\n* j1939spy : spy on J1939 messages using SOC_J1939\n* j1939sr : send/recv from stdin or to stdout\n* testj1939 : send/receive test packet\n\nFollow the link to see examples on how this tools can be used:\n[Kickstart guide to can-j1939 on linux](https://github.com/linux-can/can-utils/blob/master/can-j1939-kickstart.md)\n\n#### Log file converters\n* asc2log : convert ASC logfile to compact CAN frame logfile\n* log2asc : convert compact CAN frame logfile to ASC logfile\n* log2long : convert compact CAN frame representation into user readable\n\n#### Serial Line Discipline configuration (for slcan driver)\n* slcan_attach : userspace tool for serial line CAN interface configuration\n* slcand : daemon for serial line CAN interface configuration\n* slcanpty : creates a pty for applications using the slcan ASCII protocol\n\n#### CMake Project Generator\n* Place your build folder anywhere, passing CMake the path.  Relative or absolute.\n* Some examples using a build folder under the source tree root:\n* Android : ``cmake -DCMAKE_TOOLCHAIN_FILE=~/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-21 -DANDROID_ABI=armeabi-v7a .. \u0026\u0026 make``\n* 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.\n* Raspberry Pi : ``cmake -DCMAKE_TOOLCHAIN_FILE=~/rpi/tools/build/cmake/rpi.toolchain.cmake .. \u0026\u0026 make``\n* Linux : ``cmake -GNinja .. \u0026\u0026 ninja``\n* Linux Eclipse Photon (Debug) : ``CC=clang cmake -G\"Eclipse CDT4 - Unix Makefiles\" ../can-utils/ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ECLIPSE_VERSION=4.8.0``\n* To override the base installation directory use: ``CMAKE_INSTALL_PREFIX``\n  ie. ``CC=clang cmake -DCMAKE_INSTALL_PREFIX=./out .. \u0026\u0026 make install``\n\n### Additional Information:\n\n*   [SocketCAN Documentation (Linux Kernel)](https://www.kernel.org/doc/html/latest/networking/can.html)\n*   [Elinux.org CAN Bus Page](http://elinux.org/CAN_Bus)\n*   [Debian Package Description](https://packages.debian.org/sid/can-utils)\n*   [J1939 kernel module installation on Debian](can-j1939-install-kernel-module.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinux-can%2Fcan-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinux-can%2Fcan-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinux-can%2Fcan-utils/lists"}