Hvordan lage en LTSI Kernel Package for Raspberry Pi og MinnowBoard

Tidligere i en tutorial med tittelen Slik installerer LTSI-3.10 Kernel på Raspberry Pi og MinnowBoard, jeg introduserte hvordan du kan bygge og installere en kjerne med en LTSI (Long Term Support Initiative) patch brukes på Raspberry Pi og MinnowBoard. Den tiden, installerte jeg en kernel bilde som jeg bygget ved å laste ned kildekoden for kjernen og bruke lappen. Denne gangen, men jeg laget en pakke for enklere administrasjon. Følgende beskriver hvordan du kan gjøre det. De fleste av trinnene er faktisk en repetisjon av det vi gjorde tidligere, så denne gangen vil det være raskere. Denne gangen, selv om jeg jobbet på en aktuell maskin i begge tilfeller, så det tar litt tid å kompilere kjernen.

1. Opprette en Kernel pakke på Raspberry Pi

For operativsystemet, brukte jeg Raspbian. Siden dette er basert på Debian, trinnene for å opprette en kernel-pakken er den samme som på Debian. Først får kjernen kilde bruker de samme trinnene som forrige gang.

Gå til GitHub side for Raspberry Pi-kjernen, og trykk på Last ned ZIP-knappen finner du mot høyre. Deretter vil en kernel source fil kalt linux-rpi-3.10.y.zip lastes ned. Pakk ut filen på et egnet sted. Jeg pakket den ut under /usr /local /src

 root @ raspberrypi. /Usr /local /src $ gunzip linux-rpi-3.10.y.zip 

Den versjonen jeg lastet ned var en RPI kernel basert på 3.10.33. Deretter laste ned LTSI patch fra http://ltsi.linuxfoundation.org/.The versjonen jeg lastet ned var patch-3.10.31-LTSI.gz. Har brukt denne oppdateringen til kjernen du lastet ned tidligere

 root @ raspberrypi. /Usr /local /src $ cd /usr/local/src/linux-rpi-3.10.y
root@raspberrypi:/usr /local /src /linux-RPI-3.10.y $ gunzip < /usr/local/src/patch-3.10.31-ltsi.gz | lappe -p1 

En Makefile.rej vil bli opprettet fordi kilde versjonene ikke samsvarer (3.10.31 og 3.10.33). Siden den eneste endringen er versjonsinformasjonen, gå videre og redigere Makefile selv.

 undernivå = 33EXTRAVERSION = -ltsi 

​​Deretter utarbeide en .config. Bruk den som er i dag henrettet

 root @ raspberrypi. /usr/local/src/linux-rpi-3.10.y $ Cat /proc/config.gz | gunzip > .config 
 root @ raspberrypi: /usr/local/src/linux-rpi-3.10.y $ gjøre oldconfig 

Spørsmålet du blir bedt med make oldconfig er en ny parameter som ikke er i den versjonen som blir henrettet, så gå med standardinnstillingene for nå. Dersom du ønsker å endre andre parametere, kan du gjøre det med følgende kommando .:

 root @ raspberrypi: /usr/local/src/linux-rpi-3.10.y $ gjøre menuconfig 

Nå Vi er klar til å begynne å lage en kernel pakken. Først forberede de verktøyene du trenger for å lage en pakke

root @ raspberrypi. /Usr /local /src $ apt-get install build-essential kernel-package libncurses5-dev bc

La oss få det i gang

 root @ raspberrypi. /usr/local/src/linux-rpi-3.10.y $ make-kpkg ren 
 root @ raspberrypi: /usr /local /src /linux-RPI -3.10.y $ make-kpkg --revision 1,0 --initrd kernel-image kernel-headers kernel-source 

Dette vil trolig ta mye lengre tid enn en kaffepause, så gå videre og ta en lur. Hvis du ønsker å kjøre den i bakgrunnen, gjør følgende

 root @ raspberrypi. /usr/local/src/linux-rpi-3.10.y $ Nohup make-kpkg --revision 1,0 --initrd kernel-image kernel-headers kernel-source 2 > & 1 > /tmp/log.txt & 

Dette bør holde den i gang selv etter at du har logget ut. Når du står opp om morgenen, bør du finne følgende pakken under /usr /local /src

 root @ raspberrypi. /Usr /local /src $ lslinux-headers-3.10.33-ltsi_1.0_armhf .deblinux-RPI-3.10.y.tgz linux-image-3.10.33-ltsi_1.0_armhf.deb linux-source-3.10.33-ltsi_1.0_all.deblinux-RPI-3.10.y patch-3.10.31-ltsi. gz 

(Grunnen til at du ser linux-RPI-3.10.y.tgz her er at for noen grunn, zip-filen kan ikke pakkes ut riktig på Raspberry Pi. Så jeg pakket den ut på en annen maskin, skapte en tgz-fil, og deretter sette den tilbake til Raspberry Pi. Jeg håper det fungerer på Raspberry Pi.) Nå, la oss installere.

 root @ raspberrypi: /usr /local /src $ dpkg -i * .deb 

Du vil se en masse meldinger, men det bør ikke være noe problem. En kernel boot image vil bli opprettet under /boot. Du må endre navn

 root @ raspberrypi. /Boot $ ls -lTotal 24160 -rwxr-xr-x 1 root root 18974 26 september 06:57 LICENSE.oracle -rwxr-xr-x 1 root root 1433275 22 mars 09:38 System.map-3.10.33-ltsi -rwxr-xr-x 1 root root 17824 8 januar 04:50 bootcode.bin-rwxr-xr-x 1 root root 142 8 januar 06: 13 cmdline.txt -rwxr-xr-x 1 root root 87181 22 mars 08:41 config-3.10.33-ltsi -rwxr-xr-x 1 root root 1237 3 februar 23:21 config.txt -rwxr-xr-x 1 root root 5783 8 januar 04:50 fixup.dat -rwxr-xr-x 1 root root 2068 8 januar 04:50 fixup_cd.dat -rwxr-xr-x 1 root root 8829 8 januar 04:50 fixup_x.dat -rwxr -xr-x 1 root root 3700976 22 januar 11:16 initrd.img-3.10.33-ltsi -rwxr-xr-x 1 root root 137 8 januar 08:34 issue.txt-rwxr-xr-x 1 root root 9789752 8 januar 04:50 kernel_emergency.img-rwxr-xr-x 1 root root 2514136 8 januar 04:50 start.elf -rwxr-xr-x 1 root root 480216 8 januar 04:50 start_cd.elf-rwxr-xr-x 1 root root 3495816 8 januar 04:50 start_x.elf -rwxr-xr-x 1 root root 3.112.072 Jan 22 15:58 vmlinuz-3.10.33-ltsiroot@raspberrypi: /boot # mv kernel.img kernel.org root @ raspberrypi : /boot # mv vmlinuz-3.10.33-ltsi kernel.img 

For å være sikker, utføre synkronisering og omstart

 root @ raspberrypi. /boot # sync root @ raspberrypi: /boot # omstart < p> Etter omstart, koble til og sjekke 
 root @ raspberrypi. /boot # uname -aLinux raspberrypi 3.10.33-ltsi # 3 PREEMPT lør 22 mars 08:49:28 JST 2014 armv6l GNU /Linux 

Vel, det er det. Denne pakken er lagt ut på http://ltsi.linuxfoundation.org/downloads, så hvis du trenger det, gjerne ta den. Men ingen garantier.

2. Opprette en Kernel pakke på MinnowBoard

Fordelingen lagret på SD-kortet som følger med MinnowBoard er Angstrom. Som jeg tilstått den siste tiden, jeg er ikke en ekspert på Angstrom heller Yocto, så jeg brukte Debian. Jeg satt opp Debian på MinnowBoard på en USB-minnepinne følge Minnowboard: Debian Bare Minimum bootstrapping fremgangsmåten jeg vil beskrive nedenfor. Mens det står Minimum, er det fortsatt Debian, så trinnene for å opprette en kernel-pakken er den samme som på Debian.

Først skaffe kjernen kilde bruker de samme trinnene som forrige tutorial. Skaff samme kilde versjonen som LTSI på Kernel.org. Her, jeg lastet ned linux-3.10.31.tgz. I mitt tilfelle, jeg trengte 8GB lagringsplass for å bygge en kjerne pakke. Så jeg forberedt en USB flash-stasjon spesielt for andre enn for Debian selv bygge. Montere en USB flash-stasjon for å bygge i et ønsket sted. Jeg monterte den under /mnt og ekstrahert kjernen kilde.

 root @ DebianMinnow: /$ mount /dev /sdb1 /mnt root @ DebianMinnow: /$ cd /mntroot @ DebianMinnow: /mnt $ tar xvzf /tmp/linux-3.10.31.tgz

Next , laste ned LTSI patch fra http://ltsi.linuxfoundation.org/.The versjonen jeg lastet ned var patch-3.10.31-LTSI.gz. Har brukt denne oppdateringen til kjernen du lastet ned tidligere

 root @ DebianMinnow. /Mnt $ gunzip < /tmp/patch-3.10.31-ltsi.gz | lappe -p1 

Deretter utarbeide en .config. Bruk den som er i dag henrettet.

 root @ DebianMinnow: /mnt $ cp /boot/config-3.13-1-686-pae > .config root @ DebianMinnow: /mnt $ gjøre oldconfig 

Spørsmålet du blir bedt med make oldconfig er en ny parameter som ikke var i den versjonen som ble henrettet, så gå med standardinnstillingene for nå. Dersom du ønsker å endre andre parametere, kan du gjøre det med følgende kommando:

 root @ DebianMinnow: /mnt $ gjøre menuconfig 

Nå er vi klar til å begynne å lage en kernel pakken. Forberede de verktøyene du trenger for å lage en pakke

 root @ DebianMinnow:.. /Mnt $ apt-get install build-essential kernel-package libncurses5-dev bc 

La oss få det i gang

 root @ DebianMinnow: /mnt $ make-kpkg ren root @ DebianMinnow: /mnt $ make-kpkg --revision 1,0 --initrd kernel-image kernel-headers kernel-source 

Igjen, dette vil trolig ta mye lengre tid enn en kaffepause, så gå videre og ta en lur. Men det bør være raskere enn Raspberry Pi. Hvis du ønsker å kjøre den i bakgrunnen, gjør du følgende:

root @ DebianMinnow: /mnt $ nohup make-kpkg --revision 1,0 --initrd kernel-image kernel-headers kernel-source 2 > & 1 > /tmp/log.txt &

Dette bør holde den i gang selv etter at du har logget ut. Når du står opp om morgenen, bør du finne følgende pakken under /mnt

 root @ DebianMinnow. /Mnt $ ls linux-3.10.33 linux-headers-3.10.33-ltsi_1.0_i386.deblinux -image-3.10.33-ltsi_1.0_i386.deb linux-source-3.10.33-ltsi_1.0_all.deb patch-3.10.31-ltsi.gz 

Nå, la oss installere.

 root @ DebianMinnow: /mnt $ dpkg -i * .deb 

Du vil se en masse meldinger, men det bør ikke være noe problem. En kernel boot image vil bli opprettet under /boot.

 root @ DebianMinnow: /boot $ ls -l Totalt 33180 -rw-r - r-- 1 root root 1764023 23 mars 22:00 System.map-3.10.31-ltsi-rw-r- -r-- 1 root root 1842504 6 mars 01:27 System.map-3.13-1-686-pae -rw-r - r-- 1 root root 149 556 23 mars 17:07 config-3.10.31-ltsi - rw-r - r-- 1 root root 155052 6 mars 01:27 config-3.13-1-686-pae drwxr-xr-x 2 root root 4096 18 mars 18:15 grub -rw-r - r-- 1 root root 12166605 1 januar 2001 initrd.img-3.10.31-ltsi -rw-r - r-- 1 root root 12456051 1 januar 2001 initrd.img-3.13-1-686-pae -rw-r - r - 1 root root 263