{"id":691,"date":"2020-09-01T23:30:01","date_gmt":"2020-09-01T22:30:01","guid":{"rendered":"https:\/\/snakenet.eu\/blog\/?p=691"},"modified":"2020-09-01T23:30:01","modified_gmt":"2020-09-01T22:30:01","slug":"installer-octprint-1-3-5-sur-un-onion-omega-2","status":"publish","type":"post","link":"https:\/\/snakenet.eu\/blog\/installer-octprint-1-3-5-sur-un-onion-omega-2\/691\/","title":{"rendered":"Installer Octprint 1.3.5 sur un Onion Omega 2+"},"content":{"rendered":"<p>Vous souhaitez avoir un Octoprint disponible pour votre imprimante 3D et avez un Onion Omega2+ qui traine\u00a0? c\u2019est parti\u00a0!<\/p>\n<p>Ce document est TRES fortement bas\u00e9 sur le site\u00a0 <a href=\"https:\/\/community.onion.io\/topic\/1569\/octoprint-3d-print-server-on-omega2\/15\">https:\/\/community.onion.io\/topic\/1569\/octoprint-3d-print-server-on-omega2\/15<\/a>.<\/p>\n<p>Allez les voir, leur boulot est super\u00a0!<\/p>\n<p>Pr\u00e9-requis\u00a0:<\/p>\n<ul>\n<li>Un onion Omega2+ (test\u00e9 en version 0.3.2 b237)<\/li>\n<li>Une dock avec port USB<\/li>\n<li>Une carte micro SD (4go est suffisant)<\/li>\n<li>Un Onion \u00e0 la derni\u00e8re version et connect\u00e9 \u00e0 Internet.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Rappel\u00a0:<\/p>\n<ul>\n<li>Pour configurer le wifi en ligne de commande\u00a0: wifisetup<\/li>\n<li>Pour mettre \u00e0 jour l\u2019Omega2+ \u00e0 la derni\u00e8re version\u00a0: oupgrade<\/li>\n<\/ul>\n<h1>Installer les pr\u00e9-requis<\/h1>\n<ol>\n<li>En ligne de commande\u00a0:<\/li>\n<\/ol>\n<p>opkg update<\/p>\n<p>opkg install fdisk e2fsprogs block-mount swap-utils<\/p>\n<h1>Utiliser la carte SD pour augmenter l\u2019espace disponible.<\/h1>\n<ol>\n<li>Ins\u00e9rer une carte microSD dans l\u2019Omega2+ et formatez-la.<br \/>\nNormalement, elle se trouvera dans \/dev\/mmcblk0 et la premi\u00e8re partition sera \/dev\/mmcblk0p1<br \/>\nVous pouvez le v\u00e9rifier avec la commande fdisk -l<\/li>\n<li>Formatter la carte SD en EXT4<\/li>\n<\/ol>\n<p>umount \/dev\/mmcblk0p1<br \/>\nmkfs.ext4 \/dev\/mmcblk0p1<\/p>\n<ol start=\"3\">\n<li>Monter la carte SD<\/li>\n<\/ol>\n<p>umount \/dev\/mmcblk0p1<\/p>\n<p>mkdir \/mnt\/SD<\/p>\n<p>mount \/dev\/mmcblk0p1 \/mnt\/SD<\/p>\n<ol>\n<li>Copier le syst\u00e8me de fichier actuel.<\/li>\n<\/ol>\n<p>tar -C \/overlay -cvf &#8211; . | tar -C \/mnt\/SD\/ -xf &#8211;<\/p>\n<p>umount \/mnt\/SD<\/p>\n<ol start=\"5\">\n<li>Configurer le syst\u00e8me pour monter la carte SD automatiquement au d\u00e9marrage du syst\u00e8me<\/li>\n<\/ol>\n<p>block detect &gt; \/etc\/config\/fstab<\/p>\n<ul>\n<li>\u00c9diter \/etc\/config\/fstab<br \/>\nremplacer option target &lsquo;\/mnt\/mmcblk0p1&rsquo;\u00a0par\u00a0option target &lsquo;\/overlay&rsquo;<br \/>\net\u00a0option enabled &lsquo;0&rsquo;\u00a0par\u00a0option enabled &lsquo;1&rsquo;<\/li>\n<\/ul>\n<ol>\n<li>On red\u00e9marre l\u2019Omega2+ pour v\u00e9rifier que tout fonctionne.<\/li>\n<\/ol>\n<p>reboot<\/p>\n<ol start=\"7\">\n<li>Apr\u00e8s avoir red\u00e9marr\u00e9, tapez la commande df -h afin de v\u00e9rifier si la carte SD est bien mont\u00e9e.<\/li>\n<\/ol>\n<p>Filesystem\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Size\u00a0\u00a0\u00a0\u00a0\u00a0 Used Available Use% Mounted on<\/p>\n<p>\/dev\/root\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7.8M\u00a0\u00a0\u00a0\u00a0\u00a0 7.8M\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 100% \/rom<\/p>\n<p>tmpfs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 60.9M\u00a0\u00a0\u00a0\u00a0 96.0K\u00a0\u00a0\u00a0\u00a0 60.8M\u00a0\u00a0 0% \/tmp<\/p>\n<p><strong>\/dev\/mmcblk0p1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7.2G\u00a0\u00a0\u00a0\u00a0 33.5M\u00a0\u00a0\u00a0\u00a0\u00a0 6.8G\u00a0\u00a0 0% \/overlay<\/strong><\/p>\n<p>overlayfs:\/overlay\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7.2G\u00a0\u00a0\u00a0\u00a0 33.5M\u00a0\u00a0\u00a0\u00a0\u00a0 6.8G\u00a0\u00a0 0% \/<\/p>\n<p>tmpfs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 512.0K\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 512.0K\u00a0\u00a0 0% \/dev<\/p>\n<p>\/dev\/mmcblk0p1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7.2G\u00a0\u00a0\u00a0\u00a0 33.5M\u00a0\u00a0\u00a0\u00a0\u00a0 6.8G\u00a0\u00a0 0% \/mnt\/mmcblk0p1<\/p>\n<p>\/dev\/mtdblock6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 22.1M\u00a0\u00a0\u00a0 764.0K\u00a0\u00a0\u00a0\u00a0 21.3M\u00a0\u00a0 3% \/mnt\/mtdblock6<\/p>\n<p>\/dev\/mtdblock7\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 512.0K\u00a0\u00a0\u00a0 196.0K\u00a0\u00a0\u00a0 316.0K\u00a0 38% \/mnt\/mtdblock7<\/p>\n<h1>Ajouter un fichier de SWAP (car on n\u2019a pas assez de RAM).<\/h1>\n<p>On va avoir (entre-autre) besoin de compiler Python pour utiliser une version un peu plus moderne d\u2019Octoprint que la 1.0.0, on va donc ajouter 512Mo de RAM.<\/p>\n<ol>\n<li>Configurer un fichier de SWAP et le monter<\/li>\n<\/ol>\n<p>dd if=\/dev\/zero of=\/swap.page bs=1M count=512<\/p>\n<p>chmod 0600 \/swap.page<\/p>\n<p>mkswap \/swap.page<\/p>\n<p>swapon \/swap.page<\/p>\n<ol start=\"2\">\n<li>On v\u00e9rifie qu\u2019on a bien les 512Mo de SWAP disponible avec la commande free.<\/li>\n<\/ol>\n<p>root@Omega-AC5B:\/# free<\/p>\n<p>total\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 used\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 free\u00a0\u00a0\u00a0\u00a0 shared\u00a0\u00a0\u00a0 buffers\u00a0\u00a0\u00a0\u00a0 cached<\/p>\n<p>Mem:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 124808\u00a0\u00a0\u00a0\u00a0 102472\u00a0\u00a0\u00a0\u00a0\u00a0 22336\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 96\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7068\u00a0\u00a0\u00a0\u00a0\u00a0 72148<\/p>\n<p>-\/+ buffers\/cache:\u00a0\u00a0\u00a0\u00a0\u00a0 23256\u00a0\u00a0\u00a0\u00a0 101552<\/p>\n<p><strong>Swap:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 524284\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a00\u00a0\u00a0\u00a0\u00a0 524284<\/strong><\/p>\n<h1>Installer Octoprint.<\/h1>\n<ol>\n<li>Ajoutez la source de package n\u00e9cessaire \u00e0 Python<br \/>\nEditer le fichier \/etc\/opkg\/distfeeds.conf et enlever le commentaire devant\u00a0:<\/p>\n<ul>\n<li>src\/gz openwrt_base http:\/\/downloads.openwrt.org\/releases\/18.06-SNAPSHOT\/packages\/mipsel_24kc\/base<\/li>\n<li>src\/gz openwrt_packages http:\/\/downloads.openwrt.org\/releases\/18.06-SNAPSHOT\/packages\/mipsel_24kc\/packages<\/li>\n<\/ul>\n<\/li>\n<li>Lancez l\u2019installation<\/li>\n<\/ol>\n<p>opkg update<\/p>\n<p>opkg install gcc unzip python-dev python-pip &#8211;force-overwrite<\/p>\n<p>pip install &#8211;upgrade setuptools<\/p>\n<ol start=\"3\">\n<li>\u00c9tendre le r\u00e9pertoire \/tmp sur carte SD<\/li>\n<\/ol>\n<p>mkdir overlay\/tmp<\/p>\n<p>rm -rf \/overlay\/tmp\/*<\/p>\n<p>cp -a \/tmp\/* \/overlay\/tmp\/<\/p>\n<p>umount \/tmp<\/p>\n<p>[ $? -ne 0 ] &amp;&amp; {<\/p>\n<p>umount -l \/tmp<\/p>\n<p>}<\/p>\n<p>mount \/overlay\/tmp\/ \/tmp<\/p>\n<ol start=\"4\">\n<li>T\u00e9l\u00e9charger Octoprint version 1.3.5<\/li>\n<\/ol>\n<p>cd \/root<\/p>\n<p>wget https:\/\/github.com\/foosel\/OctoPrint\/archive\/1.3.5.zip<\/p>\n<p>unzip 1.3.5.zip<\/p>\n<ol start=\"5\">\n<li>Bidouiller un peu pour que le compilateur soit reconnu<\/li>\n<\/ol>\n<p>ln -s \/usr\/bin\/gcc \/usr\/bin\/ccache_cc<\/p>\n<ol start=\"6\">\n<li>Installer tous les pr\u00e9-requis. Si la commande renvois une erreur, allez consulter le fichier \/tmp\/pip.log<\/li>\n<\/ol>\n<p>cd OctoPrint-1.3.5<\/p>\n<p>pip install -r requirements.txt &#8211;log \/tmp\/pip.log<\/p>\n<ul>\n<li>Si vous avez l\u2019erreur suivante lors de l\u2019installation des pr\u00e9-requis\u00a0:<\/li>\n<\/ul>\n<p>ERROR: Command errored out with exit status 1: \/usr\/bin\/python2 -u -c &lsquo;import sys, setuptools, tokenize; sys.argv[0] = &lsquo;\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;\/tmp\/pip-install-j0cjRE\/psutil\/setup.py'\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;; __file__='\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;\/tmp\/pip-install-j0cjRE\/psutil\/setup.py'\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;;f=getattr(tokenize, &lsquo;\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;open'\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;, open)(__file__);code=f.read().replace(&lsquo;\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;\\r\\n'\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;, &lsquo;\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;\\n'\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;);f.close();exec(compile(code, __file__, &lsquo;\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;exec'\u00a0\u00bb&lsquo;\u00a0\u00bb&lsquo;))&rsquo; install &#8211;record \/tmp\/pip-record-Qikfg8\/install-record.txt &#8211;single-version-externally-managed &#8211;compile Check the logs for full command output<\/p>\n<ul>\n<li>relancez la commande pr\u00e9c\u00e9dente et allez imm\u00e9diatement modifier le fichier source de psutil (une fois que pip l\u2019a ret\u00e9l\u00e9charg\u00e9) \/tmp\/pip-install-*****\/psutil\/psutil\/_psutil_linux.c et commentez la ligne #include &lt;sys\/sysinfo.h&gt;<\/li>\n<li>Laissez tourner l\u2019installation.<\/li>\n<\/ul>\n<ol start=\"7\">\n<li>Supprimer les caract\u00e8res unicode non reconnus.<\/li>\n<\/ol>\n<p>sed -i &lsquo;s\/H\u00e4u\u00dfge\/H\\.\/g&rsquo; \/root\/OctoPrint-1.3.5\/src\/octoprint\/util\/comm.py<\/p>\n<p>sed -i &lsquo;s\/H\u00e4u\u00dfge\/H\\.\/g&rsquo; \/root\/OctoPrint-1.3.5\/src\/octoprint\/plugins\/virtual_printer\/virtual.py<\/p>\n<ol start=\"8\">\n<li>R\u00e9cup\u00e9rez l\u2019adresse IP de votre Omega2+ avec la commande ifconfig<\/li>\n<li>D\u00e9marrer Octoprint manuellement.<\/li>\n<\/ol>\n<p>octoprint serve &#8211;iknowwhatimdoing &amp;<\/p>\n<ol start=\"10\">\n<li>Connectez-vous sur la page web d\u2019octoprint et v\u00e9rifiez si \u00e7a d\u00e9marre. http:\/\/IP_OMEGA:5000<\/li>\n<\/ol>\n<h1>Configurer le d\u00e9marrage automatique d\u2019Octoprint.<\/h1>\n<p>Parce qu\u2019on n\u2019a pas que \u00e7a \u00e0 faire\u00a0&#x1f60a;<\/p>\n<ol>\n<li>Editer le fichier \/etc\/rc.local et ajouter (avant la ligne exit 0) la commande suivante\u00a0:<\/li>\n<\/ol>\n<p>octoprint serve &#8211;iknowwhatimdoing &amp;<\/p>\n<ol start=\"2\">\n<li>Configurer Octoprint (via l\u2019interface web) pour qu\u2019il ait les commandes suivantes\u00a0:\n<ul>\n<li>Shutdown\u00a0system : reboot<\/li>\n<li>Restart system\u00a0: reboot<\/li>\n<li>Restart Octoprint\u00a0: reboot<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vous souhaitez avoir un Octoprint disponible pour votre imprimante 3D et avez un Onion Omega2+ qui traine\u00a0? c\u2019est parti\u00a0! Ce document est TRES fortement bas\u00e9 sur le site\u00a0 https:\/\/community.onion.io\/topic\/1569\/octoprint-3d-print-server-on-omega2\/15. Allez les voir, leur boulot est super\u00a0! Pr\u00e9-requis\u00a0: Un onion Omega2+ (test\u00e9 en version 0.3.2 b237) Une dock avec port USB Une carte micro SD (4go [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-691","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/snakenet.eu\/blog\/wp-json\/wp\/v2\/posts\/691","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/snakenet.eu\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/snakenet.eu\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/snakenet.eu\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/snakenet.eu\/blog\/wp-json\/wp\/v2\/comments?post=691"}],"version-history":[{"count":1,"href":"https:\/\/snakenet.eu\/blog\/wp-json\/wp\/v2\/posts\/691\/revisions"}],"predecessor-version":[{"id":692,"href":"https:\/\/snakenet.eu\/blog\/wp-json\/wp\/v2\/posts\/691\/revisions\/692"}],"wp:attachment":[{"href":"https:\/\/snakenet.eu\/blog\/wp-json\/wp\/v2\/media?parent=691"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/snakenet.eu\/blog\/wp-json\/wp\/v2\/categories?post=691"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/snakenet.eu\/blog\/wp-json\/wp\/v2\/tags?post=691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}