Intel Galileo Board: Entwicklungstools (GCC, Make usw.) zu Galileo-SD-Image hinzufügen und nodejs mit nativen Erweiterungen verwenden

Intel Galileo BoardIntel® Galileo Board , das auf einem Intel Quark-X1000-(x86-)SoC basiert, ist für Arduino* zertifiziert. Während das Board mit der Arduino-Softwareentwicklungsumgebung zur Gänze kompatibel ist, kann es auch eine volle Linux*-Distribution ausführen. Eine solche Distribution erhalten Sie auf der offiziellen Website. Das „LINUX IMAGE FOR SD for Intel Galileo“ ist eine mit Yocto* erstellte poky-Distribution. Sie verwendet uClibc und enthält nützliche Binaries, wie SSHd, bluez, nodejs und OpenCV, kann aber auch Arduino-Sketches ausführen! 
Die Installation ist äußerst einfach: Sie müssen lediglich .7z in das Stammverzeichnis einer microSD-Karte mit FAT32-Formatierung entpacken. 
Ich habe eine Reihe interessanter nodejs-Module entdeckt, von denen einige auf nativen Erweiterungen basieren. Da mir eine Cross-Kompilierung kompliziert erschien, wählte ich einen anderen Weg, um sie auf meinem Galileo zum Laufen zu bringen: einen Rebuild der poky-Distribution, um Entwicklungstools hinzuzufügen. 
Dies mag zwar kompliziert klingen, ist in Wirklichkeit aber äußerst einfach, was damit zu tun hat, wie Yocto funktioniert. 
Richten Sie zuerst Ihre Build-Umgebung auf dieselbe Art ein, wie Sie dasselbe Image wie das auf der offiziellen Website erstellen würden, indem Sie das Galileo BSP herunterladen und Yocto einrichten:

wget http://downloadmirror.intel.com/23171/eng/Board_Support_Package_Sources_for_Intel_Quark_v0.7.5.7z
7z x Board_Support_Package_Sources_for_Intel_Quark_v0.7.5.7z
tar xzvf Board_Support_Package_Sources_for_Intel_Quark_v0.7.5/meta-clanton_v0.7.5.tar.gz
cd meta-clanton_v0.7.5
./setup.sh
source poky/oe-init-build-env yocto_build

Stoppen Sie hier und erstellen Sie die gewünschte Konfiguration:

cp ../meta-clanton-distro/recipes-core/images/image-full.bb ../meta-clanton-distro/recipes-core/images/image-custom.bb

Hier entschied ich mich, die Dateisystemgröße zu verdreifachen, auf etwa 900 MB:

IMAGE_ROOTFS_SIZE = "921600"

Mit der dev-pkgs-Funktion fügte ich -dev-Pakete zum Image hinzu:

IMAGE_INSTALL += "autoconf automake binutils binutils-symlinks cpp cpp-symlinks gcc gcc-symlinks g++ g++-symlinks gettext make libstdc++ libstdc++-dev file coreutils"

Dann erweiterte ich das Ganze mit der folgenden Zeile um die von mir gewünschten Tools:

IMAGE_INSTALL += "autoconf automake binutils binutils-symlinks cpp cpp-symlinks gcc gcc-symlinks g++ g++-symlinks gettext make libstdc++ libstdc++-dev file coreutils"

und integrierte mit der folgenden Zeile die korrekte Firmware für meinen Wi-Fi/BT4.0-Chipsatz (Centrino 6235):

IMAGE_INSTALL += "linux-firmware-iwlwifi-6000g2b-6"

Nun können Sie Ihre angepasste Distribution erstellen:

bitbake image-custom

In meinem Fall benötigte ich etwa 20 GB und eine Stunde für automatisierte Downloads/Builds. Wenn alles fertig ist, finden Sie Ihre generierten Dateien in yocto_build/tmp/deploy/images. Sie können sie folgendermaßen auf Ihre microSD kopieren:

  • aktuelles bzImage-* als bzImage
  • aktuelles core-image-minimal-initramfs-* als core-image-minimal-initramfs-clanton.cpio.gz
  • aktuelles image-* als image-full-clanton.ext3
  • Boot-Verzeichnis als boot

Nun können Sie unkompliziert nützliche nodejs-Module mit nativen Erweiterungen erhalten, die direkt auf dem Galileo kompiliert werden:

npm install socket.io

npm install socket.io

Sollte es Ihnen an Zeit oder Ressourcen mangeln, können Sie auch das angepasste Image, das ich erstellt habe, direkt herunterladen. :-) 
Der folgende Artikel erläutert, wie Sie ein eigenes Image erstellen oder statt uClibc eine andere libc verwenden können: Intel Galileo – Linux-Image erstellen (in Englisch)

PS: Ich habe in dem von mir erstellten Image einen kleinen Fehler entdeckt: stdbuf konnte „libstdbuf.so“ nicht finden. Dieser Fehler lässt sich leicht korrigieren, indem Sie Folgendes ausführen: ln -s /usr/lib/coreutils/libstdbuf.so /usr/lib/coreutils/coreutils/

Dieser Beitrag ist eine Übersetzung des Artikels Adding Dev Tools (GCC, Make…) To Galileo SD Image And Using Nodejs With Native Extensions, der zuerst auf der privaten Webseite des Intel Mitarbeiters Xavier Hallade veröffentlicht wurde: http://ph0b.com/adding-dev-tools-gcc-make-to-galileo-sd-image/#more-105

Pour de plus amples informations sur les optimisations de compilation, consultez notre Avertissement concernant les optimisations.