Google publikuje drzewa urządzeń umożliwiające uruchomienie Pixela 10 z jądrem Linux

Rozszyfrowanie drzew urządzeń dla Pixela 10 w głównym jądrze Linuksa

Niedawne wydanie przez Google drzew urządzeń dla Pixela 10 oznacza nową erę w uruchamianiu tych urządzeń w głównym jądrze Linuksa. Ogłoszenie to następuje po prezentacji smartfonów Pixel 10, Pixel 10 Pro i Pixel 10 Pro XL, wszystkich wyposażonych w wydajny układ SoC Google Tensor G5, zbudowany na bazie wielordzeniowej architektury ARM Cortex X4, A725 i A520 oraz wyposażonych w wydajną jednostkę graficzną Imagination DXT-48-1536. Ale jaka jest dokładnie rola tych drzew urządzeń w kontekście uruchamiania wbudowanego systemu Linux? Zasadniczo pozwalają one jądru Linuksa poprawnie zidentyfikować i skonfigurować sprzęt Pixela 10, dostosowując sterowniki i inicjując niezbędne komponenty od samego początku procesu uruchamiania. Zastępują one zatem tradycyjną metodę monolityczną, znaną jako

metoda monolityczna, modularnym i deklaratywnym opisem sprzętu. Mówiąc najprościej, drzewo urządzeń to plik zakodowany w DTS (Device Tree Source), który deklaruje topologię sprzętową urządzenia: procesory, magistrale, kontrolery, urządzenia zintegrowane, GPIO, zegar itp. Po uruchomieniu jądro Linuksa odczytuje ten plik i odpowiednio dostosowuje swoje działanie. Ta metoda zapewnia lepszą modułowość i ułatwia konserwację kodu, zwłaszcza że Pixel 10 korzysta ze złożonej architektury sprzętowej. Udostępnienie tych plików dla Pixela 10 ma strategiczne znaczenie, ponieważ zapowiada szersze przyjęcie głównego jądra Linuksa w świecie smartfonów, tradycyjnie zdominowanym przez Androida z jego własnym, zmodyfikowanym kernelem. Możliwość uruchomienia tych urządzeń z użyciem kernela otwiera drogę do rozwoju alternatywnych ROM-ów i innowacyjnych zastosowań działających na bardziej otwartej i uniwersalnej platformie oprogramowania. Rola drzew urządzeń:

Identyfikacja i konfiguracja sprzętu podczas rozruchu.

Architektura Pixela 10:

  • Tensor G5 SoC z rdzeniami ARM i GPU Imagination. Priorytet Google:
  • Obsługa rozruchu z użyciem głównego jądra Linuksa. Wpływ:
  • Ułatwienie mobilnego rozwoju Linuksa i tworzenia niestandardowych ROM-ów. Wyzwania:
  • Dostosowanie do specyfiki sprzętowej Pixela 10 za pośrednictwem DTS. Dowiedz się, jak Google integruje drzewa urządzeń dla Pixela 10 w systemie Linux, poprawiając zarządzanie sprzętem i wydajność systemu.
  • Techniczne implikacje głównego jądra Linuksa w smartfonach Pixel 10
Integracja głównego jądra Linuksa – znanego również jako jądro upstream – podczas uruchamiania w smartfonie Pixel 10 wprowadza kilka ważnych innowacji do świata mobilnych systemów wbudowanych. Po pierwsze, oficjalne jądro zawiera większość poprawek i ulepszeń zatwierdzonych przez społeczność Linuksa, zapewniając optymalną stabilność i lepszą długoterminową kompatybilność sprzętową.

Tradycyjnie Android często korzystał ze zmodyfikowanych wersji jądra, zawierających zastrzeżone lub specyficzne dla producenta poprawki (Google jest jednym z przykładów). Ta mnogość wariantów komplikuje konserwację kodu i ogranicza możliwości niezależnych programistów w zakresie efektywnej interakcji ze sprzętem. Integracja drzew urządzeń z głównym jądrem Linuksa w smartfonie Pixel 10 oferuje zatem istotne korzyści:

Lepsza kompatybilność: Jedno jądro dla wielu modeli, co zmniejsza duplikację kodu. Łatwiejsze aktualizacje:

Aktualizacje są szybsze i bezpieczniejsze za pośrednictwem oficjalnego kanału Linux.

Otwartość na alternatywne ROM-y:

  • Mniejsze uzależnienie od zastrzeżonych bootloaderów i zamkniętych blobów. Ulepszone sterowniki:
  • Wkład społeczności przynosi korzyści wszystkim użytkownikom.
  • Jednak ta ewolucja wciąż napotyka pewne przeszkody. W szczególności te poprawki są wciąż bardzo wstępne i wymagają bootloadera, który nie został jeszcze wydany przez Google, aby uruchomić jądro @mainline, o którym wspominano w dyskusjach na LKML (Linux Kernel Mailing List). Ten proces rozruchu ogranicza się obecnie do prostego komunikatu UART z initramfs, co jest wstępnym krokiem, który nie gwarantuje w pełni funkcjonalnego systemu, ale otwiera obiecującą ścieżkę. Przeniesienie do w pełni funkcjonalnego systemu pozostaje zatem w toku, ale podejście to pokazuje moc i elastyczność oprogramowania open source w obsłudze nowoczesnych technologii mobilnych. To podejście jest częścią dążenia do harmonizacji fundamentów Androida i głównej dystrybucji Linuksa w celu zapewnienia bardziej przejrzystej i opartej na współpracy przyszłości.
  • Aktualne wyzwania: Nieopublikowany bootloader, ograniczona funkcjonalność.

Perspektywy:

Uruchomienie pełnego jądra na Pixelu 10. Korzyści długoterminowe: Rozszerzone wsparcie dla architektur i urządzeń.

  • Społeczność Linuksa: Silne zaangażowanie w rozwój sterowników dla Tensor G5.
  • Rola bootloadera i ograniczenia związane z uruchomieniem Linuksa na Pixelu 10. Uruchomienie systemu Linux na smartfonie takim jak Pixel 10 wiąże się ze specyficznymi wyzwaniami technicznymi, wykraczającymi poza samo zdefiniowanie drzew urządzeń. Jednym z kluczowych elementów tego procesu jest bootloader, oprogramowanie bardzo niskiego poziomu odpowiedzialne za inicjalizację sprzętu i uruchomienie jądra Linuksa.
  • Obecnie bootloader niezbędny do wykorzystania drzew urządzeń i umożliwienia uruchomienia głównego jądra Linuksa nie jest jeszcze publicznie dostępny, co stanowi istotne wąskie gardło. Bootloader musi w szczególności: Prawidłowo załadować jądro Linuksa i initramfs.
  • Skonfigurować zabezpieczenia sprzętowe i bezpieczeństwa. Inicjować niezbędne interfejsy peryferyjne (UART, USB itp.).

Umożliwiać dostęp niskopoziomowy za pomocą terminala (monit UART) w celu debugowania.

Ten krok jest kluczowy, ponieważ wydajny bootloader uwalnia pełny potencjał sprzętu, zapewniając, że jądro może uruchomić się bez błędów i współdziałać ze wszystkimi komponentami w momencie włączania zasilania. Na przykład musi skonfigurować kontrolery pamięci i zegar systemowy, operacje ściśle specyficzne dla układu Google Tensor G5 SoC używanego w serii Pixel 10. W przypadku Pixela 10, mimo że drzewa urządzeń są już dostępne, mogą one w pełni funkcjonować tylko z tym, jak dotąd, nierozproszonym bootloaderem. Ten bootloader zarządza przejściem z początkowego oprogramowania układowego do jądra Linuksa, zanim system operacyjny będzie mógł w pełni zarządzać smartfonem.Należy zauważyć, że to podejście jest podobne do podejścia stosowanego w projektach takich jak

Asahi Linux przeniesiony na Apple Silicon

  • , gdzie praca nad konkretnym bootloaderem jest równie krytyczna dla płynnego procesu rozruchu zgodnego z głównym jądrem Linuksa.
  • Kluczowe funkcje bootloadera:
  • rozruch, debugowanie, inicjalizacja sprzętu.
  • Aktualne ograniczenie:

zastrzeżony, nieotwarty bootloader.

Podobny przykład:

rozwój Asahi Linux na Apple M3. Skutek:opóźnienie w pełnym wykorzystaniu głównego jądra.

  • Dowiedz się, jak Google publikuje drzewa peryferyjne dla Pixela 10 w systemie Linux, ułatwiając w ten sposób rozwój i kompatybilność sterowników sprzętowych.
  • Wyzwania i perspektywy wsparcia Linuksa w wersji podstawowej dla zaawansowanych urządzeń mobilnych Przeniesienie Linuksa w wersji podstawowej na urządzenia mobilne, takie jak Pixel 10, stanowi ważny punkt zwrotny w konwergencji ekosystemów mobilnych i stacjonarnych. Przez kilka lat fragmentacja jądra między Androidem a standardowym Linuksem utrudniała powszechną adopcję dystrybucji GNU/Linux na smartfonach. Jednak dzięki Google oferującemu odpowiednie drzewa urządzeń, ten most zaczyna się budować.
  • Do kluczowych zalet tego wsparcia należą:
  • Spójność oprogramowania: jedna baza aktualizacji i konserwacji.
Otwartość:

uproszczony dostęp do oprogramowania open source i możliwości personalizacji.

Bezpieczeństwo:

stosowanie najlepszych praktyk z oficjalnego jądra i europejskich poprawek bezpieczeństwa.

  • Społeczność: dynamiczna współpraca zapewniająca ciągłe doskonalenie wsparcia sprzętowego.
  • Ta ewolucja zbiega się z pojawieniem się minimalistycznych narzędzi i dystrybucji, zaprojektowanych tak, aby dostosować się do specyficznych ograniczeń urządzenia mobilnego, zgodnie z zasadami wyjaśnionymi w materiałach takich jak minimalistyczna dystrybucja Linuksa . Ostatecznie otwiera to drogę do wiarygodnych alternatyw dla Androida, oferując bezpieczny i elastyczny system bez konieczności korzystania z zamkniętych komponentów.
  • Co więcej, te zmiany bezpośrednio wpływają na projektowanie lekkich środowisk serwerowych, a nawet zaawansowanych systemów wbudowanych opartych na Debianie LAMP, demonstrując wszechstronność jądra Linuksa we wszystkich domenach, od mobilnych po bardziej tradycyjne infrastruktury. Spodziewane innowacje:
  • Pełne wsparcie dla mobilnych systemów Linux. Implikacje dla wolnego oprogramowania:

W kierunku mniejszej liczby zależności własnościowych. Szersza adopcja:Wpływ na Raspberry Pi, serwery i laptopy.

Łatwa integracja:

  • Ułatwia bezpieczne połączenia zdalne na urządzeniach mobilnych. Jak praktycznie wykorzystać drzewa urządzeń Pixela 10 do tworzenia oprogramowania dla Linuksa
  • Dla programistów i entuzjastów Linuksa, wydanie tych drzew urządzeń to doskonała okazja do eksploracji i dostosowania procesu rozruchu Pixela 10 za pomocą głównego jądra. To pierwszy techniczny kamień milowy, umożliwiający modyfikację, testowanie i poprawę kompatybilności sprzętowej na każdym etapie procesu rozruchu.
  • Oto kilka konkretnych kroków dla tych, którzy chcą zaangażować się w ten proces: Pobierz poprawki:
  • Dostępne w wątku dyskusji LKML, zawierają odpowiednie pliki DTS. Przeanalizuj strukturę: Zrozum węzły i właściwości drzew oraz ich związek ze sprzętem. Skonfiguruj jądro:

Zintegruj drzewa urządzeń z kompilacją jądra.

Przygotowanie initramfs: Minimalne środowisko niezbędne do uruchomienia jądra, ułatwiające wstępne testowanie. Testowanie procesu rozruchu: Używając odpowiedniego bootloadera, uruchom główne jądro Linuksa na Pixelu 10, aż pojawi się monit UART.

  1. W celu dalszego zgłębienia tematu, liczne samouczki online wyjaśniają, jak dostosować i zoptymalizować proces rozruchu Linuksa
  2. oraz jak korzystać z niezbędnych poleceń do interakcji z systemem. Obejmuje to zaawansowane metody debugowania, zarządzania modułami jądra i diagnozowania błędów rozruchu.
  3. Ta wiedza jest nieoceniona, szczególnie przy tworzeniu niestandardowych pamięci ROM lub tworzeniu systemów wbudowanych opartych na Linuksie, gdzie liczy się każda mikrosekunda wydajności i każde użycie pamięci.
  4. Kluczowe kroki:
  5. łatanie, kompilacja, initramfs, bootloader.

Zalecane narzędzia: narzędzia do kompilacji krzyżowej, LKML, środowisko Linux.

Zasoby:

  • dokumentacja Device Tree, samouczki dotyczące zarządzania zawieszonymi zadaniami.
  • Korzyści:
  • głębokie zrozumienie sprzętu i procesu rozruchu. Google publikuje drzewa sterowników urządzeń peryferyjnych dla telefonu Pixel 10 działającego pod systemem Linux, ułatwiając w ten sposób rozwój i kompatybilność sterowników sprzętowych.