[D3-G] 우분투를 올린 상태에서 SPI to CAN(MCP2515) 모듈 사용 방법 문의
안녕하세요. RAPA에서 TOPST 보드를 활용하여 ‘실시간 운영체제 기반 차량 제어 시스템’ 주제로 프로젝트를 진행하고 있는 2조 교육생입니다. 우분투 환경에서 MCP2515 모듈을 이용한 CAN 통신을 진행 과정에서 해결되지 않는 문제가 있어 질문을 하고자 글을 씁니다.
1. 시스템 환경
-
Target Board: TOPST D3-G (Telechips TCC8050 Main Core)
-
OS: Ubuntu 22.04 LTS (Kernel 5.10.205-tcc)
-
Build Env: Telechips SDK (Yocto 기반) / WSL2 Ubuntu
-
HW: SPI0번에 MCP2515 CAN 컨트롤러 연결 시도
2. 목표
- Device Tree(DTS)를 수정하여 MCP2515 노드를 추가하고,
can0인터페이스를 활성화하는 것.
3. 주요 작업 및 시도 과정 - 1
-
tcc8050-topst-d3-g.dts 수정 :
spi@16900000노드에mcp2515@0추가, 전용 클럭(oscillator) 및 인터럽트 핀(gpio@14200000) 설정 완료. -
빌드를 통해 커널 이미지 및 DTB 생성 성공 후 시리얼 보드 터미널로 전송
-
부트 파티션(p2)에 구운 후 커널 이미지 확인 시 생성 시각이 맞지 않음
-
can0 인터페이스도 나오지 않음
3. 주요 작업 및 시도 과정 - 2
- SDK 커널 옵션 설정(menuconfig)에서 MCP2515를 위한 항목 활성화
- 모듈 생성 및 보드 시리얼로 전송 후 드라이버 로드 시도
- can0 인터페이스 여전히 비활성화 상태
4.요청사항 및 정보
- 우분투 환경에서 SPI to CAN 모듈을 사용할 수 있는 가이드가 필요합니다.
- tcc-8050-topst-d3-g.dts 파일 경로 → ~/topst-sdk/build/d3-g-topst-main/tmp/work/d3_g_topst_main-telechips-linux/linux-topst/5.10.205-r0/git/arch/arm64/boot/dts/telechips/tcc805x$
- 로그 상태’
root@TOPST:~# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 42:ea:c2:93:75:8c brd ff:ff:ff:ff:ff:ff
3: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
root@TOPST:~# lsmod | grep mcp
mcp251x 28672 0
can_dev 36864 1 mcp251x
root@TOPST:~# dmesg | grep -i mcp251x
[ 363.039082] mcp251x: Unknown symbol can_free_echo_skb (err -2)
[ 363.039094] mcp251x: Unknown symbol can_put_echo_skb (err -2)
[ 363.039101] mcp251x: Unknown symbol can_get_echo_skb (err -2)
[ 363.039127] mcp251x: Unknown symbol open_candev (err -2)
[ 363.039147] mcp251x: Unknown symbol alloc_can_skb (err -2)
바쁜 와중에 확인해 주셔서 감사합니다.

