Libreboot: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Hailves (talk | contribs)
Hailves (talk | contribs)
No edit summary
Line 1: Line 1:
= Kokku kirjutaja =
= Kokku kirjutaja =


Hanno-Ivar Ilves AK11 2015/2016 (Ametlikult AK11, tegelikult AK11 ja AK21 2015/2016 vahel).
Hanno-Ivar Ilves AK11 2015/2016




Line 71: Line 71:


<p>Peale edukat kompileerimist testime flashromi toimimist.[http://libreboot.org/docs/install/x200_external.html#clip]</p>
<p>Peale edukat kompileerimist testime flashromi toimimist.[http://libreboot.org/docs/install/x200_external.html#clip]</p>
<p>'''./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512'''</p>
<p>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512'''</p>
<p>Infoks peaksite saama ülevaate, mis flash kiibiga on Raspberry Pi ThinkPad X200s sülearvuti emaplaadil ühendatud.</p>
<p>Infoks peaksite saama ülevaate, mis flash kiibiga on Raspberry Pi ThinkPad X200s sülearvuti emaplaadil ühendatud.</p>


<p>Seejärel varundame algse ThinkPad X200s BIOSi ja kävitame seda käsklust lausa kolm korda.</p>
<p>Seejärel varundame algse ThinkPad X200s BIOSi ja kävitame seda käsklust lausa kolm korda.</p>
<p>'''./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r factory.rom'''</p>
<p>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory.rom'''</p>
<p>'''./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r factory1.rom'''</p>
<p>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory1.rom'''</p>
<p>'''./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r factory2.rom'''</p>
<p>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory2.rom'''</p>
<p>Põhjus on lihtne, lisaks varundamisele toimub sedasi ka ühenduse testimine.</p>
<p>Põhjus on lihtne, lisaks varundamisele toimub sedasi ka ühenduse testimine.</p>
<p>Genereerime ja võrdleme kõigi kolme salvestatud faili räsi.</p>
<p>Genereerime ja võrdleme kõigi kolme salvestatud faili räsi.</p>

Revision as of 22:42, 27 December 2015

Kokku kirjutaja

Hanno-Ivar Ilves AK11 2015/2016


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, 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.


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[3] miniarvutit, kuid kuna see on meil vähem levinud, aga Raspberry Pi miniarvuteid leidub rohkem, siis mina kasutasin just nimelt sellel põhjusel viimati nimetatut.

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 X200s 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 kirjutame üles oma võrgukaardi MAC aadressi ning kirjutame selle üles. Kõige kindlam on kasutada ip addr või ifconfig käsku ning kirjutada võrgukaardi MAC aadress üles.

Seejärel teeme kindlaks BIOSi flashi kiibi mahutavuse[9]. See on vajalik, et valida õige suurusega Libreboot'i fail.

dmidecode | grep ROM\ Size

Seejärel valime Librebooti allalaadimise [10] lehelt endale sobiva peegli ja laeme 20150518 kataloogist alla libreboot_util.tar.xz faili ja rom kaustast meie süsteemile sobiva faili, antud juhul libreboot_x200_8mb.tar.xz.

Samuti oleks kasulik kontrollida allalaaditud failidega miskit juhtunud pole. Selleks avame 20150518 kataloogis oleva sha512sum.txt faili ning kontrollime sha512sum programmiga kas meie allalaaditud failide räsid vastavad kirjas olevatele.

Kui kõik korras, siis pakime mõlemad allalaaditud lahti meile meelepärase sobiva vahendiga.


Loome meie sülearvuti võrgukaardi MAC aadressi siseldava ROM faili. MAC aadress on sama, mille enne üleskirjutasime.[11]

./ich9gen --macaddress XX:XX:XX:XX:XX:XX

Seejärel lisame selle valmis kujul olevasse Libreboot püsivara faili.[12] Soovituslik on võtta oma sülearvuti füüsilisele klahvipaigutusele vastav versioon. See omab tähtsust Librebooti Grubi käsureal, kus klahvipaigutus vastab sellele. 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 kopeerime konkreetse Libreboot püsivara faili Raspberry Pi mälukaardile (kas kasutades scp käsklust või USB mälupulga vahendus või kuidas kellegil vahendeid ja soovi).


Protsessi jätk: Seame valmis oma Raspberry Pi ja ThinkPad X200s riistvaraliselt

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.

Seejärel asume jootma (konkreetsel juhul sai valitud lihtne ja robustne toimetamine).

Vaatame "X200 X201 Hardware Flashing"[14] lehelt Pinide asukoha, milliseid on vaja ning kuhu vaja Raspberry Pi-l ühendada. Seejärel vaatame kus nad asuvad "RPi Low-level peripherals" lehelt [15]. Paigutame seadmed meile enam-vähem sobivalt elektrit (väga) mitte juhtivale alusele (meie näites mullikile).

Seejärel lõikame 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.

Alustame jootmist, üks juhtmeots vastava BIOSi kiibi jala külge ja teine Raspberry Pi vastava Pin külge, niimoodi kõik kuus juhet. Konkreetsel juhul 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: Tegutseme tarkvaralise poolega

Nüüd toimub kõik kas otse või üle ssh Raspberry Pi käsureal.

Vajame flashrom [16] nimelist programmi. Meie näite puhul sai allalaetud flashrom 0.9.8 versiooni lähtekood[17] ja kompileeritud Raspberry Pi. Allalaadimise lehel[18] on kirjas, kõik mis vaja, et saaks kompileerida.

Peale edukat kompileerimist testime flashromi toimimist.[19]

./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512

Infoks peaksite saama ülevaate, mis flash kiibiga on Raspberry Pi ThinkPad X200s sülearvuti emaplaadil ühendatud.

Seejärel varundame algse ThinkPad X200s BIOSi ja kävitame seda käsklust lausa kolm korda.

./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory.rom

./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

Põhjus on lihtne, lisaks varundamisele toimub sedasi ka ühenduse testimine.

Genereerime ja võrdleme 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 kirjutame Librebooti püsivara BIOSi kiibile.

./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w path/to/libreboot/rom/image.rom -V

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 üldjuhul küll kui oled juba edukalt Librebooti püsivara kirjutanud BIOSi kiibile ja kirjutad selle uuesti edukalt sinna.

Suurepärane, sülearvuti emaplaadil on nüüd Libreboot, juhtmed võib lahtijoota, sülearvuti kokku panna ning hakata Librebooti kasutamist avastama.


Kui lõpus on failed või midagi muud sarnast, siis proovige uuesti, kui ikka ebaõnnestub, siis kontrollige juhtmeid ning proovige uuesti. Variandid ongi uuesti proovida protsessi mingist kohast alates või mõelda kuhu just valminud elektroonilise jäätme objekt panna.