Cross Compile OpenSSH pour ARM
Quelqu'un sait comment je peux faire de la compilation croisée OpenSSH pour les BRAS?
C'est ce que j'ai fait:
Tout d'abord j'ai téléchargé la librairie Zlib code source, pas goudronnés, construit et installé à l'aide de lignes de commande suivantes:
# ./configure --prefix=/usr/local/cross/arm
# make
# make install
Mais quand j'essaie de compiler OpenSSH pour le BRAS de conseil de la société cible, il donne l'erreur "zlib manquant" au cours de la ./configure
processus:
# sudo LDFLAGS=-L/usr/local/cross/arm/lib CC=arm-none-linux-gnueabi-gcc PATH=$PATH:/home/arishop/arm-tool-chain/arm-fsl-linux-gnueabi/bin/./configure --host=arm-linux --with-zlib=/usr/local/cross/arm/--prefix=/usr/local/cross/arm/openssh
source d'informationauteur arian | 2012-08-07
Vous devez vous connecter pour publier un commentaire.
Pour la compilation croisée des openSHH pour les BRAS (dans mon cas un mini2440) je n'ai suivantes:
Installer bras de la croix-compilateur -
(eg. qu'est-arm-linux-gcc et comment l'installer dans ubuntu)
Télécharger:
Construire Zlib:
Construire OpenSSL:
Construire OpenSSH:
Plus d'info à http://code.google.com/p/openssh4mini2440/wiki/HowTotélécharger de la source et lire "build.sh"
La carte utilisée est Mini6410. L'exigence d'OpenSSH comprend zlib et OpenSSL. Je prépare
Ma chaîne est construite par crosstool-NG 1.15.2. La suite d'outils de configuration ci-dessous est modifié à partir de l'arm-unknown-linux-gnueabi.
Prochaine je définir trois variables d'environnement,
HOST
ROOTFS
etSYSROOT
.HOST
arm-unknown-linux-gnueabi.ROOTFS
est le système de fichiers racine évidemment.SYSROOT
est le répertoire que le répertoire racine pour les en-têtes et les bibliothèques dans la chaîne d'outils.Vous pouvez ajouter
CFLAGS
etLD_LIBRARY_PATH
pointant vers votre système de fichiers racine, de sorte que le compilateur croisé pouvez trouver ce que vous avez installés. Cependant, je préfère ne pas définir ces variables. L'alternative est d'installer ces bibliothèques dans les deuxSYSROOT
etROOTFS
.D'abord, de compiler la librairie zlib
Deuxième, compiler OpenSSL
Noter que
--prefix
est fixé à/usr
au lieu de$ROOTFS/usr
. La raison en est que si vous définissez--prefix
à$ROOTFS/usr
il va essayer d'accéder à des fichiers de configuration dans$ROOTFS/usr
lors de l'exécution sur Mini6410, qui n'existe pas. Le chemin d'installation spécifié dans le Makefile est$INSTALL_PREFIX/$PREFIX
nous utilisons donc des$ROOTFS
pour$INSTALL_PREFIX
.Enfin, la compilation OpenSSH
./confgure --host=$HOST --prefix=/usr
STRIP_OPT
etcheck-config
dans la règleinstall
dans le Makefile.make && make DESTDIR=$ROOTFS install
ssh-keygen
pour générer des clés d'hôte.La raison à l'aide de
/usr
pour--prefix
est le même que OpenSSL. Si vous spécifiez--prefix=$ROOTFS/usr
vous ne serez pas en mesure d'exécuter la commandescp
.STRIP_OPT
être supprimé car il est impossible d'utiliser/usr/bin/install
sur x86-64, à la bande de fichiers binaires sur les BRAS. La règlecheck-config
va exécuter le généréssshd
sur l'hôte, nous avons donc à éviter.Dans la dernière étape, vérifiez Makefile et de trouver la règle
host-key
. Et La ligne suivante est@if [ -z "$(DESTDIR)" ] ; then
ce qui signifie qu'il ne fait rien si la longueur de$(DESTDIR)
est différente de zéro. Ainsi, il nous faut générer ces clés manuellement sur Mini6410:J'aime cette