English / Deutsch | Druckversion Plop Linux  
Twitter
twitter

Plop Linux - ARM CPU Version



Inhaltsverzeichnis


• Einleitung
• Systemvoraussetzungen
• Screenshots
• Download
• Unterschiede zu i486, x86_64
• QEMU
• Raspberry Pi, GPU Userland Apps und Kamera Tools
• Banana Pi
• Cubietruck, USB OTG g_hid, g_mass_storage
• Konfiguration
• Cross Compile Linux Kernel
• Cross Build mit chroot
• Hardware

Einleitung


Plop Linux ist eine Linux Distribution für fortgeschrittene Linux Benutzer. Siehe auch Desktop und Server.


Aktuelle Version: 4.3.3 für i486 (32-Bit), x86_64 (64-Bit) und ARM CPU armv6l


Systemvoraussetzungen


Systemvoraussetzungen für die ARM Version:

  • ARM armv6l kompatibler Prozessor
  • 64 MB RAM
  • 4 GB Partition


Screenshots


Konsole

vergrößern
     Konsole

vergrößern
     Fluxbox

vergrößern

 
Xfce

vergrößern
     Xfce

vergrößern
     Xfce mit ARM CPU

vergrößern

Download


Unterstützen Sie das kostenlose Plop Linux mit einer Spende.


Aktuelle Version: 4.3.3, 11/Apr/2017

Plop Linux License, Changelog, Package Changelog, Programmpakete, md5sum


ARM, armv6l, 32-Bit

Entpacken/Installation ploplinux-desktop-4.3.3-arm.tar.gz 1.30 GB
Hard Disk Image ploplinux-4.3.3-arm.img.gz 1.33 GB, uncompressed 10 GB
Kernel, Bootdateien arm-boot.tar.gz 114.26 MB, Banana Pi, Cubietruck, Qemu, Raspberry Pi/2/3


Source Codes, Release Tools

Web directory Source Codes  
Source code files, compile scripts ploplinux-src-4.3.3.tar.gz 4.15 GB
Release tools and scripts ploplinux-release-4.3.3.tar.gz 3.49 GB


Unterschiede zu i486, x86_64


Version Architektur Kernel Libc & GCC    Software    
i486 x86 / 32-Bit 4.10.8 32-Bit  
x86_64 x86 / 64-Bit 4.10.8 Multiarch 32/64-Bit  
ARM armv6l QEMU: 4.2.8
Raspberry Pi: 4.1.13
Banana Pi: 4.2.3
Cubietruck: 4.4-rc1
32-Bit - LILO
- GRUB
- Syslinux
- Blender
- Vivaldi

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.


QEMU


Hier 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 booten


Benötigte Dateien:

ploplinux-4.3.3-arm.img.gz ~900MB, die Image Datei
arm-qemu-zImage ARMv6l Linux Kernel für QEMU
arm-qemu-boot.sh Start Skript


Entpacken Sie die Image Datei mit 'gunzip ploplinux-4.3.3-arm.img.gz'. Hinweis: Die Datei wird 10GB groß.

Starten Sie QEMU mit 'sh arm-qemu-boot.sh arm-qemu-zImage ploplinux-4.3.3-arm.img'.


Den Linux Kernel für ARMv6l kompilieren zum Booten mit QEMU


Benötigte Dateien:

tools.tar.gz Cross compile tool chain
shell.sh Environment Setup
linux-4.2.8.tar.xz Linux Kernel
arm-qemu-linux-4.2.8.patch ARMV6l Config Patch
config-add Zusätzliche Config Settings


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 Tools


In diesem Abschnitt wird beschrieben, wie Sie Plop Linux am Raspberry Pi installieren, Corss Compile des Linux Kernels für den Raspberry Pi und wie man die Raspberry Pi Zusatztools kompiliert und installiert.

Linux Kernel Version: 4.1.13


Plop Linux installieren


Plop 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-4.3.3-arm.tar.gz und raspberry-pi-boot.tar.gz (oder raspberry-pi2-boot.tar.gz für Pi 2/3) herunter.

• Erstellen Sie auf der SD Karte die erste Partition mit ca. 60 MB. Partitionstyp: 0x0C (FAT Partition). Dies wird die Bootpartition.

• Erstellen Sie eine zweite Partition auf der SD Karte für Plop Linux. Mindestens 3.1 GB.

• Formatieren Sie die erste Partition mit FAT 'mkfs.vfat -F 32 /dev/PARTITION1' (die Bootpartition).

Hinweis: /dev/PARTITION1 ist nur ein Platzhalter. Sie müssen den Device Node der Partition verwenden. Beispiel: /dev/sdd1

• Formatieren Sie die zweite Partition mit Ext3 'mkfs.ext3 /dev/PARTITION2' (die Plop Linux Partition).

Hinweis: /dev/PARTITION2 ist nur ein Platzhalter. Sie müssen den Device Node der Partition verwenden. Beispiel: /dev/sdd2

• Mounten Sie die zweite Partition (Plop Linux Partition) zu '/mnt'.

• Entpacken Sie ploplinux-desktop-4.3.3-arm.tar.gz nach '/mnt'.

• Verschieben Sie die Verzeichnisse im '/mnt/ploplinux-desktop-4.3.3-arm/' Verzeichnis ein Verzeichnis höher, damit sie im Root Verzeichnis der Plop Linux Partition sind.

• Entfernen Sie nun das leere '/mnt/ploplinux-desktop-4.3.3-arm/' Verzeichnis.

• Mounten Sie die erste Partition (Boot Partition) nach '/mnt/boot'.

• Entpacken Sie raspberry-pi-boot.tar.gz (oder raspberry-pi2-boot.tar.gz für Pi 2/3) nach '/mnt'.

• Wichtige Dateien (die Standardeinstellungen sollten passen):

Bootparameter können in der Datei '/mnt/boot/cmdline.txt' geändert werden.

Stellen Sie '/mnt/etc/fstab' auf Ihre Systemkonfiguration ein.

In der '/mnt/etc/rc.local' Datei gibt es einen Bereich für Raspberry Pi Einstellungen.

• 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.


Den Linux Kernel kompilieren


Entweder 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.

Mit git: git clone --depth 1 git://github.com/raspberrypi/linux.git

Oder laden Sie die Datei linux.tar.xz herunter und entpacken Sie die Datei.

• Wechseln Sie in das Linux Kernel Verzeichnis 'cd linux' und initialisieren Sie die Basiskonfiguration

Für den Raspberry Pi 1: make bcmrpi_defconfig
Oder laden Sie die Datei .config herunter. Diese Konfiguration wird für Plop Linux verwendet. Kopieren Sie die Datei in das 'linux' Verzeichnis.

Für den Raspberry Pi 2: KERNEL=7 make bcm2709_defconfig

Hinweis: Um weitere Einstellungen am Kernel vorzunehmen, starten Sie 'make menuconfig'.

• 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.
Mount Beispiel (Rasperry Pi IP: 10.0.0.208): sshfs root@10.0.0.208:/ /mnt


GPU Userland Apps und Kamera Tools


Sie 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 Infos


000_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
https://pypi.python.org/pypi/picamera
https://github.com/raspberrypi


Banana Pi


Dieser Abschnitt beschreibt

  • Wie Sie Plop Linux für den Banana Pi installieren.
  • Erstellen der boot.scr Datei.
  • Einstellen der grünen Banana Pi Led.

Linux Kernel Version: 4.2.3


Plop Linux installieren


Plop 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-4.3.3-arm.tar.gz und banana-pi-boot.tar.gz herunter.

• Erstellen Sie auf der SD Karten eine Partition für Plop Linux. Mindestens 3.1 GB.

• Formatieren Sie die Partition mit Ext3 mkfs.ext3 /dev/PARTITION1.

Hinweis: /dev/PARTITION1 ist nur ein Platzhalter. Sie müssen den Device Node der Partition verwenden. Beispiel: /dev/sdd1

• Mounten Sie die Partition zu /mnt

• Entpacken Sie ploplinux-desktop-4.3.3-arm.tar.gz nach /mnt

• Verschieben Sie die Verzeichnisse in /mnt/ploplinux-desktop-4.3.3-arm/ ein Verzeichnis höher, damit sie im Root Verzeichnis der Plop Linux Partition sind.

• Entfernen Sie nun das leere /mnt/ploplinux-desktop-4.3.3-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

Hinweis: /dev/SDCARD ist nur ein Platzhalter. Sie müssen den Device Node der SD Karte verwenden. Beispiel: /dev/sdd

Hinweis: Ich verwende U-Boot Datei und den Kernel von armbian.

• Wichtige Dateien (die Standardeinstellungen sollten passen):

Stellen Sie /mnt/etc/fstab auf Ihre Systemkonfiguration ein.

In der /mnt/etc/rc.local Datei gibt es einen Bereich für Banana Pi Einstellungen.

• 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 Datei


Passen 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 LED


Der 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_storage


Dieser Abschnitt beschreibt

  • Wie Sie Plop Linux am Cubietruck installieren.
  • Wie Sie den Linux Kernel für den Cubietruck kompilieren.
  • Erstellen der boot.scr Datei.
  • Einstellen der Cubietruck Leds.
  • Verwenden des USB OTG als HID oder Mass Storage Device.

Linux Kernel version: 4.4-rc1


Plop Linux installieren


Plop 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-4.3.3-arm.tar.gz und cubietruck-boot.tar.gz herunter.

• Erstellen Sie auf der SD Karten eine Partition für Plop Linux. Mindestens 3.1 GB.

• Formatieren Sie die Partition mit Ext3 'mkfs.ext3 /dev/PARTITION1'.

Hinweis: /dev/PARTITION1 ist nur ein Platzhalter. Sie müssen den Device Node der Partition verwenden. Beispiel: /dev/sdd1

• Mounten Sie die Partition zu '/mnt'.

• Entpacken Sie ploplinux-desktop-4.3.3-arm.tar.gz nach '/mnt'.

• Verschieben Sie die Verzeichnisse in '/mnt/ploplinux-desktop-4.3.3-arm/'. ein Verzeichnis höher, damit sie im Root Verzeichnis der Plop Linux Partition sind.

• Entfernen Sie nun das leere '/mnt/ploplinux-desktop-4.3.3-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'.

Hinweis: /dev/SDCARD ist nur ein Platzhalter. Sie müssen den Device Node der SD Karte verwenden. Beispiel: /dev/sdd

Hinweis: Ich verwende U-Boot Datei von ARCH Linux.

• Wichtige Dateien (die Standardeinstellungen sollten passen):

Stellen Sie '/mnt/etc/fstab' auf Ihre Systemkonfiguration ein.

In der '/mnt/etc/rc.local' Datei gibt es einen Bereich für Cubietruck Einstellungen.

• 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 Versionen


Der 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 kompilieren


Entweder 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.

Den stabilen Kernel: git clone https://github.com/cubieboard/linux-sunxi.git

Den kommenden Kernel: git clone https://github.com/linux-sunxi/linux-sunxi.git -b sunxi-next

Oder laden Sie den Kernel Source Code (verwendet bei Plop Linux) linux-sunxi-next.tar.xz herunter und entpacken die Datei.

• Wechseln Sie in das Linux Kernel Verzeichnis 'cd linux-sunxi' und initialisieren Sie die Basiskonfiguration

Starten Sie 'make sunxi_defconfig'.

Oder verwenden Sie die Plop Linux Konfigurationsdatei. Kopieren Sie .config in das 'linux-sunxi' Verzeichnis.

Hinweis: Um weitere Einstellungen am Kernel vorzunehmen, starten Sie 'make menuconfig'.

• 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.
Mount Beispiel (Cubietruck IP: 10.0.0.208): sshfs root@10.0.0.208:/ /mnt


Erstellen der boot.scr Datei


Passen 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 Leds


Der 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 Device


Verwenden 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

  • eine hidg_func_descriptor Struktur hinzufügen
  • eine platform_device Struktur hinzufügen
  • und "platform_device_unregister (&my_hid);" in der __exit hidg_cleanup(void) funktion einfügen

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:

  • Erstellen Sie eine 100 MB große Datei: dd if=/dev/zero of=/var/disk.img bs=1M count=100
  • Formatieren Sie das Disk Image File: mkfs.ext3 /var/disk.img
  • Mounten Sie das Disk Image File: mount -o loop /var/disk.img /mnt
  • Erstellen Sie eine Test Datei am Disk Image File: echo "Hello there" > /mnt/test.txt
  • Trennen Sie das Disk Image File: umount /mnt

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.


Konfiguration


Die ARM Version von Plop Linux hat ein paar zusätzliche Konfigurationen für ARM Computer.


/etc/rc.local


In 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). Sie stellen das entsprechende Gerät in der Datei /etc/device ein.


SWAP Speicher


Als 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 1GB zu erstellen führen Sie folgende Befehle aus:

dd if=/dev/zero of=/var/swap bs=1M count=1024
chmod 600 /var/swap
mkswap /var/swap
swapon /var/swap

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-Fi


Ein Beispiel mit dem Techion WLS 150 WLAN USB Stick finden Sie hier.


Raspberry Pi: Boot Partition zu /boot mounten


Die Boot Partition /dev/mmcblk0p1 wird zu /boot gemountet. Konfiguriert wird es in der /etc/fstab Datei.


Raspberry Pi, Banana Pi: Datum und Zeit


Der 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: Sound


Das Sound Modul snd-bcm2835 wird mit /etc/rc.local geladen damit die Audioausgabe funktioniert.


Cross Compile Linux Kernel


Sie 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 Chain


Laden Sie ploplinux-src-4.3.3.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 kompilieren


Laden 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 chroot


Sie 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

  • in einem Verzeichnis gespeichert ist.
  • sich auf einer Festplatten Partition befindet.
  • sich in einem Image einer Partition befindet (Loop Device).
  • sich in einer Partition eines Festplatten Images befindet (Loop Device).

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. Voraussetzungen
2. Chroot vorbereiten
2.1. Chroot zu Verzeichnis
2.2. Chroot zu einer Partition eines Festplatten Images
3. Das Chroot starten
4. Weitere Links

1. Voraussetzungen


Laden Sie die Datei ploplinux-src-4.3.3.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 vorbereiten


2.1. Chroot zu Verzeichnis


Wenn 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-4.3.3-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 Images


Wenn 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-4.3.3-arm.img.gz

Entpacken Sie die Datei (Achtung, die Datei wird 10GB groß): gunzip ploplinux-4.3.3-arm.img.gz

Sie müssen den Start der System Partition finden. Starten Sie fdisk ploplinux-4.3.3-arm.img
Verwenden Sie das Kommando p um das Partitionslayout anzuzeigen

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-4.3.3-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-4.3.3-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-4.3.3-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-4.3.3-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 requried, 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 starten


Starten Sie das Chroot Setup Skript

  • für das Chroot in das arm/ Verzeichnis: setup-arm-emu-local.sh
  • oder das Chroot zu einer Partition in einem Festplatten Image: setup-arm-emu-hdimage.sh

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
https://wiki.debian.org/QemuUserEmulation


Hardware


WLAN


Techion WLS 150 WLAN USB Stick.


Raspberry Pi


Ich verwende den Raspberry Pi Model B+.

SD Karten:

  • SAMSUNG microSDHC EVO 32GB Kit, UHS-I/Class 10
  • KINGSTON Micro SDHC 16GB


Cubietruck / Cubieboard 3


SD Karte:

  • SAMSUNG microSDHC EVO 32GB Kit, UHS-I/Class 10


Banana Pi


SD Karte:

  • SAMUNG microSDHC-Card 16GB - Class 10


© 2017 by Elmar Hanlhofer
Die Seite wurde zuletzt am 11/Apr/2017 geändert.