MIPI ์นด๋ฉ”๋ผ๋ฅผ ์œ„ํ•œ ์™„์ „ ์˜คํ”ˆ ์Šคํƒ ์ถœ์‹œ

Red Hat์—์„œ ๊ทผ๋ฌดํ•˜๋Š” Fedora Linux ๊ฐœ๋ฐœ์ž์ธ Hans de Goede๋Š” FOSDEM 2024 ์ปจํผ๋Ÿฐ์Šค์—์„œ MIPI(๋ชจ๋ฐ”์ผ ์‚ฐ์—… ํ”„๋กœ์„ธ์„œ ์ธํ„ฐํŽ˜์ด์Šค) ์นด๋ฉ”๋ผ์šฉ ์˜คํ”ˆ ์Šคํƒ์„ ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์ค€๋น„๋œ ์˜คํ”ˆ ์Šคํƒ์€ ์•„์ง Linux ์ปค๋„๊ณผ libcamera ํ”„๋กœ์ ํŠธ์— ์ˆ˜์šฉ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ๊ด‘๋ฒ”์œ„ํ•œ ๋งค๋‹ˆ์•„๋“ค์˜ ํ…Œ์ŠคํŠธ์— ์ ํ•ฉํ•œ ์ƒํƒœ์— ๋„๋‹ฌํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์Šคํƒ์˜ ์ž‘๋™์€ Lenovo ThinkPad X2740 yoga gen 01, Dell Latitude 1 ๋ฐ HP Spectre x556 1 8๊ณผ ๊ฐ™์€ ๋…ธํŠธ๋ถ์— ์‚ฌ์šฉ๋˜๋Š” ov9420, ov360a13.5s ๋ฐ hi2023 ์„ผ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” MIPI ์นด๋ฉ”๋ผ๋กœ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

MIPI ์ธํ„ฐํŽ˜์ด์Šค๋Š” UVC(USB ๋น„๋””์˜ค ํด๋ž˜์Šค) ํ‘œ์ค€์„ ์ง€์›ํ•˜๋Š” ์žฅ์น˜์—์„œ USB ๋ฒ„์Šค๋ฅผ ํ†ตํ•ด ์ด์ „์— ์‚ฌ์šฉํ–ˆ๋˜ ๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ ๋Œ€์‹  ๋งŽ์€ ์ƒˆ๋กœ์šด ๋…ธํŠธ๋ถ ๋ชจ๋ธ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. MIPI๋Š” CSI ์ˆ˜์‹ ๊ธฐ(์นด๋ฉ”๋ผ ์ง๋ ฌ ์ธํ„ฐํŽ˜์ด์Šค)์™€ CPU์— ํ†ตํ•ฉ๋œ ์ด๋ฏธ์ง€ ํ”„๋กœ์„ธ์„œ(ISP, ์ด๋ฏธ์ง€ ์‹ ํ˜ธ ํ”„๋กœ์„ธ์„œ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ ์„ผ์„œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋Š” ์„ผ์„œ์—์„œ ๋‚˜์˜ค๋Š” ์›์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฏธ์ง€ ํ˜•์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Intel์€ Intel Tiger Lake, Alder Lake, Raptor Lake ๋ฐ Meteor Lake ํ”„๋กœ์„ธ์„œ์˜ IPU6(์ด๋ฏธ์ง• ์ฒ˜๋ฆฌ ์žฅ์น˜)์„ ํ†ตํ•ด Linux์—์„œ MIPI ์นด๋ฉ”๋ผ ์ž‘์—…์„ ์œ„ํ•œ ๋…์  ๋“œ๋ผ์ด๋ฒ„ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

MIPI ์นด๋ฉ”๋ผ์šฉ ๊ฐœ๋ฐฉํ˜• ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ๊ฐ€์žฅ ์–ด๋ ค์šด ์ ์€ ISP ํ”„๋กœ์„ธ์„œ์˜ ํ•˜๋“œ์›จ์–ด ์ธํ„ฐํŽ˜์ด์Šค์™€ ์—ฌ๊ธฐ์— ๊ตฌํ˜„๋œ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ผ๋ฐ˜์ ์œผ๋กœ CPU ์ œ์กฐ์—…์ฒด์— ์˜ํ•ด ๊ณต๊ฐœ๋˜์ง€ ์•Š๊ณ  ์˜์—… ๋น„๋ฐ€์ด๋ผ๋Š” ์‚ฌ์‹ค ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Linaro์™€ Red Hat์€ ์ด๋ฏธ์ง€ ํ”„๋กœ์„ธ์„œ์ธ SoftISP์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌํ˜„์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋…์  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ MIPI ์นด๋ฉ”๋ผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(SoftISP๋Š” IPU6 ISP๋ฅผ ๋Œ€์ฒดํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ).

SoftISP ๊ตฌํ˜„์€ Linux, Android ๋ฐ ChromeOS์—์„œ ๋น„๋””์˜ค ์นด๋ฉ”๋ผ, ์นด๋ฉ”๋ผ ๋ฐ TV ํŠœ๋„ˆ ์ž‘์—…์„ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์„ ์ œ๊ณตํ•˜๋Š” libcamera ํ”„๋กœ์ ํŠธ์— ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด ์ œ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SoftISP ์™ธ์—๋„ MIPI ์นด๋ฉ”๋ผ ์ž‘์—…์„ ์œ„ํ•œ ์Šคํƒ์—๋Š” ์ปค๋„ ์ˆ˜์ค€์—์„œ ์‹คํ–‰๋˜๋Š” ov2740 ์„ผ์„œ์šฉ ๋“œ๋ผ์ด๋ฒ„์™€ Intel ํ”„๋กœ์„ธ์„œ IPU6์˜ ์ผ๋ถ€์ธ Linux ์ปค๋„์—์„œ CSI ์ˆ˜์‹ ๊ธฐ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํฌํ•จํ•œ Linux ์ปค๋„ ๋ฐ libcamera ํŒจํ‚ค์ง€๋Š” Fedora Linux 39์— ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด COPR ์ €์žฅ์†Œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Pipewire ๋ฏธ๋””์–ด ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MIPI ์นด๋ฉ”๋ผ์—์„œ ๋น„๋””์˜ค๋ฅผ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Pipewire๋ฅผ ํ†ตํ•œ ์นด๋ฉ”๋ผ ์ž‘์—… ์ง€์›์€ ์ด๋ฏธ libwebrtc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ฑ„ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Firefox์—์„œ๋Š” ๋ฆด๋ฆฌ์Šค 122๋ถ€ํ„ฐ Pipewire๋ฅผ ํ†ตํ•œ ์นด๋ฉ”๋ผ ์ž‘์—… ๊ธฐ๋Šฅ์ด WebRTC์— ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ์ƒํƒœ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Firefox์—์„œ Pipewire๋ฅผ ํ†ตํ•œ ์นด๋ฉ”๋ผ ์ž‘์—…์€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ "media.webrtc.camera.dll"์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. "allow-" ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ about:config ํŒŒ์ดํ”„์™€์ด์–ด์—์„œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค."

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€