У ядрі Linux 5.13 з'явиться початкова підтримка CPU Apple M1

Гектор Мартін (Hector Martin) запропонував включити в ядро ​​Linux перший набір патчів, підготовлених проектом Asahi Linux, що веде роботу з адаптації Linux для комп'ютерів Mac, оснащених ARM-чіпом Apple M1. Зазначені патчі вже схвалені супроводжуючим гілки Linux SoC та прийняті в кодову базу Linux-next, на основі якої формується функціональність ядра 5.13. Технічно, Лінус Торвальдс може блокувати постачання запропонованих змін, але такий розвиток подій оцінюється як малоймовірний.

Патчі включають підтримку компонентів SoC M1, не пов'язаних з GPU, таких як контролер переривань, таймер, UART, SMP, функції для організації введення/виведення і MMIO. Зворотний інжиніринг GPU поки не завершено, для організації виведення в патчах надається підтримка фреймбуфера та консолі через порт. З пристроїв заявлена ​​підтримка комп'ютера Apple Mac mini, який використовується як еталонна платформа в проекті Asahi Linux (є докладна інструкція з встановлення).

Окремо розвивається відкритий апаратний адаптер, визнаний спростити підключення до консолі через послідовний порт та проведення налагодження. У поточному вигляді, через використання компанією Apple у своєму обладнанні нестандартних команд USB-PD, найпростішим способом доступу до консолі є підключення до іншого комп'ютера на базі чіпа Apple M1 з використанням кабелю USB C. Більш складний спосіб полягає у створенні розв'язки на базі мікроконтролера Arduino, чіпа FUSB30 та адаптера UART-TTL.

Проектом також підготовлений завантажувач m1n1, що дозволяє завантажити ядро ​​Linux і мінімальне системне оточення на комп'ютерах Mac з CPU Apple M1. Компанія Apple на комп'ютерах з CPU M1 у штатному режимі дозволяє завантажувати незавірені цифровим підписом ядра без необхідності застосування jailbreak. Ця особливість дає можливість розробникам експериментувати з новими ядрами XNU, але при спробі завантаження інших систем виникають труднощі, оскільки Apple використовує власний протокол завантаження та інший формат Device Tree. Запропонований проектом Asahi Linux завантажувач m1n1 виступає в ролі прошарку, що дозволяє використовувати стандартний Device Tree і штатний протокол завантаження, що використовується в ядрі Linux для ARM64. Надалі в m1n1 планується додати можливість виклику U-Boot та GRUB для організації типового процесу завантаження, аналогічного до того, що використовується на інших платформах ARM64.

Джерело: opennet.ru

Додати коментар або відгук