English / Deutsch | Druckversion Plop Linux  

<< Zurück
Banana Pi

Inhaltsverzeichnis

Weiter >>
Odroid-XU4

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

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

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.




© 2024 by Elmar Hanlhofer