Вече е възможно да стартирате Gnome на Apple M1

Преди няколко месеца споделяме тук в блога новината за инициатива за поддръжка на Linux за чипа Apple M1, популяризирани от проектите Asahi Linux и Corellium, които през цялото това време са работили и сега сте достигнали точката, където е възможно да стартирате работния плот на GNOME в Linux среда, работеща на система с чип Apple M1.

Визуализацията се организира от framebuffer и OpenGL поддръжка предоставени от софтуер за растеризатор LLVMPipe. Следващата стъпка е да активирате копроцесора на дисплея за a до 4K изход, който вече е реконструиран.

Проектът Asahi постигна първоначална подкрепа за компоненти на SoC M1 без GPU в ядрото на Linux. В демонстрираната Linux среда, в допълнение към възможностите на стандартното ядро, се използват няколко допълнителни кръпки, свързани с PCIe, драйвера pinctrl за вътрешната шина и драйвера на дисплея. Тези допълнения позволяват показване на екрана и работа на USB и Ethernet. Графичното ускорение все още не се използва.

M1 представлява огромно предизвикателство за обратно инженерство, с много персонализиран хардуер и напълно без документи. Един от подходите за хардуер за обратно инженерство е сондирането на сляпо, както използвахме за обратното проектиране на драйвера за прекъсване на Apple, но това всъщност не работи за по -сложен хардуер.

За да разберем правилно как се работи с хардуера, трябва да разгледаме единствената документация там: самия macOS. Технически би било възможно да се разглобяват и обратно инженерират самите драйвери на macOS, но това поражда правни предизвикателства, които биха могли да застрашат статуса на авторските права на нашия проект, както и да бъдат неефективни, тъй като голяма част от кода е специфичен за рамката на драйверите на macOS. и не ни дава полезна информация за хардуера.

Любопитно е, за обратно проектиране на M1 SoC, проекта Асахи, вместо да се опитвате да демонтирате драйверите от macOS, внедри хипервизор, който работи между macOS и чипа M1 и прихваща и прозрачно записва всички операции с чипа. Сред функциите на SoC M1, които затрудняват внедряването на поддръжка на чипове в операционни системи на трети страни, е добавянето на съпроцесор към контролера на дисплея (DCP).

От посочената страна на съпроцесора се премахва половината функционалност на драйвера на дисплея на macOS, който извиква предварително изградените функции на съпроцесора чрез специален RPC интерфейс.

Вместо това, много по -сигурен подход, който в миналото е бил използван от проекти като Nouveau, е записването на дневник на хардуерни достъпи, направени от официални контролери на реална система, без да се налага да гледате кода. Nouveau постигна това, като използва драйвер за Linux, за да прихване достъпите от официалния драйвер за Linux на Nvidia. Разбира се, драйверите M1 на Apple са за macOS, а не за Linux. Въпреки че бихме могли да приложим същия подход с персонализирана корекция за ядрото с отворен код на ядрото macOS, решихме да отидем на едно ниво по -дълбоко и да изградим хипервизор, който може да изпълнява цялата macOS, немодифицирана, във виртуална машина, която го предлага. прозрачно. истински хардуер M1.

Ентусиасти вече са открили достатъчно обаждания към този RPC интерфейс да използва съпроцесора за показване, както и да контролира хардуерния курсор и да изпълнява композиционни и мащабиращи операции.

Проблемът е, че RPC интерфейсът зависи от фърмуера и промените във всяка версия на macOS, поради което Asahi Linux планира да поддържа само определени версии на фърмуера.

На първо място, ще бъде осигурена поддръжка за фърмуера, доставен с macOS 12 "Monterey". Не е възможно да изтеглите необходимата опция за фърмуер, тъй като фърмуерът е инсталиран от iBoot на етапа преди прехвърлянето на контрол върху операционната система и се проверява чрез цифров подпис.

Fuente: https://asahilinux.org


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.