Installer Octprint 1.3.5 sur un Onion Omega 2+
Vous souhaitez avoir un Octoprint disponible pour votre imprimante 3D et avez un Onion Omega2+ qui traine ? c’est parti !
Ce document est TRES fortement basé sur le site https://community.onion.io/topic/1569/octoprint-3d-print-server-on-omega2/15.
Allez les voir, leur boulot est super !
Pré-requis :
- Un onion Omega2+ (testé en version 0.3.2 b237)
- Une dock avec port USB
- Une carte micro SD (4go est suffisant)
- Un Onion à la dernière version et connecté à Internet.
Rappel :
- Pour configurer le wifi en ligne de commande : wifisetup
- Pour mettre à jour l’Omega2+ à la dernière version : oupgrade
Installer les pré-requis
- En ligne de commande :
opkg update
opkg install fdisk e2fsprogs block-mount swap-utils
Utiliser la carte SD pour augmenter l’espace disponible.
- Insérer une carte microSD dans l’Omega2+ et formatez-la.
Normalement, elle se trouvera dans /dev/mmcblk0 et la première partition sera /dev/mmcblk0p1
Vous pouvez le vérifier avec la commande fdisk -l - Formatter la carte SD en EXT4
umount /dev/mmcblk0p1
mkfs.ext4 /dev/mmcblk0p1
- Monter la carte SD
umount /dev/mmcblk0p1
mkdir /mnt/SD
mount /dev/mmcblk0p1 /mnt/SD
- Copier le système de fichier actuel.
tar -C /overlay -cvf – . | tar -C /mnt/SD/ -xf –
umount /mnt/SD
- Configurer le système pour monter la carte SD automatiquement au démarrage du système
block detect > /etc/config/fstab
- Éditer /etc/config/fstab
remplacer option target ‘/mnt/mmcblk0p1’ par option target ‘/overlay’
et option enabled ‘0’ par option enabled ‘1’
- On redémarre l’Omega2+ pour vérifier que tout fonctionne.
reboot
- Après avoir redémarré, tapez la commande df -h afin de vérifier si la carte SD est bien montée.
Filesystem Size Used Available Use% Mounted on
/dev/root 7.8M 7.8M 0 100% /rom
tmpfs 60.9M 96.0K 60.8M 0% /tmp
/dev/mmcblk0p1 7.2G 33.5M 6.8G 0% /overlay
overlayfs:/overlay 7.2G 33.5M 6.8G 0% /
tmpfs 512.0K 0 512.0K 0% /dev
/dev/mmcblk0p1 7.2G 33.5M 6.8G 0% /mnt/mmcblk0p1
/dev/mtdblock6 22.1M 764.0K 21.3M 3% /mnt/mtdblock6
/dev/mtdblock7 512.0K 196.0K 316.0K 38% /mnt/mtdblock7
Ajouter un fichier de SWAP (car on n’a pas assez de RAM).
On va avoir (entre-autre) besoin de compiler Python pour utiliser une version un peu plus moderne d’Octoprint que la 1.0.0, on va donc ajouter 512Mo de RAM.
- Configurer un fichier de SWAP et le monter
dd if=/dev/zero of=/swap.page bs=1M count=512
chmod 0600 /swap.page
mkswap /swap.page
swapon /swap.page
- On vérifie qu’on a bien les 512Mo de SWAP disponible avec la commande free.
root@Omega-AC5B:/# free
total used free shared buffers cached
Mem: 124808 102472 22336 96 7068 72148
-/+ buffers/cache: 23256 101552
Swap: 524284 0 524284
Installer Octoprint.
- Ajoutez la source de package nécessaire à Python
Editer le fichier /etc/opkg/distfeeds.conf et enlever le commentaire devant :- src/gz openwrt_base http://downloads.openwrt.org/releases/18.06-SNAPSHOT/packages/mipsel_24kc/base
- src/gz openwrt_packages http://downloads.openwrt.org/releases/18.06-SNAPSHOT/packages/mipsel_24kc/packages
- Lancez l’installation
opkg update
opkg install gcc unzip python-dev python-pip –force-overwrite
pip install –upgrade setuptools
- Étendre le répertoire /tmp sur carte SD
mkdir overlay/tmp
rm -rf /overlay/tmp/*
cp -a /tmp/* /overlay/tmp/
umount /tmp
[ $? -ne 0 ] && {
umount -l /tmp
}
mount /overlay/tmp/ /tmp
- Télécharger Octoprint version 1.3.5
cd /root
wget https://github.com/foosel/OctoPrint/archive/1.3.5.zip
unzip 1.3.5.zip
- Bidouiller un peu pour que le compilateur soit reconnu
ln -s /usr/bin/gcc /usr/bin/ccache_cc
- Installer tous les pré-requis. Si la commande renvois une erreur, allez consulter le fichier /tmp/pip.log
cd OctoPrint-1.3.5
pip install -r requirements.txt –log /tmp/pip.log
- Si vous avez l’erreur suivante lors de l’installation des pré-requis :
ERROR: Command errored out with exit status 1: /usr/bin/python2 -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘ »‘ »‘/tmp/pip-install-j0cjRE/psutil/setup.py' »‘ »‘; __file__=' »‘ »‘/tmp/pip-install-j0cjRE/psutil/setup.py' »‘ »‘;f=getattr(tokenize, ‘ »‘ »‘open' »‘ »‘, open)(__file__);code=f.read().replace(‘ »‘ »‘\r\n' »‘ »‘, ‘ »‘ »‘\n' »‘ »‘);f.close();exec(compile(code, __file__, ‘ »‘ »‘exec' »‘ »‘))’ install –record /tmp/pip-record-Qikfg8/install-record.txt –single-version-externally-managed –compile Check the logs for full command output
- relancez la commande précédente et allez immédiatement modifier le fichier source de psutil (une fois que pip l’a retéléchargé) /tmp/pip-install-*****/psutil/psutil/_psutil_linux.c et commentez la ligne #include <sys/sysinfo.h>
- Laissez tourner l’installation.
- Supprimer les caractères unicode non reconnus.
sed -i ‘s/Häußge/H\./g’ /root/OctoPrint-1.3.5/src/octoprint/util/comm.py
sed -i ‘s/Häußge/H\./g’ /root/OctoPrint-1.3.5/src/octoprint/plugins/virtual_printer/virtual.py
- Récupérez l’adresse IP de votre Omega2+ avec la commande ifconfig
- Démarrer Octoprint manuellement.
octoprint serve –iknowwhatimdoing &
- Connectez-vous sur la page web d’octoprint et vérifiez si ça démarre. http://IP_OMEGA:5000
Configurer le démarrage automatique d’Octoprint.
Parce qu’on n’a pas que ça à faire 😊
- Editer le fichier /etc/rc.local et ajouter (avant la ligne exit 0) la commande suivante :
octoprint serve –iknowwhatimdoing &
- Configurer Octoprint (via l’interface web) pour qu’il ait les commandes suivantes :
- Shutdown system : reboot
- Restart system : reboot
- Restart Octoprint : reboot
Laisser un commentaire