Libreboot: Difference between revisions
No edit summary |
No edit summary |
||
Line 60: | Line 60: | ||
= Protsessi jätk: | = Protsessi jätk: Raspberry Pi ja ThinkPad X200s riistvaraliselt valmis seadmine = | ||
[[File:Libreboot_raspberry_pi_x200s.jpg|200px|thumb|right|Seadmete füüsiline paigutus on valmis.]] | [[File:Libreboot_raspberry_pi_x200s.jpg|200px|thumb|right|Seadmete füüsiline paigutus on valmis.]] | ||
<p>Seda annab teha korralikumalt või siis lihtsamalt või vahepealselt. Valik on teostaja teha vastavalt olemasolevatele vahenditele.</p> | <p>Seda annab teha korralikumalt või siis lihtsamalt või vahepealselt. Valik on teostaja teha vastavalt olemasolevatele vahenditele.</p> | ||
Line 76: | Line 76: | ||
= Protsess jätkub: | = Protsess jätkub: Tarkvaralise poolega tegutsemine = | ||
<p>Nüüd toimub kõik kas otse või üle ssh Raspberry Pi Raspbian<ref>[https://www.raspbian.org/ Raspbian]</ref> GNU/Linux distributsiooni käsureal.</p> | <p>Nüüd toimub kõik kas otse või üle ssh Raspberry Pi Raspbian<ref>[https://www.raspbian.org/ Raspbian]</ref> GNU/Linux distributsiooni käsureal.</p> |
Revision as of 12:11, 8 January 2016
Autor
Hanno-Ivar Ilves AK11 2015/2016
Viimane versioon: 2016-01-08
Mis on Libreboot?
Libreboot on Coreboot distributsioon[1]. Coreboot on vaba tarkvara püsivara asendamaks toetatud süsteemidel BIOSi ja EFI püsivara. Libreboot viib asja veel kaugemale, lubatud on ainult avatud lähtekoodiga vaba tarkvara, lubatud ei ole suletud lähtekoodiga binary blobid (firmware, microcode).
Erinevalt Corebootist toetab Libreboot tunduvalt vähem erinevaid süsteeme (sülearvutid, emaplaadid), sest lubatud on ainult blobide mitte kasutav vaba kood. Libreboot annab aga võrreldes Corebootiga tavakasutajale ühe vägagi tähtsa eelise, teda on tunduvalt lihtsam paigaldada toetatud süsteemidele. Lisaks lähtekoodile on olemas juba valmiskompileeritud tarkvara, olemas on abiprogrammid ja juhendid kuidas konkreetsele arvutile Librebooti paigaldada. Kui Corebooti rolling release, siis Librebooti väljalase on mingi hetke stabiilselt toimiv ja testitud kood, mis eelduste kohaselt toimib korrektselt.
Paigaldamise eeldused
Librebooti paigaldamine ei ole sellest kõigest hoolimata mitte igaühele. Osade süsteemide BIOSid on lihtsalt root kasutaja õigustes käsurealt ümberkirjutatavad, osad vajavad välise SPI (Serial Peripheral Interface) programmaatori kasutamist, millega siis kirjutatakse arvuti BIOSi kiibis olev süsteem üle. Vaja võib minna ka jootejaama ning jootmisoskusi. Samuti tuleb arvestada, et kõik ametlikud juhendid lähtuvad vaba tarkvara ja vaba riistvara kasutamisest. Samas neid annab ümbermõtestada enda kasutatavale Linuxi distributsioonile (näiteks Trisquel = Ubuntu, Parabola = Arch) ning Internetis leiab ka teisi süsteeme kasutavaid juhendeid.
Igaljuhul on eelduseks, et arvutis kuhu tahate Librebooti paigaldada kõvakettal/välkmälu kettal on toimiv GNU/Linux distributsioon või paigaldate protsessi edu lõpetamise järel selle. MS Windowsid ei ole Librebooti paigaldamise järel enam konkreetses arvutis käivitusvõimelised ning BSD-de võimalik käivitamine nõuab oskusi.
Kontrollida tuleb, kas teie sülearvuti ja/või emaplaat on toetatud riistvara nimekirjas[2], ei piisa ainult sellest, et ta on seal nimekirjas, tuleb lugeda täpselt konkreetse mudeli kohta käivat dokumentatsiooni, sest olenevalt emaplaadist, selle revisionist, kiibistikust, protsessorist, videokaardist tulenevalt eksisteerib eripärasid.
Kui kõik klapib, siis tuleb tõmmata oma arvutile sobiv Librebooti versioon ning alustada juhendi või juhendite järgi toimetamist.
Juhend eeldab, et kasutajal on kõigis mainitavates süsteemides kasutusel mingi GNU/Linux distributsioon, milles tal on administraatori (root või sudo piisavate õigustega) õigused. Kõik käsklused seda ei vaja, kuid protsessi ei ole võimalik läbiviia lõpuni ilma juurkasutaja õigusteta.
Protsessi algus
Edasiste näideta aluseks on Lenovo Thinkpad X200s (Celeron 847 protsessor) tootja poolse BIOSi sisu asendamine Libreboot r20150518 versiooniga.
Kõigepealt läheb vaja välist programmeerijat. Libreboot projekt soovitab BeagleBone Black miniarvutit[3], kuid kuna see on Eestis vähe levinud, aga Raspberry Pi miniarvuteid leidub rohkem, siis konkreetses näites on kasutsel just nimelt sellel põhjusel viimati nimetatu.
Librebooti kodulehelt Raspberry Pi kasutamise juhendit ei leia, sest Raspberry Pi ei ole riistvara mis toimiks vabalt ilma binary blobideta[4] [5].
Kuid Internetis on olemas vajalik info, et paigaldada Libreboot ThinkPad X200si sülearvutile kasutades Raspberry Pi B välise SPI flashijana [6] [7] [8]
Kasutades nendelt linkidelt pärit informaatsiooni saab kasutada ametliku Libreboot juhendit asendades seal BeagleBone Black kohta käiva Raspberry Pi spetsiifilise infoga.
Alustuseks tuleb kirjutada ules Lenovo ThinkPad X200s võrgukaardi MAC aadress.
Kõige kindlam on kasutada ip addr
või ifconfig
käsku ning kirjutada võrgukaardi MAC aadress üles.
Seejärel tuleb kindlaks teha BIOSi flashi kiibi mahutavus[9]. See on vajalik, et valida õige suurusega Libreboot'i fail.
dmidecode | grep ROM\ Size
Seejärel valida Librebooti allalaadimise[10] lehelt sobiv peegel ja laadida 20150518 kataloogist alla libreboot_util.tar.xz faili ja rom kaustast süsteemile sobiva faili, antud juhul libreboot_x200_8mb.tar.xz.
Kasulik oleks kontrollida ega allalaaditud failidega miskit juhtunud pole. Selleks avada 20150518 kataloogis oleva sha512sum.txt faili ning kontrollida sha512sum <failinimi>
programmiga kas allalaaditud failide räsid vastavad kirjas olevatele.
Kui kõik korras, siis pakida mõlemad allalaaditud lahti meelepärase ja sobiva tarkvaraga.
Loome sülearvuti võrgukaardi MAC aadressi siseldava ROM faili. MAC aadress on sama, mis enne sai üles kirjutatud.[11]
./ich9gen --macaddress XX:XX:XX:XX:XX:XX
Seejärel tuleb lisada see valmis kujul olevasse Libreboot püsivara faili.[12] Soovituslik on võtta konkreetse sülearvuti füüsilisele klahvipaigutusele vastav versioon. See omab tähtsust Librebooti Grubi käsureal, kus klahvipaigutus vastab valitule. Konkreetsel sülearvutil on skandinaavia klahvipaigutus seega:
dd if=ich9fdgbe_8m.bin of=x200_8mb_svenska_vesafb.rom bs=1 count=12k conv=notrunc
Seejärel kopeerida konkreetse Libreboot püsivara faili Raspberry Pi mälukaardile (kas kasutades scp
käsklust või USB mälupulga vahendusel või kuidas kellegil vahendeid ja soovi).
Protsessi jätk: Raspberry Pi ja ThinkPad X200s riistvaraliselt valmis seadmine
Seda annab teha korralikumalt või siis lihtsamalt või vahepealselt. Valik on teostaja teha vastavalt olemasolevatele vahenditele.
ThinkPad X200s BIOSi kiibi on WSON kujul, mille jalgade ühendused vastavad ThinkPad X200 SOIC-8 omadele.[13]. Kuna BIOSi kiib asub emaplaadi alumisel küljel tuleb sülearvuti lahti võtta ja emaplaat väljavõtta.
Konkreetse näite puhul sai valitud robustne teostus ja juhtmed lihtsalt joodetud.
"X200 X201 Hardware Flashing"[14] lehel on joonisel kirjas Pinide asukohad, mida on vaja ThinkPad X200s BIOSi poolel ühendada. Seejärel teha kindlaks "RPi Low-level peripherals" lehelt [15] Raspberry Pi poolel kasutatavad P1 Headeri Pin-id. Seadmed paigutada enam-vähem elektrit (väga) mitte juhtivale alusele (näites mullikile).
Seejärel lõigata kuus sobiva pikkusega juhtmejuppi, üldiselt on niimoodi, et mida lühem juhe seda parem, samas tuleb arvestada, et neid juhtmeid peab saama joota mõlemast otsast.
Joota tuleb üks juhtmeots vastava BIOSi kiibi jala külge ja teine Raspberry Pi vastava pin külge, niimoodi kõik kuus juhet. Konkreetses näites sai kõigepealt joodetud juhtmed BIOSi kiib jalgade külge, seejärel jootekohad kuuma liimiga üleliimitud, et paremini püsiksid ning seejärel joodetud vabad juhtmeotsad Raspberry Pi vastavate pinide külge.
Protsess jätkub: Tarkvaralise poolega tegutsemine
Nüüd toimub kõik kas otse või üle ssh Raspberry Pi Raspbian[16] GNU/Linux distributsiooni käsureal.
Alustuseks tuleks uuendada Raspbainil tarkvara sudo apt-get update && sudo apt-get dist-upgrade && sudo reboot
.[17].
Seejärel tuleks uuendada Raspberry Pi püsivaraga seonduv sudo rpi-update
.[18] Seejärel Raspberry Pi taaskäivitamine.
Lõpetuseks tuleb lubada Raspberry Pi SPI liidese kasutamine, kõige lihtsam on seda teha raspi-config vahendusel.[19]
Vaja läheb flashrom[20] nimelist programmi. Praeguse näite puhul sai allalaetud flashrom 0.9.8 versiooni lähtekood[21] ja kompileeritud Raspberry Pi. Allalaadimise lehel[22] on kirjas, kõik mis vaja, et saaks kompileerida.
Peale edukat kompileerimist tuleks testida flashromi toimimist.[23]
./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512
Infoks peaks saama ülevaate, mis flash kiibiga on Raspberry Pi ThinkPad X200s sülearvuti emaplaadil ühendatud. Seal valikus võib olla mitmeid variante, mis võivad natuke omavahel erineda.
Seejärel tuleks varundada ThinkPad X200s BIOS kiibi originaal sisu, see toimib ka ühenduse testimisena (seetõttu soovitatakse seda sooritada kolm korda).[24]
./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory1.rom
./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory2.rom
./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory3.rom
Tuleks genereerida ja võrrelda kõigi kolme salvestatud faili räsi.
sha512sum factory*.rom
Kui need on samad, siis on kõik suurepärane. Kui räsides on erinevused, siis eksisteerib ühenduses probleem ning edasine jätkamine on riskante. Kontrollige joodetud juhtmete ühendusi, paigutage natuke Raspberry Pi ümber ja proovige uuesti olemasoleva BIOSi salvestamist ning võrrelge räsisid.
Kui räsid vastavad, siis jätkake.
Nüüd toimub Librebooti püsivara reaalselt BIOSi kiibile kirjutamine.[25]
./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -w x200_8mb_svenska_vesafb.rom -V
Vajadusel tuleb -c võtmega määrata algsest flashrom käsu testist nähtud kiibi sobiva tähis (kui neid oli seal mitu). Kui täpselt ei ole teada, milline on õige (on ununenud ülesmärkida), siis võib neid järjest proovida, eeldusel, et üks neist valikutest toimib korralikult.
Ekraanil toimub palju, kuid kõige tähtsam on, et kõige lõpus oleks kiri.
Verifying flash... VERIFIED
Kiri Chip content is identical to the requested image on ka väga hea, seda saab juhul kui Librebooti püsivara on juba varem BIOSi kiibile edukalt kirjutatud ja toimub sama Librebooti püsivara faili uuesti edukas sinna kirjutamine.
Suurepärane, sülearvuti emaplaadi BIOSi kiibile on nüüd Libreboot paigaldatud, juhtmed võib lahtijoota, sülearvuti kokku panna ning hakata Librebooti kasutamist avastama.
Kui lõpus on failed või midagi muud sarnast, siis tuleb uuesti proovida, kui ikka ebaõnnestub, siis kontrollida juhtmeid ning proovida uuesti. Variandid ongi uuesti proovida protsessi mingist kohast alates või mõelda kuhu just valminud elektroonilise jäätme objekt panna.
Kokkuvõte
Libreboot'i projekt on väga kasulik. Ta näitab meile, kui väga me tegelikult vaikimisi usaldame kõiksugu nutiseadmete tootjaid kelle tooteid me kasutame igapäevaselt. Samuti saab selgeks kui raske on tegelikult võta kasutusel vaba lähtekoodiga ja suletud püsivarade vabasid süsteeme. Millised on piirangud, milliseid kompromisse tuleb teha valikutes ja milliseid piiranguid see kehtestab meile.
Lisaks õpime palju oma arvuti riistvara kohta. Kõige enam saame teada aga oma arvuti BIOSi ülesehituse kohta, mis seal on, miks on ning mida seal on sellist, ilma milleta saame arvuti ja meie ilusti hakkama.
Kasutatud materjalid
- ↑ About the libreboot project
- ↑ Hardware compatibility list
- ↑ How to program an SPI flash chip with the BeagleBone Black
- ↑ How do I program an SPI flash chip with the Raspberry Pi?
- ↑ Single-board computers
- ↑ Raspberry Pi SPI bus
- ↑ X200 X201 Hardware Flashing
- ↑ RPi Low-level peripherals#P1 Header
- ↑ Installing libreboot
- ↑ Download libreboot (stable releases)
- ↑ ICH9 gen utility
- ↑ ICH9 gen utility
- ↑ Initial BBB configuration
- ↑ X200 X201 Hardware Flashing
- ↑ RPi Low-level peripherals#P1 Header
- ↑ Raspbian
- ↑ X200 X201 Hardware Flashing with Raspeberry Pi
- ↑ rpi-update
- ↑ raspi-config
- ↑ flashrom
- ↑ flashrom 0.9.8 lähtekood
- ↑ flashrom Downloads
- ↑ Initial BBB configuration
- ↑ X200 X201 Hardware Flashing with Raspeberry Pi
- ↑ X200 X201 Hardware Flashing with Raspeberry Pi