Exécutez Python avec CloudFlash (arm926ej-s)

Préface

CloudFlash est un adaptateur de carte micro SD avec un LAN sans fil intégré. C'est une carte SD avec la partie stockage d'Eye-Fi et FlashAir vendue séparément. Puisque Linux fonctionne à l'intérieur, vous pouvez jouer diverses choses.

Soudain, je voulais exécuter un script Python sur CloudFlash et télécharger automatiquement l'image capturée sur Flickr, etc., alors j'ai décidé de faire une compilation croisée de Python en premier.

Ceci est le mémorandum.

Procédure de construction de Python 2.7.2

  1. sorcery codebench ou launchpad Récupérez la chaîne d'outils à partir de -arm-embedded). Ici, j'ai utilisé le dernier Sourcery CodeBench Lite 2014.05-29.

  2. Téléchargez le code source Python et le correctif pour la compilation croisée sur un PC Linux approprié. Le patch est fourni par Paul Gibson, une référence. Merci!

    $ wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2
    $ wget http://randomsplat.com/wp-content/uploads/2011/10/Python-2.7.2-xcompile.patch
    
  3. Commencez par créer Python pour l'hôte. Les hostpython et hostpgen générés ici seront nécessaires pour une compilation croisée ultérieure.

    $ tar xjf Python-2.7.2.tar.bz2  
    $ cd Python-2.7.2  
    $ ./configure
    $ make python Parser/pgen  
    $ mv python hostpython  
    $ mv Parser/pgen hostpgen  
    $ make distclean
    
  4. Appliquez le patch et reconfigurez pour arm926ej-s.

    $ patch -p1 < ../Python-2.7.2-xcompile.patch
    $ CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib BASECFLAGS=-mcpu=arm926ej-s ./configure --host=arm-none-linux --build=x86_64-linux-gnu --prefix=/python
    
  5. Faites. Je reçois un avertissement comme type de fonction de format non reconnu [-W format =], mais je m'en fiche.

    $ make HOSTPYTHON=./hostpython HOSTPGEN=./hostpgen
    
  6. Collectez les fichiers à copier dans les rootfs de la cible (CloudFlash) dans _install.

    $ make install HOSTPYTHON=./hostpython CROSS_COMPILE=arm-none-linux-gnueabi- CROSS_COMPILE_TARGET=yes prefix=~/Python-2.7.2/_install
    
  7. Supprimez les informations inutiles en les supprimant pour les rendre aussi petites que possible.

    $ cp -rf _install _install_stripped
    $ for SO in _install_stripped/lib/python2.7/lib-dynload/*.so; do arm-none-linux-gnueabi-strip ${SO}; done
    $ arm-none-linux-gnueabi-strip _install_stripped/bin/python2.7
    $ rm _install_stripped/bin/python
    $ ln -s python2.7 _install_stripped/bin/python
    

Exécutez Python avec CloudFlash

  1. Copiez l'intégralité de _install_stripped sur votre carte SD CloudFlash.
  2. Reportez-vous à here et connectez-vous à CloudFlash par telnet.
  3. Si vous essayez cd / mnt / sd / _install_stripped / bin et. / Python etc., vous pouvez voir que cela fonctionne bien. python_on_cloudflash.png

Démarrer automatiquement un traitement avec CloudFlash

Lorsque je me connecte à CloudFlash avec telnet et que je jette un coup d'œil, le processus de démarrage est le suivant.

/etc/inittab


# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquel

null::sysinit:/bin/mount -o remount,rw /
null::sysinit:/bin/mount -t proc proc /proc
null::sysinit:/bin/mount -t sysfs sysfs /sys

# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
console::sysinit:/etc/init.d/rcS

# Start an "askfirst" shell on the console (whatever that may be)
#::askfirst:-/bin/ash
#ttyS0::respawn:-/bin/ash #enter shell automatically
ttyS0::askfirst:-/bin/ash #enter shell needs enter 

/etc/init.d/rcS(Extrait)


#cp /mtd/dnsd.conf to /etc
cp /mnt/mtd/config/dnsd.conf /etc
#cp /mtd/udhcpd.conf to /etc
cp /mnt/mtd/config/udhcpd.conf /etc
cp /mnt/mtd/config/wsd_backup.conf /etc/wsd_backup.conf

#a2&

# autorun.sh from sd in case need to perform some test mode
if [ -f /mnt/sd/autorun.sh ]
then
	echo "run autorun.sh"
	sleep 1
	chmod 777 /mnt/sd/autorun.sh
	/mnt/sd/autorun.sh&     
fi
echo "rcS done"

Si vous mettez ʻautorun.sh` à la racine de la carte SD, vous pouvez faire différentes choses.

Les références

Recommended Posts

Exécutez Python avec CloudFlash (arm926ej-s)
Exécutez Python avec VBA
Exécutez Blender avec python
Exécutez iperf avec python
Exécutez python avec PyCharm (Windows)
Exécuter Label avec tkinter [Python]
Exécutez Rotrics DexArm avec l'API Python
Exécutez mruby avec Python ou Blender
Exécutez XGBoost avec Cloud Dataflow (Python)
Exécutez Aprili depuis Python sur Orange
Exécutez python3 Django1.9 avec mod_wsgi (déployer)
Jusqu'à ce que Python fonctionne sur Apache
FizzBuzz en Python3
Grattage avec Python
Exécutez le servo avec Python sur ESP32 (Windows)
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Exécutez une application Web Python avec Docker
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Python> Exécuter avec des arguments d'exécution> Utiliser import argparse
Exécutez l'API vSphere de VMware vSphere 6 avec le script Python (pyvmomi)
Exécutez Flask sur CentOS avec python3.4, Gunicorn + Nginx.
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Essayez de gratter avec Python.
Apprendre Python avec ChemTHEATER 03
Recherche séquentielle avec Python
"Orienté objet" appris avec python
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Apprendre Python avec ChemTHEATER 05-1
Apprenez Python avec ChemTHEATER
1.1 Premiers pas avec Python
Binarisation avec OpenCV / Python
3. 3. Programmation IA avec Python
Méthode Kernel avec Python
Non bloquant avec Python + uWSGI
Grattage avec Python + PhantomJS
Publier des tweets avec python