Rockchip SoC의 비디오 캡처 기능을 메인라인 Linux에 올리기까지
최신 Rockchip SoC(특히 RK35 세대)는 많은 System-on-a-Chip(SoC)이 그렇듯이, 비디오 캡처와 이미지 신호 처리 전용 IP 블록을 내장하고 있습니다. 이런 기능들이 추가되면서 다양한 멀티미디어 애플리케이션을 만들 수 있는 길이 열렸어요. 다만 메인라인 Linux에서 이들 블록을 지원하는 부분은 아직도 미흡한 상태였습니다. 이제 이 공백을 채울 시간이 왔습니다!
지난 몇 년간의 노력
지난 몇 년간 Collabora는 Rockchip RK3588 SoC의 메인라인 지원에 상당한 투자를 해왔습니다. RK3588 업스트림 상태 매트릭스와 최근 "Mainline Linux, U-Boot, Mesa를 Rockchip에서 실행하기: 1년 회고록" 블로그 포스트를 보면 이 노력의 성과를 확실히 알 수 있죠. linux-rockchip 커뮤니티 및 Rockchip과 함께 RK3588의 대부분 기능에 대한 업스트림 지원을 제공할 수 있었다고 할 수 있습니다. 그렇긴 해도 여전히 지원되지 않는 하드웨어 블록들이 몇 가지 남아 있었어요.
비디오 캡처와 ISP가 늦게 지원되는 이유
비디오 캡처 블록과 이미지 신호 프로세서(ISP)는 메인라인 지원이 늦거나 아예 되지 않는 하드웨어의 대표적인 사례입니다. 그 이유는 여러 가지인데요:
- 사용자층이 상당하지만, 비디오 출력 같은 다른 기능 사용자보다는 적어요.
- 특히 ISP의 경우 하드웨어 문서가 공개되지 않는 경우가 많습니다. 지적 재산권 관련해서 민감하게 다루거든요.
- 하드웨어 자체가 복잡해서, 취미로 개발하는 기여자가 여유 시간에 해내기 어렵습니다.
- 회사 입장에서도 이런 하드웨어를 처음부터 구동시키는 데 엄청난 시간과 비용이 들어요.
이 때문에 강력한 하드웨어 기능을 원하는 사용자들은 벤더 Linux 커널에 의존하게 되는데, 이는 Cyber Resilience Act(CRA) 같은 규제 준수 문제를 야기할 수 있었습니다.
Collabora의 결단
이런 악순환을 깨기 위해 Collabora는 첫 번째 단계부터 시작하기로 결정했습니다. RK3588 비디오 캡처(VICAP) 유닛을 지원하는 것이었어요. 처음부터 이게 단거리 경주가 아니라 마라톤이 될 거라는 건 명백했습니다. rkcif 드라이버가 RK3588 VICAP을 지원하는 것이 목표였는데, 이 드라이버는 2020년부터 관련 메일링 리스트에서 논의되고 있던 것이었거든요.
Collabora는 2022년 초에 메인라이닝 논의에 참여했고, Bootlin에서 주도적으로 총 9번의 반복을 거쳤습니다. 그 후 미디어 컨트롤러 중심의 V4L2 드라이버로의 전면 재설계가 요청됐어요. 이에 따라 드라이버 전체가 리팩토링되고 메인라인 포함을 위한 새로운 추진이 시작됐습니다.
주요 마일스톤들
재설계된 패치 시리즈는 또 다른 7번의 반복을 거쳤고, 드라이버 이름도 두 번 바뀌었어요. 이 작업은 2025년 암스테르담의 Open Source Summit Europe에서 "최근 Rockchip SoC의 메인라인 비디오 캡처 및 카메라 지원을 향해"라는 제목의 발표로 공개됐습니다. 이 발표에서는 현대적인 멀티미디어 SoC의 소프트웨어 스택 개요와 이미 메인라인에 들어간 기여, 그리고 진행 중인 기여들을 다뤘죠.
몇 번의 rkcif 드라이버 반복 끝에, PX30 VIP과 RK3568 VICAP을 지원하는 기본 드라이버가 승인됐습니다(2025년 10월). 5년 이상의 개발, 25번의 반복, 3번의 이름 변경을 거쳐 이루어낸 대단한 마일스톤이었어요. 물론 해야 할 일은 아직도 많았습니다. 예를 들어 VICAP과 밀접하게 연결된 Rockchip MIPI CSI-2 수신기 유닛도 메인라인 드라이버가 필요했거든요. 소프트웨어 개발에서 가장 어려운 부분이 이름 짓기라는 농담처럼, 여러 번의 반복과 3번의 이름 변경/재배치를 거친 끝에 이 드라이버는 메인라인 Linux에 자리 잡게 됩니다(2026년 1월).
FOSDEM 발표와 첫 번째 실제 이미지
이는 2026년 브뤼셀의 FOSDEM에서 정확히 좋은 시점에 맞춰져, "업스트림 진행 상황: 최근 Rockchip SoC의 비디오 캡처 및 카메라 지원"이라는 제목의 발표가 이루어졌어요. 개선되고 업데이트된 상태 매트릭스(슬라이드 15, 17 참고) 외에도, RK3588 VICAP에 연결된 Sony IMX415 센서로 촬영한 첫 번째 사진이 공개됐습니다.
물론 이 설정에서는 센서에서 받은 RAW 이미지 데이터를 소프트웨어로 디베이어링했고(이로 인해 1fps의 형편없는 프레임 레이트가 나왔어요), 자동 화이트 밸런스 같은 이미지 처리도 없었습니다(그래서 이미지가 초록색을 띠었죠). 하지만 그 당시에는 이 여정의 중요한 단계를 나타내는 의미 있는 결과였습니다.
다음 단계: RK3588 ISP 지원
rkcif 드라이버에 몇 가지 확장 패치가 필요해서 RK3588 지원을 추가했어요. 이들 패치는 한동안 개발 중이었고, 최근에 리뷰를 위해 공개됐습니다.
당연히 우리 모두는 RK3588 ISP를 사용해 카메라 센서에서 오는 이미지를 전용 하드웨어에서 처리하고 싶어 합니다. 이를 위해서는 본질적으로 세 가지가 필요합니다.
남은 과제 중 첫 번째는 RK3588 VICAP MUX-TOISP 유닛 지원입니다. 이 유닛은 VICAP의 데이터를 ISP로 직접 전달하는 하드웨어 연결입니다. 기술적으로는 꼭 필요한 건 아닙니다. 현재로서는 RK3588 VICAP이 RAW 이미지를 메모리로 스트리밍할 수 있거든요.