-
Linux CANable을 이용한 CAN 통신 설정개발/Etc 2024. 8. 29. 22:12
1. 캔 패키지 설치.
sudo apt-get update
sudo apt-get install can-utils
2. 연결한 usb port 확인.
ls /dev/ttyACM*
ex) ttyACM03. serial, idvendor, idproduct 확인.
udevadm info -a /dev/<확인한 포트>
ex) udevadm info -a /dev/ttyACM0
또는
lsusb 명령어를 이용해서idvendor와 idproduct를 확인한 후, serial 확인.
lsusb
sudo lsusb -d <idvendor>:<idproduct> - v | grep -i serial
ex) sudo lsusb -d 16d0:117e - v | grep -i serial
4. rules 파일 생성-파일명 상관없음- 후 아래 내용 입력.
KERNEL=="ttyACM*",ATTRS{serial}=="<serial>",MODE:="0777",SYMLINK+="<아무 심링크명>"
ex) KERNEL=="ttyACM*",ATTRS{serial}=="1111333E5D5D",MODE:="0777",SYMLINK+="example_symlink"
5. rules 파일 이동.
sudo cp <생성한 rules 파일명>.rules /etc/udev/rules.d/
ex) sudo cp example.rules /etc/udev/rules.d/
6. rules 설정 적용.
sudo udevadm control --reload-rules
이후 케이블 재연결.
7. 인터페이스에 symlink 등록.
sudo slcand -o -c -s5 /dev/<기입한 심링크명> <아무 인터페이스명>
ex) sudo slcand -o -c -s5 /dev/example_symlink example_interface
* 이거 때문에 오래 헤맸는데 진행하면서 명명할 때 언더바(_)를 꼭 하나씩 넣다가 인터페이스명에는 언더바를 두 개 넣었는데 안 됐습니다. 혹시나 해서 언더바를 다 빼봤는데 되더라고요. 인터페이스명에 언더바 하나는 모르겠습니다.
8. ifconfig에 인터페이스 등록.
sudo ifconfig <등록한 인터페이스명> up
ex) sudo ifconfig example_interface up
이후
ifconfig
등록한 인터페이스가 나온다.
9. 캔 통신.
9-1) A 터미널 candump 실행.
sudo candump <등록한 인터페이스명>
ex) sudo candump example_interface
9-2) B 터미널 cansend 실행.
sudo cansend <등록한 인터페이스명> <데이터>
ex) sudo cansend example_interface 000#R
10. A 터미널에서 데이터 확인.
ex) example_interface 000 [0] remote request
※ 하드웨어 부품이 없다면 우선 가상 인터페이스를 이용해 개발을 진행할 수 있다.
1. 가상 인터페이스 생성. -> sudo ip link add dev vcan0 type vcan
2. 생성한 인터페이스 ifconfig 등록. -> sudo ifconfig vcan0 up
'개발 > Etc' 카테고리의 다른 글
Git 명령어 (0) 2024.09.26 리눅스 명령어 (1) 2024.09.10 우분투 키 매핑 - caps lock을 마우스 왼쪽 버튼으로 사용하기 (0) 2024.06.26 Git SSH key 등록 (0) 2024.05.23 Googling (0) 2024.05.04