SBC (Single Board Computer)/Odroid M1S

ODROID M1S, Realsense 카메라 no connection 시

LEEHANDS 2025. 2. 24. 20:25
반응형

 

 

  • ODROID XU4 / M1S 같은 보드들은 V4L2 드라이버 지원이 불완전할 수 있음
  • RealSense 기본 설정은 V4L2 기반이므로, USB 백엔드(RSUSB)를 강제로 활성화해야 인식 가능
  • USB 백엔드 활성화(-DFORCE_RSUSB_BACKEND=true)하면 카메라를 직접 USB 장치로 연결하여 사용 가능

 

cd ~
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
mkdir build && cd build

cmake .. -DBUILD_EXAMPLES=true -DFORCE_RSUSB_BACKEND=true
make -j$(nproc)
sudo make install

 

DFORCE_RSUSB_BACKEND = true 해야지 odroid m1s 에서 python3 카메라 인식이 가능하다.

 

 

1. 기존에 Realsense 지운다

sudo apt remove -y librealsense2-utils librealsense2-dev librealsense2-dkms
sudo rm -rf ~/Projects/realsense/librealsense

 

2. USB 백엔드 강제 활성

cd ~
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
mkdir build && cd build

cmake .. -DBUILD_EXAMPLES=true -DFORCE_RSUSB_BACKEND=true
make -j$(nproc)
sudo make install

3. udev 규칙 적용 (USB 장치 접근 권한 설정)

sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger

 

4. Realsense 서비스 재시작

 

sudo modprobe uvcvideo
sudo systemctl restart udev

 

5. 카메라 확인

rs-enumerate-devices

 

 


왜 USB 백엔드를 강제 적용해야 할까?

  1. ODROID 보드에서 /dev/video* 장치가 생성되지 않음
    • ls -lah /dev/video* 실행 결과 "No such file or directory"
    • 즉, V4L2(Video for Linux) 인터페이스로 장치가 인식되지 않음
    • 이는 커널 모듈이 올바르게 로드되지 않았거나, ODROID M1S의 V4L2 지원이 제한적이기 때문일 가능성이 큼
  2. lsusb -t 결과에서 RealSense가 "Driver=" 로 표시됨
    • /dev/video* 장치가 없는 것과 마찬가지로, USB 트리에서도 해당 장치가 드라이버 없이 연결된 상태
    • 일반적으로 UVC (USB Video Class) 장치라면 Driver=uvcvideo가 보여야 함
    • 드라이버가 정상적으로 로드되지 않았기 때문에 rs-enumerate-devices로는 확인되지만, Python 코드에서는 연결되지 않는 문제 발생 가능성 큼
  3. RealSense Viewer (realsense-viewer)에서는 정상 작동
    • 이건 Librealsense의 자체 USB 백엔드(RSUSB)를 사용하고 있기 때문일 가능성이 높음
    • 하지만 기본적으로 Python API는 V4L2를 통해 접근을 시도함 → 장치가 인식되지 않음

✅ 강제 적용해야 하는 이유

🔹 V4L2 방식 (기본 설정) → 현재 환경에서 작동하지 않음
🔹 RSUSB 백엔드 방식 (강제 적용) → Realsense Viewer에서 정상 작동 가능성 높음
🔹 ODROID M1S 및 기타 보드에서 자주 발생하는 문제임 (커널 드라이버 지원 부족 가능성)

이러한 이유로 USB 백엔드를 강제 적용해서 RealSense 장치를 직접 인식하도록 설정하는 것이 필요합니다.


📌 결론

✔ -DFORCE_RSUSB_BACKEND=true 옵션을 사용해 USB 백엔드를 강제로 활성화하는 것이 현재 문제를 해결할 가능성이 매우 높습니다.
✔ 이 옵션을 적용한 후 rs-enumerate-devices와 Python 코드를 다시 실행해서 인식 여부를 확인하는 것이 최선입니다.

반응형