קורליום הוציאה גרסה של לינוקס המותאמת לרוץ על מחשבי אפל החדשים המצוידים בשבב M1 . הגרסה של ליבת לינוקס התואמת לשבב M1 של אפל משוחררת תחת רישיון GPLv2, ותיקונים הוגשו להכללה בליבת הראשית.
ל-Corellium ניסיון רב בהעברת לינוקס לשבבי אפל המשמשים במכשירים ניידים כמו אייפון. בשלב ההעברה הראשוני, הבודקים עודדו לגלות שרבים מרכיבי Apple M1 מבוססים על טכנולוגיות שכבר משתמשת אפל בשבבי SoC אחרים.
אבל במהלך תהליך פיתוח הדרייברים, התברר שהדברים אינם כה פשוטים, ושבב Apple M1 כולל פתרונות רבים שאינם סטנדרטיים. תמיכת לינוקס עבור מעבדי SoC של ARM ב-64 סיביות מסתמכת על אבני בניין וממשקי קושחה נפוצים, אך Apple M1 כמעט ולא משתמש בפתרונות אופייניים.
לדוגמה, ב-ARM SoCs קונבנציונליים, הפעלת ליבת המעבד מתבצעת דרך PSCI (ממשק תיאום מצב צריכת חשמל) המסופק על ידי הקושחה, וב- Apple M1 זה דורש מניפולציה של אוגר MMIO.
בשלב זה, מפתחי Corellium עקפו את פרויקט Asahi Linux , שנוסד על ידי הקטור מרטין כדי להעביר את לינוקס למערכות עם שבב Apple M1, אשר עד כה הוגבל להנדסה הפוכה וניסויים עם טוען אתחול. עם זאת, המטרה העיקרית של Asahi Linux אינה רק לאתחל את לינוקס, אלא גם לספק תמיכה מלאה במנגנוני ניהול צריכת חשמל ולנצל את היכולות של ה-GPU של Apple M1, המשתמש במערך הוראות ספציפי.
תיקוני Corellium מוגבלים למתן אתחול ותמיכה עבור תכונות ספציפיות של שבב M1 הקשורות למצב SMP, טיימרים, פסיקות, טיפול במצב סרק ואתחול.
נציגים מ-Asahi Linux בירכו על שחרור תיקוני Corellium והביעו את נכונותם לספק סיוע בביקורת עמיתים כדי להאיץ את אימוץ ליבת לינוקס באופן מיינסטרים.
בנוסף נאמר כי אליסה רוזנצוויג (מ- Collabora המפתחת את מנהל ההתקן של Panfrost GPU Mali) פרסמה דוח שני על הנדסה לאחור ופיתוח מנהלי קוד פתוח עבור ה- Apple M1 GPU.
בשלב הנוכחי הוכן אב-טיפוס ראשוני של הבקר, שיכול לצייר משולשים באמצעות ה- GPU. עבור GPUs M1, קודקודי הקודקוד והשבריר הראשונים מקודדים גם הם ביד. מנהל התקן הליבה IOKit משמש לאינטראקציה עם ה- GPU.
ה-Apple M1 משתמש גם בבקר פסיקות Apple (AIC) משלו , שאינו תואם במידה רבה ל-GICs סטנדרטיים של ARM , ובמנגנון שונה לקישור פסיקות מטיימר. יתר על כן, אוגרים נפרדים השולטים ב-IPI (פסיקות בין-מעבדים) משמשים לניהול אינטראקציה בין מעבדים מרובים.
כדי לאתחל במחשב Mac Mini M1 עם שבב Apple M1, מכינים תמונת rootfs מוכנה לשימוש , שנבנתה על בסיס גרסת ה-Ubuntu עבור Raspberry Pi.
כדי להתקין, העתיקו את התמונה לכונן USB, חברו את הכונן ליציאת USB-C, והפעילו את המחשב למצב 1TR (מערכת הפעלה לשחזור) על ידי לחיצה ממושכת על לחצן ההפעלה במהלך האתחול. לאחר הופעת שורת הפקודה, הפעילו את הסקריפט linuxsetup.sh, אשר יתקין את הליבה ויגדיר את הסביבה.
זה הזמן שבו לינוקס תתחיל לרוץ, בעוד שכדי להחזיר את macOS, עליך להריץ את הפקודה "bputil -n" במצב 1TR.
בנייה מוכנה תומכת ב- USB, I2C ו- DART, מומלץ להשתמש במתאם USB חיצוני לרשת, בעוד שעדיין אין תמיכה בהאצת חומרת גרפיקה וציוד היקפי מורחב. תמיכה ב- Bluetooth דורשת כתיבת מנהל התקן חדש עקב שימוש בפרוטוקול מבוסס PCIe לא סטנדרטי.
מקור: https://corellium.com