You are here

Netbook GNU/Linux: trasformare un ChromeBook in un computerino normale con Linux

I netbook con GNU/Linux erano in commercio nel 2008, poi sono spariti perché non hanno trovato mercato. Oggi, nel 2017, è ancora possibile acquistare un computerino da utilizzare con GNU/Linux, piccolo e agevole da trasportare, a condizione di avere tanta pazienza e competenza. I computer piccoli venduti nei supermercati dell'elettronica, almeno in Italia, sono tutti con Windows 10 e inadatti per essere utilizzati con Linux. Al momento, una possibilità concreta è acquistare su Internet un ChromeBook (con tastiera italiana) e hackerarlo per trasformarlo in un computer "normale" con cui poter fare tutto ciò che si vuole, compresa l'installazione di una distribuzione Linux.

Tutto ciò non è banale, è un vero e proprio hacking. Per chi ha voglia di avventurarsi in quest'impresa, riporto dei passaggi precisi riferito ad uno specifico modello di ChromeBook attualmente in vendita e disponibile in due modelli da 11 pollici e da 14 pollici.

Gli strumenti che serviranno sono: il ChromeBook in questione, due chiavine usb, un paio di cacciaviti molto piccoli, una connessione Wi-Fi attiva, oltre a tanta attenzione e pazienza... anche perché il computer va smontato per poter rimuovere il blocco imposto da Google che impedisce l'installazione di Linux...

Nella foto a sinistra il computerino in questione dopo aver installato Linux Mint, a destra lo stesso computer durante le operazioni di hacking...

Netbook Linux Firmware ChromeOS

Il modello di riferimento per quanto segue è un Acer CB3-131-C0ED Chromebook, in vendita alla pagina:
https://www.amazon.it/gp/product/B01CYB2WH6/ref=ox_sc_act_title_1?smid=A3F0C30FE6FGKC&psc=1

Vantaggi di questo modello: silenziosissimo (non ha la ventola), ha abbastanza Ram (4GB) e Cpu da poter tenere aperte tante pagine web in contemporanea senza problemi. Disco MMC interno da 40GB, veloce e più che capiente per Linux. Lunghissima durata della batteria (nel momento in cui scrivo, ce l'ho acceso senza alimentatore già da 12 ore...). E' molto veloce, perlomeno con Linux.

Svantaggi di questo modello: l'hardware funziona tutto soltanto su GalliumOS, che essendo una distribuzione basata su Ubuntu Linux è comunque ampiamente personalizzabile (ad es. è possibile cambiare ambiente desktop senza particolari problemi, come spiegato più in basso). Ad es., io ho installato prima GalliumOS e poi ci ho installato sopra KDE. Di contro, su altre distribuzioni, come Linux Mint, l'audio di default non funziona.

Quanto segue è il frutto di 20 ore circa di lavoro per installare e far funzionare correttamente GNU/Linux su un Acer CB3-131-C0ED Chromebook. Riporto dettagliatamente ciò che ho fatto affinché sia di utilità per altre persone.

Fasi preliminari:

  1. La compatibilità hardware con Gallium OS (distribuzione Linux specifica per Chromebook e derivata da Xubuntu) è verificata alla pagina:
    https://wiki.galliumos.org/Hardware_Compatibility
  2. Bisogna prender nota del processore, che in questo caso è "Intel Bay Trail"
  3. Scaricare la versione di Gallium OS specifica per il processore in questione, alla pagina: https://galliumos.org/download
    Nel momento in cui scrivo, il link diretto è: https://galliumos.org/releases/2.1/galliumos-baytrail-2.1.iso
  4. In alternativa, scaricare Linux Mint 18.3 (di cui più avanti riporto alcuni passaggi per l'installazione) oppure un'altra distribuzione Linux.
  5. Opzionale: verificare il checksum md5
  6. Mettere la distribuzione Linux scaricata su una chiavina USB avviabile. Per chi non lo sa fare, qui ci sono alcune istruzioni di esempio: https://wiki.galliumos.org/Installing/Creating_Bootable_USB
  7. Distribuzioni come Linux Mint (e forse anche Ubuntu), comunque, includono uno strumento chiamato "Scrittore di immagine USB" per fare questo passaggio automaticamente.

Dopo aver acquistato il computerino:

  1. Attaccare il caricatore.
  2. Alla prima accensione, è necessario fornire l'accesso alla rete Wi-Fi
  3. Accettare il contratto posto da Google (magari disabilitando l'invio a Google delle statistiche di utilizzo)
  4. Aspettare l'installazione automatica di tutti gli aggiornamenti (non è possibile farne a meno)
  5. Scegliere una propria e-mail Gmail da associare al Chromebook e inserirla
  6. Inserire la relativa password
  7. Scegliere un avatar
  8. Chrome OS è avviato. E' possibile fare un tour opzionale.

Abilitare il terminale con i comandi da utente root:

  1. Come è possibile verificare alla pagina seguente, per installare altri sistemi operativi bisogna cambiare il firmware: https://wiki.galliumos.org/Firmware
  2. Nello specifico, installeremo il "Full Firmware / ROM" che trasformerà il Chromebook in un computerino ordinario su cui sarà possibile installare qualsiasi sistema operativo (perdendo però Chrome OS).
  3. Premere e lasciare premuto Esc, poi Refresh e infine Power. Se non fosse chiaro, i tre tasti da premere contemporaneamente sono indicati in questa fotografia: https://www.howtogeek.com/wp-content/uploads/2015/02/ximg_54f133d38a2aa.jpg.pagespeed.gp+jp+jw+pj+ws+js+rj+rp+rw+ri+cp+md.ic.8LhjjiOeKf.jpg
  4. Il computer si riavvierà e mostrerà la scritta: "Chrome OS is missing or damaged". Ok, va bene così.
  5. Premere sulla tastiera Ctrl+D
  6. Sullo schermo apparirà la scritta "To turn OS Verification OFF, press ENTER". Va bene così, bisogna premere il tasto "Invio" sulla tastiera.
  7. Apparirà la scritta "OS verification is OFF". Non bisogna fare nient'altro, se non attendere. Dopo un po', il computerino farà alcuni beep, poi si riavvierà, cancellerà tutti i dati e passerà alla "modalità sviluppatore". Bisogna attendere circa 10-15 minuti per il completamento.
  8. Quando avrà finito, nella nuova schermata di benvenuto, cliccare su "Attiva funzioni di debug" e poi su "Procedi".
  9. Come prima, il computerino si riavvierà, poi comparirà la scritta "OS verification is OFF". Non bisogna fare nient'altro, se non attendere. Dopo un po', il computerino farà alcuni beep, poi si riavvierà ancora.
  10. Nella schermata "Attiva funzioni di debug", inserire la propria password per l'utente root (prestare la massima attenzione a scriverla correttamente e a non dimenticarla, servirà successivamente). Le funzioni di debug saranno attivate e con esse la possibilità di fare il boot da usb.
  11. Di nuovo ci sarà la schermata di benvenuto. Scegliere la rete wi-fi per proseguire. Ancora una volta, bisogna accettare il contratto Google e specificare le proprie credenziali Gmail.

Smontare il computer per togliere la vite che impedisce la sostituzione del firmware
E' arrivato il momento di smontare il computer e togliere la vite fisica che impedisce la sostituzione del firmware (physical write-protect screw on the mainboard).

  1. Spegnere il computer.
  2. Staccare l'alimentatore.
  3. Prendere un cacciavite sufficientemente piccolo da poter fare un lavoro di precisione (le viti sono a stella, ma va bene anche un cacciavite a punta piatta da 1,3mm).
  4. Togliere le 11 viti dietro: per fortuna sono tutte uguali e con rondella incorporata.
  5. Attenzione ad aprire molto delicatamente l'incastro e senza tirare, perché c'è una piattina che va dalla scheda madre al retro. Procedere con molta cautela per non staccare e non rompere nulla.
  6. Se durante queste operazioni il computer fa qualche beep, vuol dire che si è riacceso durante l'apertura: pazienza, non succede nulla, basta stare attenti a non toccare nessun integrato né nulla di diverso dalla vite da togliere.
  7. Togliere la vite indicata in fotografia, serve un cacciavite a stella molto piccolo che aderisca bene, perché la vite è molto strinta:
    http://jcftang.github.io/CB3-131.jpg

E' arrivato il momento di sostituire il firmware

  1. Prima di andare avanti, assicurarsi di avere a portata di mano una chiavina USB formattata FAT32 in cui sarà salvato un backup del firmware di fabbrica. Assicurarsi inoltre che il computerino sia connesso al Wi-Fi, perché il firmware sarà scaricato da Internet.
  2. Accendere il computer appena rimontato: attendere che mostri il desktop.
  3. Premere Ctrl+Alt+F2 (F2 è il terzo tasto in alto contando da sinistra, quello dove c'è disegnata una freccia verso destra)
  4. Al prompt dei comandi che sarà mostrato, alla richiesta "localhost login:" specificare "root" e come password inserire quella precedentemente scelta.
  5. Dare nel terminale così aperto i seguenti tre comandi (attenzione a ricopiarli esattamente, da notare che nel secondo comando c'è una "o" maiuscola e non uno zero, inoltre, poiché la tastiera sarà impostata sulla lingua inglese, per fare il trattino "-" bisogna premere l'apostrofo, cioè il tasto in cui c'è disegnato il punto interrogativo, per fare i due punti ":" bisogna premere "Maiusc+ò", cioè "Maiusc" più il tasto riportante la "o" accentata, e per fare lo slash inverso "/" bisogna premete il tasto con il trattino "-"):
    • cd
    • curl -LO https://mrchromebox.tech/firmware-util.sh
    • sudo bash firmware-util.sh
  6. Sì aprirà il "ChromeOS Firmware Utility Script".
  7. Se la rimozione della vite interna è stata fatta correttamente, sarà mostrata la scritta "Fw WP: Disabled", che significa che la protezione dalla riscrittura del firmware è stata disabilitata. Se così non fosse, non è possibile andare avanti.
  8. Premere il tasto "3" e poi "Invio" per installare "Full ROM Firmware"
  9. Sarà mostrato un avviso abbastanza minaccioso. Premere "y" e poi "Invio" per andare avanti.
  10. L'avviso successivo avverte che ChromeOS non sarà più utilizzabile e che per avviare le distribuzioni basate su Debian o Ubuntu è necessario seguire le istruzioni alla pagina: https://mrchromebox.tech/#faq
  11. Premere "y" e poi Invio
  12. Alla domanda "Create a backup copy of your stock firmware?" rispondere "Y"
  13. Inserire la chiavina usb precedentemente preparata e premere Invio.
  14. Specificare il numero del dispositivo da utilizzare per il salvataggio: se è stata inserita una sola chiavina usb, la risposta corretta è "1". Premere Invio.
  15. Passaggio opzionale - Se durante il salvataggio su chiavina usb dà come errore che il file system è in sola lettura, è possibile uscire dalla firmware utility e montare manualmente la chiavina tramite "mount". Ad esempio, soltanto dopo aver verificato che la partizione da montare sia /dev/sda1 (magari controllare "dmesg" all'inserimento della chiavina per vedere il nome del device e poi verificarne il partizionamento con "fdisk"), è possibile fare un "mkdir chiavinausb" e poi "mount /dev/sda1 chiavinausb/", per poi riverificare con "mount" che il file system sia in lettura/scrittura (rw).
  16. A questo punto il firmware originale sarà stato salvato sulla chiavina (o non salvato per chi ha scelto di saltare questo passaggio). Sarà mostrata la scritta: "Firmware backup complete. Remove the USB stick and press [Enter] to continue". Rimuovere la chiavina (e magari inserirla in un altro computer per verificare l'effettivo salvaggio del firmware) e premere Invio.
  17. Compariranno le scritte: "Downloading Full ROM firmware", poi "Installing Full ROM firmare", infine "Full ROM firmware successfully installed/updated". Premere Invio
  18. Premere "P" e "Invio" per spegnere il computer.

Infine, è arrivato il momento di installare GNU/Linux...

Di seguito vediamo come installare Gallium OS oppure, in alternativa, Linux Mint 18.3

AVVERTENZA: il computerino ha due porte USB, quella a sinistra è USB3, quella a destra è USB2. Nei passaggi seguenti utilizzare soltanto la porta USB3 a sinistra. Dico questo perché ho letto in Rete che installare Linux dalla porta di destra USB2 può causare problemi a causa di un bug: non ho verificato se effettivamente questo bug esiste, in ogni caso la porta USB3 è ovviamente più veloce (a condizione che la chiavina USB supporti l'USB3).

CONSIGLIATO - Passaggi per installare Gallium OS:

  1. Inserire il chiavina in cui era stato caricato Gallium OS
  2. Accendere il computer, premere "Esc" alla schermata di boot, selezionare con le frecce sulla tastiera "Boot Manager", Premere Invio, selezionare "EFI USB Device" e premere Invio.
  3. Comparirà una schermata la cui prima opzione è "GalliumOS Live Image and Installer". Premere Invio
  4. Da qui in poi, i passaggi seguenti sono quelli dell'installazione di una classica distribuzione Linux (nello specifico, sono identici a quelli di Ubuntu). Si aprirà un desktop e basta cliccare su "Install Gallium OS 2.1" e poi selezionare "Italiano".
  5. Attenzione che, durante l'installazione, la tastiera sarà ancora impostata sulla lingua inglese: ciò potrebbe creare un po' di difficoltà nell'inserire la password del wireless. Al termine dell'installazione, comunque, la tastiera sarà in italiano.
  6. Per chi avesse poca praticità con il touchpad, basta ricordare che il "click destro" viene fatto sbattendo insieme il dito indice e il dito medio.
  7. Al primo avvio, ci sarà purtroppo un problema di mappatura della tastiera italiana, in particolare non funzioneranno i caratteri come "#" oppure "@". Il problema è comunque risolvibile andando nelle impostazioni della tastiera (menù Impostazioni, poi Tastiera), cliccando poi su "Mappatura" e infine su "Usa predefiniti di sistema". Riavviare. In questo modo i due tasti per la luminosità smetteranno di funzionare, ma la luminosità rimarrà comunque impostabile tramite l'icona della batteria. Ho segnalato il bug in questione alla pagina: https://github.com/GalliumOS/galliumos-distro/issues/401
  8. Per il momento, il computerino non si spegne correttamente: per forzare lo spegnimento, bisogna tenere premuto il pulsante di alimentazione. E' comunque un problema risolvibile: dare di nuovo la password del Wi-Fi e installare tutti gli aggiornamenti con "GalliumOS update": ciò risolverà il problema dello spegnimento.
  9. Adesso davvero funziona tutto. Fine.

OPZIONALE - Passaggi per installare GalliumOS + un ambiente desktop diverso da quello di default (KDE):

  1. Fatti tutti i passaggi precedenti per installare GalliumOS, è possibile cambiare ambiente desktop (KDE, Gnome, altri) semplicemente installando un apposito meta-pacchetto.
  2. Per KDE, dare da terminale il comando:
    sudo apt-get install kubuntu-full
  3. Durante l'installazione, scegliere come "Display manager predefinito" "sddm" (per selezionarlo, premere sulla tastiera TAB, cioè il tasto per le tabulazioni, e poi Invio).
  4. Terminata l'installazione, basta riavviare per poi ritrovarsi un ambiente KDE completo e funzionante, e già ottimizzato per il piccolo schermo da 11 pollici (il testo appare più leggibile rispetto all'installazione standard di GalliumOS).
  5. Nelle impostazioni avanzate di "Schermata di accesso (SDDM)", accessibile dal menù delle applicazioni, è possibile abilitare l'accesso automatico dell'utente.
  6. Il supporto completo alla lingua italiana non è ancora installato. Dal Gestore Pacchetti (Synaptic Package Manager) Installare i pacchetti "firefox-locale-it", "libreoffice-l10n-it", "libreoffice-help-it", "hyphen-it", "hunspell-it"
  7. Fare tutto le altre eventuali personalizzazioni: sul disco interno MMC dovrebbero essere rimasti circa 20GB liberi.

ATTENZIONE: soluzione se non va l'audio dove aver installato KDE...

  1. Se non si sente l'audio, è perché l'output è impostato di default su HDMI. La soluzione, in questo caso, è semplice: bisogna aprire il terminale, lanciare il comando "pavucontrol" (che è già installato di default insieme a KDE) e, durante la riproduzione dell'audio, selezionare come output "byt-max98090 Analog Aufio".
  2. Ho verificato che funzionano correttamente l'audio interno (altoparlanti), l'audio esterno (cuffie) e il microfono interno. Non sono però riuscito a far funzionare contemporaneamente il microfono interno e gli altoparlanti interni per fare una videochiamata su appear.in: potrebbe trattarsi di un bug non ancora risolto, che ho segnalato alla pagina: https://github.com/GalliumOS/galliumos-distro/issues/402

NON CONSIGLIATO a causa dei problemi con l'audio - Passaggi per installare Linux Mint 18.3:

  1. Far partire l'installazione di Linux Mint 18.3 normalmente come su un qualsiasi altro computer. Da notare che usando Linux Mint 18.2 non funziona la regolazione della luminosità dello schermo, per questo è necessario installare proprio la versione 18.3, che nel momento in cui scrivo è l'ultima uscita.
  2. Dopo l'installazione, il sistema non si avvierà. Qui i casi sono due:
    1. Primo caso: se verrà mostrata la schermata "Minimal BASH like line editing is supported. For the first word, TAB lists possible command completions. anywhere else TAB lists possible device or file completions", niente panico, è un problema risolvibile.
      • Avviare di nuovo la live di Linux Mint e installare boot-repair, in base alle istruzioni contenute qui: https://itsfoss.com/fix-minimal-bash-line-editing-supported-grub-error-linux/
      • Dopo aver aperto boot-repair, andare su "Advanced options" (perché il "Recommended repair" non funziona). Nelle opzioni avanzate, scegliere le opzioni che forzano la reinstallazione di Grub e l'utilizzo del file standard EFI, disabilitare il ripristino dei backup EFI e impostare la visualizzazione del menu di avvio per 10 secondi, abilitare il Secure Boot ed eliminare ogni traccia di Grub prima di reinstallarlo. Seguire poi le istruzioni e dare i comandi richiesti nel terminale.
    2. Secondo caso: se invece di Grub comparirà la "EFI Shell"...
      • Bisogna digitare "exit" e premere "Invio" per tornare alle opzioni UEFI
      • Selezionare "Boot Maintenance Manager", poi "Boot From File", scegliere la prima opzione, poi <EFI>, <ubuntu>, e infine "grubx64.efi"
      • A questo punto Linux Mint si avvierà normalmente.
      • Dopo aver avviato Linux Mint in questo modo, aprire il terminale e dare questi comandi (attenzione a ricopiarli esattamente!):
        • sudo su
        • mkdir -p /boot/efi/EFI/BOOT
        • cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.efi
      • Riavviare e controllare che adesso il boot avvenga correttamente.
  3. L'audio di default non funziona, ma anche questo è un problema risolvibile (almeno in parte): bisogna installare e usare un kernel diverso, va bene la versione "4.12.0-galliumos-baytrail" di GalliumOS. Per installarlo, basta scaricare e installare i quattro pacchetti deb alla pagina:
    https://apt.galliumos.org/pool/main/l/linux-4.12.0-galliumos-baytrail/
  4. Risultato: l'output audio funziona soltanto sulle cuffie esterne (il cui jack deve già essere inserito e non essere toccato durante la riproduzione). La webcam funziona, ma il microfono interno no. Non ho avuto modo di provare l'output HDMI. Al momento non ho interesse ad approfondire il problema dell'audio (che invece con GalliumOS funziona), comunque una soluzione temporanea molto rapida, nel caso in cui l'audio sia importante, è l'uso di un piccolo adattatore esterno come questo qui linkato. Maggiori dettagli si trovano nell'articolo: http://www.fascinatingcaptain.com/blog/how-do-i-make-audio-work-on-a-chromebook-running-linux/

Note finali

Con piacevole sorpresa, ho scoperto che una mia piccola (e leggera) macchina virtuale VirtualBox (ospitante un Windows 98), di cui ogni tanto ho bisogno (per via di un certo software ormai "arcaico" ma per me ancora utile), gira benissimo su questo Acer CB3-131-C0ED, dopo tutti i "trattamenti" di cui sopra. La macchina virtuale in questione, seppur modesta nel suo carico di CPU e Ram, riproduce video e audio correttamente (bisogna però abilitare l'uscita audio "byt-max98090" tramite pavucontrol, come sopra specificato). In effetti, leggendo la documentazione del firmware che ho sostituito a quello di fabbrica, c'è scritto che su alcuni modelli vengono abilitate delle funzionalità utili nella virtualizzazione.

Altre note positive sono l'ottimo volume e la forte luminosità (ovviamente regolabili), che in certe circostanze possono far comodo, soprattutto negli spazi aperti.

Le uniche note negative rimangono l'impossibilità di un full-duplex con l'audio (necessario per le videochiamate) e, in certe circostanze che non ho ancor ben identificato, un sfarfallio dello schermo (comunque risolvibile riavviando il computer).

I miei più sinceri complimenti e ringraziamenti a tutti coloro che hanno reso possibile la "liberazione" di questo computer dal software blindato di Google, rendendo disponibile in Rete sia software libero sia la documentazione di cui mi sono servito. Mi riferisco innanzitutto alla comunità di GalliumOS e a chi realizza i firmware "che sbloccano" i Chromebook, ma non solo: mi è impossibile elencare le decine di siti web che ho consultato prima o dopo l'acquisto di questo computerino.

Happy hacking a tutti,
Francesco Galgani,
29 novembre 2017

 

 

Classificazione: