[LINUX] Cross-Compilierung für Raspberry Pi Zero unter Debian-Try unter Verwendung einer gemeinsam genutzten Bibliothek

Überblick

Führen Sie ein C-Sprachprogramm aus, das auf Debain auf Raspberry Pi Zero kompiliert wurde. Ich möchte eine Umgebung erstellen, in der ich gemeinsam genutzte Bibliotheken verwenden kann. Verwenden wir vorerst "libusb" oder "libjpeg".

Ich fahre fort mit Cross-Compilierung für Raspberry Pi Zero unter Ubuntu beginnen und versuche es erneut mit Debian als Host-Computer (aus einem späteren Grund).

Umgebung

Host: Debian 10.6.0 <Virtual Box 6.1 <Windows10 Ziel: Raspberry Pi Zero WH

Verfahren

Installieren des Compilers für ARM

$ sudo apt install crossbuild-essential-armel

Letztes Mal hat versucht, g ++ - arm-linux-gnueabi zu installieren, aber es scheint in crossbuild-essential-armel enthalten zu sein Also werde ich das installieren. Immerhin ist es gcc, das ich benutze, also macht es keinen großen Unterschied.

Installieren Sie gemeinsam genutzte Bibliotheken

Architektur hinzufügen,

$ sudo dpkg --add-architecture armel

Source.list bearbeiten. Ich werde das Repository hinzufügen, auf das apt verweist.

$ sudo nano /etc/apt/sources.list

Fügen Sie am Ende von "sources.list" Folgendes hinzu. Informationen zu Armel finden Sie auch unter ftp.jp.debian.org.

/etc/apt/sources.list


deb [arch=armel] http://ftp.jp.debian.org/debian buster main

Aktualisieren und installieren Sie die Bibliothek. Sie können die Bibliothek für "armel" erhalten, indem Sie ": armel" hinzufügen.

$ sudo apt update
$ sudo apt install libusb-dev:armel
$ sudo apt install libjpeg-dev:armel

Wenn das Paket für Ubuntu Armel veröffentlicht wird, kann ich das gleiche mit Ubuntu tun, indem ich es zu "sources.list" hinzufüge, aber ich habe festgestellt, dass ich das Armel-Paket für Ubuntu veröffentlicht habe nicht.

試しにUbuntuでftp.jp.debian.org/debianを追加してみましたが、「署名されてません」みたいなエラーが出てインストールできませんでした。そりゃそうか。

Gibt es eine Möglichkeit, es zwangsweise zu installieren? (Ich konnte die .deb bringen und installieren, aber ich gab auf, weil die Abhängigkeit schwierig wurde)

Bauen

Klicken Sie hier, um das Programm anzuzeigen, das dieses Mal erstellt werden soll.

testUsbLib.c


#include <stdio.h>
#include <usb.h>

int main()
{
    printf("call usb_init()\n");
    usb_init();
    printf("OK\n");

    return 0;
}

Ein nutzloses Programm, das nur "usb_init ()" aufruft. Es bereinigt usb_init () nicht (musste ich etwas tun ...?).

Bauen Sie hier.

$ arm-linux-gnueabi-gcc -march=armv6 testUsbLib.c -o testUsbLib_armv6 -lusb

Versuchen Sie, es zum Laufen zu bringen

Wenn Sie oben erfolgreich erstellen können, kopieren Sie das generierte testUsbLib_armv6 in einen geeigneten Ordner auf Raspberry Pi Zero.

$ testUsbLib_armv6
call usb_init()
OK

Und so funktioniert es. Nichts passiert, aber ...

Zusammenfassung

Da "libusb" nur wenige Abhängigkeiten hat, kann es ziemlich gut sein, selbst wenn Sie die .deb-Datei abrufen und manuell installieren, aber "libjpeg" usw. hat viele Abhängigkeiten und wird manuell aufgegeben, weil es zu viele Schritte gibt. Diese Methode hat es einschließlich der Abhängigkeiten installiert, sodass es anscheinend funktioniert hat.

Übrigens habe ich die Funktionsweise von "libtiff" zusätzlich zu "libusb" und "libjpeg" durch diese Methode bestätigt.

Wenn jemand weiß, ob dieselbe Methode unter Ubuntu verwendet werden kann (ob ein Paket für Armel veröffentlicht wurde usw.), lassen Sie es mich bitte wissen.

Nachtrag

Ich habe den folgenden Artikel geschrieben.

Recommended Posts

Cross-Compilierung für Raspberry Pi Zero unter Debian-Try unter Verwendung einer gemeinsam genutzten Bibliothek
Cross-Compiling für Raspberry Pi Zero unter Debian-Versuchen Sie, Ihre eigene gemeinsam genutzte Bibliothek zu erstellen
Cross-Compilierung für Raspberry Pi Zero unter Ubuntu gestartet
Zugriff auf Google Spreadsheets Verwenden von Python mit Himbeer-Pi (für sich selbst)
Versuchen Sie es mit ArUco mit Raspberry Pi
Erkennen Sie "Helligkeit" mit Python auf Raspberry Pi 3!
Lassen Sie einen Servomotor mit Python auf Raspberry Pi 3 laufen
Ermitteln Sie die Temperatur mit Python auf Raspberry Pi 3!
Grundeinstellungen für die Verwendung des Grove Pi + Starterkits und der Kamera mit Raspberry Pi
Erkennen Sie Schiebeschalter mit Python auf Raspberry Pi 3!
Versuchen Sie, QR-Code mit Raspberry Pi zu verwenden
Erkennen Sie Magnetschalter mit Python auf Raspberry Pi 3!
Lassen Sie den Summer mit Python auf Raspberry Pi 3 erklingen!
Pigpio auf Himbeer-Pi
Cython auf Raspberry Pi
Erstellen Sie mithilfe von Poetry eine OpenCV4-Umgebung auf Raspberry Pi
Versuchen Sie es mit dem Temperatursensor (LM75B) mit Raspeye.
Steuern Sie bürstenlose Motoren mit GPIO von Raspberry Pi Zero
Ausgabe auf "7 Segment LED" mit Python mit Raspberry Pi 3!
Installieren Sie PyCall auf Raspberry PI und versuchen Sie, die GPIO-Bibliothek für Python von Ruby zu verwenden
Innenüberwachung mit Raspberry Pi
Führen Sie das AWS IoT Device SDK für Python auf Raspberry Pi aus
Verwenden Sie Python auf Raspberry Pi 3, um "Temperatur (mit A / D-Wandler)" zu erkennen!
Überprüfen Sie! Lassen Sie uns Raspberry Pi Zero aus der Ferne entwickeln - versuchen Sie es mit Arafruit WebIDE
Pyenv auf Raspberry Pi eingeführt
Aufbau einer Cortex-M-Entwicklungsumgebung für TOPPERS mit Raspeye
Verwenden Sie NeoPixel mit Himbeerkuchen
Installieren Sie OpenCV4 auf Raspberry Pi 3
Installieren Sie TensorFlow 1.15.0 auf Raspberry Pi
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
Wiegeinstrument mit Himbeer-Pi und hx711 (GUI-Anzeige in Tkinter)
MQTT auf Raspberry Pi und Mac
Himbeer Pi 4 Centos7 auf Docker installieren
Installieren Sie ghoto2 auf Raspberry Pi (Hinweis)
Himbeer-Pi-Grundeinstellung (für mich)
OpenCV-Installationsverfahren auf Raspberry Pi
Ein- / Ausschalten von Raspberry Pi mit Arduino
Erkennen Sie den Schalterstatus mit Raspberry Pi 3
Installieren Sie OpenMedia Vault 5 auf Raspberry Pi 4
Verwenden einer Webkamera mit Raspberry Pi
L Chika mit Himbeer-Pi C #
Erstellen Sie wxPython unter Ubuntu 20.04 auf Himbeer-Pi 4
Erkennen Sie analoge Signale mit dem A / D-Wandler mithilfe von Python auf Raspberry Pi 3!
Hinweise zur Verwendung von OpenCV mit Windows 10 Python 3.8.3.
Raspberry Pi "Honwaka Benachrichtigungslampe" Teil 2
USB-Boot auf Raspberry Pi 4 Model B.
Raspberry Pi "Honwaka Benachrichtigungslampe" Teil 1
Aktivieren Sie die serielle UART + -Kommunikation mit Raspberry Pi
Verwenden Sie OpenJtalk, damit Raspberry Pi Japanisch spricht
Adafruit Python BluefruitLE arbeitet mit Raspeye.
Beschleunigen Sie Deep Learning mit der Rasperry Pi 4-CPU
Versuchen Sie, mit Raspberry Pi nach Wakasagi zu fischen
Stellen Sie den Swap Space unter Ubuntu auf Raspberry Pi ein
Normal programmieren mit Node-RED-Programmierung mit Raspberry Pi 3
Verwenden Sie den Grove-Sensor mit Raspberry Pi
Installieren Sie das 64-Bit-Betriebssystem (Bate) auf Raspberry Pi
Installieren Sie Docker-Compose unter 64-Bit-Raspberry-Pi-Betriebssystem
Raspberry Pi "Honwaka Benachrichtigungslampe" Teil 3
Arbeiten mit Sensoren in Mathematica auf Raspberry Pi
Erstellen Sie eine OpenCV-Python-Umgebung auf Raspberry Pi B +