$ make linux-menuconfig
Networking support ---> <M> CAN bus subsystem support ---> --- CAN bus subsystem support <M> Raw CAN Protocol (raw access with CAN-ID filtering) <M> Broadcast Manager CAN Protocol (with content filtering) CAN Device Drivers ---> <M> Virtual Local CAN Interface (vcan) <M> Platform CAN drivers with Netlink support [*] CAN bit-timing calculation <M> Microchip 251x series SPI CAN Controller
$ make linux $ make
# modprobe can # modprobe can-dev # modprobe can-raw
APF27 & APF51 | APF6 |
---|---|
# modprobe mcp251x |
# modprobe flexcan |
Example: Set the bitrate of the can0 interface to 125kbps:
# ip link set can0 up type can bitrate 125000
ip: either "dev" is duplicate, or "type" is garbage
check that this command:
# which ip
return this message:
/sbin/ip
and not this one :
/bin/ip
If the binary is installed in /bin instead of /sbin, the executable file is a link to busybox and the command to set the bitrate doesn't work on busybox, so try the following instructions:
$ make busybox-clean $ make busybox-dirclean $ make menuconfig
Package Selection for the target ---> Networking applications ---> [*] iproute2
$ make
Then, reflash your rootfs.
# ifconfig can0 up
# ifconfig can0 down
# cat /proc/net/can/version
# cat /proc/net/can/stats
Several tools are provided by socketCAN:
The following command shows the received message from the CAN bus
candump can0
exemple : The following command sends 3 bytes on the bus (0x1E, 0x10, 0x10) with the identifier 500.
cansend can0 500#1E.10.10
You can send a remote request message
cansend can0 500#R
The information with the identifier 500 will be available on the bus when the device receive the remote request message
These tools can be compiled and installed on the target by means of the Buildroot menuconfig:
$ make menuconfig
Package Selection for the target ---> Networking ---> [*] Socket CAN
$ make
then, reflash your rootfs.