Który bootloader jest używany na Chromebooku?

12

Zainstalowałem ChrUbuntu na Chromebooku Acer C7 i jestem w stanie uruchomić system Ubuntu 12.04 i ChromeOS z podwójnym uruchomieniem oraz domyślnie kontrolować, który system operacyjny się ładuje. Próbowałem edytować /etc/default/grubplik i udało się uruchomić, update-grubale nie zobaczyłem żadnych efektów. Próbowałem włączyć pełny ekran ładowania systemu w stylu „dmesg” zamiast cichego ekranu powitalnego (podczas rozruchu Ubuntu). Podejrzewam, że GRUB nie jest bootloaderem na maszynie lub działa jako dość późny bootloader tylko na partycji Linux. Zdaję sobie sprawę, że Chromebook to dość zamknięty system ściśle kontrolowany przez Google, ale ponieważ jest Linuksem, ludzie mogą znać odpowiedź.

Nie potrzebuję wystarczająco dużo pełnych słów w stylu „dmesg”; ale zainteresował mnie bootloading w tym systemie.

PS Aby wyjaśnić, starałem się włączyć pełny ekran ładowania podczas uruchamiania systemu Ubuntu na komputerze.

haziz
źródło
3
„Ponieważ Chromebooki używają specjalnego systemu BIOS i modułu ładującego, który różni się od tych używanych w standardowych laptopach z systemem Windows, nie można ich używać do uruchamiania tylko dowolnego systemu operacyjnego. Właśnie tutaj wchodzi ChrUbuntu - jest to wersja Ubuntu 12.04 LTS zmodyfikowana do współpracować ze sprzętem Chrome OS ”. ( patrz tutaj )
sr_

Odpowiedzi:

6

ChromeOS używa U-Boot:

„Chromium OS jest zasadniczo specjalnie dostosowaną dystrybucją GNU / Linux. Chcemy wprowadzić jak najmniej modyfikacji do jądra wysyłającego, jak to możliwe, najlepiej nie. Ale jak w przypadku każdego innego systemu GNU / Linux proces uruchamiania przed jądrem jest nieuchronnie zależny na sprzęcie, BIOSie i bootloaderze ”.

Chociaż ChromeOS ma swój własny sposób uruchamiania:

„Urządzenia z systemem operacyjnym Google Chrome (x86 / x86_64 / arm) mają niestandardowe BIOS-y, które używają jeszcze jednej metody rozruchu, aby zapewnić, że użytkownik uruchamia tylko te bity, które są zamierzone. Zamiast osobnego programu ładującego i jądra, w pliku znajduje się jeden binarny obiekt blob własną partycję GPT. Ten obiekt blob jest podpisany kryptograficznie, a podpis jest weryfikowany przed uruchomieniem. ”

Więcej informacji na: http://www.chromium.org/chromium-os/chromiumos-design-docs/disk-format

użytkownik56801
źródło
1
CoreBoot to norma oprogramowania układowego Chromebooków - „BIOS” jest technicznie niedokładny, ale mam sedno.
mikeserv
@ mikeserv cytuje z dokumentów Chromium. nie ma też potrzeby komentowania każdej odpowiedzi, mówiąc, że jest słuszna - wystarczy zwykła aprobata.
strugee
Cóż, nie możesz zatrzymać człowieka z misją, wiesz ...
Mikeserv
1

Może to być mylące, szczególnie z perspektywy czasu, ponieważ mój Lenovo N22 (reks) z chrx / Gallium zachowuje się tak, jak się spodziewasz: Grub przejmuje uruchamianie, gdy oprogramowanie układowe przekazuje kontrolę nad systemem operacyjnym. Ale to nie dotyczy procesu uruchamiania systemu operacyjnego Chrome , w którym jądro przejmuje bezpośrednio, spójrz na obraz i informacje o różnych metodach, które tutaj opublikowałem . Nie zagłębiłem się w szczegóły (i prawdopodobnie nigdy tego nie zrobię), ale wydaje mi się, że ponieważ używał jądra systemu operacyjnego Chrome do uruchamiania Ubuntu (nie ma programu ładującego zaangażowanego między oprogramowaniem układowym a jądrem), jądro zostało poinstruowane, aby uruchomić inny główny system plików niż wtedy system operacyjny Chrome.

Autor ChrUbuntu opublikował 15 października 2013 r .:

Odkąd zacząłem ChrUbuntu w grudniu 2010 roku, zawsze było konieczne użycie jądra Chrome OS Linux z Ubuntu, aby rozwiązać niektóre problemy ze zgodnością z architekturą Chromebooka. Zmieniło się to w przypadku Chromebooka Pixel i nowszych Chromebooków z systemem Haswell, takich jak Acer C720 i HP Chromebook 14. Każdy z tych modeli obsługuje uruchamianie z bardziej tradycyjnego trybu BIOS komputera, co ułatwia korzystanie z podstawowych jąder Ubuntu.

Nie znam wszystkich szczegółów, przetestowałem Chromebooka opartego na ARM dawno temu, zanim dostałem N22 w tym roku, moja interpretacja jest taka, że ​​chodzi o wszystko, co opiera się na śliskiej płycie bazowej i późniejszej lub na ich platformie2, jak podano w źródle repozytoria.

LiveWireBT
źródło
-1

Nie jestem w 100% pewien, ale bootloader jest w BIOSie. Jądro jest ładowane bezpośrednio z partycji, np. Bez systemu plików. To jest powód, dla którego potrzebujesz GPT zamiast normalnej tabeli partycji DOS.

Nacięcie
źródło
1
jest to rażąco nieprawdziwe. przeczytaj proszę, czym jest bootloader, czym jest BIOS i jakie są dokładne różnice między GPT a MBR.
strugee
1
Cóż, dziękuję za -1. Moduł ładujący Chromebooka składa się z 3 części. Jeden w BIOS-ie tylko do odczytu, jeden w BIOS-ie do odczytu i zapisu, a drugi na partycji EFI. Ostatni (partycja EFI) może nie istnieć. W tym przypadku część z BIOS-u do odczytu i zapisu uruchomi pierwszą partycję jądra Chromebooka oznaczoną jako „dobra”. Bootloader to rozwidlenie „uboot”
Nick
1
Ponadto, ponieważ jesteś nowy w stosie wymiany, powinienem wspomnieć, że głosowanie negatywne nie jest osobistym atakiem, oznacza to tylko, że ktokolwiek go głosował, uważa, że ​​post jest nieprawidłowy (a głosowanie nie mówi nic o twoich innych postach ani o tobie osoba). przepraszam, że byłem niegrzeczny w moim wcześniejszym komentarzu.
strugee
1
@strugee Większość Chromebooków to tak naprawdę CoreBoot - ani UEFI, ani BIOS. użytkownik #### powyżej ma rację co do rozruchu - to ładunek CoreBoot na Chromebookach. Nick ma pewną niepoprawną terminologię - ale w oprogramowaniu wbudowanym jest wiele rzeczy, których nie widać nigdzie indziej - na przykład resetowanie do ustawień fabrycznych producenta jest operacją oprogramowania układowego.
mikeserv
1
Sytuacja jest bardziej złożona, istnieją różne iteracje platformy i w tym czasie były zaangażowane różne komponenty. Nie mogę powiedzieć, że zrobiłbym wtedy coś lepszego. Właśnie opublikowałem nową odpowiedź, tutaj jest również link do przeglądu, który dotychczas był wykorzystywany na tych urządzeniach: chromium.org/chromium-os/…
LiveWireBT