[LINUX] Compilation croisée pour Raspberry Pi Zero sur Debian-Try en utilisant une bibliothèque partagée

Aperçu

Exécutez un programme en langage C compilé sur Debain sur Raspberry Pi Zero. Je souhaite créer un environnement dans lequel je peux utiliser des bibliothèques partagées. Pour le moment, utilisons libusb ou libjpeg.

En continuant de Démarrage de la compilation croisée pour Raspberry Pi Zero sur Ubuntu, j'essaye à nouveau avec Debian comme machine hôte (pour une raison plus tard).

environnement

Hôte: Debian 10.6.0 <Virtual Box 6.1 <WIndows10 Cible: Raspberry Pi Zero WH

procédure

Installation du compilateur pour ARM

$ sudo apt install crossbuild-essential-armel

La dernière fois a essayé d'installer g ++ - arm-linux-gnueabi, mais il semble être inclus dans crossbuild-essential-armel Je vais donc installer ceci. Après tout, c'est gcc que j'utilise, donc ça ne fait pas beaucoup de différence.

Installer des bibliothèques partagées

Ajouter une architecture,

$ sudo dpkg --add-architecture armel

Édition de sources.list. J'ajouterai le référentiel référencé par apt.

$ sudo nano /etc/apt/sources.list

Ajoutez ce qui suit au bas de sources.list. Pour armel, reportez-vous également à ftp.jp.debian.org.

/etc/apt/sources.list


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

Mettez à jour et installez la bibliothèque. Vous pouvez obtenir la bibliothèque pour armel en ajoutant: armel.

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

Peut-être que si le paquet est publié pour Ubuntu armel, je pense que je peux faire de même avec Ubuntu en l'ajoutant à sources.list, mais j'ai trouvé que j'ai publié le paquet armel pour Ubuntu ne pas.

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

Existe-t-il un moyen de l'installer de manière forcée? (J'ai pu apporter le .deb et l'installer, mais j'ai abandonné car la dépendance devenait difficile)

Construire

Cliquez ici pour le programme à construire cette fois.

testUsbLib.c


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

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

    return 0;
}

Un programme inutile qui appelle juste usb_init (). Il ne nettoie pas après usb_init () (dois-je faire quelque chose ...?).

Construisez ici.

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

Essayez de le faire fonctionner

Si vous pouvez construire avec succès ci-dessus, copiez le testUsbLib_armv6 généré dans un dossier approprié sur Raspberry Pi Zero,

$ testUsbLib_armv6
call usb_init()
OK

Et ça marche comme ça. Rien ne se passe, mais ...

Sommaire

Puisque libusb a peu de dépendances, cela peut être très bon même si vous obtenez le fichier .deb et l'installez manuellement, mais libjpeg etc. a de nombreuses dépendances et il y a trop d'étapes à faire manuellement, alors j'ai abandonné. Cette méthode l'a installé, y compris les dépendances, il semble donc avoir fonctionné.

Au fait, j'ai confirmé le fonctionnement de «libtiff» en plus de «libusb» et «libjpeg» par cette méthode.

Aussi, si quelqu'un sait si la même méthode peut être utilisée sur Ubuntu (s'il existe un package pour armel publié, etc.), merci de me le faire savoir.

Postscript

J'ai écrit l'article suivant.

Recommended Posts

Compilation croisée pour Raspberry Pi Zero sur Debian-Try en utilisant une bibliothèque partagée
Compilation croisée pour Raspberry Pi Zero sur Debian - Créez votre propre bibliothèque partagée
Démarrage de la compilation croisée pour Raspberry Pi Zero sur Ubuntu
Accédez aux feuilles de calcul Google en utilisant python avec raspberry pi (pour vous-même)
Essayez d'utiliser ArUco avec Raspberry Pi
Détectez la "luminosité" en utilisant python sur Raspberry Pi 3!
Exécutez un servomoteur en utilisant python sur Raspberry Pi 3
Détectez la température à l'aide de python sur Raspberry Pi 3!
Paramètres initiaux pour l'utilisation du kit de démarrage et de la caméra Grove Pi + avec Raspberry Pi
Détectez les interrupteurs à glissière à l'aide de python sur Raspberry Pi 3!
Essayez d'utiliser le code QR avec Raspberry Pi
Détectez les commutateurs magnétiques à l'aide de python sur Raspberry Pi 3!
Sonnez le buzzer en utilisant python sur Raspberry Pi 3!
pigpio sur Raspberry pi
Cython sur Raspberry Pi
Créer un environnement OpenCV4 sur Raspberry Pi à l'aide de Poetry
Essayez d'utiliser le capteur de température (LM75B) avec Raspeye.
Contrôlez les moteurs sans balais avec GPIO de Raspberry Pi Zero
Sortie sur "LED 7 segments" en utilisant python avec Raspberry Pi 3!
Installez PyCall sur Raspberry PI et essayez d'utiliser la bibliothèque GPIO pour Python de Ruby
Surveillance intérieure à l'aide de Raspberry Pi
Exécutez AWS IoT Device SDK for Python sur Raspberry Pi
Utilisez python sur Raspberry Pi 3 pour détecter la "température (en utilisant un convertisseur A / N)"!
Vérifions! Développons Raspberry Pi Zero à distance - Essayez avec Arafruit WebIDE
Introduction de pyenv sur Raspberry Pi
Construction d'un environnement de développement Cortex-M pour TOPPERS utilisant Raspeye
Utilisez NeoPixel avec la tarte aux framboises
Installez OpenCV4 sur Raspberry Pi 3
Installez TensorFlow 1.15.0 sur Raspberry Pi
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Instrument de pesage utilisant Raspberry Pi et Hx711 (affichage GUI dans Tkinter)
MQTT sur Raspberry Pi et Mac
raspberry pi 4 centos7 installer sur docker
Installez ghoto2 sur Raspberry Pi (Remarque)
Réglage initial du Raspberry Pi (pour moi-même)
Procédure d'installation d'OpenCV sur Raspberry Pi
Allumer / éteindre le Raspberry pi avec Arduino
Détecter l'état du commutateur avec Raspberry Pi 3
Installez OpenMedia Vault 5 sur Raspberry Pi 4
Utiliser une webcam avec Raspberry Pi
L Chika avec Raspberry Pi C #
Construisez wxPython sur Ubuntu 20.04 sur Raspberry Pi 4
Détectez les signaux analogiques avec un convertisseur A / N en utilisant python sur Raspberry Pi 3!
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
Raspberry Pi "Lampe de notification Honwaka" Partie 2
Démarrage USB sur Raspberry Pi 4 modèle B
Raspberry Pi "Lampe de notification Honwaka" Partie 1
Activer la communication série UART + avec Raspberry Pi
Faire en sorte que Raspberry Pi parle japonais en utilisant OpenJtalk
Adafruit Python BluefruitLE fonctionne sur Raspeye.
Accélérez l'apprentissage en profondeur avec le processeur Rasperry Pi 4
Essayez de pêcher le Wakasagi avec Raspberry Pi
Définir l'espace d'échange sur Ubuntu sur Raspberry Pi
Programmation normale avec la programmation Node-RED avec Raspberry Pi 3
Utiliser le capteur Grove avec Raspberry Pi
Installez la version 64 bits du système d'exploitation (bate) sur Raspberry Pi
Installez docker-compose sur le système d'exploitation Raspberry Pi 64 bits
Raspberry Pi "Lampe de notification Honwaka" Partie 3
Travailler avec des capteurs dans Mathematica sur Raspberry Pi
Construire un environnement OpenCV-Python sur Raspberry Pi B +