Skip to content

Instantly share code, notes, and snippets.

@benelog
Last active February 19, 2026 21:05
Show Gist options
  • Select an option

  • Save benelog/465a2426fe8ac6be4c0ac39bf5144d05 to your computer and use it in GitHub Desktop.

Select an option

Save benelog/465a2426fe8ac6be4c0ac39bf5144d05 to your computer and use it in GitHub Desktop.

내장 웹캠 불량 해결 기록

  • 날짜 : 2026-02-19

  • 장비: Dell XPS 13 9350 (Intel® Core™ Ultra 7 258V (Intel Lunar Lake) )

  • OS : Ubuntu 24.04 LTS

증상

부팅 후 내장 웹캠(/dev/video0, ``Intel MIPI Camera'')이 동작하지 않음.

$ systemctl status v4l2-relayd@default.service
● v4l2-relayd@default.service
   Active: failed (Result: start-limit-hit)

하드웨어 구성

구성 요소 내용

카메라 프로세서

Intel IPU7 (Image Processing Unit 7)

센서

OmniVision OV02C10 (ACPI ID: OVTI02C1)

연결 방식

MIPI CSI-2, I2C (USBIO 브리지 경유)

전원 제어

INT3472 ACPI discrete power controller

USBIO 칩

SLS Lattice (2ac1:20c9) → GPIO(INTC10B5), I2C 제공

가상 디바이스

v4l2loopback (/dev/video0)

브리지 서비스

v4l2-relayd (icamerasrc → v4l2loopback)


원인 분석

직접 원인: 커널 자동 업그레이드

2026-02-12 07:07 Ubuntu HWE(Hardware Enablement) 자동 업그레이드 발생:

6.14.0-37-generic → 6.17.0-14-generic

근본 원인: INT3472 드라이버 GPIO type 0x02 미지원

OV02C10 센서 전원 공급에는 3가지 GPIO 동작이 필요:

역할 GPIO 타입 6.17.0-14-generic OEM 커널

dvdd (디지털 전원)

0x12 (USBIO)

지원

지원

avdd (아날로그 전원)

0x0B (USBIO)

지원

지원

Power Enable

0x02 (일반 GPIO)

미지원

지원

`6.17.0-14-generic`의 INT3472 드라이버가 GPIO type `0x02`를 무시하여 센서 전원 활성화 실패 → 센서 미동작 → 웹캠 불량.

고장 연쇄 흐름

INT3472 GPIO type 0x02 미지원 (generic 커널)
        ↓
Power Enable GPIO 미동작
        ↓
OV02C10 센서 전원 OFF
        ↓
ov02c10 드라이버: 칩 ID 쓰레기값 읽음 (0x088C73 ≠ 0)
        ↓
센서 probe 실패 → 드라이버 바인딩 안됨
        ↓
dvdd / avdd 레귤레이터 disabled 유지
        ↓
icamerasrc 캡처 시도 → CSI-2 에러 폭주
        ↓
웹캠 영상 없음

해결 과정

Step 1: 누락 커널 모듈 패키지 설치

기존에 두 패키지가 미설치 상태였음:

sudo apt install linux-modules-usbio-6.17.0-14-generic
sudo apt install linux-modules-ipu7-6.17.0-14-generic
  • linux-modules-usbio: gpio-usbio, i2c-usbio 모듈 제공 → INTC10B5 GPIO 칩 생성

  • linux-modules-ipu7: intel-ipu7, intel-ipu7-isys, ov02c10 모듈 제공

이 조치만으로는 INT3472 GPIO type 0x02 문제가 남아 웹캠 불완전 동작.

Step 2: v4l2-relayd 서비스 파이프라인 수정

icamerasrc`가 `video/x-raw(memory:DMABuf) 포맷을 출력하는데, v4l2-relayd 바이너리 내부의 appsink→appsrc 브리지가 DMABuf를 처리하지 못해 실패.

systemd drop-in 오버라이드로 gst-launch-1.0 직접 파이프라인으로 대체:

파일: /etc/systemd/system/v4l2-relayd@default.service.d/override.conf

[Service]
ExecStart=
ExecStart=/bin/sh -c 'DEVICE=$(grep -l -m1 -E "^${CARD_LABEL}$" /sys/devices/virtual/video4linux/*/name | cut -d/ -f6); exec gst-launch-1.0 icamerasrc buffer-count=7 ! "video/x-raw,format=${FORMAT},width=${WIDTH},height=${HEIGHT},framerate=${FRAMERATE}" ! v4l2sink device=/dev/${DEVICE}'
Restart=on-failure
RestartSec=3s
StartLimitBurst=3

${DEVICE} → systemd 이스케이프로 쉘에 ${DEVICE} 리터럴 전달.

Step 3: OEM 커널로 전환 (근본 해결)

INT3472 GPIO type 0x02를 지원하는 OEM 커널로 부팅:

# GRUB 기본 커널을 6.14.0-1011-oem으로 변경
sudo sed -i 's|^GRUB_DEFAULT=.*|GRUB_DEFAULT="gnulinux-advanced-...>gnulinux-6.14.0-1011-oem-advanced-...|' /etc/default/grub
sudo update-grub
sudo reboot

재부팅 후 확인:

$ uname -r
6.14.0-1011-oem

$ systemctl status v4l2-relayd@default.service
Active: active (running)

실제 FPS: 30.27 (정상)
CSI-2 에러: 부팅 시 1회만 (지속적 에러 없음)

재발 방지 조치

OEM 커널 메타패키지로 전환

# OEM 커널 메타패키지 설치 (자동 업데이트 추적)
sudo apt install linux-oem-24.04

# generic HWE 메타패키지 제거 (재발 방지)
sudo apt remove linux-generic-hwe-24.04 linux-image-generic-hwe-24.04

# GRUB 기본값을 최신 OEM 커널(6.17.0-1011-oem)로 설정
sudo update-grub

설치된 OEM 커널: 6.17.0-1011-oem (Dell 하드웨어 패치 포함)

HWE vs OEM 커널 차이

HWE Generic OEM

대상

일반 PC

Dell/HP/Lenovo 등 특정 하드웨어

업데이트 주기

6개월마다 새 버전

제조사 패치 포함, 보수적

이번 사례

INT3472 type 0x02 미지원

지원됨


현재 상태

항목 상태

부팅 커널

6.14.0-1011-oem (다음 재부팅부터 6.17.0-1011-oem)

커널 관리

linux-oem-24.04 메타패키지 (OEM 트랙 자동 추적)

웹캠 서비스

v4l2-relayd@default.service active (gst-launch-1.0 파이프라인)

실제 FPS

30fps (정상)

해상도

1280×720 NV12


관련 파일

파일 용도

/etc/v4l2-relayd.d/default.conf

카메라 설정 (해상도, 포맷, 레이블)

/etc/systemd/system/v4l2-relayd@default.service.d/override.conf

gst-launch-1.0 파이프라인 오버라이드

/etc/modprobe.d/v4l2loopback.conf

v4l2loopback 가상 디바이스 설정

/etc/default/grub

GRUB 기본 커널 설정

/etc/camera/ipu7x/sensors/ov02c10-uf.json

Camera HAL 센서 설정

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment