Führen Sie Python mit CloudFlash aus (arm926ej-s)

Vorwort

CloudFlash ist ein Micro-SD-Kartenadapter mit integriertem WLAN. Es handelt sich um eine SD-Karte, bei der der Speicherteil von Eye-Fi und FlashAir separat erhältlich ist. Da Linux im Inneren läuft, können Sie verschiedene Dinge spielen.

Plötzlich wollte ich ein Python-Skript auf CloudFlash ausführen und das aufgenommene Bild automatisch auf Flickr usw. hochladen, also entschied ich mich, zuerst eine Cross-Kompilierung von Python durchzuführen.

Dies ist das Memorandum.

Python 2.7.2 Build-Prozedur

  1. Sorcery Codebench oder launchpad Holen Sie sich die Toolchain von -arm-embedded). Hier habe ich den neuesten Sourcery CodeBench Lite 2014.05-29 verwendet.

  2. Laden Sie den Python-Quellcode und den Patch zum Cross-Kompilieren auf einen geeigneten Linux-PC herunter. Der Patch wird von Paul Gibson bereitgestellt, einer Referenz. Vielen Dank!

    $ 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. Erstellen Sie zunächst Python für den Host. Das hier generierte Hostpython und Hostpgen wird für eine spätere Kreuzkompilierung benötigt.

    $ 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. Wenden Sie den Patch an und konfigurieren Sie ihn für arm926ej-s neu.

    $ 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. Machen Sie. Ich erhalte eine Warnung wie nicht erkannter Formatfunktionstyp [-W format =], aber das ist mir egal.

    $ make HOSTPYTHON=./hostpython HOSTPGEN=./hostpgen
    
  6. Sammeln Sie die zu kopierenden Dateien in die Rootfs des Ziels (CloudFlash) in _install.

    $ make install HOSTPYTHON=./hostpython CROSS_COMPILE=arm-none-linux-gnueabi- CROSS_COMPILE_TARGET=yes prefix=~/Python-2.7.2/_install
    
  7. Löschen Sie unnötige Informationen, indem Sie sie entfernen, um sie so klein wie möglich zu halten.

    $ 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
    

Führen Sie Python mit CloudFlash aus

  1. Kopieren Sie das gesamte _install_stripped auf Ihre CloudFlash SD-Karte.
  2. Lesen Sie hier und melden Sie sich per Telnet bei CloudFlash an.
  3. Wenn Sie "cd / mnt / sd / _install_stripped / bin" und ". / Python" usw. versuchen, können Sie sehen, dass es gut funktioniert. python_on_cloudflash.png

Starten Sie automatisch eine Verarbeitung mit CloudFlash

Wenn ich mich mit Telnet bei CloudFlash anmelde und einen Blick darauf werfen möchte, ist der Startvorgang wie folgt.

/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(Auszug)


#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"

Wenn Sie "autorun.sh" in das Stammverzeichnis der SD-Karte einfügen, können Sie verschiedene Aktionen ausführen.

Verweise

Recommended Posts

Führen Sie Python mit CloudFlash aus (arm926ej-s)
Führen Sie Python mit VBA aus
Führen Sie Blender mit Python aus
Führen Sie iperf mit Python aus
Führen Sie Python mit PyCharm aus (Windows)
Führen Sie Label mit tkinter [Python] aus.
Führen Sie Rotrics DexArm mit der Python-API aus
Führen Sie mruby mit Python oder Blender aus
Führen Sie XGBoost mit Cloud Dataflow (Python) aus.
Führen Sie Aprili von Python auf Orange aus
Führen Sie python3 Django1.9 mit mod_wsgi aus (deploy)
Bis Python auf Apache läuft
FizzBuzz in Python3
Scraping mit Python
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Führen Sie eine Python-Webanwendung mit Docker aus
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Python> Mit Laufzeitargumenten ausführen> Import argparse verwenden
Führen Sie die vSphere-API von VMware vSphere 6 mit dem Python-Skript (pyvmomi) aus.
Führen Sie Flask unter CentOS mit Python3.4, Gunicorn + Nginx aus.
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
1.1 Erste Schritte mit Python
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
Nicht blockierend mit Python + uWSGI
Scraping mit Python + PhantomJS
Tweets mit Python posten