175
Kommentar:
|
6220
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 7: | Zeile 7: |
.. contents:: .. sectnum:: |
|
Zeile 8: | Zeile 10: |
Arbeitsbereich auf Rechner **elinux-remote** | Lokaler Arbeitsbereich auf SSD ------------------------------ NICHT IM HOME-VERZEICHNIS DES RZ KOMPILIEREN!!! Verwende lokale SSD Platte des Rechners **elinux-remote**, oder ihren eigene Rechner Jede/Jeder legt sich Arbeitsbereich an nach dem Muster |
Zeile 11: | Zeile 20: |
Beispiele: - ``/home/elinux_work/hoegl_h`` - ``/home/elinux_work/schaeferling_m`` Achtung: Gesamte Partition hat ca. 500 GByte frei. Bei 25 Teilnehmern waeren das ca. 20 GByte je TN. Das reicht zum Kompilieren von U-Boot, Kernel, Buildroot. Beim Kompilieren von Yocto fallen bis zu 60 GByte Daten an. Das kann dann natuerlich nicht jeder zur gleichen Zeit machen. Der Kompiliervorgang dauert auch mehrere Stunden! U-Boot kompilieren ------------------ An Anleitungen von **Robert C. Nelson** halten. Er Applikationsingenieur bei Texas Instruments und hat praktisch das komplette Linux auf AM335x angepasst. https://forum.digikey.com/t/debian-getting-started-with-the-beaglebone-black/12967 .. code-block:: text sudo apt install bison wget -c https://releases.linaro.org/components/toolchain/binaries/6.5-2018.12/arm-linux-gnueabihf/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz tar xf gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz export CC=`pwd`/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- git clone -b v2019.04 https://github.com/u-boot/u-boot --depth=1 wget -c https://github.com/eewiki/u-boot-patches/raw/master/v2019.04/0001-am335x_evm-uEnv.txt-bootz-n- fixes.patch wget -c https://github.com/eewiki/u-boot-patches/raw/master/v2019.04/0002-U-Boot-BeagleBone-Cape- Manager.patch cd u-boot/ patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch patch -p1 < ../0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch patch -p1 < ../0002-U-Boot-BeagleBone-Cape-Manager.patch make ARCH=arm CROSS_COMPILE=${CC} distclean make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig make ARCH=arm CROSS_COMPILE=${CC} Kernel kompilieren ------------------ Anleitung von R. C. Nelson: https://forum.digikey.com/t/debian-getting-started-with-the-beaglebone-black/12967 .. code-block:: text git clone https://github.com/RobertCNelson/bb-kernel cd bb-kernel/ git checkout origin/am33x-v4.19 -b tmp Immer wieder: warning: konnte nicht auf '/rzhome/hhoegl/.config/git/attributes' zugreifen: Keine Berechtigung Installieren: lzop, ./build_kernel.sh # siehe build_kernel.log * Wie konfiguriert man den Kernel? Vorarbeiten zum Booten ueber TFTP/NFS ------------------------------------- Auf dem Hostrechner ist ein TFTP Server und ein NFS Server zu installieren. Auf dem TFTP Server wird der Kernel (uImage) und der Device Tree liegen. Auf dem NFS Server wird das Root Filesystem liegen. Der Kernel wird am Ende des Bootvorgangs das Root Filesystem ueber NFS mounten. TFTP ```` Installiere "tftpd-hpa" Server und "tftp-hpa" Client (zum Testen). :: man tftpd man tftp systemctl status tftpd-hpa.service Konfigurationsdatei: /etc/init/tftpd-hpa.conf Server Verzeichnis: /srv/tftp/ Test: tftp -v 127.0.0.1 -c get <Pfad/zur/Datei> Defaults:: $ cat /etc/default/tftpd-hpa # /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS=":69" TFTP_OPTIONS="--secure" NFS ``` Yocto Project -------------- Lit.: - Buch von Simmonds, ab Seite 162 - Artikel von Mirza Krak, "Linux IoT Development: Adjusting from a Binary OS to the Yocto Project Workflow", Linux Journal, July 2019. http://hhoegl.informatik.hs-augsburg.de/elinux/yocto/yocto-lj-300-2019.pdf - Building BeagleBone Systems with Yocto, August 2020. Verwendet Poky "dunfell" (= Version 3.1). Hat auch Meta-Layer fuer BBB gemacht. Sehr gute Anleitung, die man nachvollziehen sollte! https://jumpnowtek.com/beaglebone/BeagleBone-Systems-with-Yocto.html .. How to create your own Linux distro using Yocto, Oct 2020 - allg. Anleitung, ohne Bezug auf BBB https://www.fosslinux.com/43266/how-to-create-your-own-linux-distro-using-yocto.htm - Build and deploy Yocto Linux on the Beaglebone Black (2014) - Im Prinzip okay, von den Versionen her natuerlich veraltet! https://android.serverbox.ch/?p=1273 - Prinzipiell okay, da von 2016 auch von den Versionen her gesehen veraltet: https://beagleboard.org/p/30847/yocto-on-beaglebone-black-9ae649 - Yokto Doku - https://www.yoctoproject.org/docs/3.1/overview-manual/overview-manual.html - https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html |
Beagle Bone Black
Inhalt
1 Lokaler Arbeitsbereich auf SSD
NICHT IM HOME-VERZEICHNIS DES RZ KOMPILIEREN!!!
Verwende lokale SSD Platte des Rechners elinux-remote, oder ihren eigene Rechner
Jede/Jeder legt sich Arbeitsbereich an nach dem Muster
/home/elinux_work/<nachname> + "_" + <vorname[0]>
Beispiele:
- /home/elinux_work/hoegl_h
- /home/elinux_work/schaeferling_m
Achtung: Gesamte Partition hat ca. 500 GByte frei. Bei 25 Teilnehmern waeren das ca. 20 GByte je TN. Das reicht zum Kompilieren von U-Boot, Kernel, Buildroot. Beim Kompilieren von Yocto fallen bis zu 60 GByte Daten an. Das kann dann natuerlich nicht jeder zur gleichen Zeit machen. Der Kompiliervorgang dauert auch mehrere Stunden!
2 U-Boot kompilieren
An Anleitungen von Robert C. Nelson halten. Er Applikationsingenieur bei Texas Instruments und hat praktisch das komplette Linux auf AM335x angepasst.
https://forum.digikey.com/t/debian-getting-started-with-the-beaglebone-black/12967
sudo apt install bison wget -c https://releases.linaro.org/components/toolchain/binaries/6.5-2018.12/arm-linux-gnueabihf/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz tar xf gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz export CC=`pwd`/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- git clone -b v2019.04 https://github.com/u-boot/u-boot --depth=1 wget -c https://github.com/eewiki/u-boot-patches/raw/master/v2019.04/0001-am335x_evm-uEnv.txt-bootz-n- fixes.patch wget -c https://github.com/eewiki/u-boot-patches/raw/master/v2019.04/0002-U-Boot-BeagleBone-Cape- Manager.patch cd u-boot/ patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch patch -p1 < ../0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch patch -p1 < ../0002-U-Boot-BeagleBone-Cape-Manager.patch make ARCH=arm CROSS_COMPILE=${CC} distclean make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig make ARCH=arm CROSS_COMPILE=${CC}
3 Kernel kompilieren
Anleitung von R. C. Nelson: https://forum.digikey.com/t/debian-getting-started-with-the-beaglebone-black/12967
git clone https://github.com/RobertCNelson/bb-kernel cd bb-kernel/ git checkout origin/am33x-v4.19 -b tmp Immer wieder: warning: konnte nicht auf '/rzhome/hhoegl/.config/git/attributes' zugreifen: Keine Berechtigung Installieren: lzop, ./build_kernel.sh # siehe build_kernel.log
- Wie konfiguriert man den Kernel?
4 Vorarbeiten zum Booten ueber TFTP/NFS
Auf dem Hostrechner ist ein TFTP Server und ein NFS Server zu installieren.
Auf dem TFTP Server wird der Kernel (uImage) und der Device Tree liegen.
Auf dem NFS Server wird das Root Filesystem liegen. Der Kernel wird am Ende des Bootvorgangs das Root Filesystem ueber NFS mounten.
4.1 TFTP
Installiere "tftpd-hpa" Server und "tftp-hpa" Client (zum Testen).
man tftpd man tftp systemctl status tftpd-hpa.service Konfigurationsdatei: /etc/init/tftpd-hpa.conf Server Verzeichnis: /srv/tftp/ Test: tftp -v 127.0.0.1 -c get <Pfad/zur/Datei> Defaults:: $ cat /etc/default/tftpd-hpa # /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS=":69" TFTP_OPTIONS="--secure"
5 Yocto Project
Lit.:
Buch von Simmonds, ab Seite 162
Artikel von Mirza Krak, "Linux IoT Development: Adjusting from a Binary OS to the Yocto Project Workflow", Linux Journal, July 2019.
http://hhoegl.informatik.hs-augsburg.de/elinux/yocto/yocto-lj-300-2019.pdf
Building BeagleBone Systems with Yocto, August 2020. Verwendet Poky "dunfell" (= Version 3.1). Hat auch Meta-Layer fuer BBB gemacht. Sehr gute Anleitung, die man nachvollziehen sollte!
https://jumpnowtek.com/beaglebone/BeagleBone-Systems-with-Yocto.html
Build and deploy Yocto Linux on the Beaglebone Black (2014) - Im Prinzip okay, von den Versionen her natuerlich veraltet!
Prinzipiell okay, da von 2016 auch von den Versionen her gesehen veraltet:
https://beagleboard.org/p/30847/yocto-on-beaglebone-black-9ae649
Yokto Doku