У ядры 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

Дадаць каментар