![]() Ciao Mi Fans! Un grande progetto bolle in pentola da mesi! Grazie al processore Snapdragon 845 del Mi MIX 2S, è possibile compilare ed avviare un BIOS UEFI per sistemi operativi ARM64, come Windows On ARM o Ubuntu per ARM, infatti grazie al porting di EDK II, è possibile compilare questo firmware anche per tutti gli altri telefoni con il processore 845, ad esempio il Mi 8. Il tutto si suddividerà in vari thread, oggi vedremo la compilazione e l'avvio del firmware insieme ad alcuni accenni per avviare dei sistemi operativi. questo in particolare lo vedremo nei prossimi thread nel dettaglio poiché sto collaborando insieme ai developer del porting di EDK II da qualche mese in modo da avere un funzionamento più completo possibile, non ho trovato nessuna guida in rete per l'avvio di sistemi operativi ma grazie a questa collaborazione, vi racconterò io quali sono i 3 metodi da adottare attualmente. -Compilazione del BIOS ATTENZIONE! (Infondo al thread vi allego il firmware già precompilato da me per il Mi MIX 2S per poterlo avviare anche su Windows o macOS) Per procedere alla compilazione, dobbiamo seguire il progetto per lo Snapdragon 845 su GitHub ed è necessario l'uso di una distribuzione Linux con gestore dei pacchetti APT, è stato testato su Ubuntu e su Deepin da me personalmente, altrimenti se avete un altro gestore dei pacchetti, dovete provvedere all'installazione manuale di tutto il necessario. Richiesto ovviamente anche il bootloader sbloccato. Comandi per l'installazione dei tool necessari: sudo apt update In seguito, possiamo procedere alla clonazione dei progetti GitHub: mkdir workspace-edk2 Infine procediamo alla compilazione per il proprio dispositivo: bash build.sh --device polaris NOTA: "polaris" è il nome in codice per il Mi MIX 2S, se volete compilare questo progetto per un altro dispositivo dotato dello Snapdragon 845, dovete sostituire polaris con il nome in codice del vostro dispositivo! L'operazione di compilazione impiega MOLTI minuti in base alle prestazioni del vostro PC, il mio i7-6500U ci ha impiegato circa 10 minuti, quindi dovete pazientare un po' di tempo. Ora nella cartella attuale è stato generato il file di boot per avviare da fastboot (ALTAMENTE SCONSIGLIATO FLASHARLO DEFINITIVAMENTE), per poterlo avviare bisogna usare questo comando, come prima, eventualmente polaris va sostituito: fastboot boot boot-polaris.img Cose attualmente funzionanti: -Framebuffer -UFS -MMU il resto non funziona ed inoltre non è stabile, perciò un flash potrebbe causare anche il brick. Video con l'avvio sul mio telefono: -Metodi per avviare sistemi operativi Su internet purtroppo non si trovano articoli su come sfruttare il BIOS per avviare sistemi operativi, ma sono riuscito a farmi spiegare i 3 metodi disponibili, nei thread prossimi vedremo il tutto nel dettaglio. Non ci sono articoli dato che i problemi e i bug sono parecchi, inoltre ora vedrete che non sono procedure facili. Sto facendo tante prove insieme ai developer per migliorare il progetto e portarvi direttamente una guida completa ed affidabile con meno rischi di ora. Si avviano Windows on ARM e Ubuntu on ARM sul mio telefono ma ancora con tanta difficoltà, di conseguenza vi farò vedere direttamente quando sarà più stabile. Essendo il mio dispositivo principale mi risultano quasi impossibile fare i primi due metodi e sono limitato maggiormente al terzo, perciò lo sviluppo sta durando tanti mesi, step dopo step. Nel frattempo vi descrivo questi accenni per farvi un'idea. Metodo 1: Svuotare alcune partizioni e prepararle Questo metodo dal rischio più elevato, consiste nell'applicare modifiche alle partizioni /system, /init, /dev, /vendor. Per avere meno problemi, sono meglio ripulirle dato che dovremmo andare a mettere alcuni file all'interno. Ad esempio, per Ubuntu bisogna scaricare e scompattare il file .ISO della versione ARM64, poi mettere il file startup.nsh nella directory /vendor/firmware_mnt mentre il file initrd nella directory /vendor/firmware_mnt/initrd.img ed infine il file vmlinuz nella directory /vendor/firmware_mnt/efi/boot/vmlinuz.efi In questo modo avviando poi il BIOS da fastboot dovrebbe partire. Trattandosi del file originale startup.nsh, sicuramente ci sono vari problemi o potrebbe non avviarsi, in questo caso stiamo lavorando apportando modifiche a quel file in modo da avere un corretto funzionamento sul Mi MIX 2S. Purtroppo va ottimizzato diversamente per ogni telefono. Vi ricordo che apportare modifiche a queste partizioni potrebbe causare un grave brick. NOTO UN PROBLEMA CHE AD ALCUNI UTENTI IL TELEFONO ENTRA IN EDL NONOSTANTE LA STESSA PROCEDURA. Metodo 2: Ridurre la partizione userdata ed usare una chiavetta USB Riducendo la partizione /data (necessario dato che vengono create nuove partizioni) con resize2fs si può preparare una chiavetta USB avviabile, vi faccio vedere l'esempio per avviare Windows. Nel mio caso il kernel del Mi MIX 2S lo supporta, per verificare se anche il vostro telefono lo supporta, dovete controllare se è presente la funzione mass storage in questo percorso /config/usb_gadget/g1/functions in modo da sfruttare questo tool per la creazione della chiavetta avviabile tramite OTG. Sarà necessario anche modificare il file init USB nella parte "on property:sys.usb.config=mtp" in modo che venga riconosciuta dal telefono, i comandi sono questi da inserire: write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/cdrom 0 Alcuni dispositivi potrebbero montare diversamente le partizioni, quindi controllate ed eventualmente modificate queste righe con il vostro percorso. Vi allego anche questo file insieme agli altri. Inoltre un altro developer ha realizzato quest'altro tool. METODO 3: Avviare da un file IMG (valido solo per Linux) Grazie al BIOS che monta solo i file ext4, mettendo un file del disco nominato in .img all'interno della partizione data, si può avviare una distro Linux. Purtroppo però sono presenti ancora troppi problemi ed incompatibilità di sistema. Non è possibile avviare Windows con questo metodo perché il disco virtuale non sarebbe in ext4 ma NTFS che non viene letto da UEFI. Riconoscimenti: Tutti i link in precedenza sono collegati direttamente ai progetti degli sviluppatori in modo da poter vedere chi sono, vi lascio anche il link del thread XDA in cui trovate altri developer in aiuto al progetto. File allegati da estrarre: UEFI per Mi MIX 2S (polaris) ![]() 2020-12-31 23:43:51 Upload
Click on the file to download the attachment
File USB Init ![]() 2020-12-31 23:31:27 Upload
Click on the file to download the attachment
Cosa ne pensate di questo progetto? Volete vedere altri thread nel dettaglio sull'avvio di sistemi operativi? Profilo Instagram del blog |
In order to fulfill the basic functions of our service, the user hereby agrees to allow Xiaomi to collect, process and use personal information which shall include but not be limited to written threads, pictures, comments, replies in the Xiaomi Community, and relevant data types listed in Xiaomi's Private Policy. By selecting "Agree", you agree to Xiaomi's Private Policy and Content Policy .
Agree