Dear Developer,
I am using the guide at the following internet address:
In the “Simple testing with can-utils” section I’m using the commands related to the can bus from the terminal.
Where can I find all the commands relating to the can bus and all the other peripherals?
Thank you in advance!
Best regards
Greetings!
For the can-utils
package, the utils described in the project’s README.md are installed: can-utils/README.md at master · linux-can/can-utils · GitHub.
You can simply use the help command to list their usage using the -help
option inside the example container itself, for example:
root@c082f79ad6b4:/home/torizon# candump -help
candump - dump CAN bus traffic.
Usage: candump [options] <CAN interface>+
(use CTRL-C to terminate candump)
Options:
-t <type> (timestamp: (a)bsolute/(d)elta/(z)ero/(A)bsolute w date)
-H (read hardware timestamps instead of system timestamps)
-c (increment color mode level)
-i (binary output - may exceed 80 chars/line)
-a (enable additional ASCII output)
-S (swap byte order in printed CAN data[] - marked with '`' )
-s <level> (silent mode - 0: off (default) 1: animation 2: silent)
-l (log CAN-frames into file. Sets '-s 2' by default)
-L (use log file format on stdout)
-n <count> (terminate after reception of <count> CAN frames)
-r <size> (set socket receive buffer to <size>)
-D (Don't exit if a "detected" can device goes down.
-d (monitor dropped CAN frames)
-e (dump CAN error frames in human-readable format)
-x (print extra message infos, rx/tx brs esi)
-T <msecs> (terminate after <msecs> without any reception)
Up to 16 CAN interfaces with optional filter sets can be specified
on the commandline in the form: <ifname>[,filter]*
Filters:
Comma separated filters can be specified for each given CAN interface:
<can_id>:<can_mask>
(matches when <received_can_id> & mask == can_id & mask)
<can_id>~<can_mask>
(matches when <received_can_id> & mask != can_id & mask)
#<error_mask>
(set error frame filter, see include/linux/can/error.h)
[j|J]
(join the given CAN filters - logical AND semantic)
CAN IDs, masks and data content are given and expected in hexadecimal values.
When the can_id is 8 digits long the CAN_EFF_FLAG is set for 29 bit EFF format.
Without any given filter all data frames are received ('0:0' default filter).
Use interface name 'any' to receive from all CAN interfaces.
Examples:
candump -c -c -ta can0,123:7FF,400:700,#000000FF can2,400~7F0 can3 can8
candump -l any,0~0,#FFFFFFFF
(log only error frames but no(!) data frames)
candump -l any,0:0,#FFFFFFFF
(log error frames and also all data frames)
candump vcan2,12345678:DFFFFFFF
(match only for extended CAN ID 12345678)
candump vcan2,123:7FF
(matches CAN ID 123 - including EFF and RTR frames)
candump vcan2,123:C00007FF
(matches CAN ID 123 - only SFF and non-RTR frames)
and all the other peripherals
Do you have a particular peripheral you want to control/snoop? There exists a multitude of tools for each peripheral/use case.
Best regards,
Leon.
edit: I’ll tag this answer as solved regarding the original scope of the question, feel welcome to create another Topic or add a Post here if you have another question related to this.
1 Like