پشتیبانی از پورتهای M1، M2 و M3 در لینوکس؛ تاندربولت به اپل سیلیکون رسید!

فهرست مطالب:
- ورود کدهای لینوکس مک به هسته اصلی
- چرا راهاندازی پورتهای مک اینقدر طول کشید؟
- محدودیتهای فعلی (خروجی تصویر و حالت خواب)
خبر عالی برای کاربران مک! مجموعهای شامل ۱۹ پچ (وصله نرمافزاری) جدید برای بررسی در هسته اصلی لینوکس ارسال شده است. اگر این کدها تایید و ادغام شوند، کاربران بالاخره میتوانند از پورتهای پرسرعت USB4 و تاندربولت در اپل سیلیکون (بهطور ویژه روی تراشههای محبوب M1، M2 و M3) به صورت بومی در لینوکس استفاده کنند.
ورود کدهای پروژه اساهی به هسته اصلی لینوکس
اگر اخبار لینوکس روی سیستمهای مک را دنبال کرده باشید، احتمالاً میدانید که پروژه Asahi Linux مدتهاست این قابلیت را در نسخههای اختصاصی خود ارائه میدهد. اما وارد کردن درایورهای تاندربولت در اپل سیلیکون به شاخه اصلی هسته لینوکس (Mainline) نیازمند کدهای بسیار تمیزتر و بینقصی بود.
حالا اسون پیتر (Sven Peter)، یکی از توسعهدهندگان ارشد و سرشناس لینوکسِ مک، کدهای مربوط به راهاندازی این پورتها را برای هر سه نسل پردازندههای اپل (یعنی تراشههای M1، M2 و M3) منتشر کرده است تا تمام کاربران لینوکس از آن بهرهمند شوند.
چرا راهاندازی پورتهای مک اینقدر طول کشید؟
فعالسازی تاندربولت در اپل سیلیکون یک چالش برنامهنویسیِ بهشدت سخت بود، چون معماری سختافزاری اپل به شدت پیچیده، انحصاری و بسته است.
به زبان ساده، در پردازندههای سری M، پورتهای Type-C مستقیماً به سیستم وصل نیستند! هر پورت برای خودش یک پردازنده کمکی (Cortex-M3) و یک بلوک سختافزاری اختصاصی به نام ACIO دارد که مثل یک مغز کوچک ترافیک پورت را مدیریت میکند. سیستمعامل لینوکس نمیتواند مستقیماً با پورتها ارتباط برقرار کند؛ بلکه فقط از طریق یک «دریچه بسیار کوچک ۱۶ مگابایتی» اجازه دارد با پردازنده کمکیِ پورت حرف بزند. همین طراحی عجیب باعث شد تا مهندسی معکوس و نوشتن درایور برای لینوکس به یک کابوس تمامعیار تبدیل شود.
محدودیتهای فعلی (خروجی تصویر و حالت خواب)
در حال حاضر، استفاده از تاندربولت در اپل سیلیکون روی لینوکس در مراحل اولیه است و چند محدودیت موقت دارد که توسعهدهندگان در حال رفع آنها هستند:
- مشکل خروجی تصویر: فعلاً فقط انتقال دیتای معمولی (تونلزنی USB3 و شبکههای XDomain) پشتیبانی میشود. امکان وصل کردن مانیتور (DisplayPort) یا کارتهای توسعه گرافیکی (PCIe) به مهندسی معکوسِ بیشتری نیاز دارد و در آپدیتهای بعدی لینوکس اضافه خواهد شد.
- حالت خواب (Sleep/Suspend): در حال حاضر اگر دستگاهی (مثل فلش یا هارد اکسترنال) به پورت تاندربولت مک متصل باشد، سیستم به هیچوجه نباید به حالت Sleep برود؛ چرا که هنگام بیدار شدن، ارتباط پورت قطع شده و سیستم با خطای SError کرش میکند!
برای پیگیری جزئیات فنی این کدهای جدید، میتوانید مستقیماً لیست پستی هسته لینوکس (LKML) را بررسی کنید و یا جدیدترین اخبار لینوکس و متنباز را در سایت آزاد لاگ دنبال کنید.

