Plop Linux - ARM CPU VersionInhaltsverzeichnisEinleitungPlop Linux ist eine Linux Distribution für fortgeschrittene Linux Benutzer. Siehe auch Desktop und Server. Aktuelle Version: 24.2 für i486 (32-Bit), x86_64 (64-Bit) und ARM CPU armv6l SystemvoraussetzungenSystemvoraussetzungen für die ARM Version:
Screenshots
Download
Aktuelle Version: 24.2, 15/Feb/2024 Plop Linux License, Changelog, Package Changelog, Programmpakete, md5sum ARM, armv6l, 32-Bit
Source Codes, Release Tools
Unterschiede zu i486, x86_64
Die Programme LILO, GRUB, Syslinux, Blender und Vivaldi sind in der ARM Version nicht enthalten. Alle anderen Programme sind die gleichen wie bei den i486/x86_64 Versionen. Der Browser Netsurf ist der standard Webbrowser. QEMUHier wird beschrieben wie Sie Plop Linux für ARM mit QEMU starten und wie Sie einen ARMv6l Kernel kompilieren zum Booten mit QEMU. Linux Kernel Version: 4.2.8 Plop Linux für ARM mit QEMU bootenBenötigte Dateien: ploplinux-24.2-arm.img.xz ~1,5 GB, die Image Datei Entpacken Sie die Image Datei mit 'xz -d ploplinux-24.2-arm.img.xz'. Hinweis: Die Datei wird 10GB groß. Starten Sie QEMU mit 'sh arm-qemu-boot.sh arm-qemu-zImage ploplinux-24.2-arm.img'. Den Linux Kernel für ARMv6l kompilieren zum Booten mit QEMUBenötigte Dateien: tools.tar.gz Cross compile tool chain Sie müssen die Cross Compile Tool Chain installieren. Siehe Cross compile Linux Kernel. Starten Sie 'shell.sh' zum Öffnen der Cross Compile Shell. Entpacken Sie den Linux Kernel. Sie müssen die Kernel Konfiguration patchen um einen ARMv6l Kernel zu kompilieren. Wenn nicht gepatcht wird, dann wird ein ARMv5l Kernel erstellt. Den Kernel patchen: patch -p1 < arm-qemu-linux-4.2.8.patch Basis Konfiguration erstellen: make versatile_defconfig Zusätzliche Konfigurationen hinzufügen: cat config-add > .config Starten Sie 'make menuconfig'. Falls gewünscht, dann können Sie weitere Treiber hinzufügen. Beenden Sie das Konfigurationsprogramm und speichern Sie die Konfiguration. Starten Sie 'make zImage' um den Kernel zu kompilieren. Die Kerneldatei befindet sich im 'arch/arm/boot/' Verzeichnis. Der Dateiname ist 'zImage'. Ändern Sie den Namen in 'arm-qemu-zImage'. Mit dieser Datei können Sie Plop Linux für ARM mit QEMU booten. Hinweis: Um Module zu kompilieren, starten Sie 'make modules && make modules_install'. Die Moduldateien befinden sich im 'kernel-modules/' Verzeichnis wo 'shell.sh' gestartet wurde. Linux Kernel compile error: warning: "__LINUX_ARM_ARCH__" is not defined [-Wundef]Diese Fehlermeldung erhalten Sie beim Kompilieren wenn Sie den QEMU Kernel Patch ausführen nachdem der Kernel bereits konfiguriert wurde. Starten Sie 'make clean' zum säubern und dann konfigurieren Sie den Kernel erneut. Danach sollte das Kompilieren problemlos funktionieren. Raspberry Pi, GPU Userland Apps und Kamera ToolsIn diesem Abschnitt wird beschrieben, wie Sie Plop Linux am Raspberry Pi installieren, Cross Compile des Linux Kernels für den Raspberry Pi und wie man die Raspberry Pi Zusatztools kompiliert und installiert. Unterstütze Raspberry Pi Versionen: 1-4 Plop Linux installierenPlop Linux ist für fortgeschrittene Benutzer. Diese Dokumentation beschreibt nicht jeden Schritt mit dem entsprechenden Befehl. Sollte die Beschreibung zu schwer verständlich sein, dann wird sie mit Details erweitert. Booten Sie ein Linux auf einem Computer mit einem SD Kartenleser. Laden Sie die Dateien ploplinux-desktop-24.2-arm.tar.gz und raspberry-pi-boot.tar.gz herunter. • Erstellen Sie auf der SD Karte die erste Partition mit ca. 150 MB. Partitionstyp: 0x0C (FAT Partition). Dies wird die Bootpartition. • Erstellen Sie eine zweite Partition auf der SD Karte für Plop Linux. Mindestens 7 GB (oder 3 GB ohne /opt). • Formatieren Sie die erste Partition mit FAT 'mkfs -F 32 /dev/PARTITION1' (die Bootpartition).
• Formatieren Sie die zweite Partition mit Ext3 'mkfs.ext3 /dev/PARTITION2' (die Plop Linux Partition).
• Mounten Sie die zweite Partition (Plop Linux Partition) zu '/mnt'. • Entpacken Sie ploplinux-desktop-24.2-arm.tar.gz nach '/mnt'. • Verschieben Sie die Verzeichnisse im '/mnt/ploplinux-desktop-24.2-arm/' Verzeichnis ein Verzeichnis höher, damit sie im Root Verzeichnis der Plop Linux Partition sind. • Entfernen Sie nun das leere '/mnt/ploplinux-desktop-24.2-arm/' Verzeichnis. • Mounten Sie die erste Partition (Boot Partition) nach '/mnt/boot'. • Entpacken Sie raspberry-pi-boot.tar.gz nach '/mnt'. • Wichtige Dateien (die Standardeinstellungen sollten passen):
• Unmounten Sie '/mnt/boot'. • Unmounten Sie '/mnt'. Nun booten Sie Ihren Raspberry Pi mit der SD Karte. Personalisieren Sie Ihr neues System. Siehe hier für allgemeine Plop Linux Desktop Einstellungen und hier für spezielle ARM Einstellungen. Raspberry Pi 4 - Booten 32 Bit / 64 BitDer Raspberry Pi 4 hat einen 64 Bit Prozessor. Um mit dem 32 Bit Kernel zu booten, schreiben Sie in die Datei '/boot/config.txt' [all] arm_64bit=0 Um mit dem 64 Bit Kernel zu booten verwenden Sie [all] arm_64bit=1 Raspberry Pi 4 - Kein HDMI SignalFügen Sie am Anfang der Datei '/boot/config.txt' folgende Zeile ein um den HDMI Ausgang zu aktivieren. hdmi_force_hotplug=1 Den Linux Kernel kompilierenEntweder kompilieren Sie den Linux Kernel direkt auf dem Raspberry Pi (dauert sehr lange) oder Sie verwenden eine Cross Compile Umgebung (siehe hier) auf Ihrem Computer. • Wenn Sie die Cross Compile Umgebung verwenden dann starten Sie das 'shell.sh' Skript. • Laden Sie den Linux Kernel Source Code für den Raspberry Pi herunter.
• Wechseln Sie in das Linux Kernel Verzeichnis 'cd linux' und initialisieren Sie die Basiskonfiguration
• Zum Kompilieren des Kernels starten Sie 'make && make modules_install' Hinweis: Mit 'make modules_install' installieren Sie die Kernel Module. Wenn Sie am Raspberry Pi kompilieren, dann werden die Module nach '/lib/modules' installiert. Wenn Sie in der Cross Compile Umgebung kompilieren dann werden die Module im 'kernel-modules/' Verzeichnis installiert, wo Sie das 'shell.sh' Skript gestartet haben. • Die Linux Kernel Datei befindet sich im 'arch/arm/boot/' Verzeichnis. Der Dateiname ist 'zImage'. Benennen Sie die Datei in 'kernel.img' um. • Kopieren Sie die 'kernel.img' Datei auf die Bootpartition des Raspberry Pi. Hinweis: Wenn Sie in der Cross Compile Umgebung kompilieren, dann empfehle ich die Dateien via SSHFS auf den Raspberry Pi zu kopieren. GPU Userland Apps und Kamera ToolsSie können die Tools am Raspberry Pi kompilieren oder in einer Cross Compile Umgebung. Laden Sie das Paket raspberry-pi-tools.tar.gz herunter und entpacken Sie es oder laden Sie die einzelnen Dateien von .hier herunter. Um das GPU Userland und die Python Kamera Module automatisch zu kompilieren und installieren können Sie das Skript '000_all' starten. sh 000_all Die Build Scripts sind 010_b_setuptools: Installiert die Python Setup Tools 020_b_picamera: Installiert die Python Raspberry Pi Kamera Module 030_b_userland: Kompiliert, patched und installiert die GPU Userland Apps (raspistill, raspivid, raspiyuv, ...) Am Ende kopieren Sie die Datei '.bash_RaspberryPI' in Ihr Home Verzeichnis und fügen Sie die folgende Zeile . ~/.bash_RaspberryPI am Ende der Datei '.bash_profile' hinzu. Dieses Skript setzt ein paar Umgebungsvariablen für die Userland Apps. Loggen Sie sich aus und wieder ein um die Umgebungsvariablen zu aktivieren. Weitere Infos000_src/userland-plop.patch: Behebt Probleme mit vcos.h. Weiters wird ein neues Build Script erstellt. 001_git-userland: Herunterladen des aktuellen GPU Userland Source Codes. Weitere Links
https://pypi.python.org/pypi/setuptools#downloads Banana PiDieser Abschnitt beschreibt
Linux Kernel Version: 4.2.3 Plop Linux installierenPlop Linux ist für fortgeschrittene Benutzer. Diese Dokumentation beschreibt nicht jeden Schritt mit dem entsprechenden Befehl. Sollte die Beschreibung zu schwer verständlich sein, dann wird sie mit Details erweitert. Booten Sie ein Linux auf einem Computer mit einem SD Kartenleser. Laden Sie die Dateien ploplinux-desktop-24.2-arm.tar.gz und banana-pi-boot.tar.gz herunter. • Erstellen Sie auf der SD Karten eine Partition für Plop Linux. Mindestens 7 GB (oder 3 GB ohne /opt). • Formatieren Sie die Partition mit Ext3 mkfs.ext3 /dev/PARTITION1.
• Mounten Sie die Partition zu /mnt • Entpacken Sie ploplinux-desktop-24.2-arm.tar.gz nach /mnt • Verschieben Sie die Verzeichnisse in /mnt/ploplinux-desktop-24.2-arm/ ein Verzeichnis höher, damit sie im Root Verzeichnis der Plop Linux Partition sind. • Entfernen Sie nun das leere /mnt/ploplinux-desktop-24.2-arm/ Verzeichnis. • Entpacken Sie die banana-pi-boot.tar.gz nach /mnt • Installieren Sie den U-Boot Bootmanager. Wechseln Sie in das /mnt/boot Verzeichnis und starten Sie dd if=u-boot-sunxi-with-spl.bin of=/dev/SDCARD bs=1024 seek=8
• Wichtige Dateien (die Standardeinstellungen sollten passen):
• Unmounten Sie /mnt Nun booten Sie Ihren Banana Pi mit der SD Karte. Personalisieren Sie Ihr neues System. Siehe hier für allgemeine Plop Linux Desktop Einstellungen und hier für spezielle ARM Einstellungen. Erstellen der boot.scr DateiPassen Sie die Datei /etc/boot.cmd an Ihre Bedürfnisse an. Die Standardeinstellung sollte passen. Zum Erstellen der boot.scr Datei starten Sie mkimage -C none -A arm -T script -d boot.cmd boot.scr Banana Pi grüne LEDDer Banana Pi hat eine einstellbare grüne Led. Man kann die Led z.B. zur Anzeige des SD Kartenzugriffs, CPU Auslastung usw. einstellen. Das Verzeichnis der grünen Led ist /sys/class/leds/bananapi:green:usr/ In diesem Verzeichnis befindet sich die Datei trigger. Starten Sie cat trigger zum Anzeigen der verschiedenen Einstellungsmöglichkeiten. Die aktuelle Einstellung ist mit einer eckigen Klammer markiert. Hier ist das Plop Linux Setup aus der /etc/rc.local Datei. # Set green led to SD Card actvity echo mmc0 > /sys/class/leds/bananapi:green:usr/trigger Cubietruck, USB OTG g_hid, g_mass_storageDieser Abschnitt beschreibt
Linux Kernel version: 4.4-rc1 Plop Linux installierenPlop Linux ist für fortgeschrittene Benutzer. Diese Dokumentation beschreibt nicht jeden Schritt mit dem entsprechenden Befehl. Sollte die Beschreibung zu schwer verständlich sein, dann wird sie mit Details erweitert. Booten Sie ein Linux auf einem Computer mit einem SD Kartenleser. Laden Sie die Dateien ploplinux-desktop-24.2-arm.tar.gz und cubietruck-boot.tar.gz herunter. • Erstellen Sie auf der SD Karten eine Partition für Plop Linux. Mindestens 7 GB (oder 3 GB ohne /opt). • Formatieren Sie die Partition mit Ext3 'mkfs.ext3 /dev/PARTITION1'.
• Mounten Sie die Partition zu '/mnt'. • Entpacken Sie ploplinux-desktop-24.2-arm.tar.gz nach '/mnt'. • Verschieben Sie die Verzeichnisse in '/mnt/ploplinux-desktop-24.2-arm/'. ein Verzeichnis höher, damit sie im Root Verzeichnis der Plop Linux Partition sind. • Entfernen Sie nun das leere '/mnt/ploplinux-desktop-24.2-arm/' Verzeichnis. • Entpacken Sie die cubietruck-boot.tar.gz nach '/mnt'. • Installieren Sie den U-Boot Bootmanager. Wechseln Sie in das '/mnt/boot' Verzeichnis und starten Sie 'dd if=u-boot-sunxi-with-spl.bin of=/dev/SDCARD bs=1024 seek=8'.
• Wichtige Dateien (die Standardeinstellungen sollten passen):
• Unmounten Sie '/mnt'. Nun booten Sie Ihren Cubietruck mit der SD Karte. Personalisieren Sie Ihr neues System. Siehe hier für allgemeine Plop Linux Desktop Einstellungen und hier für spezielle ARM Einstellungen. Hinweise zu Linux Kernel VersionenDer Cubietruck Linux Kernel von Plop Linux unterstützt nicht alle Funktionen des Cubietrucks. Der stabile Cubietruck Linux Kernel 3.4. sollte alle Funktionen unterstützen. Der 3.4. Linux Kernel lässt sich nicht mehr mit der neuesten Version von GCC kompilieren und ist daher nicht Bestandteil von Plop Linux. Die aktuelle Linux Kernel Version 4.9. hat Probleme mit dem Ausschalten des Cubietruck. Das Ausschalten des Cubietrucks funktioniert mit dem Kernel 4.4.rc-1. Dieser ist Bestandteil von Plop Linux. Den Linux Kernel kompilierenEntweder kompilieren Sie den Linux Kernel direkt auf dem Cubietruck (dauert sehr lange) oder Sie verwenden eine Cross Compile Umgebung (siehe hier) auf Ihrem Computer. • Wenn Sie die Cross Compile Umgebung verwenden dann starten Sie das 'shell.sh' Skript. • Laden Sie den Linux Kernel Source Code für den Cubietruck herunter.
• Wechseln Sie in das Linux Kernel Verzeichnis 'cd linux-sunxi' und initialisieren Sie die Basiskonfiguration
• Zum Kompilieren des Kernels starten Sie 'make && make modules_install'. Hinweis: Mit 'make modules_install' installieren Sie die Kernel Module. Wenn Sie am Cubietruck kompilieren, dann werden die Module nach '/lib/modules' installiert. Wenn Sie in der Cross Compile Umgebung kompilieren dann werden die Module im 'kernel-modules/' Verzeichnis installiert, wo Sie das 'shell.sh' Skript gestartet haben. • Die Linux Kernel Datei befindet sich im 'arch/arm/boot/' Verzeichnis. Der Dateiname ist 'zImage'. • Kopieren Sie die 'zImage' Datei in das '/boot' Verzeichnis vom Cubietruck. Hinweis: Wenn Sie in der Cross Compile Umgebung kompilieren, dann empfehle ich die Dateien via SSHFS auf den Cubietruck zu kopieren. Erstellen der boot.scr DateiPassen Sie die Datei '/etc/boot.cmd' an Ihre Bedürfnisse an. Die Standardeinstellung sollte passen. Zum Erstellen der 'boot.scr' Datei starten Sie 'mkimage -C none -A arm -T script -d boot.cmd boot.scr'. Cubietruck LedsDer Cubietruck hat 4 Leds zu Anzeigen von Aktivitäten. Z.B. SD Kartenzugriff, Bluetooth und vieles mehr. Es gibt eine blaue, weiße, orange und grüne Led. Die Led Verzeichnisse befinden sich im '/sys/class/leds/' Verzeichnis. Die grüne Led ist '/sys/class/leds/cubietruck:green:usr/'. In diesem Verzeichnis befindet sich die Datei 'trigger'. Starten Sie 'cat trigger' zum Anzeigen der verschiedenen Einstellungsmöglichkeiten. Die aktuelle Einstellung ist mit einer eckigen Klammer markiert. Hier ist das Plop Linux Setup aus der '/etc/rc.local' Datei. # Set green led to SD Card actvity echo mmc0 > /sys/class/leds/cubietruck:green:usr/trigger # Plop Linux has booted, set orange led on echo default-on > /sys/class/leds/cubietruck:orange:usr/trigger USB OTG - HID, Mass Storage DeviceVerwenden Sie ausschließlich ein USB OTG Kabel zum Verbinden des OTG Ports mit einem Computer! • Der Cubietruck als HID Sie müssen den den g_hid Kernel Modul Source Code bearbeiten um die HID Funktion zu aktiviren Bei Plop Linux ist ein funktionierendes Beispiel g_hid Modul installiert. Details über den g_hid Treiber finden Sie in der Kernel Dokumentation gadget_hid.txt Sie müssen die Datei 'drivers/usb/gadget/legacy/hid.c' bearbeiten und
Sie können die modifizierte hid.c herunterladen. Hinweis: Wenn Sie hid.c nicht ändern, dann erhalten Sie den Fehler "ERROR: could not insert 'g_hid': No such device" beim Ausführen von modprobe g_hid. Das g_hid Modul verwenden Laden Sie das Testprogramm herunter: hid_gadget_test.c Kompilieren Sie das Testprogramm: gcc hid_gadget_test.c -o hid_gadget_test Laden Sie den g_hid Treiber: modprobe g_hid Starten Sie das Testprogramm: ./hid_gadget_test /dev/hidg0 keyboard Sie befinden sich nun im Prompt vom hid_gadget_test Programm. Hier können Sie Eingaben machen. Wenn der Cubietruck mit einem Computer über das USB OTG Kabel verbunden ist, dann arbeitet der Cubietruck als Tastatur. Geben Sie am hid_gadget_test Prompt 'a b c' ein und drücken Enter. Am Computer sollten sie nun den geschriebenen Text "abc" sehen. '--num-lock' schaltet den Numlock ein/aus. Siehe gadget_hid.txt für mehr Informationen. • Der Cubietruck als Mass Storage Device Bei diesem Beispiel wird ein Disk Image File verwendet. Erstellen des Disk Image Files:
Aktivieren des USB Mass Storage: Starten Sie 'modprobe g_mass_storage file=/var/disk.img' Wenn der Cubietruck mit einem Computer über das USB OTG Kabel verbunden ist, dann arbeitet der Cubietruck als Mass Storage Device. Wenn Sie auf dem Computer 'dmesg' starten, dann sollten Sie die Einträge von dem neuen USB Mass Storage Device sehen. Wenn Sie nun auf dem Computer das USB Mass Storage Device mounten mit z.B. 'mount /dev/sdd /mnt', dann sehen Sie die erstellte Test Datei 'test.txt' in /mnt Verzeichnis. Odroid-XU4Linux Kernel Version: 4.14.55-135 Plop Linux läuft problemlos auf dem Odriod-XU4. Installationsanleitung kommt vielleicht irgendwann..., im Prinzip braucht man eine Partition 1 (boot) als FAT32, Partition 2 als ext3 oder ext4, die Boot Dateien, und Plop Linux Desktop (ARM Version) wie üblich entpacken. Boot Dateien: odroid-xu4-boot.tar.gz Linux Kernel Source Code: https://github.com/hardkernel/linux/tree/odroidxu4-4.14.y Fan control scriptAs default, the fan goes on and off around 52°C, which can be annoying. I wrote a simple fan control script. The script cools the CPU down to a defined temperature and starts the fan on a defined temperature. Add the script to your '/etc/rc.local' to start it at boot time. Sample: fan-control.sh & The script catches the -HUP signal and turns the fan and automatic control on, before it ends on the signal. Download: fan-control.sh Additional resources
https://wiki.odroid.com/odroid-xu4/odroid-xu4 KonfigurationDie ARM Version von Plop Linux hat ein paar zusätzliche Konfigurationen für ARM Computer. /etc/rc.localIn der /etc/rc.local Datei stehen ein paar zusätzliche Befehle zur Standard Plop Linux rc.local Datei. Es gibt Abschnitte für verschiedene Geräte (Raspberry Pi, Banana Pi, Cubietruck, Odroid XU4). Sie stellen das entsprechende Gerät in der Datei /etc/device ein. SWAP SpeicherAls SWAP Speicher kann man eine Partition oder Datei verwenden. Ich bevorzuge eine SWAP Datei. Die alte Regel lautet, der SWAP Speicher sollte die doppelte Größe des Arbeitsspeichers haben. Wenn nicht genug Platz auf dem Datenträger ist, dann der SWAP Speicher natürlich kleiner dimensioniert sein. Um eine SWAP Datei mit 1 GB zu erstellen führen Sie folgende Befehle aus:
dd if=/dev/zero of=/var/swap bs=1M count=1024 Entfernen Sie das # Zeichen in der /etc/fstab Datei in der Zeile mit swap um den SWAP Speicher während dem Booten zu aktivieren. WLAN Wi-FiEin Beispiel mit dem Techion WLS 150 WLAN USB Stick finden Sie hier. Raspberry Pi: Boot Partition zu /boot mountenDie Boot Partition /dev/mmcblk0p1 wird zu /boot gemountet. Konfiguriert wird es in der /etc/fstab Datei. Raspberry Pi, Banana Pi: Datum und ZeitDer Rasperry Pi und Banana Pi verliert die Zeit wenn man den Strom abdreht. Man kann die Zeit automatisch während dem Booten einstellen lassen. Die korrekte Zeit wird mittels NTP Server gesetzt. In der Datei /etc/rc.local finden Sie die Zeile mit ntpdate ntp0.fau.de & um die Zeit zu setzen. Um die Zeit auf diese Art zu setzen, wird eine Internetverbindung benötigt. Entfernen Sie die Datei /etc/rc.d/rcsysinit.d/S60setclock um die Fehlermeldung beim Booten bzgl. Zeit setzen zu verhindern. Entfernen Sie das & nach ntpdate ntp0.fau.de um zu warten bis die richtige Zeit eingestellt wurde. Dadurch verhindert man falsche Loginzeiten wenn sich ein User anmeldet bevor die Zeit eingestellt werden konnte. Raspberry Pi: SoundDas Sound Modul snd-bcm2835 wird mit /etc/rc.local geladen damit die Audioausgabe funktioniert. Cross Compile Linux KernelSie können ein sogenanntes "Cross Compile" durchführen um Software auf Ihrem x86 System für eine andere CPU Architektur zu kompilieren. Es gibt verschiedene Varianten für ein Cross Compile. Eine Variante ist die Verwendung einer Tool Chain. Die Vorteile vom Cross Compile sind ein stabiles System im Hintergrund und schnelleres kompilieren. Einrichten der Cross Compile Tool ChainLaden Sie ploplinux-src-24.2.tar.gz herunter und entpacken Sie die Datei um die ARM Cross Compile Tool Chain zu erhalten. Die Tool Chain befindet sich im 99-ARM/cross-compile/tool-chain/ Verzeichnis. Sie können auch die einzelnen Dateien hier herunterladen. git-tools: Aktuelle ARM Cross Compile Tool Chain herunterladen. shell.sh: Skript zum Starten einer Shell mit notwendigen Umgebungsvariablen. tools.tar.gz: ARM Cross Compile Tool Chain. Entpacken Sie die Dateien tools.tar.gz um die Cross Compile Tool Chain zu entpacken oder starten Sie git-tools um die aktuelle Versionen herunter zu laden. Starten Sie shell.sh um eine Shell mit den notwendigen Umgebungsvariablen zu starten. Sie sehen den Text CROSS COMPILE SHELL als Startinfo. Sie können die x86 Programme Ihres Betriebssystems ganz normal verwenden. Zum Beenden geben Sie exit ein. Sie sehen den Text CROSS COMPILE END als Info. Beispiel: Den Raspberry Pi Linux Kernel kompilierenLaden Sie den Raspberry Pi Linux Kernel Source Code herunter: linux.tar.xz Starten Sie shell.sh um die Cross Compile Shell zu starten. Entpacken Sie den Linux Kernel Source Code mit tar xfz linux.tar.gz Wechseln Sie in das Linux Kernel Source Verzeichnis linux/. Starten Sie make bcmrpi_defconfig für eine minimal Raspberry Pi Kernel Konfiguration oder kopieren Sie die Datei .config in das linux/ Verzeichnis um eine vorkonfigurierte Kernel Konfiguration zu verwenden. Starten Sie make menuconfig um das Kernel Konfigurations Tool zu öffnen. Sie können Treiber entfernen und hinzufügen. Starten Sie make um den Kernel + Module zu kompilieren. Starten Sie make modules_install um die Module in das ../kernel-modules/ Verzeichnis zu installieren. Den Linux Kernel finden Sie im arch/arm/boot/ Verzeichnis. Der Dateiname ist zImage. Cross Build mit chrootSie können ein "Cross Compile" durchführen indem Sie von einem laufendem System (z.B. x86) mit chroot in ein ARM System wechseln. Die Vorteile sind ein stabiles System im Hintergrund, einfacher Zugriff vom Hostsystem auf die Daten des chroot Systems, schnelles kompilieren wenn der Hostcomputer schnell ist. Sie können ein chroot anwenden, wenn das ARM System
Sie müssen als Root arbeiten, damit es keine Einschränkungen bei den Rechten gibt. Ich bevorzuge chroot zu einem Verzeichnis. Damit gibt es keine Speicherplatzlimitierung des Image Files.
1. VoraussetzungenLaden Sie die Datei ploplinux-src-24.2.tar.gz und entpacken Sie die Datei herunter um die ARM Chroot Tools zu erhalten. Die Chroot Tools sind im 99-ARM/cross-compile/chroot-tools/ Verzeichnis. Sie können auch die einzelnen Dateien von hier herunterladen. Dateien/Verzeichnisse: arm/ <- Chroot in dieses Verzeichnis arm-chroot.sh <- Mit diesem Skript das chroot durchführen .bashrc <- Hinzufügen der roten CHRT Info zum Prompt nach dem chroot in das ARM System mount.sh <- Mounten einer Partition in einem Festplatten Image (als Loop Device), ohne Chroot Setup qemu-static/ <- Static qemu zum emulieren der ARM CPU qemu-wrapper/ <- Wrapper damit QEMU mit den entsprechenden Parametern gestartet wird setup-arm-emu-hdimage.sh <- Setup Chroot Umgebung für eine Partition in einem Festplatten Image (als Loop Device) setup-arm-emu-local.sh <- Setup Chroot Umgebung für ein Verzeichnis Den qemu-wrapper kompilieren: Wechseln Sie in das qemu-wrapper/ Verzeichnis. Starten Sie sh make-qemu-wrapper Wechseln Sie in das qemu-static/ Verzeichnis und entpacken Sie das QEMU Program für das zu emulierende System. Für die QEMU Datei für ARM qemu-arm-static ist bereits entpackt. 2. Chroot vorbereiten2.1. Chroot zu VerzeichnisWenn Sie chroot mit einem Verzeichnis und nicht mit einem Image oder einer Festplatte verwenden wollen, dann entpacken Sie das ARM System in das arm/ Verzeichnis. Plop Linux für ARM: ploplinux-desktop-24.2-arm.tar.gz Kopieren Sie die Datei qemu-static/qemu-arm-static and qemu-wrapper/qemu-wrapper in das arm/usr/bin/ Verzeichnis. Die Vorbereitungen sind erledigt. Siehe weiter unten wie das Chroot gestartet wird. 2.2. Chroot zu einer Partition eines Festplatten ImagesWenn Sie ein Chroot zu einer Partition in einem Festplatten Image durchführen wollen, dann müssen Sie die Partition als Loop Device mit einem Offset mounten. Laden Sie die komprimierte Datei herunter: ploplinux-24.2-arm.img.xz Entpacken Sie die Datei (Achtung, die Datei wird 10GB groß): xz -d ploplinux-24.2-arm.img.xz Sie müssen den Start der System Partition finden.
Starten Sie fdisk ploplinux-24.2-arm.img Welcome to fdisk (util-linux 2.27). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk ploplinux-24.2-arm.img: 10 GiB, 10737418240 bytes, 20971520 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xf1ec283e Device Boot Start End Sectors Size Id Type ploplinux-24.2-arm.img1 * 2048 20971519 20969472 10G 83 Linux Command (m for help): In diesem Beispiel gibt es eine Partition. Der Start ist 2048. Bearbeiten Sie das mount.sh und das setup-arm-emu-hdimage.sh Skript und setzen den PARTITION_START_OFFSET Wert. File: mount.sh #!/bin/sh ROOT_DIR=arm IMAGE_FILE=ploplinux-24.2-arm.img PARTITION_START_OFFSET=2048 IMAGE_BLOCKSIZE=512 mount -o loop,offset=$[$PARTITION_START_OFFSET*$IMAGE_BLOCKSIZE] $IMAGE_FILE $ROOT_DIR/ File: setup-arm-emu-hdimage.sh #!/bin/sh ROOT_DIR=arm IMAGE_FILE=ploplinux-24.2-arm.img PARTITION_START_OFFSET=2048 IMAGE_BLOCKSIZE=512 SHARE=/root mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-wrapper:' > /proc/sys/fs/binfmt_misc/register mount -o loop,offset=$[$PARTITION_START_OFFSET*$IMAGE_BLOCKSIZE] $IMAGE_FILE $ROOT_DIR/ mount --bind /proc $ROOT_DIR/proc.. mount --bind /tmp $ROOT_DIR/tmp.. mount --bind /sys $ROOT_DIR/sys.. mount --bind /dev $ROOT_DIR/dev.. mount --bind /dev/pts $ROOT_DIR/dev/pts.. #if required, bind the system /root directory to the chroot environment #mount --bind $SHARE $ROOT_DIR/mnt Mounten Sie die Partition zu dem arm/ Verzeichnis indem Sie das Skript mount.sh ausführen. Kopieren Sie die Dateien qemu-static/qemu-arm-static und qemu-wrapper/qemu-wrapper in das arm/usr/bin/ Verzeichnis. Die Vorbereitungen sind erledigt. Siehe nächsten Absatz wie das Chroot gestartet wird. 3. Das Chroot startenStarten Sie das Chroot Setup Skript
Dann starten Sie arm-chroot.sh um das Chroot durchzuführen. Starten Sie lscpu um die CPU Daten des emulierten Systems zu sehen. Sie können nun Programme des ARM System starten. Starten Sie z.B. den Midnight Commander mc um schnell auf dem ARM System navigieren zu können. Sie können Programme kompilieren als ob die emulierte Hardware echt wäre. Sie können arm-chroot.sh parallel in anderen Terminals starten und so parallel auf dem ARM System arbeiten. 4. Weitere Links
http://community.arm.com/groups/embedded/blog/2013/11/21/cross-compilation-for-arm
HardwareWLANTechion WLS 150 WLAN USB Stick. Raspberry PiIch verwende den Raspberry Pi Model B+. SD Karten:
Cubietruck / Cubieboard 3SD Karte:
Banana PiSD Karte:
© 2024 by
Elmar Hanlhofer |