Slik installerer LTSI-3.10 Kernel på Raspberry Pi og MinnowBoard

Jeg har installert den nye offisielle LTSI-3.10 utgivelse på Raspberry Pi og MinnowBoard. Følgende beskriver installasjonstrinn av en kjerne bilde som jeg bygget ved å laste ned kildekoden for kjernen og bruke lappen. Den andre tutorial i denne serien forklarer hvordan du oppretter en LTSI kernel pakke for enklere administrasjon.

(1) Innhenting LTSI-3.10

For å komme i gang, laste LTSI-RC1. Gå til LTSI Releases for å finne nedlastingen URL. Den offisielle LTSI-3.10 utgivelsen er basert på 3.10.31. Mens du kan også laste ned i Git, jeg brukte tarball format som jeg er mer kjent med. Pakk tar filen under en ønsket katalog.

 $ cd arbeid /patch 
 $ tar xvzf ~ /Nedlasting /patch-3.10.31-ltsi.gz 
Installere på Raspbian på Raspberry Pi

Deretter sette opp en kjerne bygge miljøet for Raspberry Pi. Du kan enten bruke en cross-build miljø eller en selv bygge en. Jeg testet begge. Sette opp en selv bygge miljøet, men krever tålmodighet. I tilfelle av en selv bygge miljøet, bruker du ssh tilkobling for oppsett. Det er mye informasjon tilgjengelig på internett om hvordan du setter opp en kjerne bygge miljøet, men her er den prosessen jeg brukte.

(a) Cross-build miljø

Jeg valgte Ubuntu Desktop 12.04 (32-bit-versjonen) for å sette opp bygge miljøet. Installere den nødvendige pakken.

 $ sudo apt-get install build-essential libncurses5-dev 

Neste, få en cross-kompilator.

 $ wget --no-check-sertifikat https : //github.com/raspberrypi/tools/archive/master.tar.gz 

Pakk den under en ønsket katalog. Jeg valgte /opt.

 $ cd /opt 
 $ tar xvzf ~ /Nedlasting /master.tar.gz 

(b) Selv bygge miljøet

Hvis du har Raspbian installert, har du sannsynligvis bygge miljøet satt opp allerede. Minst det fungerte i mitt tilfelle. Hvis du har problemer med å bruke make-kommandoen, må du installere den nødvendige pakken som når du setter opp en (a) kryss bygge miljøet.

 $ sudo apt-get install build-essential libncurses5-dev 

(2) Skaff kjernen kilde

Raspbian kernel source er gjort tilgjengelig på github.

 $ wget --no-check-sertifikat https://github.com/raspberrypi/linux/archive/rpi -3.10.y.tar.gz 

Pakk ut filen under arbeidet katalogen.

 $ cd ~ /arbeid 
 $ tar xvzf ~ /Nedlasting /RPI-3.10.y.tar.gz < pre> $ cd linux-RPI-3.10.y 

Heretter vil jeg jobbe under ~ /arbeid /linux-RPI-3.10.y katalogen. Installer LTSI patch

 $ cat ~ /arbeid /patch /*. | lappe -p1 

Deretter skaffe kjernekonfigurasjonen fra Raspbian på Raspberry Pi som kjører for øyeblikket. Her vil jeg bruke "bringebær" som vertsnavn for Raspberry Pi

Cross-build miljø.

 $ scp pi @ bringebær. /proc/config.gz 
 $ zcat config.gz > . .config 

Selv bygge miljøet:

 $ cp /proc/config.gz 
 $ zcat config.gz > .config 

Bruk

 gjøre oldconfig 

kommandoen for å oppdatere kjernekonfigurasjonen. På grunn av de ulike kernel versjoner, vil du bli spurt et spørsmål angående innstillingene for den nylig lagt konfigurasjon, men la alle innstillingene på standard for nå

Cross-build miljø.

 $ lage CROSS_COMPILE=~/tools-master/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- ARCH = arm oldconfig 

Selv bygge miljøet.

 $ gjøre oldconfig 

Deretter bruker make

 menuconfig 

kommando for å sette detaljert konfigurasjon

Cross-build miljø:

 $ make CROSS_COMPILE=~/tools-master/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- ARCH = arm menuconfig 

Selv bygge miljøet:

 $ gjøre menuconfig 

Nå er du klar til å begynne å sette sammen en kjerne. Med en selv bygge miljøet, må du forberede en natt batch

Cross-build miljø.

 $ gjøre CROSS_COMPILE=~/tools-master/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- ARCH = arm 

Selv bygge miljøet:

 $ nohup lage en > /tmp/log.txt 2 > & 1 & 

Når du arbeider i en selv bygge miljøet, vil du være logget inn eksternt, så jeg brukte nohup kommandoen slik at byggingen vil fortsette selv etter at jeg logger ut.

Når du er ferdig med å bygge den største organ, kompilere modulene.

Cross-build miljø :

 $ make CROSS_COMPILE=~/tools-master/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- ARCH = arm moduler 

Selv bygge miljøet:

 $ lage moduler 

Sist, installere modulene. Når du installerer i et kryss-bygge miljøet, gjør det på følgende måte. Først lagre modulene i en midlertidig mappe, og deretter ekstern kopi derfra

Cross-build miljø.

 $ mkdir /tmp /rasp-mod 
 $ sudo make CROSS_COMPILE=~/tools-master/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi- ARCH = arm \\\\ 

INSTALL_MOD_PATH = /tmp /rasp-mod modules_install

 $ sudo rm /tmp/rasp-mod/lib/modules/3.10.y/build
$ sudo rm /tmp /rasp-mod/lib/modules/3.10.y/source
$ scp -rp /tmp /rasp-mod /lib arch /arm /boot /zImage pi @ bringebær: ~ /

Her, du logger inn Bringebær-pi og pakke de sikre kopiert filer.

 $ sudo cp -rp lib /
 $ sudo cp /boot/kernel.img /boot/kernel.org
$ sudo cp -rp zImage /boot/kernel.img

Self-build miljø:

 $ sudo make modules_install 
 $ sudo cp /boot/kernel.img /boot/kernel.org
$ sudo cp arch /arm /boot /zImage /boot/kernel.img

This fullføre installasjonsprosessen. Nå starter.

 $ sudo omstart 
Installere på Angstrom på MinnowBoard

Neste, la oss se på LTSI på MinnowBoard. For dette har jeg bare testet i en selv bygge miljøet. Fremgangsmåten er den samme som med bringebær Pi. Forskjellene er at kjernen kilde ble lastet ned fra mainline kernel (http://www.kernel.org), og at oppstartsmetoden er endret til EFI.

(1) Innhenting LTSI-3.10

Se Raspberry Pi. Fullfør trinnene opp til utpakking filen under en ønsket katalog.

 $ cd arbeid /patch 
 $ tar xvzf ~ /Nedlasting /patch-3.10.31-ltsi.gzNext, sette opp en kernel bygge miljøet for MinnowBoard. Du kan enten bruke en cross-build miljø eller en selv bygge en. Jeg testet i en selv bygge miljøet. I tilfelle av en selv bygge miljøet, bruker du ssh tilkobling for oppsett. Standarden distribusjon av MinnowBoard er Angstrom bygget med Yocto Project. Du kan finne informasjon om hvordan du kan bygge en fordeling på MinnowBoard Wiki området, men det er ikke klart om hvordan å bygge nettopp kjernen. Så her er prosessen jeg brukte på mitt system. 

Sette opp en bygge miljø

Hvis du har Angstrom installert, har du sannsynligvis bygge miljøet satt opp allerede. Minst det fungerte i mitt tilfelle. Hvis det skjer at du har problemer med å bruke make-kommandoen, må du installere den nødvendige pakken.

 $ sudo apt-get install build-essential libncurses5-dev 

(2) Skaff kjernen kilde

Last ned den aktuelle kjernen fra Kernel.org. Jeg valgte den offisielle LTSI versjonen 3.10.31. Pakk ut filen under arbeidet katalogen.

 $ cd ~ /arbeid 
 $ tar xvzf ~ /Nedlasting /linux-3.10.31.tgz 

(3) Opprette en Minnow patch
< p> MinnowBoard sin GPIO /LED fungerer ikke med mainline kjernen alene, så du trenger for å lage en patch for denne funksjonen. Sjekk den opprinnelige MinnowBoard kernel versjon. I mitt tilfelle var det 3.8.13-yocto-standard. Så du laste ned 3.8.13 kernel fra Kernel.org. Deretter bruke pakken ledelsen kommandoen

 opkg 

på Angstrom å få kjernen kilde for MinnowBoard.

 $ opkg installere kernel-3.8.13-yocto-standard 

Sammenlign Innholdet i de to filene

 $ diff -rNu linux-3.10.13 /usr /src /kernel >.; patch-ørekyte 

I mitt tilfelle, forskjellen var stor, og også inkludert irrelevant innhold, så jeg hentet den nødvendige delen som vist nedenfor.

 $ mkdir ~ /patch-m 
 $ cd ~ /patch-m 
 $ csplit ~ /patch-ørekyte /^ diff /{*} 

Dette vil splitte ut oppdaterings resultatene i en rekke filer.

Søk kun for oppdateringen som er relatert til Minnow .

 $ grep MINNOWBOARD * 

Kombiner kun relevante oppdateringsfilene

 $ cat filer funnet >.; ~ /patch-ørekyte-resultat 

Heretter vil jeg jobbe under ~ /arbeid /linux-3.10.31 katalogen. Installere oppdateringen for MinnowBoard og LTSI patch

 $ cat ~ /patch-ørekyte-resultat. | lappe -p1 
 $ cat ~ /arbeid /patch /* | lappe -p1 

Deretter skaffe kjernekonfigurasjonen fra Angstrom på MinnowBoard som kjører

 $ cp /proc/config.gz 
 $ zcat config.gz >..; .config 

Bruk make oldconfigcommand å oppdatere kjernekonfigurasjonen. På grunn av de ulike kernel versjoner, vil du bli spurt et spørsmål angående innstillingene for den nylig lagt konfigurasjon, men la innstillingene på standard for nå.

 $ gjøre oldconfig 

Deretter bruker make menuconfig kommandoen å sette en detaljert konfigurasjon

 $ gjøre menuconfig 

Nå er du klar til å begynne å sette sammen en kjerne

 $ nohup lage en >.. /tmp/log.txt 2 > & 1 & 

Når du er ferdig med å bygge den største organ, kompilere modulene

 $ lage moduler 

Sist, installere modulene og kjernen

 $ sudo make modules_install  Installer kjernen i EFI partisjonen. 
 $ sudo mount /dev /sda1 /efi 
 $ sudo cp /efi /vmlinuz /efi/vmlinuz.org
$ sudo cp arch /arm /boot /zImage /efi /vmlinuz 

Dette fullføre installasjonsprosessen. Nå starter.

$ sudo omstart

Hvis det ikke starter, slå av strømmen og slå den på igjen. For noen grunn omstart ser ikke ut til å fungere ordentlig. Det kan være en tendens til Angstrom Distribution.

Hisashi Hashimoto er senioringeniør i Hitachi.