I tablet Baytrail eseguono un processore 64b e un EFI 32b, per motivi noti a Intel.
Grub2 (compilato per EFI 32b) avvierà un sistema operativo UEFI 64b da un EFI 32b.
Proprio come un processore CPU 64b o 32b che chiama un BIOS 16b tradizionale, è necessario un thunk nel sistema operativo per eseguire il marshalling degli argomenti da 64b a 32b, cambiare la modalità del processore, chiamare il firmware, quindi ripristinare la modalità del processore e eseguire il marshalling del argomenti da 32b a 64b. Un kernel Linux x86-64 creato con l'opzione CONFIG_EFI_MIXED=y
include un tale thunk per consentire al kernel x86-64 di chiamare un EFI i686.
A questo punto nel tempo non vi è alcun ostacolo per AtomBIOS di AMD, e quindi il modulo "radeon" fallisce. Questo non è un problema per i tablet Baytrail, poiché utilizzano la GPU Intel.
Vorrei esaminare il sistema operativo Ubuntu quando consideravo Baytrail, poiché Fedora non ha ancora costruito i propri kernel di serie CONFIG_EFI_MIXED=y
. Utilizzare una chiavetta USB come Super Grub2 Disk per accedere alla riga di comando Grub2 (32b), quindi caricare ed eseguire il kernel del programma di installazione x86-64 dalla riga di comando Grub2. Dopo aver installato Ubuntu, tornare indietro e installare il bootloader Grub2 32b manualmente nella partizione EFI e rimuovere il bootloader Grub2 64b.
La mancanza di driver video avanzati è uno showtopper per MacBookPro2,2 in quanto utilizza AMD Radeon X1600. Linux può avviarsi usando il driver EFI "UGA" (approssimativamente equivalente all'utilizzo dell'opzione VESA in BIOS-land). Ma il risultato è talmente elevato che i fan corrono continuamente a pieno ritmo. Si noti che il modulo "radeon" copia i contenuti di AtomBIOS nella RAM, quindi una piccola modifica al driver per consentire il caricamento di AtomBIOS dal disco è un percorso per risolvere questo problema. Probabilmente il miglior approccio su un primo Mac è quello di eseguire un sistema operativo 32b, sebbene la maggior parte delle distribuzioni popolari non supporti EFI nelle loro build i686 32b.