Logo carnetderootxzz@carnetderoot.net"La simplification est la sophistication suprême" - Léonard De Vinci
mardi 30 décembre 2014

:: OX CNC Machine ::


samedi 15 novembre 2014
mercredi 12 novembre 2014

:: Référence rtorrent ::

Commandes globales

Ctrl-q Quitter l'application
(x2) Quitter sans envoyer de signal stop
Flèches Sélectionner les entrées ou naviguer d'une vue à l'autre

Vue principale

1-7 Changer de vue (cf. détail plus bas)
Ctrl-s Démarrer un téléchargement
Ctrl-d Arrête un téléchargement actif ou supprime un téléchargement déjà stoppé
Ctrl-k Arrête et ferme un téléchargement actif
Ctrl-r Vérifie le hash d'un torrent
Ctrl-o Définit le nouveau répertoire de téléchargement pour le torrent sélectionné. Fonctionne sur les torrents inactifs uniquement
+ / - Changer la priorité d'un torrent
Espace Ajouter un torrent (URL ou chemin)
Entrée Ajouter un torrent sans le démarrer
l Consulter le journal. Sortir en appuyant sur la barre espace
U Supprimer le fichier auquel le torrent est lié
I Active/désactive la prise en compte des paramètres de ratio

Liste des vues

1 Tous les téléchargements
2 Tous les téléchargements par ordre alphabétique
3 Téléchargements démarrés
4 Téléchargements arrêtés
5 Téléchargements terminés
6 Téléchargements incomplets
7 Téléchargements en cours de vérification
8 Téléchargements partagés

:: Commandes G-Code ::

Références

Commentaires

Dans un fichier de commandes G-Code, tout texte précédé d'un point-virgule ; n'est pas pris en compte et est considéré comme un commentaire, jusqu'au retour à la ligne suivant.

G28 X0 Y0  ; ceci est un commentaire
; ceci est un autre commentaire
M84

Types de commandes G-Code

Lettre Description
Gnnn Commande G-Code standard
Mnnn Commande RepRap
Tnnn Sélection d'un extrudeur
Snnn Paramètre de commande (ex: tension moteur)
Pnnn Paramètre de commande (ex: durée en ms)
Xnnn Coordonnée X
Ynnn Coordonnée Y
Znnn Coordonnée Z
Innn Paramètre de commande
Jnnn Paramètre de commande
Fnnn Vitesse de déplacement en mm par minute
Rnnn Paramètre de commande
Qnnn Paramètre de commande
Ennn Longueur d'extrusion en mm
Nnnn Numéro de ligne
*nnn Checksum

Commandes G-Code

Commandes Gnnn

Commandes Gnnn mises en cache (G0, G1, G2, G3, G4, G28, G29,...)

Ces commandes sont mises en mémoire tampon en attente d'exécution. A chaque nouvelle commande la mémoire tampon libre est vérifiée et si l'espace est suffisant la commande est acceptée sinon elle est mise en attente jusqu'à libération de l'espace nécessaire.
Ce mode de fonctionnement permet l'exécution des commandes les unes après les autres de manière linéaire et évite ainsi toute interruption de l'impression.

Commandes Gnnn non mises en cache (G20, G21, G90, G91, G92,...)

Ces commandes ne sont pas mises en mémoire tampon. Lorsqu'elles sont exécutées, elles sont stockées, mais ne sont envoyées à l'imprimante que lorsque la commande précédente a été supprimée du cache. En conséquence, l'imprimante se met en pause entre chacunes d'entre elles.
A noter que ces courtes pauses entre les commandes n'affectent pas les performances de la machine.

Liste de commandes Gnnn

Commande Description Exemple
G0 Mouvement rapide G0 X15 : déplacement rapide en X=15.
G0 X15.2 Y14.7 Z0.85 : déplacement rapide aux coordonnées (X15.2,Y14.7,Z0.85)
G1 Mouvement linéaire G1 X50.7 Y31.2 E20.7 : déplacement dans le plan XY jusqu'aux coordonnées (X50.7,Y31.2) et extrusion de 20.7mm de filament
G1 F1500 : fixation de la vitesse à 1500mm/minute pour les futurs déplacements
G2 Mouvement circulaire dans le sens des aiguilles d'une montre G2 X51.6 Y17.6 I5 J10 E18.7 : déplacement en arc de cercle dans le sens des aiguilles d'une montre vers les coordonnées (X51.6,Y17.6), autour du point (X5,Y10) et extrusion de 18.7mm de filament
G3 Mouvement circulaire dans le sens inverse des aiguilles d'une montre G3 X51.6 Y17.6 I5 J10 E18.7 : déplacement en arc de cercle dans le sens inverse des aiguilles d'une montre vers les coordonnées (X51.6,Y17.6), autour du point (X5,Y10) et extrusion de 18.7mm de filament
G4 Temporisation G4 P60 : temporisation de 60 secondes -- à vérifier --
G20 Définit les unités en pouces
G21 Définit les unités en millimètres
G28 Mouvement vers les coordonnées origines ("homing"), se déplace en 0 puis recule de 1mm
G29 Calibration de la distance entre l'extrudeur et le lit ("bed probing")
G90 Positionnement absolu
G91 Positionnement relatif
G92 Définit la position G92 X15 E85 : définit la position courante aux valeurs spécifiées (X15,Y0,Z0,E85)
G92 : mise à zéro de tous les axes

Commandes Mnnn

Commande Description Exemple
M106 Démarre le ventilateur de l'extrudeur M106 S127 : démarre le ventilateur à 50% de la vitesse maximum
M107 Arrêt du ventilateur de l'extrudeur
M119 Affiche l'état des détecteurs de fin de course

Gestion des paramètres de PID

Commande Description Exemple
M301 Définit les paramètres PID de la tête chauffante
M302 Autorise l'extrusion à froid (ATTENTION !)
M303 Lance l'optimisation des paramètres PID (autotune) M303 E0 S200 C8 : Chauffe la buse n°1 jusqu'à 200°C sur 8 cycles et retourne les valeurs PID
M303 E-1 S60 C8 : Chauffe le lit jusqu'à 60°C sur 8 cycles et retourne les valeurs PID

Commandes de configuration de l'EEPROM

Commande Description
M500 Enregistre les paramètres dans l'EEPROM
M501 Lit les paramètres à partir de l'EEPROM
M502 Revient à la configuration d'usine
M503 Affiche les paramètres actuels de l'imprimante

mardi 04 novembre 2014

:: Gestion de l'espace disque sous Debian ::

Nettoyage de l'espace disque

Locales

localepurge

localepurge permet de supprimer toutes les locales différentes de celles utilisées par le système.

# apt-get install localepurge
# localepurge
localepurge: Disk space freed in /usr/share/locale: 90972 KiB
localepurge: Disk space freed in /usr/share/man: 5036 KiB

Répertoire personnel

ghostintheshell

Commande de ghostintheshell pour nettoyer son répertoire personnel, à adapter si besoin.

$ find -P ~/ -regex ".*\(~\|mozilla.*/Cache.*\|/.thumbnails/.*\|/.wine/.*/temp/.*\|/.gnome2/gnome-art/.*\)" -type f -print -delete && rm -vfr ~/.Trash/* ~/.dvdcss/* ~/.recently-used

apt/dpkg

Dépendances orphelines

Lorsqu'un paquet est installé, il vient souvent avec des dépendances qui ne sont pas systématiquements desinstallées lors de la suppression de ce paquet. L'outil deborphan permet de lister ces paquets orphelins et éventuellement de les supprimer.

# apt-get install deborphan
# deborphan
libsysfs2
librpcsecgss3
libgmp3c2
libbind9-60
[...]

Attention : certains de ces paquets peuvent être utiles au système. Bien vérifier avant d'opérer toute suppression.

Si un paquet que l'on souhaite garder apparaît dans la liste, on peut demander à deborphan de ne plus le considérer comme orphelin :

# deborphan --add-keep paquet_a_garder

Une fois bien décidé, on peut lancer la suppression des paquets orphelins :

# apt-get remove --purge `deborphan`

Ou, en élargissant le périmètre de deborphan :

# apt-get remove --purge `deborphan --guess-all`

Fichiers de configuration orphelins

Détection

Lister les paquets supprimés mais non-purgés :

$ aptitude search ~c
c   bluez-audio                                             - Transitional package
[...]

Même résultat avec la commande suivante qui liste les paquets sur une seule ligne :

$ dpkg -l | awk '$1~/^rc$/{print $2}' | xargs echo
bluez-audio [...]

Suppression

Supprimer tous les fichiers de configuration orphelins et leurs dépendances :

# aptitude purge ~c

Suppression des fichiers de configuration associés à des paquets desinstallés

# dpkg --purge `dpkg --get-selections|awk '/deinstall/ {print $1}'`

ou

# dpkg -P $(dpkg -l | awk '$1~/^rc$/{print $2}')

Suppression complète d'un paquet (fichiers et configuration).

# apt-get --purge remove `apt-cache search monpaquet | awk '{print $1}'`

ou

# aptitude purge monpaquet

Cache APT

Suppression des fichiers inutiles du cache (anciennes versions d'un même paquet par exemple).

# apt-get autoclean

Nettoyage total du cache.

# apt-get clean

mercredi 29 octobre 2014

:: Installation de rTorrent sur OpenWRT ::

Références

Introduction

rTorrent est un client bitorrent basé sur libtorrent et que l'on peut lancer en mode daemon à l'aide de screen.
Il existe de nombreuses interfaces (GUi et webUi) disponibles pour Windows, Linux, Mac et Android.

Ici, je l'installe sur un routeur Netgear WNDR3800 sous OpenWRT ATTITUDE ADJUSTMENT (12.09, r36088).

Installation et configuration

Installation de rTorrent et de screen

# opkg install rtorrent screen

Création du fichier de configuration rTorrent

# cd /root
# vi .rtorrent.rc

Ma configuration après modification :

# Nombre de pairs en téléchargement
min_peers = 40
max_peers = 120

# Nombre de pairs en téléversement
min_peers_seed = 2
max_peers_seed = 6
max_uploads = 4

# Limite de bande passante
download_rate = 0
upload_rate = 20

# Répertoires contenant les fichiers téléchargés
directory = /mnt/torrent

# Répertoire de stockage de l'état des sessions
session = /mnt/torrent/session

# Ajout automatique de torrents
schedule = watch_directory,15,15,load_start=/mnt/torrent/torrent_active/*.torrent

# Ports utilisables par rtorrent
port_range = 6881-6999
port_random = no

# Vérification des données à la fin du téléchargement
check_hash = yes

# Activation de DHT pour les torrents sans tracker
dht = auto

# Port UDP pour l'utilisation de DHT.
dht_port = 6880

# Forcer l'utilisation de transactions chiffrées, pour ne recevoir et n'envoyer que des données protégées
encryption = allow_incoming,require,require_rc4

Script d'init

# vi /etc/init.d/rtorrent

Copier le contenu suivant :

#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2012 OpenWrt.org

START=99

boot() {
     HOME=/root screen -dmS rtorrent rtorrent
}

start() {
     HOME=/root screen -dmS rtorrent rtorrent
}

stop() {
     killall rtorrent
}

Rendre le script exécutable et l'activer

# chmod 755 /etc/init.d/rtorrent
# /etc/init.d/rtorrent enable
# /etc/init.d/rtorrent start

Utilisation

rTorrent s'exécute dans screen en arrière-plan. Pour le faire revenir au premier plan, on ré-attache la session screen :

# screen -r

et pour le remettre à l'arrière-plan, on s'en détache :

CTRL+A+D

mercredi 13 août 2014

:: Schémas techniques ::


:: Installation et utilisation de Pronterface et Skeinforge ::

Références

Installation des pré-requis

Python

Télécharger et installer Python 2.x.

Pour Linuxmint/Ubuntu, les paquets étant disponibles dans les sources officielles, on recherche la dernière version disponible :

$ sudo aptitude search python | grep -E '\s+python2\..\s+'
p   python2.7                       - Langage interactif de haut niveau orienté

Puis on l'installe :

$ sudo aptitude install python2.7

Note : tkinter est habituellement installé par défaut avec Python, mais vérifier quand même que les librairies sont bien présentes.

$ sudo aptitude search python | grep tk | grep ^i
[...]
i A python-tk                       - Tkinter - Écrire des applications Tk avec
[...]

Pypy (facultatif)

Pypy est un interpréteur alternatif à la distribution standard de Python. Il se veut plus rapide et reste compatible avec le code existant.

Télécharger et installer Pypy, ainsi que le module Tkinter.

$ sudo aptitude install pypy pypy-tk

Installation de Pronterface et Skeinforge

Pour installer dans ~/RepRap/, exécuter les commandes suivantes :

$ mkdir ~/RepRap
$ cd ~/RepRap
$ git clone https://github.com/kliment/Printrun.git
$ wget -P /tmp http://fabmetheus.crsndoo.com/files/50_reprap_python_beanshell.zip
$ unzip -d ~/RepRap/Printrun/skeinforge /tmp/50_reprap_python_beanshell.zip
$ ln -s ~/RepRap/Printrun/skeinforge/* ~/RepRap/Printrun/
$ rm -rf /tmp/50_reprap_python_beanshell.zip

Connexion à l'imprimante

Lancer Pronterface :

$ cd ~/RepRap/Printrun
$ ./pronterface.py

Sur Linux Mint 14 j'ai rencontré un problème de connexion avec l'imprimante (pb de baudrate), résolu par l'application du patch suivant :

$ cd /usr/lib/python2.7/dist-packages/serial/
$ sudo wget http://sourceforge.net/p/pyserial/patches/_discuss/thread/ed3fb0de/f4fd/attachment/pyserial.patch
$ sudo patch -b serialposix.py pyserial.patch

:: Installation de la suite logicielle Printrun/Pronterface et Slic3r ::

Références

Installation de Python

Python

Télécharger et installer Python 2.x.

Pour Linuxmint/Ubuntu, les paquets étant disponibles dans les sources officielles, on recherche la dernière version disponible :

$ sudo aptitude search python | grep -E '\s+python2\..\s+'
p   python2.7                       - Langage interactif de haut niveau orienté

Puis on l'installe :

$ sudo aptitude install python2.7

Note : tkinter est habituellement installé par défaut avec Python, mais vérifier quand même que les librairies sont bien présentes.

$ sudo aptitude search python | grep tk | grep ^i
[...]
i A python-tk                       - Tkinter - Écrire des applications Tk avec
[...]

Pypy (facultatif)

Pypy est un interpréteur alternatif à la distribution standard de Python. Il se veut plus rapide et reste compatible avec le code existant.

Télécharger et installer Pypy, ainsi que le module Tkinter.

$ sudo aptitude install pypy pypy-tk

Installation de Printrun/Pronterface et connexion à l'imprimante

Installation

Pour Ubuntu/Debian, donc pour Linuxmint aussi, il n'y a pas encore de paquet disponible dans les sources officielles, on va donc cloner le repository git et ainsi profiter de la dernière version.

Avant tout, on installe les dépendances :

$ sudo apt-get install python-serial python-wxgtk2.8 python-pyglet python-tornado python-setuptools python-libxml2 python-gobject avahi-daemon libavahi-compat-libdnssd1 python-dbus python-psutil git

Puis on clone les sources :

$ git clone https://github.com/kliment/Printrun.git

Permissions utilisateurs

Sous Linux Mint, l'utilisateur doit appartenir au groupe dialout pour accéder au périphérique.

$ sudo adduser utilisateur dialout

Connexion à l'imprimante

Lancer Pronterface :

$ cd Printrun
$ ./pronterface.py

Sur Linux Mint 17, j'ai rencontré un problème de connexion avec l'imprimante :

[...]
Connexion en cours...
stty: /dev/ttyACM0: Permission non accordée
[ERROR] Impossible de se connecter à /dev/ttyACM0 à la vitesse 250000:
Erreur série: could not open port /dev/ttyACM0: [Errno 13] Permission non accordée: '/dev/ttyACM0'
[...]

Cette erreur est dûe à un problème de baudrate. Pour résoudre ce problème il est nécessaire d'appliquer le patch suivant :

$ cd /usr/lib/python2.7/dist-packages/serial/
$ sudo wget http://sourceforge.net/p/pyserial/patches/_discuss/thread/ed3fb0de/f4fd/attachment/pyserial.patch
$ sudo patch -b serialposix.py pyserial.patch

Suite à l'application du patch, la connexion fonctionne déjà mieux :

Connexion en cours...
Imprimante connectée.

Installation de Slic3r

Installation et configuration de Slic3r

Deux méthodes sont possibles ici en fonction de la version de Slic3r que l'on désire installer. Soit on utilise les paquets fournis sur le site, soit on compile soi-même à partir des sources.

Méthode 1 : Paquets pré-compilés

  • Télécharger Slic3r
  • Extraire le contenu de l'archive et lancer le fichier bin/Slic3r

Méthode 2 : Sources

  • Installation des dépendances

    $ sudo apt-get install git build-essential libgtk2.0-dev libwxgtk2.8-dev libwx-perl libmodule-build-perl libnet-dbus-perl libexpat1-dev cpanminus
  • Pour la vue 3D (facultatif), il faut aussi installer ces paquets :

    $ sudo apt-get install libxmu-dev freeglut3-dev libwxgtk-media2.8-dev
  • Récupération des sources

    $ git clone https://github.com/alexrj/Slic3r.git
  • Installation

    $ cd Slic3r
    $ sudo perl Build.PL
    $ sudo perl Build.PL --gui

Note : Cette dernière commande est facultative si on n'a pas besoin de l'interface graphique.

Configuration de Slic3r

  • Lancer Slic3r
  • Configurer l'impression, le filament et l'imprimante dans les différents onglets
    • Conseil : enregistrer les paramètres de chaque onglet dans un fichier de configuration spécifique.
  • Exporter la configuration vers le fichier INI de votre choix (menu File / Export Config)

Intégration de Slic3r à Pronterface

  • Lancer Pronterface et ouvrir le menu Paramètres / Options
  • Dans l'onglet Commandes externes, remplacer les champs suivants par la commande indiquée :
    • Commande de slicing : /chemin/vers/bin/slic3r $s --load /chemin/vers/config.ini --output $o
    • Commande pour les paramètres du slicer : /chemin/vers/bin/slic3r --load /chemin/vers/config.ini --ignore-nonexistent-config
  • Dans l'onglet Interface utilisateur, cocher les cases :
    • Activer l'intégration de Slic3r
    • Mettre à jour les profils par défaut de Slic3r

Slic3r est maintenant correctement configuré et intégré à Pronterface.


vendredi 25 juillet 2014

:: Opérateurs de test ::

Réf : https://www.cs.cf.ac.uk/Dave/PERL/node69.html

Tests sur fichiers

Tableau des opérateurs
Opérateur Test
-d test si l'opérande est un répertoire
-r fichier accessible en lecture
-w fichier accessible en écriture
-x fichier exécutable
-o fichier possédé par la personne qui exécute le script
-e fichier existant
-z fichier de taille nulle
-s taille du fichier
-M âge du fichier en jours à partir de la date d'exécution du script


lundi 30 juin 2014

:: Installation de Raspbmc sur Raspberry Pi ::

Matériel

Raspberry Pi type B
  • ARM1176JZ-F 700MHz
  • Broadcom BCM2835
  • 512 Mo SDRAM

Carte SD 4Go

PC sous Linux

Préparation de la carte SD

Note : actions effectuées sous Linuxmint 17.

Insertion de la carte SD et suivi dans le journal système pour détecter le nom du périphérique :

$ tail -f /var/log/syslog
... sd 3:0:0:0: Attached scsi generic sg1 type 0
... sd 3:0:0:0: [sdb] 7774208 512-byte logical blocks: (3.98 GB/3.70 GiB)

Ici on voit que ma carte SD de 4Go a été détectée et correspond au périphérique sdb (accessible sous /dev/sdb).

Téléchargement et lancement du script d'installation :

$ wget http://svn.stmlabs.com/svn/raspbmc/release/installers/python/install.py
$ chmod +x install.py
$ sudo python install.py

Références


jeudi 26 juin 2014

:: Diable de Tasmanie ::


mardi 29 avril 2014

:: Procédure de mise à jour Linux Mint ::

Linux Mint 14 (Nadia) vers Linux Mint 15 (Olivia)

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.save
$ sudo sed -i 's/quantal/raring/' /etc/apt/sources.list
$ sudo sed -i 's/nadia/olivia/' /etc/apt/sources.list
$ sudo apt-get update && sudo apt-get dist-upgrade
$ sudo apt-get upgrade
$ sudo shutdown -r now

Linux Mint 15 (Olivia) vers Linux Mint 16

Seule une installation d'origine de Linux Mint 15 possède le fichier /etc/apt/sources.list.d/official-package-repositories.list. Si le système a été mis à jour à partir de Linux Mint 14, le fichier /etc/apt/sources.list est toujours utilisé.

Installation d'origine de Linux Mint 15 ("fresh install")

$ sudo sed -i 's/raring/saucy/' /etc/apt/sources.list.d/official-package-repositories.list
$ sudo sed -i 's/olivia/petra/' /etc/apt/sources.list.d/official-package-repositories.list
$ sudo apt-get update && sudo apt-get dist-upgrade
$ sudo apt-get upgrade
$ sudo shutdown -r now

Linux Mint 15 mis à jour à partir d'une version précédente

Si vous avez mis à jour Mint 14 en Mint 15, la procédure de mise à jour vers Mint 16 est la suivante :

$ sudo sed -i 's/raring/saucy/' /etc/apt/sources.list
$ sudo sed -i 's/olivia/petra/' /etc/apt/sources.list
$ sudo apt-get update && sudo apt-get dist-upgrade
$ sudo apt-get upgrade
$ sudo shutdown -r now

Linux Mint 14 (Nadia) vers Linux Mint 16

$ sudo sed -i 's/quantal/saucy/' /etc/apt/sources.list
$ sudo sed -i 's/nadia/petra/' /etc/apt/sources.list
$ sudo apt-get update && sudo apt-get dist-upgrade
$ sudo apt-get upgrade
$ sudo shutdown -r now

Références


dimanche 20 avril 2014

:: Désactivation IPv6 ::

Réf : http://wiki.debian.org/DebianIPv6#How_to_turn_off_IPv6

Système

echo net.ipv6.conf.all.disable_ipv6=1 > /etc/sysctl.d/disable-ipv6.conf
sysctl -p /etc/sysctl.d/disable-ipv6.conf

Exim 4

vi /etc/exim4/update-exim4.conf.conf

Ajouter la ligne suivante :

disable_ipv6=true

Appliquer les modifications :

update-exim4.conf
service exim4 restart

Sshd

vi /etc/ssh/sshd_config

Ajouter/modifier la ligne suivante :

AddressFamily inet

Relancer le service

service ssh restart

Avahi (si installé)

vi /etc/avahi/avahi-daemon.conf

Ajouter/modifier la ligne suivante :

use-ipv6=no

Redémarrer le service

service avahi restart