Forwarding CAN Bus traffic to a Docker container using vxcan
1. vxcan 설치
sudo apt-get update
sudo apt-get install raspberrypi-kernel-headers can-utils
mkdir vxcan
cd vxcan
wget "https://raw.githubusercontent.com/torvalds/linux/master/drivers/net/can/vxcan.c"
2. Makefile 만들기
obj-m += vxcan.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
3. uname -r로 커널버전 확인 후 아래 실행
make
sudo chown root:root vxcan.ko
sudo chmod 0644 vxcan.ko
sudo mv vxcan.ko /lib/modules/$your_kernel_version$/kernel/net/can/
sudo depmod -A
sudo modprobe vxcan
sudo modprobe can-gw
4. /etc/modules-load.d/can.conf 파일 만든 후 아래 입력하기
vxcan
can-gw
5. docker container 실행 후 can-utils 설치
apt-get update && apt-get install -y can-utils
6. container 밖에서 container와 vxcan network 연결하기
DOCKERPID=$(docker inspect -f '{{ .State.Pid }}' containername)
sudo ip link add vxcan0 type vxcan peer name vxcan1
sudo ip link set vxcan1 netns $DOCKERPID
sudo ip link set vxcan0 up
sudo nsenter -t $DOCKERPID -n ip link set vxcan1 up
7. Real can adapter와 vxcan 연결하기
sudo cangw -A -s can0 -d vxcan0 -e
sudo cangw -A -s vxcan0 -d can0 -e
8. 해당 규칙 삭제시
sudo ip link del vxcan0
'Auto Twin > ROS' 카테고리의 다른 글
Docker로 ROS2 환경 구성하기 (0) | 2022.09.25 |
---|