libreboot_X220.md (8533B)
1 --- 2 title: "Come Installare Libreboot su un Thinkpad X220" 3 date: 2023-09-28T10:22:33+02:00 4 tags: ['Tecnologia'] 5 draft: true 6 --- 7 8 In questa guida mostrerò (e descriverò) il processo di flashing del BIOS Libreboot su un Thinkpad X220! 9 10 11 ## Ma prima, cos'è Libreboot e perché usarlo? 12 13 Come suggerisce il nome, Libreboot è un [Libre](https://en.wikipedia.org/wiki/Free_software) [BIOS Firmware](https://en.wikipedia.org/wiki/BIOS) (qualora non l'avessi capito, sto nuovamente parlando del principio [FOSS](https://en.wikibooks.org/wiki/FOSS_A_General_Introduction/Introduction)). 14 Ti incoraggio a leggere di più sul progetto, perché è molto interessante, e ad istruirti anche su [Coreboot](https://coreboot.org), dato che è "l'originale" ed ha permesso a Libreboot di esistere (non mi addentrerò nelle [recenti controversie](https://odysee.com/@BrodieRobertson:5/gnu-sends-cease-desist-to-libreboot:e), sono consapevole che installare Libreboot su un Thinkpad X220 è praticamente la stessa cosa che installare Coreboot, prendi questa guida per quello che è: solo una guida). 15 Quindi, per farla breve, Libreboot è un software che rispetta la nostra privacy e ci permette di sbarazzarci del famigerato [IME](https://en.wikipedia.org/wiki/Intel_Management_Engine), l'Intel Management Engine! 16 17 18 ### Perché l'IME è un problema? 19 20 L'Intel Management Engine è un firmware proprietario presente in *virtualmente* qualsiasi processore Intel "serie I" (i3, i5, i7 ecc.) ed è progettato per consentire *[l'accesso remoto alla vostra macchina](https://proprivacy.com/privacy-news/intel-management-engine)* senza che voi lo sappiate o lo approviate. 21 Questo è pericoloso su vari livelli: 22 - Un cospirazionista potrebbe dire che le [Big Tech](https://en.wikipedia.org/wiki/Big_Tech) ci stanno spiando anche in questo preciso momento (ma è questa realtà [davvero così lontana](https://privateisland.tech/dev/spying-by-your-provider)?) 23 - Se (o per meglio dire, *quando*) un hacker troverà un modo per [sfruttare l'IME](https://www.csoonline.com/article/572885/cybercriminals-look-to-exploit-intel-me-vulnerabilities-for-highly-persistent-implants.html) e prenderti di mira, faresti meglio ad andare a vivere in un bosco senza elettricità. 24 25 L'IME è la definizione letterale di [backdoor](https://en.wikipedia.org/wiki/Backdoor_(computing)) ed indovina? È abilitato per impostazione predefinita e non dovrebbe essere possibile disabilitarlo. 26 Chiunque abbia accesso all'IME ha sostanzialmente accesso a tutte le informazioni e le azioni del computer, per un'analisi più approfondita [leggi qui](https://news.ycombinator.com/item?id=15742287). 27 28 P.S. 29 Esiste un equivalente AMD dell'IME, quindi non pensare di essere al sicuro semplicemente passando a un processore AMD! 30 31 32 ## Ok, voglio eliminare l'IME, di cosa ho bisogno? 33 34 Prima di tutto, devo specificare che Libreboot (o anche Coreboot) **NON** rimuove *completamente* l'IME *dal Thinkpad X220*, il motivo è abbastanza tecnico ma puoi trovare la spiegazione [qui](https://libreboot.org/freedom-status.html) e [qui](https://libreboot.org/docs/hardware/) trovi invece la lista dell'hardware supportato. 35 Questo è l'elenco delle cose che ho usato per flashare Libreboot: 36 37 - [Raspberry Pi 3B+](https://www.raspberrypi.com/products/raspberry-pi-3-model-b-plus/) 38 - [Clip Pomona 8 PIN](https://www.ebay.it/itm/185435226670) (il numero di pin varia da computer a computer, verificare online ciò che serve per il tuo modello *specifico*) 39 - [Cavi jumper femmina-femmina](https://www.ebay.it/itm/134415494864?var=433879423725) (ALMENO 6, più corti sono meglio è) 40 - Thinkpad X220 (duh...) 41 - Se non hai intenzione di effettuare l'accesso via ssh al raspberry, avrai bisogno di un monitor e di una tastiera per operare su di esso, dal momento che tutto viene fatto sull' SBC. 42 43 44 ## La configurazione 45 46 47 ### Raspberry 48 49 Iniziamo con il Raspberry; di solito uso [DietPi](https://dietpi.com/) per i miei [SBC](https://en.wikipedia.org/wiki/Single-board_computer), è una distro basata su Debian molto ottimizzata, leggera e veloce e, per quella che è la mia esperienza, funziona molto bene. 50 La [guida](https://dietpi.com/docs/) è davvero ben fatta e ti guida passo passo. 51 52 53 ### Libreboot 54 55 Dopo l'installazione del sistema operativo inizia a scaricare i componenti di Libreboot: 56 1. Scarica lbmk (Libreboot make) 57 > `git clone https://0xacab.org/libreboot/lbmk.git` 58 59 2. Vai nella directory e installa le dependecies richieste 60 > `cd lbmk` 61 > `sudo ./build dependencies debian` 62 63 Nota: se utilizzi una distro diversa, cambia "debian" con "ubuntu2004", "arch" o "void", a seconda del sistema in uso. 64 65 3. Scarica la ROM 66 > `curl -LO https://mirrors.mit.edu/libreboot/stable/20230625/roms/libreboot-20230625_x220_8mb.tar.xz` 67 68 4. Inietta i "blob" nella rom (software proprietario **richiesto** per far funzionare il computer) 69 > `./vendor inject libreboot-20230625_x220_8mb.tar.xz` 70 71 5. Seleziona la rom corretta 72 > `cp grub_x220_8mb_libgfxinit_txtmode_itqwerty.rom /home/admin/.X220/lbmk/libreboot.rom` 73 74 Rinomino per semplicita' e questa e' la rom italiana. 75 76 6. Verifica i blob, poiché se non sono inseriti correttamente e flashi la rom **rischi di brickare il computer!** 77 > `./update trees -b coreboot utils` 78 > `./cbutils/default/cbfstool -x libreboot.rom` 79 > `hexdump flashregion_2_intel_me.bin` 80 81 Se l'output è tutto `0xFF` o non è un mucchio di codice, i blob non sono stati inseriti. 82 In caso contario successo! La rom da flashare è pronta. 83 84 85 ### Il flashing 86 87 Ora che tutto è pronto, è momento di flashare la rom: 88 89 1. Apri il Thinkpad seguendo [questo video](https://support.lenovo.com/us/en/videos/pd022683) e **SCOLLEGA LA BATTERIA**. 90 91 2. Prepara il flasher spegnendo il Pi e collegando la clip, usando i seguenti schemi come riferimento (che sono fantastici e presi dal blog di [Tyler Cipriani](https://tylercipriani.com/blog/2016/11/13/coreboot-on-the-thinkpad-x220-with-a-raspberry-pi/)) 92 93 Pinout del chip Bios X220 94 95 ![piedinatura del chip Bios X220](/Libreboot-X220/schema1.webp) 96 97 Pinout chip Raspberry Pi 3B+ (**ATTENZIONE: questo schema è per questo modello specifico che ha 40 pin invece di 26, se il tuo caso è il secondo controlla lo schema corretto per la tua scheda**) 98 99 ![Piedinatura chip Raspberry Pi 3B+](/Libreboot-X220/schema2.webp) 100 101 Questo dovrebbe essere il risultato finale: 102 103 ![Flasher](/Libreboot-X220/libreboot0.webp) 104 105 3. Il chip da flashare si trova in basso a sinistra, sotto la plastica nera. 106 107 ![Questo è il chip](/Libreboot-X220/libreboot1.webp) 108 109 Collega il flasher al chip **MENTRE TUTTO È SPENTO E SCOLLEGATO**, sia il Raspberry che il thinkpad, **NON** deve esserci elettricità in entrambi, in questo modo non si friggerà l'X220 e non lo si ucciderà. 110 Prestare attenzione all'immagine: la clip Pomona rende abbastanza facile vedere se è collegata correttamente, è necessario prestare attenzione agli spazi dorati tra i "dentini" blu e assicurarsi che si allineino con i piedini grigi del chip sottostante 111 112 ![Clip Pomona collegata](/Libreboot-X220/libreboot2.webp) 113 114 A questo punto puoi accendere il raspberry e operare su di esso: 115 116 ![Configurazione del flashing completata](/Libreboot-X220/libreboot3.webp) 117 118 4. Per prima cosa abilita il GPIO nel raspberry 119 > `raspi-config` 120 121 Vai in "Advanced Options" ed abilita "SPI state", quindi esci ed installa flashrom 122 123 > `dietpi-update` 124 > `sudo apt-get update && sudo apt-get install libftdi1 libftdi-dev libusb-dev libpci-dev subversion` 125 > `sudo apt-get install build-essential pciutils usbutils libpci-dev libusb-dev libftdi1 libftdi-dev zlib1g-dev` 126 > `sudo apt-get install flashrom` 127 128 A questo punto fai *almeno* (**NON OPZIONALE**) due letture dal chip e confronta il loro [hash](https://en.wikipedia.org/wiki/Hash_function), **SOLO se l'hash è lo stesso continuare con il flashing**; qualora non sia così spegni tutto, rimuovi e riattacca la clip. 129 130 > `sudo flashrom -p linux_spi:dev=/dev/spidev0.0 -r flash01.bin` 131 > `sudo flashrom -p linux_spi:dev=/dev/spidev0.0 -r flash02.bin` 132 > `md5sum flash01.bin flash02.bin` <-- Queste due righe **DEVONO essere uguali** 133 134 Ora flasha la rom preparata prima! 135 136 > `sudo flashrom -p linux_spi:dev=/dev/spidev0.0 -w lbmk/libreboot.rom` 137 138 Ed hai finito! Hai installato con successo Libreboot sul tuo computer! 139 Nel caso in cui qualcosa sia andato storto e il thinkpad non si avvii, basta riflashare flash01.bin (la lettura che hai fatto prima di flashare libreboot, l'hai fatta, vero?). 140 141 Se hai bisogno di aiuto o qualcosa non è chiaro, contattami pure!