En ce moment, tout en travaillant sur mon ordinateur portable (amd64), je peux déjà compiler du code via SSH sur un BeagleBone (armhf).
Ce que j'essaie de faire maintenant, c'est de pouvoir utiliser n'importe quel IDE pour déboguer ce code (Code ::Blocks, KDevelop ou Qt Creator).
Alors, j'ai pensé à lancer gdbserver
sur le BeagleBone et s'y connectant, mais cela me donne une erreur de valeur inattendue lors de la réponse. J'ai lu à ce sujet, et il semble que j'ai besoin de construire localement un exécutable armhf, pour gdb
procéder. Mais je suppose qu'il a également besoin d'un gdb
orienté armhf construit pour amd64, j'ai donc essayé d'installer crossbuild-essential-armhf
. Pour cela, j'ai ajouté l'architecture armhf avec dpkg --add-architecture armhf
, mais je ne parviens pas à faire une mise à jour apt-get. J'en reçois beaucoup :
Err http://security.ubuntu.com trusty-security/main armhf Packages
404 Not Found [IP: 2001:67c:1562::13 80]
Si je vérifie les repos, ils n'ont effectivement armhf nulle part.
Alors, qu'est-ce que je fais de mal ? De plus, est-ce la bonne façon de déboguer à distance avec une architecture différente, ou existe-t-il une meilleure façon de le faire ?
Réponse acceptée :
Ubuntu utilise des référentiels séparés pour armh (c'est-à-dire http://ports.ubuntu.com/
).
Pour pouvoir installer crossbuild-essential-armhf avec succès, vous devez suivre ces étapes :
-
lancez
dpkg --add-architecture armhf
-
spécifiez l'architecture correcte pour TOUTES vos lignes apt deb dans
/etc/apt/sources.list
et/etc/apt/sources.list.d
, par exemple :deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu trusty main universe deb [arch=armhf] http://ports.ubuntu.com/ trusty main universe
Notez qu'il n'est pas logique de spécifier l'arche pour les lignes deb-src.
3. exécutez apt-get update
4. exécutez apt-get install crossbuild-essential-armhf
Jetez un œil à https://wiki.debian.org/Multiarch/HOWTO
Vous pouvez également exécuter ces commandes dans un chroot (ou un conteneur docker peut-être) comme mentionné dans ce guide :Premiers pas avec MultiArch (armel / armhf) dans Ubuntu