Coreboot – Un BIOS alternativo

Coreboot, conosciuto precedentemente come LinuxBIOS, è un progetto che si prefigge di essere una valida alternativa ai BIOS proprietari… ma perchè cambiare?

I vantaggi

  • 100% Free Software (GPL), gratuito e senza royalties.
  • Avvio molto rapido (3 secondi dall’accensione alla console Linux, nel video a fine post vedrete le differenze).
  • Non avrete più bisogno di un BIOS proprietario lento e buggato.
  • Si avvia in modalità protetta a  32-Bit.
  • Programmato principalmente in C, con piccole parti in Assembly.
  • Supporta un’ampia varietà di hardware e payloads.
  • Ulteriori funzionalità: netboot, serial console e remote flashing.
  • Alcuni BIOS non abilitano la virtualizzazione hardware (AMD / Intel), indispensabile per chi utilizza virtual machine.
  • Certi BIOS non possono abilitare la funzionalità HPET (usata da Linux per migliorare le funzionalità di risparmio energetico), date un’occhiata a linuxpowertop.org.
  • Tutti i vantaggi di un software open source: chiunque può contribuire, migliorare il software e rimuovere bug, mentre con un BIOS proprietario dipenderete dalla buona volontà di quest’ultimo per sistemare bug, problemi e carenze.
  • Il BIOS solitamente è quella componente che resta proprietaria, quindi per chi ha  una mentalità “open source” e vuole un PC 100% libero da software proprietario… beh, questa è la ciliegina sulla torta.

Payloads

Coreboot esegue solo la parte dell’inizializzazione hardware e relative periferiche, dopodichè entra in gioco il payload (una sorta di modulo che carica varie cose fra cui anche il bootloader), che si prende l’incarico di iniziare la fase di avvio.

Il payload più idoneo nella maggior parte dei casi è SeaBIOS (quello di default), funziona correttamente con tutti i più diffusi sistemi operativi (Windows, Linux, BSD) e carica a sua volta (volendo) anche altri payloads.

Come altri boot loader  (GRUB, LiLo, etc.) può essere personalizzato con un’immagine a scelta, scegliendo fra BMP e il più leggero JPG e addirittura eseguire giochi sul genere di Tetris e Space Invaders.

Download e compilazione

Scaricate i sorgenti (spiacente, niente di precompilato) tramite GIT (un tool per il controllo decentralizzato delle versioni dei sorgenti di un determinato software) e assicuratevi di avere questi programmi:

  • gcc / g++ (compilatori per C e C++)
  • make
  • ncurses-dev

Solitamente li trovate nei repository della vostra distribuzione Linux, mentre se utilizzate Windows vi consiglio la sample project che include al suo interno tutto il necessario per la creazione e compilazione:

  • Coreboot e relativi payloads
  • MSYS – Una collezione di programmi fra cui bash, la shell tipica dei sistemi Unix, oltre GCC.
  • SimNow di AMD, un simulatore per le sue CPU a 64 bit, ottimo per testare il BIOS.

Decomprimete l’archivio in un percorso a piacimento, se serve aggiornate i sorgenti (necessitate di un client SVN) all’interno della directory coreboot.

Avviate go.bat  per avviare lo script, si aprirà Bash e digitiamo:

make oldconfig

Dovrete rispondere a molte domande inerenti la configurazione del sistema per la compilazione del vostro BIOS. Quando tornerete al prompt di Bash digitiamo:

make

A fine compilazione troverete il file coreboot.rom in coreboot\build. Ora potete flashare direttamente nella rom della vostra scheda madre, oppure testarlo direttamente con SimNow.

Testing con SimNow

1) Scaricate SimNow e installatelo.

2) Premete il tasto Windows + R e digitate cmd, nel prompt scriviamo:

setx simnow path_installazione_simnow

In questo modo aggiungerete una variabile di sistema che punta al path (percorso) d’installazione di SimNow (nella stringa dovrete cambiarlo col vostro).

3) Ora potete eseguire simnow.bat contenuto dentro la directory simnow.

4) Si apriranno 3 finestre: una è SimNow main windows, l’altra è il prompt e l’ultima con Putty, un client Telnet/SSH.

5) Volendo potete aggiungere una ISO e caricare un sistema operativo ma non è indispensabile, dobbiamo solo vedere se il BIOS è stato compilato correttamente.

6) Cliccate su Run simulation per iniziare e dovreste vedere il payload che carica.

Flash della ROM

Attenzione:

1) Vi consiglio di dotarvi di un gruppo di continuità, altrimenti in caso di interruzione o sbalzo correte il rischio di fare un bad flash e corrompere il BIOS.  

2) C‘è il rischio concreto che la prima volta il flash non dia gli esiti sperati, vi consiglio di affidarvi ad un programmatore esterno (tipo il Willem) magari utilizzando una chip “di scorta” vergine di tipologia (solitamente plcc32) e dimensione analoga al vostro originale; in questo modo per fare le prove basterà intercambiare i chip nella motherboard senza correre alcun rischio (nel video a fine post si vede bene l’operazione di switch).

3) Verificate di non avere eventuali jumper nella scheda madre per la protezione del flash, lo stesso dicasi per le impostazioni del BIOS (ovviamente il discorso non vale se utilizzate un programmatore esterno.

Da Linux potete flashare anche via live con Parted Magic, un fantastica distro per la gestione delle partizioni  che include al suo interno Flashrom, una comoda e completa utility per leggere, scrivere, identificare e cancellare le ROM di oltre 390 tipologie.

Potete eseguirlo da CD o USB (preferite quest’ultimo) tenendo a portata di mano il file coreboot.rom precedentemente compilato.

Aprite la shell (da root) e digitate:

flashrom -w /percorso/di/coreboot.rom

in questo modo farete il flash sulla scheda madre interna. Se potete utilizzare (come ho suggerito sopra) un programmatore esterno fate così (root NON indispensabile):

flashrom -p nome_programmatore:parametro

L’elenco dei programmatori supportati è piuttosto vasto.

Come vedete Coreboot + SeaBios è decisamente più veloce nell’avvio. Notate anche la semplicità con cui viene cambiata la ROM (tranne casi rari dov’è fisicamente saldata sulla scheda madre).

Conclusioni

Non è assolutamente una passeggiata, occuperà parecchio del vostro tempo, ma se vi tutelerete utilizzando un programmatore esterno con chip vergine non correrete rischi inutili per la vostra scheda madre… poi volete mettere la soddisfazione?😉

Pubblicato il 24 novembre 2013, in Hardware e tecnologie, Software con tag , , , , , . Aggiungi il permalink ai segnalibri. Lascia un commento.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: