Libreboot: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Hailves (talk | contribs)
No edit summary
Hailves (talk | contribs)
No edit summary
 
(14 intermediate revisions by the same user not shown)
Line 7: Line 7:
= Mis on Libreboot? =
= Mis on Libreboot? =


<p>Libreboot on Coreboot distributsioon<ref>[http://libreboot.org/docs/index.html#why About the libreboot project]</ref>. 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 blob''id (''firmware, microcode'').</p>
<p>Libreboot on Coreboot distributsioon<ref>[http://libreboot.org/docs/index.html#why "About the libreboot project"]. Libreboot.org. Vaadatud 2016-01-08</ref>. 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 blob''id (''firmware, microcode'').</p>
<p>Erinevalt Corebootist toetab Libreboot tunduvalt vähem erinevaid süsteeme (sülearvutid, emaplaadid), sest lubatud on ainult blobide mitte kasutav vaba kood.
<p>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.</p>
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.</p>
Line 17: Line 17:


<p>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.</p>
<p>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.</p>
<p>Kontrollida tuleb, kas teie sülearvuti ja/või emaplaat on toetatud riistvara nimekirjas<ref>[http://libreboot.org/docs/hcl/index.html Hardware compatibility list]</ref>, 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.</p>
<p>Kontrollida tuleb, kas teie sülearvuti ja/või emaplaat on toetatud riistvara nimekirjas<ref>[http://libreboot.org/docs/hcl/index.html "Hardware compatibility list"]. Libreboot.org. Vaadatud 2016-01-08</ref>, 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.</p>


<p>Kui kõik klapib, siis tuleb tõmmata oma arvutile sobiv Librebooti versioon ning alustada juhendi või juhendite järgi toimetamist.</p>
<p>Kui kõik klapib, siis tuleb tõmmata oma arvutile sobiv Librebooti versioon ning alustada juhendi või juhendite järgi toimetamist.</p>
Line 27: Line 27:
= Protsessi algus =
= Protsessi algus =


Edasiste näideta aluseks on Lenovo Thinkpad X200s (Celeron 847 protsessor) tootja poolse BIOSi sisu asendamine Libreboot r20150518 versiooniga.
<p>Edasiste näideta aluseks on Lenovo Thinkpad X200s (Celeron 847 protsessor) tootja poolse BIOSi sisu asendamine Libreboot r20150518 versiooniga.</p>
<p>Raspberry Pi'st on kasutusel Raspberry Pi B rev 2 512MiB mudel<ref>[http://elinux.org/Board_revisions "Raspberry Pi Board Revisions"]. Embedded Linux Wiki. Vaadatud 2016-01-08</ref></p>




<p>Kõigepealt läheb vaja välist programmeerijat. Libreboot projekt soovitab BeagleBone Black miniarvutit<ref>[http://libreboot.org/docs/install/bbb_setup.html How to program an SPI flash chip with the BeagleBone Black]</ref>, 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.</p>
<p>Kõigepealt läheb vaja välist programmeerijat. Libreboot projekt soovitab BeagleBone Black miniarvutit<ref>[http://libreboot.org/docs/install/bbb_setup.html "How to program an SPI flash chip with the BeagleBone Black"]. Libreboot.og. Vaadatud 2016-01-08</ref>, 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.</p>
<p>Librebooti kodulehelt Raspberry Pi kasutamise juhendit ei leia, sest Raspberry Pi ei ole riistvara mis toimiks vabalt ilma ''binary blob''ideta<ref>[http://libreboot.org/faq/#repugnantpi How do I program an SPI flash chip with the Raspberry Pi?]</ref> <ref>[https://www.fsf.org/resources/hw/single-board-computers Single-board computers]</ref>.</p>
<p>Librebooti kodulehelt Raspberry Pi kasutamise juhendit ei leia, sest Raspberry Pi ei ole riistvara mis toimiks vabalt ilma ''binary blob''ideta<ref>[http://libreboot.org/faq/#repugnantpi "How do I program an SPI flash chip with the Raspberry Pi?"]. Libreboot.og. Vaadatud 2016-01-08</ref> <ref>[https://www.fsf.org/resources/hw/single-board-computers "Single-board computers"]. The Free Software Foundation. Vaadatud 2016-01-08</ref>.</p>
<p>Kuid Internetis on olemas vajalik info, et paigaldada Libreboot ThinkPad X200si sülearvutile kasutades Raspberry Pi B välise SPI flashijana <ref>[https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/README.md Raspberry Pi SPI bus]</ref> <ref>[https://github.com/bibanon/Coreboot-ThinkPads/wiki/X200-X201-Hardware-Flashing X200 X201 Hardware Flashing]</ref> <ref>[http://elinux.org/RPi_Low-level_peripherals#P1_Header RPi Low-level peripherals#P1 Header]</ref></p>
<p>Kuid Internetis on olemas vajalik info, et paigaldada Libreboot ThinkPad X200si sülearvutile kasutades Raspberry Pi B välise SPI flashijana <ref>[https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/README.md "SPI"]. Raspberry Pi.org. Vaadatud 2016-01-08</ref> <ref>[https://github.com/bibanon/Coreboot-ThinkPads/wiki/X200-X201-Hardware-Flashing "X200 X201 Hardware Flashing"]. Bibliotheca Anonoma GitHub. Vaadatud 2016-01-08</ref> <ref>[http://elinux.org/RPi_Low-level_peripherals#P1_Header RPi Low-level peripherals#P1 Header]. Embedded Linux Wiki. Vaadatud 2016-01-08</ref></p>
<p>Kasutades nendelt linkidelt pärit informaatsiooni saab kasutada ametliku Libreboot juhendit asendades seal BeagleBone Black kohta käiva Raspberry Pi spetsiifilise infoga.</p>
<p>Kasutades nendelt linkidelt pärit informaatsiooni saab kasutada ametliku Libreboot juhendit asendades seal BeagleBone Black kohta käiva Raspberry Pi spetsiifilise infoga.</p>


Line 38: Line 39:
<p>Alustuseks tuleb kirjutada ules Lenovo ThinkPad X200s võrgukaardi MAC aadress.
<p>Alustuseks tuleb kirjutada ules Lenovo ThinkPad X200s võrgukaardi MAC aadress.
Kõige kindlam on kasutada <code>'''ip addr'''</code> või <code>'''ifconfig'''</code> käsku ning kirjutada võrgukaardi MAC aadress üles.</p>
Kõige kindlam on kasutada <code>'''ip addr'''</code> või <code>'''ifconfig'''</code> käsku ning kirjutada võrgukaardi MAC aadress üles.</p>
<p>Seejärel tuleb kindlaks teha BIOSi flashi kiibi mahutavus<ref>[http://libreboot.org/docs/install/index.html Installing libreboot]</ref>. See on vajalik, et valida õige suurusega Libreboot'i fail.</p>
<p>Seejärel tuleb kindlaks teha BIOSi flashi kiibi mahutavus<ref>[http://libreboot.org/docs/install/index.html "Installing libreboot"]. Libreboot.org. Vaadatud 2016-01-08</ref>. See on vajalik, et valida õige suurusega Libreboot'i fail.</p>
<code>'''dmidecode | grep ROM\ Size'''</code>
<code>'''dmidecode | grep ROM\ Size'''</code>




<p>Seejärel valida Librebooti allalaadimise<ref>[http://libreboot.org/download/ Download libreboot (stable releases)]</ref> 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'''.</p>
<p>Seejärel valida Librebooti allalaadimise<ref>[http://libreboot.org/download/ "Download libreboot (stable releases)"]. Libreboot.org. Vaadatud 2016-01-08</ref> 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'''.</p>
<p>Kasulik oleks kontrollida ega allalaaditud failidega miskit juhtunud pole. Selleks avada '''20150518''' kataloogis oleva '''sha512sum.txt''' faili ning kontrollida <code>'''sha512sum''' <failinimi></code> programmiga kas allalaaditud failide räsid vastavad kirjas olevatele.</p>
<p>Kasulik oleks kontrollida ega allalaaditud failidega miskit juhtunud pole. Selleks avada '''20150518''' kataloogis oleva '''sha512sum.txt''' faili ning kontrollida <code>'''sha512sum''' <failinimi></code> programmiga kas allalaaditud failide räsid vastavad kirjas olevatele.</p>
<p>Kui kõik korras, siis pakida mõlemad allalaaditud lahti meelepärase ja sobiva tarkvaraga.</p>
<p>Kui kõik korras, siis pakida mõlemad allalaaditud lahti meelepärase ja sobiva tarkvaraga.</p>




<p>Loome sülearvuti võrgukaardi MAC aadressi siseldava ROM faili. MAC aadress on sama, mis enne sai üles kirjutatud.<ref>[http://libreboot.org/docs/hcl/gm45_remove_me.html#ich9gen ICH9 gen utility]</ref></p>
<p>Tuleb luua sülearvuti võrgukaardi MAC aadressi siseldava ROM fail. MAC aadress on sama, mis enne üles kirjutatud.<ref>[http://libreboot.org/docs/hcl/gm45_remove_me.html#ich9gen "ICH9 gen utility"]. Libreboot.org. Vaadatud 2016-01-08</ref></p>
<code>'''./ich9gen --macaddress XX:XX:XX:XX:XX:XX'''</code>
<code>'''./ich9gen --macaddress XX:XX:XX:XX:XX:XX'''</code>




<p>Seejärel tuleb lisada see valmis kujul olevasse Libreboot püsivara faili.<ref>[http://libreboot.org/docs/hcl/gm45_remove_me.html#ich9gen ICH9 gen utility]</ref> Soovituslik on võtta konkreetse sülearvuti füüsilisele klahvipaigutusele vastav versioon. See omab tähtsust Librebooti Grubi käsureal, kus klahvipaigutus vastab valitule.
<p>Seejärel tuleb lisada see valmis kujul olevasse Libreboot püsivara faili.<ref>[http://libreboot.org/docs/hcl/gm45_remove_me.html#ich9gen "ICH9 gen utility"]. Libreboot.org. Vaadatud 2016-01-08</ref> 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:</p>
Konkreetsel sülearvutil on skandinaavia klahvipaigutus seega:</p>
<code>'''dd if=ich9fdgbe_8m.bin of=x200_8mb_svenska_vesafb.rom bs=1 count=12k conv=notrunc'''</code>
<code>'''dd if=ich9fdgbe_8m.bin of=x200_8mb_svenska_vesafb.rom bs=1 count=12k conv=notrunc'''</code>
Line 60: Line 61:




= Protsessi jätk: Seame valmis Raspberry Pi ja ThinkPad X200s riistvaraliselt =
= 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.]]
<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>
<p>ThinkPad X200s BIOSi kiibi on WSON kujul, mille jalgade ühendused vastavad ThinkPad X200 SOIC-8 omadele.<ref>[http://libreboot.org/docs/install/x200_external.html#clip Initial BBB configuration]</ref>. Kuna BIOSi kiib asub emaplaadi alumisel küljel tuleb sülearvuti lahti võtta ja emaplaat väljavõtta.</p>
<p>ThinkPad X200s BIOSi kiibi on WSON kujul, mille jalgade ühendused vastavad ThinkPad X200 SOIC-8 omadele.<ref>[http://libreboot.org/docs/install/x200_external.html#clip "Initial BBB configuration"]. Libreboot.org. Vaadatud 2016-01-08</ref>. Kuna BIOSi kiib asub emaplaadi alumisel küljel tuleb sülearvuti lahti võtta ja emaplaat väljavõtta.</p>
<p>Konkreetse näite puhul sai valitud robustne teostus ja juhtmed lihtsalt joodetud.</p>
<p>Konkreetse näite puhul sai valitud robustne teostus ja juhtmed lihtsalt joodetud.</p>


<p>"X200 X201 Hardware Flashing"<ref>[https://github.com/bibanon/Coreboot-ThinkPads/wiki/X200-X201-Hardware-Flashing X200 X201 Hardware Flashing]</ref> lehel on joonisel kirjas Pinide asukohad, mida on vaja ThinkPad X200s BIOSi poolel ühendada. Seejärel teha kindlaks "RPi Low-level peripherals" lehelt <ref>[http://elinux.org/RPi_Low-level_peripherals#P1_Header RPi Low-level peripherals#P1 Header]</ref> Raspberry Pi poolel kasutatavad P1 ''Headeri Pin''-id. Seadmed paigutada enam-vähem elektrit (väga) mitte juhtivale alusele (näites mullikile).</p>
 
<p>''"X200 X201 Hardware Flashing"''<ref>[https://github.com/bibanon/Coreboot-ThinkPads/wiki/X200-X201-Hardware-Flashing "X200 X201 Hardware Flashing"]. Bibliotheca Anonoma GitHub. Vaadatud 2016-01-08</ref> lehel on joonisel kirjas Pinide asukohad, mida on vaja ThinkPad X200s BIOSi poolel ühendada. Seejärel teha kindlaks ''"RPi Low-level peripherals"'' lehelt <ref>[http://elinux.org/RPi_Low-level_peripherals#P1_Header "RPi Low-level peripherals#P1 Header"]. Embedded Linux Wiki. Vaadatud 2016-01-08</ref> Raspberry Pi poolel kasutatavad P1 ''Headeri Pin''-id. Seadmed paigutada enam-vähem elektrit (väga) mitte juhtivale alusele (näites mullikile).</p>
<p>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.</p>
<p>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.</p>


<p>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.</p>
 
<p>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 ''pin''ide külge.</p>
 






= Protsess jätkub: Tegutseme tarkvaralise poolega =
= 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"]. Raspbian.org. Vaadatud 2016-01-08</ref> GNU/Linux distributsiooni käsureal.</p>
<p>Alustuseks tuleks uuendada Raspbainil tarkvara <code>sudo apt-get update && sudo apt-get dist-upgrade && sudo reboot</code>.<ref>[https://github.com/bibanon/Coreboot-ThinkPads/wiki/X200-X201-Hardware-Flashing-with-Raspeberry-Pi X200 X201 Hardware Flashing with Raspeberry Pi]</ref>.
<p>Alustuseks tuleks uuendada Raspbainil tarkvara <code>'''sudo apt-get update && sudo apt-get dist-upgrade && sudo reboot'''</code>.<ref>[https://github.com/bibanon/Coreboot-ThinkPads/wiki/X200-X201-Hardware-Flashing-with-Raspeberry-Pi "X200 X201 Hardware Flashing with Raspeberry Pi"]. Bibliotheca Anonoma GitHub. Vaadatud 2016-01-08</ref>.</p>
<p>Seejärel tuleks uuendada Raspberry Pi püsivaraga seonduv <code>sudo rpi-update</code>.<ref>[https://github.com/Hexxeh/rpi-update rpi-update]</ref>
<p>Seejärel tuleks uuendada Raspberry Pi püsivaraga seonduv <code>'''sudo rpi-update'''</code>.<ref>[https://github.com/Hexxeh/rpi-update "rpi-update"].Hexxeh GitHub. Vaadatud 2016-01-08</ref> Seejärel Raspberry Pi taaskäivitamine.</p>
<p>Lõpetuseks tuleb lubada Raspberry Pi SPI liidese kasutamine, kõige lihtsam on seda teha '''raspi-config''' vahendusel.<ref>[https://www.raspberrypi.org/documentation/configuration/raspi-config.md "raspi-config"]. Raspberry Pi.org- Vaadatud 2016-01-08</ref></p>




<p>Vaja läheb '''flashrom'''<ref>[https://www.flashrom.org/Flashrom flashrom]</ref> nimelist programmi. Praeguse näite puhul sai allalaetud flashrom 0.9.8 versiooni lähtekood<ref>[http://download.flashrom.org/releases/flashrom-0.9.8.tar.bz2 flashrom 0.9.8 lähtekood]</ref> ja kompileeritud Raspberry Pi. Allalaadimise lehel<ref>[https://www.flashrom.org/Downloads flashrom Downloads]</ref> on kirjas, kõik mis vaja, et saaks kompileerida.</p>
<p>Vaja läheb '''flashrom'''<ref>[https://www.flashrom.org/Flashrom "flashrom"]. flashrom.org. Vaadatud 2016-01-08</ref> nimelist programmi. Praeguse näite puhul sai allalaetud flashrom 0.9.8 versiooni lähtekood<ref>[http://download.flashrom.org/releases/flashrom-0.9.8.tar.bz2 "flashrom 0.9.8 lähtekood"]. flashrom.org. Vaadatud 2016-01-08</ref> ja kompileeritud Raspberry Pi. Allalaadimise lehel<ref>[https://www.flashrom.org/Downloads "flashrom Downloads"]. flashrom.org. Vaadatud 2016-01-08</ref> on kirjas, kõik mis vaja, et saaks kompileerida.</p>


<p>Peale edukat kompileerimist tuleks testida flashromi toimimist.<ref>[http://libreboot.org/docs/install/x200_external.html#clip Initial BBB configuration]</ref></p>
<p>Peale edukat kompileerimist tuleks testida flashromi toimimist.<ref>[http://libreboot.org/docs/install/x200_external.html#clip "Initial BBB configuration"]. Libreboot.org. Vaadatud 2016-01-08</ref></p>
<code>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512'''</code>
<code>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512'''</code>
<p>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.</p>
<p>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.</p>


<p>Seejärel tuleks varundada ThinkPad X200s BIOS, see toimib ka ühenduse testimisena (seetõttu sooritada seda kolm korda).</p>
<p>Seejärel tuleks varundada ThinkPad X200s BIOS kiibi originaal sisu, see toimib ka ühenduse testimisena (seetõttu soovitatakse seda sooritada kolm korda).<ref>[https://github.com/bibanon/Coreboot-ThinkPads/wiki/X200-X201-Hardware-Flashing-with-Raspeberry-Pi "X200 X201 Hardware Flashing with Raspeberry Pi"]. Bibliotheca Anonoma GitHub. Vaadatud 2016-01-08</ref></p>
<p><code>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory1.rom'''</code></p>
<p><code>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory1.rom'''</code></p>
<p><code>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory2.rom'''</code></p>
<p><code>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r factory2.rom'''</code></p>
Line 97: Line 102:
<p>Kui räsid vastavad, siis jätkake.</p>
<p>Kui räsid vastavad, siis jätkake.</p>


<p>Nüüd toimub Librebooti püsivara reaalselt BIOSi kiibile kirjutamine.<ref>[https://github.com/bibanon/Coreboot-ThinkPads/wiki/X200-X201-Hardware-Flashing-with-Raspeberry-Pi X200 X201 Hardware Flashing with Raspeberry Pi]</ref></p>
<p>Nüüd toimub Librebooti püsivara reaalselt BIOSi kiibile kirjutamine.<ref>[https://github.com/bibanon/Coreboot-ThinkPads/wiki/X200-X201-Hardware-Flashing-with-Raspeberry-Pi "X200 X201 Hardware Flashing with Raspeberry Pi"]. Bibliotheca Anonoma GitHub. Vaadatud 2016-01-08</ref></p>
<code>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -w x200_8mb_svenska_vesafb.rom -V'''</code>
<code>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -w x200_8mb_svenska_vesafb.rom -V'''</code>
<p>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.</p>
<p>Vajadusel tuleb '''-c'''  võtmega määrata algsest '''flashrom''' käsu testimisel (<code>'''./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512'''</code>) nähtud kiipide nimekirjast sobiva tähis (kui neid oli seal mitu). Kui täpselt ei ole teada, milline on õige (on ununenud ülesmärkida BIOSi kivilt), siis võib  neid järjest proovida, sest eelduste kohaselt neist vähemalt üks toimib.</p>
<p>Ekraanil toimub palju, kuid kõige tähtsam on, et kõige lõpus oleks kiri.</p>
<p>Ekraanil toimub palju, kuid kõige tähtsam on, et kõige lõpus oleks kiri:</p>
<p>'''Verifying flash... VERIFIED'''</p>
<p>'''Verifying flash... VERIFIED'''</p>
[[File:Libreboot_raspberry_pi_x200s_edukas.jpg|200px|thumb|right|Eduka Librebooti paigalduse kordamine.]]


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


<p>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.</p>
<p>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.</p>
Line 110: Line 115:


<p>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.</p>
<p>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.</p>
= Kokkuvõte =
<p>Libreboot'i projekt on väga kasulik. Ta näitab meile, kui väga me tegelikult vaikimisi usaldame arvutite ja 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.</p>
<p>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.</p>
Protsessi eduka läbimise järel on meil olemas vabavaralise püsivaraga sülearvuti.




= Kasutatud materjalid =
= Kasutatud materjalid =
<references />
<references />




[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 13:18, 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.

Raspberry Pi'st on kasutusel Raspberry Pi B rev 2 512MiB mudel[3]


Kõigepealt läheb vaja välist programmeerijat. Libreboot projekt soovitab BeagleBone Black miniarvutit[4], 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[5] [6].

Kuid Internetis on olemas vajalik info, et paigaldada Libreboot ThinkPad X200si sülearvutile kasutades Raspberry Pi B välise SPI flashijana [7] [8] [9]

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[10]. See on vajalik, et valida õige suurusega Libreboot'i fail.

dmidecode | grep ROM\ Size


Seejärel valida Librebooti allalaadimise[11] 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.


Tuleb luua sülearvuti võrgukaardi MAC aadressi siseldava ROM fail. MAC aadress on sama, mis enne üles kirjutatud.[12]

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


Seejärel tuleb lisada see valmis kujul olevasse Libreboot püsivara faili.[13] 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

Seadmete füüsiline paigutus on valmis.

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.[14]. 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"[15] lehel on joonisel kirjas Pinide asukohad, mida on vaja ThinkPad X200s BIOSi poolel ühendada. Seejärel teha kindlaks "RPi Low-level peripherals" lehelt [16] 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[17] GNU/Linux distributsiooni käsureal.

Alustuseks tuleks uuendada Raspbainil tarkvara sudo apt-get update && sudo apt-get dist-upgrade && sudo reboot.[18].

Seejärel tuleks uuendada Raspberry Pi püsivaraga seonduv sudo rpi-update.[19] Seejärel Raspberry Pi taaskäivitamine.

Lõpetuseks tuleb lubada Raspberry Pi SPI liidese kasutamine, kõige lihtsam on seda teha raspi-config vahendusel.[20]


Vaja läheb flashrom[21] nimelist programmi. Praeguse näite puhul sai allalaetud flashrom 0.9.8 versiooni lähtekood[22] ja kompileeritud Raspberry Pi. Allalaadimise lehel[23] on kirjas, kõik mis vaja, et saaks kompileerida.

Peale edukat kompileerimist tuleks testida flashromi toimimist.[24]

./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).[25]

./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.[26]

./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 testimisel (./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512) nähtud kiipide nimekirjast sobiva tähis (kui neid oli seal mitu). Kui täpselt ei ole teada, milline on õige (on ununenud ülesmärkida BIOSi kivilt), siis võib neid järjest proovida, sest eelduste kohaselt neist vähemalt üks toimib.

Ekraanil toimub palju, kuid kõige tähtsam on, et kõige lõpus oleks kiri:

Verifying flash... VERIFIED

Eduka Librebooti paigalduse kordamine.

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 arvutite ja 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.

Protsessi eduka läbimise järel on meil olemas vabavaralise püsivaraga sülearvuti.



Kasutatud materjalid

  1. "About the libreboot project". Libreboot.org. Vaadatud 2016-01-08
  2. "Hardware compatibility list". Libreboot.org. Vaadatud 2016-01-08
  3. "Raspberry Pi Board Revisions". Embedded Linux Wiki. Vaadatud 2016-01-08
  4. "How to program an SPI flash chip with the BeagleBone Black". Libreboot.og. Vaadatud 2016-01-08
  5. "How do I program an SPI flash chip with the Raspberry Pi?". Libreboot.og. Vaadatud 2016-01-08
  6. "Single-board computers". The Free Software Foundation. Vaadatud 2016-01-08
  7. "SPI". Raspberry Pi.org. Vaadatud 2016-01-08
  8. "X200 X201 Hardware Flashing". Bibliotheca Anonoma GitHub. Vaadatud 2016-01-08
  9. RPi Low-level peripherals#P1 Header. Embedded Linux Wiki. Vaadatud 2016-01-08
  10. "Installing libreboot". Libreboot.org. Vaadatud 2016-01-08
  11. "Download libreboot (stable releases)". Libreboot.org. Vaadatud 2016-01-08
  12. "ICH9 gen utility". Libreboot.org. Vaadatud 2016-01-08
  13. "ICH9 gen utility". Libreboot.org. Vaadatud 2016-01-08
  14. "Initial BBB configuration". Libreboot.org. Vaadatud 2016-01-08
  15. "X200 X201 Hardware Flashing". Bibliotheca Anonoma GitHub. Vaadatud 2016-01-08
  16. "RPi Low-level peripherals#P1 Header". Embedded Linux Wiki. Vaadatud 2016-01-08
  17. "Raspbian". Raspbian.org. Vaadatud 2016-01-08
  18. "X200 X201 Hardware Flashing with Raspeberry Pi". Bibliotheca Anonoma GitHub. Vaadatud 2016-01-08
  19. "rpi-update".Hexxeh GitHub. Vaadatud 2016-01-08
  20. "raspi-config". Raspberry Pi.org- Vaadatud 2016-01-08
  21. "flashrom". flashrom.org. Vaadatud 2016-01-08
  22. "flashrom 0.9.8 lähtekood". flashrom.org. Vaadatud 2016-01-08
  23. "flashrom Downloads". flashrom.org. Vaadatud 2016-01-08
  24. "Initial BBB configuration". Libreboot.org. Vaadatud 2016-01-08
  25. "X200 X201 Hardware Flashing with Raspeberry Pi". Bibliotheca Anonoma GitHub. Vaadatud 2016-01-08
  26. "X200 X201 Hardware Flashing with Raspeberry Pi". Bibliotheca Anonoma GitHub. Vaadatud 2016-01-08