PiScope (Raspberry Pi baserat oscilloskop) (4 / 10 steg)
Steg 4: Konfigurera Raspberry Pi byggmiljö
För att bygga en kärna modul, behöver vi kärnans headerfiler (eller kernel källkod) som matchar binära bilden. Rubrikerna ge viktiga definitioner som behövs för att kompilera källkoden för modulen. Också, Linux utför en säkerhetskontroll som kallas "version matchning" när den laddar en färdiga kärnmodul. Kernel version och modulversion måste matcha eller, i bästa fall Linux klagar, eller i värsta fall Linux vägrar att ladda modulen.
För att förbereda din raspberry pi att kompilera kärna modul korrekt enligt instruktionerna. Anslut först din raspberry pi till datorn via SSH (Detaljer för anslutande Raspberry pi använder PuTTY). Skriv sedan följande
FV = "zgrep" * firmware som av "/usr/share/doc/raspberrypi-bootloader/changelog. Debian.gz | huvud 1 | awk "{skriva ut $5}''
Göra en katalog k_tmp/linux med kommandot
mkdir -p k_tmp/linux
Hämta firmware från github.com
wget https://raw.github.com/raspberrypi/firmware/$ FV/extra/git_hash - O k_tmp/git_hash
Katalogen bygga måste ha en kopia av den matchande module versionsinformationen innan byggnaden. Module versionsinformation lagras i en fil med namnet /usr/src/linux/Module.symvers. Denna fil skapas under den kärna bygget – en process som skulle ta 10 + timmar på Raspberry Pi. Lyckligtvis kan Module.symvers också hämtas från github.com. Hämta filen Module.symvers
wget https://raw.github.com/raspberrypi/firmware/ $FV/extra/Module.symvers - O k_tmp/Module.symvers
Hämta linux källkod. Komprimerade källkoden handlar om 110MBytes i storlek. Detta är den fullständiga källan för kärnan inklusive alla rubriker.
HASH = "cat k_tmp/git_hash"
wget - c https://github.com/raspberrypi/linux/tarball/ $HASH - O k_tmp/linux.tar.gz
Gå till den skapade katalog k_tmp
CD k_tmp
Packa upp och packar upp källkoden i komprimerade TAR-filen
tar - xzf linux.tar.gz
Flytta den till katalogen src
KV = 'uname - r'
sudo mv raspberrypi-linux * /usr/src/linux-source-$ KV
Skriv och kör följande kommandon
sudo ln -s /usr/src/linux-source-$ KV /lib/modules/$ KV/build
sudo cp Module.symvers /usr/src/linux-source-$ KV /
sudo zcat /proc/config.gz > /usr/src/linux-source-$KV/.config
Ändra katalog
CD /usr/src/linux-source-$ KV /
Köra oldconfig
sudo make oldconfig
Ställ in källkodsträdet att bygga kärnmoduler
sudo göra förbereda
Kör make skript
sudo göra skript
Om allt görs på rätt sätt din Raspberry Pi är nu redo att kompilera kärna modul.
Du kan köra kommandot alla från en enda bash-script för att göra ett skript och öppna den med nano
sudo nano piscript.sh
och skriv in följande kommando
#! / bin/bash
# Ett skript för att installera Raspberry Pi för en kernel-build
FV = "zgrep" * firmware som av "/usr/share/doc/raspberrypi-bootloader/changelog. Debian.gz | huvud 1 | awk "{skriva ut $5}''
mkdir -p k_tmp/linux
wget https://raw.github.com/raspberrypi/firmware/$ FV/extra/git_hash - O k_tmp/git_hash
wget https://raw.github.com/raspberrypi/firmware/ $FV/extra/Module.symvers - O k_tmp/Module.symvers
HASH = "cat k_tmp/git_hash"
wget - c https://github.com/raspberrypi/linux/tarball/ $HASH - O k_tmp/linux.tar.gz
CD k_tmp
tar - xzf linux.tar.gz
KV = 'uname - r'
sudo mv raspberrypi-linux * /usr/src/linux-source-$ KV
sudo ln -s /usr/src/linux-source-$ KV /lib/modules/$ KV/build
sudo cp Module.symvers /usr/src/linux-source-$ KV /
sudo zcat /proc/config.gz > /usr/src/linux-source-$KV/.config
CD /usr/src/linux-source-$ KV /
sudo make oldconfig
sudo göra förbereda
sudo göra skript
Gör filen körbar med kommandot
sudo chmod + x piscope.sh
Kör filen med
./picsope.sh
Gjort!
Du kan också ladda upp filen piscope.sh till Raspberry Pi med FTP-klient.