Da der Raspberry Pi 3 noch relativ jung ist, benötigen manche Projekte die aktuelle Buildroot-Version, um die Hardware des Pi vollständig nutzen zu können. Denn die Version in der VM ist von Ende 2016 und nutzt noch den Linux-Kernel 4.4, der bereits Anfang 2016 erschienen ist. Dieser unterstützt aber den Grafikchip und das WLAN-Modul des Pi noch nicht vollständig. Hier deshalb eine kurze Anleitung, wie Buildroot aktualisiert werden kann, damit der LTS-Kernel 4.9 genutzt werden kann:
$ cd ~ $ rm -rf buildroot make download cache $ mkdir make download cache $ git clone --branch 2017.05.x --depth 1 git://git.buildroot.net/buildroot buildroot $ cd buildroot $ make O=../make BR2_EXTERNAL=../custom
Anschließend bitte die neue Version des custom-Verzeichnisses herunterladen. Einfach alle Inhalte des Verzeichnisses durch die Dateien im ZIP-File ersetzen. custom (Update, 19.06.2017: ZIP-Datei aktualisiert)
Danach kann mit folgenden Befehlen eine neue Musterkonfiguration geladen werden:
$ cd ~/make $ make clean $ make dhbw_minimal_defconfig
Das Bauen des Images wird nun sehr lange gehen. 🙂
16.06.2017: In der ersten Version dieses Beitrags konnte es noch zu folgendem Fehler kommen, der mit dem neuen custom-Verzeichnis nicht mehr kommen sollte:
>>> Executing post-image script board/raspberrypi3/post-image.sh file(bcm2710-rpi-cm3.dtb): stat(/home/buildroot/make/images/bcm2710-rpi-cm3.dtb) failed: No such file or directory vfat(boot.vfat): could not setup bcm2710-rpi-cm3.dtb Makefile:718: recipe for target 'target-post-image' failed make[1]: *** [target-post-image] Error 1 Makefile:16: recipe for target '_all' failed make: *** [_all] Error 2
Zur Behebung einfach die fehlende Datei manuell reinkopieren oder am besten den Inhalt des custom-Verzeichnisses nochmal tauschen. (Achtung: Der exakte Pfad kann etwas abweichend sein, daher am besten mit der Tab-Completion arbeiten, um den richtigen Pfad zu erwischen).
$ cp build/rpi-firmware-4b24a81a2ce94afd4458d1af4ea1e73d58e69848/boot/bcm2710-rpi-cm3.dtb images/ $ make
Jetzt sollte wieder alles in Ordnung sein. 😎
19.06.2017: custom.zip nochmal ausgetauscht. Die neue Version integriert das WLAN des Raspberry Pi3.
Hallo Dennis,
ich habe ein Update auf die neue Buildroot Version gemacht und das custom Verzeichnis ausgetauscht. Ich bekomme beim build jedoch Fehler von qt-web-kiosk. Ich möchte diesen nicht installieren, das post-build.sh scheint jedoch etwas ändern zu wollen.
Reicht es diese Zeilen auszukommentieren? Wo finde ich dieses Script?
———————————————————————————————————-
>>> Executing post-build script /home/buildroot/custom/config.sh
>> Nehme Änderungen an der config.txt vor
dtoverlay=vc4-fkms-v3d
>>> Executing post-build script board/raspberrypi3/post-build.sh
>>> Generating root filesystem image rootfs.ext2
rm -f /home/buildroot/make/build/_fakeroot.fs
rm -f /home/buildroot/make/target/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM
rm -f /home/buildroot/make/build/_users_table.txt
echo ‚#!/bin/sh‘ > /home/buildroot/make/build/_fakeroot.fs
echo „set -e“ >> /home/buildroot/make/build/_fakeroot.fs
echo „chown -h -R 0:0 /home/buildroot/make/target“ >> /home/buildroot/make/build/_fakeroot.fs
cat /home/buildroot/custom/users >> /home/buildroot/make/build/_users_table.txt
printf ‚ – – input -1 * – – – Input device group\n sshd -1 sshd -1 * – – – SSH drop priv user\n\n‘ >> /home/buildroot/make/build/_users_table.txt
PATH=“/home/buildroot/make/host/bin:/home/buildroot/make/host/sbin:/home/buildroot/make/host/usr/bin:/home/buildroot/make/host/usr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games“ /home/buildroot/buildroot/support/scripts/mkusers /home/buildroot/make/build/_users_table.txt /home/buildroot/make/target >> /home/buildroot/make/build/_fakeroot.fs
cat system/device_table.txt /home/buildroot/custom/permissions > /home/buildroot/make/build/_device_table.txt
printf ‚ /bin/busybox f 4755 0 0 – – – – -\n /usr/bin/sudo f 4755 0 0 – – – – -\n /dev/console c 622 0 0 5 1 – – -\n\n‘ >> /home/buildroot/make/build/_device_table.txt
echo „/home/buildroot/make/host/usr/bin/makedevs -d /home/buildroot/make/build/_device_table.txt /home/buildroot/make/target“ >> /home/buildroot/make/build/_fakeroot.fs
printf ‚ PATH=“/home/buildroot/make/host/bin:/home/buildroot/make/host/sbin:/home/buildroot/make/host/usr/bin:/home/buildroot/make/host/usr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games“ mke2img -d /home/buildroot/make/target -G 4 -R 1 -b 262144 -I 0 -o /home/buildroot/make/images/rootfs.ext2\n‘ >> /home/buildroot/make/build/_fakeroot.fs
chmod a+x /home/buildroot/make/build/_fakeroot.fs
PATH=“/home/buildroot/make/host/bin:/home/buildroot/make/host/sbin:/home/buildroot/make/host/usr/bin:/home/buildroot/make/host/usr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games“ /home/buildroot/make/host/usr/bin/fakeroot — /home/buildroot/make/build/_fakeroot.fs
rootdir=/home/buildroot/make/target
table=’/home/buildroot/make/build/_device_table.txt‘
makedevs: line 35: regular file ‚/home/buildroot/make/target/bin/qt-webkit-kiosk‘ does not exist: No such file or directory
makedevs: cap_get_file failed on /home/buildroot/make/target/bin/qt-webkit-kiosk: No such file or directory
fs/ext2/ext2.mk:42: recipe for target ‚/home/buildroot/make/images/rootfs.ext2‘ failed
make[1]: *** [/home/buildroot/make/images/rootfs.ext2] Error 1
Makefile:16: recipe for target ‚_all‘ failed
make: *** [_all] Error 2
Ich vermute, dass das an der Datei „permissions“ im custom-Verzeichnis liegt. Kann sein, dass da noch alte Einträge drin sind, weil ich momentan viel für das Browser-Problem ausprobieren. Schau mal, ob die Datei außer
/etc/ssh/ssh_host_rsa_key f 600 root root – – – – –
noch weitere Einträge hat. Wenn ja, einfach alle rausschmeißen. Ich habe zwischenzeitlich aber auch das ZIP-File mit dem custom-Verzeichnis nochmal ausgetauscht und in dieser Version scheinen die übreflüssigen Zeilen nicht mehr enthalten zu sein.
Danke, hat funktioniert.
Pingback:WLAN unter Buildroot zum Laufen bringen – Iot/Embedded-Workshop 2017