Hans de Goede، یک توسعهدهنده لینوکس فدورا که در Red Hat کار میکند، یک پشته باز برای دوربینهای MIPI (رابط پردازشگر صنعت موبایل) در کنفرانس FOSDEM 2024 ارائه کرد. پشته باز آماده شده هنوز در هسته لینوکس و پروژه libcamera پذیرفته نشده است، اما به عنوان یک وضعیت مناسب برای آزمایش توسط طیف گسترده ای از علاقه مندان مشخص شده است. عملکرد پشته با دوربینهای MIPI مبتنی بر حسگرهای ov2740، ov01a1s و hi556 مورد استفاده در لپتاپهایی مانند Lenovo ThinkPad X1 yoga gen 8، Dell Latitude 9420 و HP Spectre x360 13.5 2023 آزمایش شده است.
رابط MIPI در بسیاری از مدلهای جدید لپتاپ بهجای پخش ویدیوی قبلی از دستگاههایی که از استاندارد UVC (کلاس ویدیوی USB) پشتیبانی میکنند، از طریق گذرگاه USB استفاده میشود. MIPI با استفاده از یک گیرنده CSI (رابط سریال دوربین) و یک پردازشگر تصویر ادغام شده در CPU (ISP، پردازشگر سیگنال تصویر)، که شکلگیری تصویر را بر اساس دادههای خام از سنسور فراهم میکند، دسترسی به سنسور دوربین را فراهم میکند. اینتل مجموعه ای از درایورهای اختصاصی را برای کار با دوربین های MIPI در لینوکس از طریق IPU6 (واحد پردازش تصویر) در پردازنده های اینتل Tiger Lake، Alder Lake، Raptor Lake و Meteor Lake فراهم می کند.
مشکل اصلی در توسعه درایورهای باز برای دوربین های MIPI به این دلیل است که رابط سخت افزاری پردازنده ISP و الگوریتم های پردازش تصویر پیاده سازی شده در آن معمولاً توسط سازندگان CPU فاش نمی شود و یک راز تجاری است. برای حل این مشکل، Linaro و Red Hat یک نرم افزار پیاده سازی پردازشگر تصویر - SoftISP را توسعه داده اند که به شما امکان می دهد بدون استفاده از اجزای اختصاصی با دوربین های MIPI کار کنید (SoftISP می تواند به عنوان جایگزینی برای IPU6 ISP استفاده شود).
پیادهسازی SoftISP برای گنجاندن در پروژه libcamera ارسال شده است، که یک پشته نرمافزار برای کار با دوربینهای ویدیویی، دوربینها و تیونرهای تلویزیون در لینوکس، اندروید و ChromeOS ارائه میدهد. علاوه بر SoftISP، پشته کار با دوربین های MIPI شامل یک درایور برای سنسورهای ov2740 است که در سطح هسته اجرا می شوند و کدی برای پشتیبانی از گیرنده CSI در هسته لینوکس که بخشی از IPU6 پردازنده های اینتل است.
هسته لینوکس و بسته های libcamera، از جمله تغییرات پروژه، در مخزن COPR برای نصب در فدورا لینوکس 39 در دسترس هستند. از سرور رسانه Pipewire می توان برای فیلم برداری از دوربین های MIPI استفاده کرد. پشتیبانی از کار با دوربین ها از طریق Pipewire قبلاً در کتابخانه libwebrtc به کار گرفته شده است. در فایرفاکس، توانایی کار با دوربین ها از طریق Pipewire به حالتی مناسب برای استفاده با WebRTC رسیده است که با نسخه 122 شروع می شود. به طور پیش فرض، کار با دوربین ها از طریق Pipewire در فایرفاکس غیرفعال است و به "media.webrtc.camera" نیاز دارد. پارامتر allow-” در about:config pipewire فعال شود.
منبع: opennet.ru