Installer symfony sur ubuntu 8.04

Ne pas utiliser apt, la version qu’il installe va générer des erreurs.

PHP Fatal error: Uncaught Error: Call to undefined method Composer\Package\RootPackage::getConfig() in /home/manu/.config/composer/vendor/fxp/composer-asset-plugin/Config/ConfigBuilder.php:111
Stack trace:
#0 /home/manu/.config/composer/vendor/fxp/composer-asset-plugin/Config/ConfigBuilder.php(74): Fxp\Composer\AssetPlugin\Config\ConfigBuilder::getConfigBase(Object(Composer\Composer), Object(Composer\IO\ConsoleIO))
#1 /home/manu/.config/composer/vendor/fxp/composer-asset-plugin/FxpAssetPlugin.php(82): Fxp\Composer\AssetPlugin\Config\ConfigBuilder::build(Object(Composer\Composer), Object(Composer\IO\ConsoleIO))
#2 /usr/share/php/Composer/Plugin/PluginManager.php(215): Fxp\Composer\AssetPlugin\FxpAssetPlugin->activate(Object(Composer\Composer), Object(Composer\IO\ConsoleIO))
#3 /usr/share/php/Composer/Plugin/PluginManager.php(188): Composer\Plugin\PluginManager->addPlugin(Object(Fxp\Composer\AssetPlugin\FxpAssetPlugin))
#4 /usr/share/php/Composer/Plugin/PluginManager.php(240): Composer\Plugin\PluginManager->registerPackage(Obje in /home/manu/.config/composer/vendor/fxp/composer-asset-plugin/Config/ConfigBuilder.php on line 111

Si vous l’avez déjà installée, supprimez la avec

sudo apt-get remove composer

ensuite, tapez la commande suivante dans un terminal:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Et ça fonctionne

Mcdo se libère?

Je ne sais pas si vous avez remarqué, mais moi ça m’a sauté aux yeux dès la première vision. C’est sans doute mon côté barbu…

Dans la dernière pub de Mcdo, vers la fin (à partir de 1’15), on voit des bureaux et des écrans d’ordinateur.

Linux dans la pub mcdo

C’est suffisamment rare pour être signalé.

Bon, ça ne me fera pas plus apprécier leurs produits mais je vais regarder leurs pubs d’un autre œil.

Mettre à jour une ancienne version d’ubuntu

Si vous avez une vielle version d’ubuntu qui n’est plus soutenue, il vous est encore possible d’installer certains logiciels ou d’effectuer un upgrade vers une version plus récente.

Les dépôts des anciennes releases qui ne sont plus supportées (comme la 10.04, 11.04, 11.10 et 13.04) sont déplacés vers un serveur d’archives. Ces dépôts sont accessible à  http://old-releases.ubuntu.com

La raison en est qu’elles sont désormais « hors support » et ne reçoivent plus ni mises à jour, ni correctifs de sécurité.

Si vous souhaitez continuer à utiliser une version périmée, alors éditez votre fichier /etc/apt/sources.list et modifiez archive.ubuntu.com en old-releases.ubuntu.com

Vous pouvez le faire avec sed en tapant la commande suivante dans un terminal:

sudo sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list

puis upgradez avec:

sudo apt-get update && sudo apt-get dist-upgrade

Parfois, il est plus rapide de faire une sauvegarde des données importantes et d’installer une version récente que de faire la mise à jour ainsi.

Cependant, cela peut vous permettre d’installer des logiciel provisoirement ou de passer sur une LTS plus récente pour vous laisser le temps de planifier une réinstallation.

Firefox ouvre mes pièces jointes avec Gedit

Lorsque vous téléchargez un document, souvent depuis le webmail d’Orange, firefox vous propose simplement d’ouvrir celui ci avec gedit ou d’enregistrer le fichier.

Si vous le téléchargez et que vous double-cliquez sur celui ci, il s’ouvre bien avec le logiciel adéquat. Mais il serait plus simple de l’ouvrir directement depuis Firefox (pas dans Firefox) avec le logiciel adapté.

L’exemple que je vais vous donner concerne les fichiers pps, mais c’est adaptable à d’autres types de fichiers.

Ouvrez le fichier ~/.local/share/applications/mimeapps.list (qui associe les types de fichiers avec le logiciel adapté) avec votre éditeur de textes préféré.

Recherchez la ligne application/octet-stream=geany.desktop; et commentez la en mettant un dièse devant( #application/octet-stream=geany.desktop;)

Rajoutez la ligne suivante juste en dessous: application/octet-stream=libreoffice-calc.desktop;gedit.desktop;

Ainsi, Firefox vous proposera libreoffice en premier choix. Peu importe qu’on dise au pps de s’ouvrir avec calc, libreoffice s’adaptera automatiquement et l’ouvrira bien avec impress.

Enregistrez votre fichier, ça devrait fonctionner immédiatement pour le prochain téléchargement sans avoir à relancer quoi que ce soit.

En bonus, je vous met mon fichier mimeapps.list, ce qui peut vous être utile.

[Default Applications]
x-scheme-handler/mailto=thunderbird.desktop
message/rfc822=thunderbird.desktop
application/x-extension-eml=thunderbird.desktop
text/x-python=geany.desktop
application/x-php=geany.desktop
x-content/blank-cd=brasero-nautilus.desktop
application/x-designer=designer-qt4.desktop
text/x-gettext-translation=poedit.desktop
audio/mpeg=totem.desktop
text/html=firefox.desktop
x-scheme-handler/http=firefox.desktop
x-scheme-handler/https=firefox.desktop
x-scheme-handler/about=chromium-browser.desktop
x-scheme-handler/unknown=chromium-browser.desktop
application/pdf=evince.desktop
x-scheme-handler/ftp=firefox.desktop
x-scheme-handler/chrome=firefox.desktop
application/x-extension-htm=firefox.desktop
application/x-extension-html=firefox.desktop
application/x-extension-shtml=firefox.desktop
application/xhtml+xml=firefox.desktop
application/x-extension-xhtml=firefox.desktop
application/x-extension-xht=firefox.desktop
application/msword=libreoffice-writer.desktop
application/vnd.ms-excel=libreoffice-calc.desktop
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=libreoffice-calc.desktop
audio/x-vorbis+ogg=vlc.desktop
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop
application/x-ms-dos-executable=wine.desktop
application/xml=geany.desktop
[Added Associations]
x-scheme-handler/mailto=thunderbird.desktop;
message/rfc822=thunderbird.desktop;
application/x-extension-eml=thunderbird.desktop;
text/x-python=geany.desktop;
application/dicom=gedit.desktop;
application/octet-stream=geany.desktop;libreoffice-calc.desktop;gedit.desktop;
application/x-php=geany.desktop;firefox.desktop;
audio/x-mod=gedit.desktop;
application/x-ms-dos-executable=wine.desktop;
text/plain=gerbv.desktop;libreoffice-writer.desktop;
application/vnd.oasis.opendocument.presentation=libreoffice-writer.desktop;
x-content/blank-cd=brasero-nautilus.desktop;
application/x-designer=designer-qt4.desktop;
text/x-gettext-translation=poedit.desktop;
audio/mpeg=totem.desktop;
text/css=geany.desktop;
application/x-netcdf=gedit.desktop;geany.desktop;
application/x-trash=gedit.desktop;
application/pdf=evince.desktop;
application/vnd.ms-powerpoint=file-roller.desktop;
x-scheme-handler/http=firefox.desktop;
x-scheme-handler/https=firefox.desktop;
x-scheme-handler/ftp=firefox.desktop;
x-scheme-handler/chrome=firefox.desktop;
text/html=firefox.desktop;
application/x-extension-htm=firefox.desktop;
application/x-extension-html=geany.desktop;firefox.desktop;
application/x-extension-shtml=firefox.desktop;
application/xhtml+xml=firefox.desktop;
application/x-extension-xhtml=firefox.desktop;
application/x-extension-xht=firefox.desktop;
application/msword=libreoffice-writer.desktop;
application/vnd.ms-excel=file-roller.desktop;libreoffice-calc.desktop;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=libreoffice-calc.desktop;
audio/x-vorbis+ogg=vlc.desktop;
application/xml=wine-extension-msp.desktop;wine-extension-vbs.desktop;geany.desktop;
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop;
image/jpeg=inkscape.desktop;
application/x-mono-extension-cb=cambam.desktop;
application/x-crossover-msg=geany.desktop;
application/x-wine-extension-vbs=gedit.desktop;
application/x-config=gedit.desktop;
text/x-vb=gedit.desktop;
image/vnd.dxf=inkscape.desktop;
image/png=inkscape.desktop;

Résoudre l’erreur de screen « Cannot open your terminal ‘/dev/pts/0’ – please check »

En utilisant screen, il est possible que vous ne puissiez démarrer une session en obtenant l’erreur suivante:
Cannot open your terminal '/dev/pts/0' - please check

C’est parce qu’un autre utilisateur (probablement vous) a lancé le terminal actuel. Vous avez sans doute effectué un sudo su vers l’utilisateur avec lequel vous essayez de lancer screen, n’est ce pas?
Il y a deux manières de corriger ceci:

  • Déconnectez vous et connectez vous proprement avec l’utilisateur que vous souhaitez utiliser
  • Lancez script /dev/null dans le shell de l’utilisateur et relancez screen, ce qui devrait fonctionner.

Important: n’effectuez pas de chmod sur le terminal virtuel comme suggéré sur beaucoup de sites du web. Cela fonctionnera mais donnera aux autres utilisateurs les droits de lecture et d’écriture dans la session du terminal!

Tester sa vitesse de connexion Internet depuis le terminal

speedtest-cli permet de tester sa vitesse de connexion sans utiliser de navigateur, et sans les problèmes liés au flash nécessaire pour utiliser les sites de test. C’est un outil écrit en python fonctionnant sur Debian et dérivées, ainsi que sur Fedora et dérivées.

Pour l’installer, il vous faudra python-pip et lancer la commande suivante:

sudo pip install speedtest-cli

Ensuite, il suffit de lancer speedtest-cli pour avoir une idée du débit descendant et ascendant de votre ligne. Les valeurs obtenue sur la mienne sont variables (dépend de l’utilisation de la ligne, du PC, de l’heure) mais restent dans une fourchette qui permet de voir quel est le débit moyen.


usage: speedtest-cli [-h] [--bytes] [--share] [--simple] [--list]
[--server SERVER] [--mini MINI] [--source SOURCE]
[--timeout TIMEOUT] [--version]
Command line interface for testing internet bandwidth using speedtest.net.
--------------------------------------------------------------------------
https://github.com/sivel/speedtest-cli
optional arguments:
-h, --help show this help message and exit
--bytes Display values in bytes instead of bits. Does not affect
the image generated by --share
--share Generate and provide a URL to the speedtest.net share
results image
--simple Suppress verbose output, only show basic information
--list Display a list of speedtest.net servers sorted by
distance
--server SERVER Specify a server ID to test against
--mini MINI URL of the Speedtest Mini server
--source SOURCE Source IP address to bind to
--timeout TIMEOUT HTTP timeout in seconds. Default 10
--version Show the version number and exit

Résultat chez moi
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Free SAS (78.207.166.41)...
Selecting best server based on latency...
Hosted by Altanetica SL (Calonge) [80.18 km]: 188.878 ms
Testing download speed........................................
Download: 7.35 Mbit/s
Testing upload speed..................................................
Upload: 0.99 Mbit/s

Si vous utilisez l’option –share, vous obtiendrez l’adresse d’une image, montrant les résultats, que vous pourrez partager.

Pour faire la mise à jour, utilisez:

sudo pip install speedtest-cli --upgrade

LinuxCNC – Contrôler la machine avec in joystick ou une manette de jeu

Utiliser une manette ou un joystick pour contrôler linuxcnc

Voici la suite de la série sur LinuxCNC

On peut vraiment tout faire avec Linux, y compris détourner l’utilisation première de certains matériel. J’avoue que c’est un peu du gadget, mais c’est tellement pratique que ce serait dommage de s’en passer.

Dans l’atelier, le clavier n’est pas vraiment nécessaire, la plupart des actions se font à la souris. De plus, clavier et poussière ne font pas forcément bon ménage et le clavier prend de la place là où on en manque toujours…

L’idée est de remplacer (au moins de l’avoir en parallèle) le clavier par une commande moins imposante pour contrôler la CNC.
Et puis ça fait tellement geek et futuriste de piloter la machine avec un joystick que je vois l’admiration et le respect s’allumer dans les yeux des spectateurs qui me voient leur créer les pièces demandées, un peu comme si je pilotais la navette spatiale. Priceless!

Tout d’abord, il vous faudra une manette ou un joystick de jeu, de préférence USB. Cherchez dans les occasions si vous n’en avez pas, faites le tour des dépôts ventes ou sur le bon coin, mais on en trouve entre 2 et 10 €, selon l’état et le modèle. On trouve même des adaptateurs pour mettre en USB la plupart des manettes, cherchez sur la baie ou amazon.

J’utilise un joystick Microsoft SideWinder Precision 2 (acheté chez cashtruc pour 5 €) qui a un fil de 2m de long, ce qui est très bien pour déplacer le joystick à l’endroit voulu. En plus il a plein de boutons qui me permettent de paramétrer ce que je veux dessus.
Autant je suis très critique sur les logiciels estampillés Microsoft, autant je considère les matériels portant cette marque comme solides et fiables, mais c’est mon avis personnel.
On peut aussi utiliser des manettes sans fil, ce que je faisais au début, mais la baisse de puissance des piles ou des parasites amènent des problèmes dans la commande de la machine. C’est suffisamment risqué pour que je vous le déconseille, rien de tel que les fils.


Le joystick dans le bureau pour la rédaction de ce tuto.

==== Installation du logiciel de contrôle ====

Il va falloir installer auparavant une dépendance afin que le logiciel fonctionne correctement. Pour cela, il va falloir ajouter un dépôt au système.
– Ouvrez le gestionnaire de paquets Synaptic (Applications/Système/Gestionnaire de paquets synaptic)
– Allez dans le menu Configuration/Dépots
– Cliquez sur l’onglet Other Software
– Cliquez sur le bouton Add
– Entrez la ligne suivante: deb http://http.debian.net/debian wheezy-backports main
– Validez, fermez
– Cliquez sur le bouton Recharger
– Cliquez sur le bouton de recherche, tapez libsdl2 et installez libsdl2-2.0-0 (clic droit, sélectionner pour installation). Faites la même chose pour libqt4-network
– Cliquez sur appliquer
– Fermez synaptic

Le programme permettant de mapper les touches s’appelle Antimicro. Il est disponible à cette adresse:
https://github.com/Ryochan7/antimicro/releases

Téléchargez le paquet antimicro_2.14-1.jessie_i386.deb, c’est celui qui va bien pour wheezy (votre version de Debian), et enregistrez le paquet sur votre ordinateur.

On peut l’installer graphiquement, mais je vais vous apprendre comment installer un paquet deb téléchargé avec le terminal.
– Ouvrez un terminal (Applications/Emulateur de terminal)
– tapez la commande suivante en adaptant ce qui doit l’être: sudo dpkg -i /home/votre_utilisateur/Téléchargements/antimicro_2.14-1.jessie_i386.deb (pensez à la complétion (voir dans les posts précédents) pour vous aider à taper la commande)
– Validez, entrez votre mot de passe
– Le logiciel est installé!

==== Lancement du logiciel antimicro ====

On peut lancer le logiciel au démarrage de la session. Pour cela, il suffit de créer un script de démarrage comme on l’a fait précédemment pour le serveur VNC.
Mais je préfère faire autrement, car je n’ai pas envie qu’un coup de coude dans le joystick déplace la broche par accident.

J’ouvre un terminal( Applications/Emulateur de Terminal ou clic droit sur le bureau Ouvrir un terminal ici) et je tape la commande antimicro que je valide par entrée. Si je ferme le terminal par la suite, le joystick est désactivé (et j’en suis certain). Si j’en ai besoin de nouveau, je recommence.

==== Paramétrage du joystick ====

Au lancement de antimicro, choisissez le français et validez tout par défaut; la fenêtre de configuration s’ouvre. Je ne vais pas entrer dans les détails, juste vous expliquer quelques petites choses, le reste est assez simple.
* Lorsque vous aurez créé votre configuration, sauvegardez là. Si vous n’en avez qu’une, elle sera automatiquement rechargée au démarrage du logiciel
* Testez les boutons et axes de votre manette/joystick, vous les verrez s’éclairer
* La première fois que vous lancez le logiciel, mettez à jour les manettes (CTRL+U ou menu Options). C’est important sinon des choses peuvent ne pas fonctionner.

* cliquez sur le bouton que vous voulez modifier et réglez les options
* Si vous donnez un nom (Axe X, ou Arrêt d’urgence) vous pouvez afficher les noms à la place des boutons si vous cliquez sur le bouton Noms
* Il y a des options déjà prévues pour les axes (haut/bas, ou gauche/droite, etc) Utilisez les, même si on peut les modifier autrement.

* Enregistrez votre configuration en lui donnant le nom de votre contrôleur à la racine de votre home (votre dossier personnel)
* Enfin, cachez le logiciel (ne le fermez pas, sinon il n’agira pas sur LinuxCNC) par CTRL + H
* Le logiciel est placé en haut à droite, à côté de l’heure. Un clic sur l’icone le fait réapparaître.

Personnellement, j’ai paramétré les axes X et Y sur le joystick, l’axe Z est sur la rotation du joystick, la gâchette est la touche SHIFT (avance rapide sur linuxcnc), ce qui me permet de commander toute la broche avec le joystick. Les autres boutons me permettent d’arrêter l’AU (F1), démarrer/arrêter la machine (F2), ouvrir un fichier gcode (o) et de marquer la prise d’origine de l’axe en cours (orig). Je ne me sers pas des autres boutons et axes, mais rien ne dis que je n’en aurai pas besoin plus tard. Il suffit de laisser le curseur sur un bouton de linuxcnc pour connaître la touche correspondante et la paramétrer dans antimicro.

Je n’ai pas de quoi vous faire une vidéo, mais croyez moi sur parole, ça fonctionne très bien. Maintenant, le clavier est rangé et je ne le sors que lorsque j’en ai besoin, tout le reste se fait au joystick.

LinuxCNC – astuces supplémentaires

Appli android pour controler linuxCNC

http://www.androidpit.fr/application/com.cncpendantforlinuxcnc.app (8.99€)

Cambam plus n’utilise pas toutes les fonctionnalités de EMC

Cambam est incapable de générer toutes les valeurs possibles des Gcodes G61/G64 pour le paramètre d’usinage global ‘Velocity mode’ et on n’atteint pas la vitesse maximale possible lors de l’usinage

Solution
Il faut ajouter un post-processeur “rapide” qui permettra d’utiliser les codes manquants.

Les post processeurs sont dans c:\Documents dans Settings\all users\application data\cambam plus 0.9.8\post.
et dans /home/votre_utilisateur/.config/CamBam plus 0.9.8/post sous Linux

Dupliquer EMC2.cbpp en EMC2-speed.cbpp, et modifier la ligne:
{$units} {$distancemode} {$velocitymode} {$cuttercomp(off)}

Pour la transformer en :
{$units} {$distancemode} {$velocitymode} P0.05 {$cuttercomp(off)}\\

Ici, la précision a été fixée à 5 centièmes de mm, ce qui est très largement suffisant pour de la gravure, mais vous pourrez avoir à trouver votre valeur pour vos besoins.

Source: http://www.usinages.com/emc2/emc2-tuto-complet-t18768.html

Exporter directement en ngc

source: http://id-conception.fr/Forum/viewtopic.php?f=24&t=1067

Voici un petit modif, qui évite pas mal de manipulation durant l’utilisation de CamBam avec LinuxCNC EMC2 (qui veut du NGC).

Dans beaucoup (Peut-être bien tous) des Tutos, il est indiqué de sauvegarder le fichier Gcode dans CamBam (Extension nc) et ensuite de le renommer sous linux avec l’extension .ngc.

Alors qu’il suffit simplement dans CamBam de faire les manipulations suivante pour que votre fichier Gcode aie automatiquement la bonne extension :

– Aller dans le menus « Outils »
– Puis sélectionner « Options »
– Aller dans la Partie « Génération du Gcode » de la nouvelle fenêtre qui c’est ouverte.
– Modifier la ligne : « Extension Gcode par défaut » en remplaçant le .nc par .ngc
– Et enfin, quitter la fenêtre, et si tout c’est bien passé, vos fichier Gcode auront directement la bonne extension.

Problème: Cambam crash avec l’utilisation de textes

Lors de l’utilisation d’options de texte, cambam se crashe. Soit lors de la demande d’utiliser du texte, soit à l’ouverture de fichier cb contenant du texte.

Le message d’erreur éventuel indique juste ./libcambam64.so

Explication
Ce problème survient quand on lance cambam par mono chemin/cambam.exe. Il ne trouve pas le fichier libcambam64.so dans son chemin. Il suffit de se rendre à l’emplacement d’installation de cambam AVANT de lancer cambam.
Solution

créer un fichier /usr/local/bin/cambam contenant le texte suivant (en admettant que cambam soit installé dans /home/manu/CamBam0.9.8):


#!/bin/bash
cd /home/manu/CamBam0.9.8
mono CamBam.exe

Rendre ce fichier exécutable par sudo chmod +x /usr/local/bin/cambam

Créer un lanceur dans /usr/share/applications/cambam.desktop contenant le texte suivant:


[Desktop Entry>
Name=Cambam
Comment=Dessiner en gcode
Exec=/usr/bin/cambam
Icon=/home/manu/CamBam0.9.8/cambam.png
Terminal=false
Type=Application
Categories=GTK;Graphics;
StartupNotify=true
X-Ubuntu-Gettext-Domain=CamBam

Attention à remplacer le nom de l’utilisateur (ici manu) par le votre dans les codes ci dessus

Revenir à la position 0 à la fin du cycle

http://www.metabricoleur.com/t1437p180-aide-cambam

Attention! Le retour de la broche à 0 peut faire des dégats à la pièce ET à la broche qui s’arrête de tourner!

Personnaliser un peu LinuxCNC

Quelques paramétrages pratiques

Suite à l’installation de LinuxCNC, on peut dores et déjà apporter quelques modifications au fonctionnement pour le rendre plus agréable.

Ajouter des logiciels

Nous allons ajouter un logiciel qui va nous servir par la suite et qui servira d’exemple pour ajouter ou supprimer des logiciels.
J’aime utiliser un éditeur de textes puissant plus évolué que le simple bloc note fourni par défaut. Sous Linux, on ne va pas chercher un logiciel sur le site de l’éditeur pour l’installer, on demande à Linux de le faire et d’installer la dernière version, point.

Allez dans le menu des applications/système/Gestionnaire de paquets Synaptic. Indiquez votre mot de passe et lisez l’explication.
Cliquez sur le bouton recharger pour mettre à jour la base des logiciels, sinon Synaptic ne saura pas où trouver les logiciels.
Cliquez sur le bouton avec une loupe pour rechercher le logiciel geany et validez.
Dans la liste qui apparait, faites un clic droit sur le premier (geany tout court) et sélectionnez Sélectionner pour installation . Descendez dans la liste et faites de même pour le paquet geany-plugins validez les logiciel associés (dépendances) qu’il est nécessaire d’installer.
Cliquez ensuite sur Le bouton Appliquer de la barre des boutons, validez le résumé avant installation et attendez. Vous venez d’installer un nouveau logiciel.
Promenez vous dans Synaptic, vous comprendrez rapidement ce qu’on peut faire pour installer des logiciels.

Pour désinstaller un logiciel, il faut faire les mêmes étapes mais Sélectionner pour désinstallation dans le clic droit.

Connexion automatique

Inutile de passer par l’écran de connexion si on est seul utilisateur de l’ordinateur. On va donc indiquer que l’on veut être connecté au démarrage. Nous allons modifier un fichier système important, une erreur peut empêcher le démarrage de votre ordinateur, faites attention.

Comme l’utilisateur n’a pas le droit d’agir sur les fichiers du système, nous allons lancer les actions en root (administrateur).
Lancez Applications/Accessoires/Terminal administrateur. Vous êtes administrateur dans ce terminal, toutes les co….eries que vous lui direz de faire, il les fera, faites attention.

Lancez le logiciel geany que nous venons d’installer en tapant geany puis entrée. Geany se lance. Ne fermez pas le terminal, cela fermerait aussi geany.
Ouvrez le fichier Système de fichier/etc/lightdm/lightdm.conf. C’est lui que nous allons modifier.
Ligne 82 environs, ajoutez les lignes suivantes:


autologin-user=manu
autologin-user-timeout=0

Bien sûr, si vous avez choisi un autre login que manu, modifiez le code en conséquence!
Enregistrez le fichier, fermez geany et le terminal, puis redémarrez. Vous serez automatiquement connecté au démarrage.

Présentation et installation de LinuxCNC

Je vais tenter ici de démystifier un peu Linux/LinuxCNC en expliquant simplement les choses de base à connaître. Par conséquent, je vais employer des raccourcis que les puristes pourront me reprocher, mais il sera toujours temps d’apporter des précisions par la suite une fois que les idées de bases auront été intégrées.
Je ne vais parler que de ce que je connais, le fraisage en CNC, n’ayant jamais fait de tournage numérique.

1- Présentation de Linux

Linux (on devrait dire GNU/Linux, mais par commodité, je ne dirais que « Linux » ici) est un système alternatif à Microsoft pour faire l’interface entre l’utilisateur et l’ordinateur.
Il est développé par une communauté d’utilisateurs, mais aussi par de grands groupes (en particulier HP et Google) qui utilisent Linux sur leurs systèmes.
Il n’existe pas UN Linux, mais une multitude. D’ailleurs, une fois que vous aurez personnalisé votre ordinateur sous Linux, vous aurez VOTRE Linux.
Son rôle est exactement le même que Windows : il sert d’intermédiaire entre vous (et votre manière de penser) et l’ordinateur (et sa logique). C’est un outil qui répond à un besoin, et par conséquent, il n’est pas si différent de Windows, puisque le besoin est le même. Par contre, il a une philosophie différente, et c’est ce qui peut perturber l’utilisateur habitué à Windows.
Comme Linux n’appartient à personne (pas de société commerciale), il n’y a pas d’impératifs de vente ; par conséquent, l’idée est de fournir le meilleur logiciel (seul ou à plusieurs) en apportant la meilleure réponse possible au besoin de l’utilisateur. Une des idées est aussi celle ci : ne faire qu’une chose, mais la faire bien.

Par contre, pour les mêmes raisons, et parce que beaucoup de développeurs travaillent sur leur temps libre (et vous savez que c’est une denrée rare), l’avancée des logiciels ou la correction de bugs peut parfois prendre un peu de temps. Par contre, une faille de sécurité mobilise l’ensemble de la communauté et le correctif apparaît dans les jours qui suivent l’apparition du programme. C’est aussi une des raisons de la solidité de Linux.

2-Les distributions Linux

Une distribution est une « base Linux » sur laquelle l’éditeur (au sens large du terme) va faire des choix à votre place pour proposer un ensemble complet et cohérent de logiciels. Un peu comme un fabriquant de voiture va choisir un châssis, un moteur, une carrosserie et des accessoires pour proposer un modèle de voiture. Beaucoup d’éléments sont commun à d’autres modèles, mais l’ensemble des choix en fait un modèle à part. Le plus grand choix, en tout cas le plus visible étant le gestionnaire de l’interface (KDE, Gnome, Mate, XFCE, OpenBox, …), ayant chacun ses avantages et ses inconvénients.
Les distributions vont intégrer tel ou tel logiciel, interface, thème, choix de fonctionnement pour être une distribution différente des autres. Parfois, on prend une distribution existante, on modifie certaines choses, on apporte d’autres choix et logiciels, et cela devient une autre distribution.

Par exemple, Ubuntu, Mint, LinuxCnc, et bien d’autres, sont basées sur Debian qui est reconnue pour sa stabilité.
Suse, slackware, Handylinux, RedHat, … sont aussi des distributions linux. Je ne parle pas des distributions basées sur BSD pour rester dans la simplicité,
Comme on peu tout personnaliser sur Linux, on trouve des distributions spécialisées pour une fonction : le développement, le hacking, les firewall, les serveurs de fichiers, les routeurs, l’automatisme, l’embarqué, …. La liste est infinie puisqu’il suffit de personnaliser Linux avec les outils désirés.

À la maison, j’utilise plusieurs distributions, adaptées au rôle que j’en attend : Debian sur mes serveur, Ubuntu sur le poste de ma femme, XBMC (maintenant kido) sur le media center, SLAX sur le poste des mes enfants, Ipcop sur le firewall, … C’est déjà adapté au besoin, il suffit de faire confiance aux choix des développeurs. Et sinon, je fais mes propres choix (et modifications).
Sur Linux, tout est personnalisable et modifiable.Tellement qu’on peut aussi lui donner l’aspect strictement identique à XP, W7 ou MacOs !

L’important est de choisir l’outil adapté au besoin. Vous n’iriez pas utiliser un couteau à la place d’un tournevis, n’est ce pas ? De même, on n’utilise pas une distribution bureautique pour commander une machine numérique, même si c’est faisable.

Sachez aussi que la ligne de commande n’est plus obligatoire avec les distributions modernes de Linux, mais c’est un outil extrêmement puissant même s’il n’est pas toujours simple à maîtriser. Prenons l’exemple d’un ciseau à bois et d’une défonceuse. Il peut paraître plus simple d’utiliser la défonceuse (force, rapidité) et que le ciseau paraisse plus simpliste. Mais si le ciseau est bien affûté (angle, finesse) et bien utilisé (angle, force appliquée, sensations) on obtient le même résultat, voire mieux qu’avec la défonceuse. La ligne de commande est un outil (parmi d’autres) qui offre un large éventail de possibilités quasiment sans limite, une rapidité et une précision terrible. Mais il n’est pas obligatoire de savoir l’utiliser, d’autres outils sont présents pour l’utilisateur.

Vous trouverez plein d’informations sur le site des cousins de QuebecOS concernant toutes les distributions existantes : quebecos.com

3-LinuxCNC

LinuxCNC est un logiciel de commande de machine numérique. Pour fonctionner, il a besoin d’une chose particulière : un noyau en temps réel.
Il en existe plusieurs, mais ils intègrent toujours les lettres RT (pour Real Time) dans leur nom.

Sur un ordinateur, même si vous avez l’impression que plusieurs chose fonctionnement en même temps (le navigateur sur youtube, le son qui sort des enceintes, l’affichage, les frappes clavier, la commande de la CNC, …) sachez qu’en fait un ordonnanceur se charge d’effectuer les tâches les unes après les autres quitte à en mettre parfois en pause un temps, certes court, mais pouvant poser problème aux machines numériques. Si l’ordinateur est occupé à traiter l’arrivée d’un nouveau mail et ne voit pas le signal de fin de course de votre machine, que pensez vous qu’il va arriver ? Pensez vous que le système d’un 747 puisse mettre en attente une commande du pilote pour actualiser le plan de vol ? Ou que les freins de votre voiture soient en pause le temps de mettre à jour les stations de radio ? Même une micro seconde ?

C’est à ça que sert le noyau en temps réel, ne pas mettre d’opération en pause et les traiter quand elle arrivent. C’est pour ça aussi que la machine qui sert à la commande ne devrait pas faire autre chose pendant le fonctionnement, voire même servir à autre chose.
Windows n’intègre pas de noyau en temps réel, il faut donc un paramétrage très fin pour éviter les problèmes (désactiver les tâches planifiées, les mises à jour, les programmes en arrière plan, les services inutiles, …). Et même avec ça, le système lui même peut décider d’autres priorités que la commande de la CNC.

Si vous installez LinuxCNC sur un Linux qui ne tourne pas sur un noyau en temps réel, le logiciel ne fonctionnera qu’en mode démo, pour éviter qu’on vienne dire que ça ne fonctionne pas et qu’un accident ne se produise. C’est la raison pour laquelle il faut faire attention lors des mises à jour afin que le noyau ne soit pas remplacé par un autre plus récent mais pas en temps réel. Mais même si ça se produit, ce n’est pas insoluble, il suffit d’être guidé une fois pour résoudre le problème seul si ça vous arrive à nouveau.

LinuxCNC est le logiciel de commande, mais ce n’est pas lui que vous voyez, c’est AXIS qui lui sert d’interface. Il en existe d’autres, mais Axis est simple et paramétrable (bon, j’admets, personnaliser l’interface d’Axis n’est pas aussi simple que ça, mais de base elle est suffisante pour tout).
LinuxCNC est accompagné d’un assistant qui vous permet de paramétrer le logiciel en fonction de votre machine (vitesse d’avance maximale, accélération, limites, …) et une fois ceci réalisé, c’est fonctionnel. Il faudra certainement affiner certaines choses, mais ça fonctionne quasiment tout de suite !

Auparavant, LinuxCNC était basé sur Ubuntu puisque c’était la distribution montante que les gens connaissaient. Mais Ubuntu s’est mis à choisir d’installer de plus en plus de choses de base pour répondre aux besoins des utilisateurs et être universelle. Par conséquent, elle s’est éloignée des besoins en commande numérique. Ce n’est pas une critique, elle est destinée aux Linuxiens débutants ou ne voulant pas mettre les mains dans le système, donc moins destinée à une spécialisation telle que la commande CNC.

La dernière version de LinuxCNC est revenue à la base de Ubuntu, à savoir Debian dont la stabilité n’est plus à démonter. Une nouvelle version de Debian sort quand elle est prête, pas à une date définie. Il se passe parfois du temps, certains logiciels ne sont pas les plus récents, mais c’est éprouvé et donc stable. Et c’est ce qu’on recherche sur une commande numérique, pas d’avoir la dernière version de flash.
Comme l’ordinateur qui va commander la CNC doit être dédié à cet usage, il est encore plus simple d’installer LinuxCNC en même temps que le système. L’image basée sur Debian wheezy installe le système (Debian) sur un noyau temps réel, LinuxCNC et Axis, soit un système de commande complet.

4-Installation de Linux

Si vous désirez installer Linux sur votre poste de travail, je vous renvoie aussi sur le site de Ubuntu et son forum où vous trouverez toute la documentation et l’assistance nécessaire, J’y suis aussi sous un autre pseudo, mais moins souvent, le temps manque pour tout faire…

5-Essayer LinuxCNC

Téléchargez l’image iso d’installation à cette adresse :http://www.linuxcnc.org/binary.hybrid.iso

Gravez l’image sur un disque ou avec une clef usb bootable (demandez à google) et démarrez votre ordinateur sur ce support.

Une fois l’ordinateur démarré, vous obtenez l’image suivante qui vous demande quel système démarrer. C’est le premier qui nous intéresse pour tester si votre ordinateur pourra faire tourner le système,

demarrage
Appuyez sur Entrée, le système se lance, plein de choses blanches s’écrivent sur l’écran noir, n’en tenez pas compte en temps normal. Sachez que si le système ne peut pas démarrer, toutes ces choses écrites permettent de savoir ce qui se passe, et donc de dépanner pour arriver à l’interface. Je trouve ça beaucoup plus pratique que Windows qui cache tout ce qui se passe.

Le système se lance dans la mémoire de l’ordinateur et tout ce que vous ferez (sauf écritures sur les disques) disparaîtra lorsque vous éteindrez l’ordinateur.
Vous arrivez sur le bureau du système LiveCD. Cela vous permet aussi de tester le système (pas pour la commande de la CNC, hein, ça reste risqué même si c’est faisable tant que l’on ne profite pas de toute la mémoire en ayant installé le système).

bureau

Ne vous inquiétez pas, lorsque le système sera installé, tout sera en français de chez nous.

Testez ce que vous désirez, mais si vous arrivez sur le bureau, vous pouvez donc installer LinuxCNC.

6-Installation de LinuxCNC

ATTENTION : si c’est votre première installation, je vous conseille de le faire sur un ordinateur dédié n’ayant aucune donnée importante sur le disque, on va tout remplacer, y compris si un windows est installé sur l’ordinateur !
Il est parfaitement possible d’installer Linux en dual boot sur l’ordinateur, mais je vais rester dans le cas général, sur une machine dédiée.

Vous pouvez vous faire la main en l’installant dans une machine virtuelle, mais vous ne pourrez pas commander de CNC depuis celle ci.

Redémarrez l’ordinateur en cliquant sur la porte de sortie en haut à gauche et cliquez sur restart. Refaites ensuite un démarrage comme précédemment, puis sélectionnez Install(Graphical) avec les flèches et validez par entrée.

Un assistant d’installation va se lancer. Utilisez la souris et cliquez sur continuer à chaque fois.
– Choisissez la langue qui vous intéresse, la région et le clavier que vous utilisez.
– Donnez le nom que vous voulez à la machine (il vous propose debian par défaut)
– Indiquez le domaine ou laissez vide
– Donnez un login qui sera l’utilisateur de la machine (obligatoire), puis l’identifiant.
– Indiquez son mot de passe (obligatoire). Il servira pour l’administration par la suite.
– Indiquez le type de partitionnement. A moins de savoir ce que vous faites, choisissez la première option (assisté – utiliser un disque entier). Attention, tout ce qui est sur le disque sera perdu !
– Validez l’application des changements sur le disque.
– Laissez le système s’installer (environ 10 minutes). Redémarrez, et c’est tout !

Redémarrez, ne touchez à rien, et vous arriverez sur l’écran de connexion suivant :

connexion

Indiquez l’identifiant et le mot de passe choisi pour l’installation en validant à chaque fois.

Lorsque le système vous demande le paramétrage du premier tableau de bord, choisissez d’utiliser les paramètres par défaut.

7-Mises à jour

Dès la connexion, le système vous informe qu’il y a des mises à jour par une petite bulle en haut à droite, et par une icône de point d’exclamation dans un triangle rouge au même endroit.
Il faut bien sûr les faire, et nous allons voir comment.

Cliquez sur l’icone triangulaire. Il vous demande votre mot de passe, puisque nous allons modifier des choses sur le système lui même. Ça évite que n’importe qui fasse n’importe quoi, même si Rémi Gauillard vient rarement dans mon atelier.

Debian vous indique les mises à jour disponibles que vous allez pouvoir installer. Utilisez l’ascenseur pour les parcourir et vérifier qu’il ne va pas remplacer le noyau, cherchez donc linux-image ou linux-kernel. Normalement, cette version basée sur Debian ne vous proposera pas de changer le noyau par une version non RT, au contraire de la version sur Ubuntu.
S’il vous propose un noyau qui ne contient pas RT dans son nom, décochez la case correspondante. Ensuite, cliquez sur Install Updates pour installer les mises à jour. Le temps dépend du nombre de mises à jour, mais cela prend en général une quinzaine de minutes, c’est très rapide comparé à d’autres systèmes.
Quand des mises à jour seront disponibles, vous serez prévenu de la même manière.

L’interface graphique que vous voyez est basée sur Xfce qui a l’avantage d’être très légère en occupation mémoire tout en restant intuitive. D’autres interfaces sont plus légères encore, mais il faut prendre le temps de les découvrir pour les apprécier. La légèreté de l’interface laisse plus de mémoire disponible pour le système et la commande de la CNC, ce qui est le but recherché. Si vous voulez encore plus léger, renseignez vous sur OpenBox.

Vous avez désormais un ordinateur tournant sous Debian Linux qui vous donnera un aperçu de ce qu’on peut faire sous linux. Gardez en tête que cette version est destinée à faire fonctionner une CNC et que si vous n’arrivez pas à faire quelque chose (genre installer un jeu), c’est que vous n’êtes pas sur un système destiné à être un poste de travail. Tournez vous vers l’installation d’une Debian ou Ubuntu classique avant de décider que Linux ne fonctionne pas ou que c’est compliqué.

8-Paramétrage de LinuxCNC

Le paramétrage dépendra de la machine que vous avez à commander, c’est à vous de connaître les paramètres à appliquer. Je vais vous montrer celui correspondant à MA machine.

Allez dans le menu des applications en haut à gauche, placez vous sur le menu CNC et lancez le programme Latency Test permettant de connaître la latence de votre ordinateur. Celle ci dépendant de beaucoup de paramtètres, elle est propre à chaque ordinateur.
Cette valeur permettra à LinuxCNC de savoir à quel moment envoyer les commandes avant le moment voulu pour qu’elle arrive exactement quand il faut.
Commencez par faire un reset des statistiques puis utilisez abusivement l’ordinateur, déplacez des fenêtres à travers l’écran, surfez sur le web, faites tourner plein de programmes pour occuper votre PC. Notez ensuite la valeur la plus élevée de Max Jitter qui nous servira pour la configuration de LinuxCNC.

Si vous souhaitez commander un tour numérique, vous devrez ensuite utiliser LinuxCNC Pncconf Wizard, mais je m’arrêterai là pour l’aide à vous apporter n’ayant pas de tour.

Si vous avez une fraiseuse numérique, vous utiliserez LinuxCNC Stepconf Wizard. Il est en anglais, mais c’est assez simple à configurer.
Cliquez sur start à la première fenêtre pour commencer la configuration.
stepconf1

A partir d’ici, vous pouvez créer une nouvelle configuration (Create new configuration) ou modifier une configuration déjà existante (Modify a configuration).
Laissez les cases du bas cochées, cela vous créera une icône directement sur le bureau, ce qui sera plus pratique pour lancer Axis avec votre configuration. Cliquez sur Forward (suivant).

stepconf2

– Donnez un nom à votre machine (par exemple fraiseuse1)
– Sélectionnez le nombre d’axes que vous avez sur cette machine. Dans mon cas XYZ.
– Indiquez votre unité de mesure (inch ou mm)
– Indiquez vos drivers de moteur pas à pas. S’ils ne sont pas présents, choisissez Autre et renseignez – les champs nécessaires, les infos étant disponibles avec vos drivers.
– Dans base period maximum jitter, indiquez la valeur relevée précédemment, ou relancez le test en cliquant sur le bouton Test base period jitter.

stepconf3

Paramétrez les sorties du port parallèle. Les choix de droite permettent de paramétrer les entrées depuis la CNC vers le port parallèle, souvent utilisées pour les fin de courses, les origines ou l’arrêt d’urgence (pin 10 dans mon cas)

stepconf4

Laissez tel quel pour l’instant, cochez la case du bas pour qu’il vous informe à l’écran quand un changement d’outils est nécessaire.

stepconf5

Ici nous allons régler chaque axe de la machine. Indiquez le nombre de pas par tour de votre moteur (200 pour moi), les micropas du driver (16 dans mon cas), le rapport des poulies (1:1 s’il s’agit d’une vis), l’avance par tour de moteur (1,5mm dans mon cas).
La vitesse et l’accélération maximum sont à définir en cliquant sur le bouton Test Axis

stepconf6

Vitesse et accélération pourront (dans une certaine variation) être changées pendant le test. Utilisez les flèches du jog pour déplacer votre axe a mi-course.
Modifiez la valeur de test Area pour faire la moitié de la course de votre axe puis cliquez sur Run. L’axe va faire des aller retour sur la longueur que vous avez indiqué. Vous pouvez modifier la vitesse et l’accélération jusqu’au maximum où vous perdez des pas. Diminuez ensuite et gardez une marge de sécurité puis cliquez sur Valider. Les valeurs retenues sont copiées dans les champs correspondants.

Affinez les réglages sur toute la course de la machine pour vous assurer que tout va bien.
Si l’augmentation ou la diminution des valeurs pendant le test n’est pas assez importante (il bloque et on ne peut plus aller au-delà), validez et recommencez le test, la butée précédente devient la valeur de départ à faire varier. C’est difficile à expliquer, mais vous comprendrez en le faisant.
Entrez les dimensions de votre axe, l’emplacement des fin de courses si vous en avez défini à l’étape précédente et passez à l’axe suivant.

Effectuez la même chose pour tous les axes.

stepconf7

Sur la dernière fenêtre, vous pouvez régler la commande de broche. Je ne l’utilise pas et je ne serai pas d’une grande aide sur ce point. Rabattez vous vers google.

Validez la dernière étape et vous avez sur le bureau une icône qui s’appelle lancer le_nom_de_machine_choisi. Double cliquez dessus pour lancer Axis.

linuxcnc_machine

9-Utilisation d’Axis

Il se peut que vous ayez des messages d’erreur au démarrage. Comme c’est le premier lancement, n’en tenez pas compte et fermez les.

Axis

– Au lancement, la machine est en arrêt d’urgence (icône rouge en haut à gauche). Cliquez sur l’icone pour débloquer l’AU ou appuyez sur F1.
– La machine est arrêtée (deuxième icône en haut à gauche). Cliquez dessus pour activer la communication ou appuyez sur F2.
– Allez chercher votre fichier Gcode en faisant fichier/ouvrir ou directement la lettre O (comme Ouvrir). Un premier fichier gcode d’exemple est chargé au démarrage pour que vous puissiez faire des essais.

Placez votre nez de broche à l’endroit voulu en utilisant les flèches du clavier (gauche droite pour X, haut bas pour Y, page up/ page down pour Z). Une fois à la position désirée, cliquez sur le bouton POM des axes, en cochant l’axe à chaque fois. Pour vous déplacer en vitesse rapide, appuyez sur SHIFT(majuscule) avant d’utiliser les flèches de direction.

Vous pouvez vous déplacer dans la vue en cliquant dessus avec les boutons gauche, clic molette et droite de la souris, je vous laisse trouver comment ça fonctionne.

Naviguez dans les menus, si vous avez déjà utilisé une CNC, vous comprendrez à quoi ils servent. Si c’est votre première fois, faites des tests, mais soyez prudent.

Cliquez sur le bouton Play (la flèche bleue) pour lancer l’usinage.

Toute la doc de LinuxCNC en français se trouve ici :http://www.linuxcnc.org/docs/html/index_fr.html

Elle n’est pas forcément à jour mais elle est complète et répondra à toutes vos questions. Si ce n’est pas le cas, demandez de l’aide sur les forums ou utilisez google, c’est ainsi que j’ai démarré avec LinuxCNC et la CNC.

Votre machine est désormais une Debian wheezy faisant tourner le gestionnaire de fenêtres Xfce4. Utilisez ces mots clefs lors de votre recherche.

[Mémo] Désactiver la mise en veille sur un ordinateur portable

Portable ferméJ’ai eu besoin d’utiliser un ordinateur en tant que serveur (DHCP et fichiers) sur un réseau et, pour diverses raisons, j’ai préféré utiliser un ordinateur portable pour rendre ces services.

Cependant, la fermeture de l’écran mettait l’ordinateur en veille, et les services n’étaient plus rendus. Normal.

Pour désactiver ce fonctionnement qui est normalement désiré lors de l’utilisation en tant que poste de travail, il suffit d’aller modifier une variable dans un fichier.

Sur Ubuntu et Debian, éditez le fichier /etc/systemd/logind.conf , dé-commentez et modifiez la valeur de la ligne HandleLidSwitch.

Il suffit ensuite de mettre la valeur voulue pour le comportement désiré, dans le cas présent, ignore pour ignorer la fermeture de l’écran.

HandleLidSwitch=ignore

source: http://ubuntuhandbook.org/index.php/2013/12/change-behavior-when-lid-is-closed/

[Memo] Supprimer une règle Iptables

Lister les règles avec un numéro de ligne :
iptables -L INPUT -n --line-numbers

Supprimer une ligne particulière (avec le numéro de la colonne de gauche) :
iptables -D INPUT numeroDeLaLigneASupprimer

 

Source: http://nicolasolivero.wordpress.com/2010/01/24/supprimer-une-regle-iptables/

Désactiver l’environnement graphique sur Ubuntu Desktop

Une petite astuce rapide pour me rappeler comment désactiver le lancement de lightdm sur une machine qui n’a pas besoin d’environnement graphique permanent, sans avoir à désinstaller quoi que ce soit.

Dans /etc/default/grub, modifier la ligne

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

en

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"
puis lancer la commande sudo update-grub dans un terminal.

L’ordinateur démarrera désormais en mode texte, sans lancer lightdm. En effet, dans /etc/lightdm.conf, on trouve ceci:


# Check kernel command-line for inhibitors, unless we are being called
# manually
for ARG in $(cat /proc/cmdline); do
if [ "$ARG" = "text" ]; then
plymouth quit || :
stop
exit 0
fi
done

qui indique de quitter plymouth si le mot text est dans les arguments.

  • Il suffit d’effectuer l’opération inverse (supprimer le mot « text » du fichier de configuration de grub) pour réactiver le lancement graphique.
  • Une fois l’ordinateur démarré, il suffit de se logguer en console et de lancer la commande startx pour activer l’interface graphique.
  • Notez qu’il est possible de modifier les arguments de grub lors du menu de sélection en appuyant sur la touche « e » et de supprimer le mot « text » de la ligne adéquate pour lancer ponctuellement l’ordinateur avec l’environnement graphique automatique.

source: http://askubuntu.com/questions/16371/how-do-i-disable-x-at-boot-time-so-that-the-system-boots-in-text-mode

rsync par Cron: permission denied

J’ai été confronté à un étrange problème sur certaines machines en Ubuntu 12.04 (precise) pour lequel je vous livre ma solution de contournement. Ce n’est pas transcendant, mais ça fonctionne en attendant d’en savoir plus ou de trouver une autre solution.An_rsync_Primer

S.O.S.s.h.

J’ai des dossiers que je synchronise avec ou depuis un serveur distant en utilisant rsync, principalement pour faire des sauvegardes. Ces commandes rsync sont intégrées dans des scripts que j’utilise depuis plusieurs années sans problème. Pour pouvoir éviter les problèmes de droits, ces scripts sont lancés par le cron du root.
La commande qui nous intéresse est de cette forme:
rsync -avP dossier/local manu@serveur:/dossier/distant/ > /tmp/monlog.log 2>&1

Et le root peut se connecter au serveur sans mot de passe par échange de clef ssh.

Or, depuis quelques temps, impossible de faire la sauvegarde. Les logs contiennent quelque chose comme ceci:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]

Alors que lorsque le programme est lancé en root depuis un terminal, il fonctionne sans erreur! (Donc pas de problème de droits d’accès aux dossiers/fichiers)

Environnement variable ou Variables d’environnement

Le cron n’ouvre pas un véritable shell lorsqu’il lance une action programmée, et les variables d’environnement utilisées dans une console ne sont pas toutes présentes. C’est peut être l’une des raisons du problème.

Sur certains forums, on a parlé de SSH_AUTH_SOCK et de SSH_AGENT_PID, mais je n’ai pas réussi à les faire prendre en compte pour résoudre le problème…

Où est la clef?

Qu’importe, indiquons à ssh qu’on veut utiliser la clef qui nous permet de s’identifier sur le serveur

rsync -avP -e "ssh -l root -i /root/.ssh/id_rsa" dossier/local manu@serveur:/dossier/distant/ > /tmp/monlog.log 2>&1

Et? Pas mieux, toujours rejeté par le serveur…

Qui me parle ?

Comme les logs du serveur n’indiquaient pas d’informations utiles, il faut demander à rsync d’être plus bavard

rsync -avvvv -e "ssh -l root -i /root/.ssh/id_rsa" dossier/local manu@serveur:/dossier/distant/  > /tmp/monlog.log 2>&1

Du coup, ça donne quelques indications dans le log:

opening connection using: ssh -l root -i /root/.ssh/id_rsa -l manu serveur rsync --server -vvvvue.Lsf . /dossier/distant/
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).

Ahhhh! Pourquoi il me met un -l manu alors que je lui ai spécifié -l root ?
Eh bien je ne sais pas, mais c’est la source du problème: identifié en tant que manu, il ne peut donc plus accéder à la clef ssh du root.

Comme je suis vicieux et mauvais perdant, j’ai essayé d’accéder à la clef de manu:

rsync -avvvv -e "ssh -l root -i /home/manu/.ssh/id_rsa" dossier/local manu@serveur:/dossier/distant/  > /tmp/monlog.log 2>&1

Et ça marche! Parce que le root peut entrer partout et lire les clefs de tous les utilisateurs (et surtout parce que manu aussi peut s’identifier en ssh sur le serveur sans mot de passe)

Et les droits d’accès aux dossiers ? Pas de problème, c’est toujours root (par l’intermédiaire du cron) qui lit les fichiers, mais il n’utilise pas sa propre clef et se fait passer pour manu dans le rsync.

Carpe diem

Pour résumer:

  • Plein de personnes ont rencontré le même problème, mais aucune solution proposée n’a fonctionné pour moi
  • Tout se passe comme si rsync refusait d’utiliser la clef du root
  • On peut utiliser la clef de n’import quel utilisateur, tant qu’il peut accéder au serveur. Au besoin, créer un utilisateur dédié.
  • C’est pénible, il faut que je modifie mes scripts qui me permettaient d’unifier la méthodologie
  • Bug ou pas bug ? Je ne sais pas.
  • Résolu? Je ne suis pas sûr. J’aimerai comprendre pourquoi sur certaines installations ça fonctionne, et pas sur d’autres, d’autant que j’essaye d’avoir des configurations logicielles le plus identiques possibles pour en simplifier la gestion.

En tous cas, si vous avez des infos sur ce changement de comportement, ou sur le moyen de fonctionner à l’ancienne mode, n’hésitez pas à laisser une bafouille.

Nautilus: ouvrir avec le bon logiciel les extensions des programmes

Je sais, le titre n’est pas très clair, mais ça facilitera le travail aux moteurs de recherche…the-nautilus-ii-table-by-marc-fish-05

Il arrive que l’on ait installé des programmes générant des fichiers avec une extension propre à ces programmes, mais que l’accès direct (par double clic par exemple) ouvre le fichier avec un autre logiciel qui n’est pas celui escompté. Pourtant, le programme est bien installé et fonctionnel, mais l’association n’est pas effectuée correctement, et il n’est pas possible de la faire graphiquement.

Dans mon cas, j’ai installé sous Unity Qt4-designer qui fabrique des fichiers avec l’extension .ui mais qui est un programme prévu pour KDE. Or, quand je double clique sur le fichier .ui généré par le programme, c’est firefox qui s’ouvre pour me proposer de télécharger le fichier. Pourtant, dans le menu contextuel, ouvrir avec me propose bien Qt4-designer.

Qu’importe, me dis-je, il suffit d’aller dans les propriétés du fichier, onglet ouvrir avec, et de lui associer le bon logiciel. Sauf que le programme voulu (Qt4-designer) n’apparaît pas dans la liste!

Diable! Pourquoi?

Après quelques (heures de) recherches, c’est simple, encore faut-il le savoir. Le lanceur n’intègre pas la fonction d’ouverture de fichier, et par conséquent Nautilus ne l’affiche pas dans la liste des programmes disponibles.

Corrigeons cette erreur monumentale immédiatement.

Pour tous les utilisateurs du système

Éditez par le moyen de votre choix (avec sudo) le fichier /usr/share/applications/designer-qt4.desktop et modifiez la ligne indiquée ci dessous de

Exec=/usr/bin/designer-qt4

à

Exec=/usr/bin/designer-qt4 %f

Notez le « %f » qui indique que c’est le fichier transmis (celui sélectionné) qu’il faudra ouvrir. Il faudra peut être vous déloguer/reloguer pour que cela soit pris en compte, mais je ne suis même pas sûr que ce soit nécessaire. Retournez dans les propriétés du fichier .ui et vous devriez avoir le programme voulu dans la liste des choix disponibles.

Pour un utilisateur particulier

Admettons que je veuille que cette association ne soit valable que pour l’utilisateur manu. Il me suffit de copier le lanceur de qt4-designer dans le dossier ~/.local/share/applications et d’effectuer la modification indiquée ci dessus dans le fichier que je viens de copier.

cp /usr/share/applications/designer-qt4.desktop /home/manu/.local/share/applications/
gedit /home/manu/.local/share/applications/designer-qt4.desktop

Plus besoin du sudo dans le cas précis, puisque le fichier est dans mon dossier personnel. Ça fonctionne pour tous les logiciels et toutes les extensions, à condition qu’il existe un fichier .desktop dans le dossier des applications.

C’est une bricole, mais ça empoisonne la vie quand le comportement n’est pas celui attendu. En espérant que ça puisse vous servir.

Gérer les disques windows virtuels (virtualbox)

Lorsqu’on utilise windows, certaines opérations de maintenances sont obligatoires, en particulier la gestion de l’espace libre dans les machines virtuelles.vbox_logo2_gradient

En effet, Windows  (au moins sur XP, j’ignore ce qu’il en est exactement sur les autres versions, mais à l’usage, cela semble identique) préfère utiliser l’espace libre qui n’a pas déjà été utilisé. Si vous supprimez un fichier, l’espace disque qui lui était alloué est déclaré disponible, mais tant qu’il reste des zones du disque où rien n’a été précédemment écrit, Windows préférera utiliser celles ci. On peut voir ça comme un avantage permettant la récupération de fichiers effacés, mais dans une machine virtuelle, le disque virtuel enflera jusqu’à la taille maximum qui lui a été allouée en peu de temps sans que son contenu n’ait augmenté.

Ça n’est pas forcément gênant en soi, sauf quand on veut faire des sauvegardes du fichier vdi ou transférer le disque sur un autre ordinateur, puisque l’on va inutilement transférer des informations sensées être supprimées.

Cet article servira de pense bête afin de centraliser les commandes utiles. Pensez à effectuer toutes les sauvegardes nécessaires avant d’agir sur votre système, je ne suis pas responsable des problèmes que vous pourriez rencontrer! Les commandes sont données pour linux, mais ce sont les mêmes pour Windows, à vous d’adapter les chemins et de lancer celles ci depuis un terminal de commande.

1 – Vider le disque

Première chose à faire, dans la machine virtuelle, supprimer les cookies et les fichiers temporaires. Et en particulier les téléchargements d’installateurs de logiciels (qui peuvent être conséquents) et les dossiers temporaires qu’ils créent. Les moteurs de recherche vous indiqueront les dossiers concernés en fonction de vos logiciels.

Pensez aussi à vider la corbeille, en particulier de tous les utilisateurs. En effet, certains ne le font jamais et on retrouve parfois des gigas entiers de données inutiles dans celles ci.

2 – Défragmenter le disque

Une fois les fichiers inutiles supprimés, il faut défragmenter le disque pour récupérer encore un peu d’espace, mais surtout pour rassembler les fichiers. J’aime bien utiliser Auslogic disk defrag parce qu’il a une option pour optimiser les fichiers du disque et pour éteindre l’ordinateur une fois qu’il a fini, mais n’importe quel défragmenteur (y compris celui intégré à windows) peut faire l’affaire.

3 – Vider l’espace libre

L’espace libéré n’est pas encore complètement vide. Pour le vider complètement pour l’étape suivante, il faut remplir de zéros tous les emplacement libres. Vous pouvez utiliser nullfile ou les utilitaires de microsoft avec sdelete de la suite des sysinternals. J’utilise soit l’un, soit l’autre, indifféremment.

Avec sdelete, téléchargez le, extrayez le et copiez le dans C:\windows. Ouvrez ensuite un terminal, puis entrez la commande sdelete -z C:\ (l’option -z indiquant de mettre à zéro les blocs libres). Arrêtez ensuite la machine virtuelle.

4 – Compacter le disque virtuel

Pour compacter le disque virtuel, entrez la commande suivante:

vboxmanage modifyhd /chemin/vers/disque/disque.vdi --compact

C’est relativement rapide, selon la taille initiale du disque. Sur certains systèmes, le gain se compte en gigaoctets, donc c’est intéressant à faire avant de transférer le disque image lorsque le besoin se fait sentir. Cette opération ne laisse dans le disque que les blocs ne contenant pas que des zéros, d’où l’utilité de l’étape précédente.

5 – Augmenter la taille du disque

Si malgré les opérations précédentes vous êtes quand même à l’étroit dans votre windows, c’est sans doute quze vous aviez prévu un peu juste lors du choix de la taille du disque. Il est possible d’augmenter la taille du disque sans devoir tout réinstaller. Utilisez la commande suivante, par exemple pour augmenter le disque à la taille de 20Go:

vboxmanage modifyhd /chemin/vers/disque/disque.vdi --resize 20000

Adaptez bien sûr le chemin vers votre image disque et la taille désirée.

Il faut ensuite lancer votre machine virtuelle avec un live CD pour utiliser gparted afin d’agrandir la partition Windows à tout l’espace disponible pour qu’il puisse prendre en compte l’espace que vous venez d’ajouter. Le live CD gparted fonctionne bien.

Pensez que lorsque vous démarrerez votre windows, il fera une vérification du système de fichiers.

C’est fini, ou presque.

Deux dernières commandes pratiques que je saurais où retrouver.

Pour voir les machines virtuelles lancées, en ligne de commande (par exemple en SSH), et connaitre leur nom:

vboxmanage list runningvms

Pour arrêter une machine virtuelle en ligne de commande:

vboxmanage controlvm winxp2 poweroff (où winxp2 est le nom de la machine obtenue avec la commande précédente)

Voila, rien de bien original ou nouveau, mais toutes les commandes de bases dans un seul endroit me facilitera la vie.

Ransomware, ou prise d’otage informatique

prise-otageLes éditeurs d’antivirus rapportent actuellement la montée en puissance d’une forme récente de malware, baptisée ransomware. Ces nuisibles bloquent totalement l’accès au système d’exploitation d’un ordinateur et réclament une somme conséquente pour libérer les données.

Avec les ransomwares, l’infection est la plupart du temps réalisée via une faille provenant d’un logiciel non mis à jour. Un document PDF, Word ou Excel est adressé au destinataire par e-mail. En voulant l’ouvrir, le destinataire fait planter le logiciel associé. Le code stocké dans le document est alors activé et télécharge et installe le ransomware en question.

Lire l’article complet sur http://www.futura-sciences.com/fr/news/t/informatique/d/ranconner-les-internautes-lattaque-malware-a-la-mode_43225/

Notez que si vous avez linux en dual boot sur l’ordinateur et que le MBR est corrompu, la réinstallation du MBR depuis un live CD, exactement de la même manière qu’après une installation de windows, permet de relancer la machine. Windows ,n’est pas dévérolé pour autant, il faudra s’en occuper, mais linux redevient accessible.

En tout cas pour ce qui concerne les 2 machines dont j’ai dû m’occuper aujourd’hui.

Faire un miroir avec apt-mirror de raspberry.org

Je ne vais pas vous réexpliquer comment faire un miroir local, mais comment arriver à faire un miroir pour le raspberry Pi.

Si vous essayez d’utiliser apt-mirror sur une version plus ancienne que Quantal, vous aurez une erreur disant que apt-mirror ne peut localiser le dépôt arm (binary-arm/Packages.gz). Or, il devrait chercher armhf (binary-armhf/Packages.gz)!

Il suffit d’aller modifier /usr/bin/apt-mirror avec un éditeur quelconque pour modifier la ligne 269 ainsi:

remplacer

if($config_line =~ /deb-(alpha|amd64|armel|arm|hppa|hurd-i386|i386|ia64|lpia|m68k|mipsel|mips|powerpc|s390|sh|sparc)/) {
par

if($config_line =~ /deb-(alpha|amd64|armel|armhf|arm|hppa|hurd-i386|i386|ia64|lpia|m68k|mipsel|mips|powerpc|s390|sh|sparc)/) {

en fait, on rajoute armhf avant arm, afin qu’il ne s’arrête pas sur la première correspondance, qui serait incomplète.

Sauvegardez, et ajoutez ensuite dans le fichier /etc/apt/mirror.list la ligne suivante:

deb-armhf http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi

Il ne vous reste plus qu’à lancer apt-mirror pour créer votre miroir local et accélérer le téléchargement des paquets de votre Raspberry Pi.

Raspberry Pi première approche

Après avoir en main le raspberry, je me suis empressé de l’installer et cet article me servira de notes centralisées.

1- Support Quick and Dirty pour la carte

La carte livrée sans boîtier ne pourrait pas résister longtemps à mon environnement de travail extrèmement bien organisé sur mon bureau : vis qui trainent, tournevis posés n’importe où, caches métalliques des boitiers pour les cartes filles, fils qui sont reliés à des choses inconnues jusqu’à ce que ce produisent de magnifiques petits arcs électriques fort agréables en cette période de fêtes, … Bref un bureau de travail, même si j’exagère un peu.

Bon, c’est une carte de test, donc un vrai boîtier n’est pas nécessaire pour l’instant, mais la carte doit être protégée un minimum.

Voyant les deux trous, j’ai pensé à utiliser les entretoises de carte mère en plastique, celles dont on ne sert plus depuis longtemps. Sauf que les miennes ne sont pas autocollantes.

Bien sûr, comme les trous du Raspberry ne sont pas assez gros, un petit coup de foret de 3,5 plus tard, ça fonctionne. Et pour de la stabilité, parce que deux pieds ne sont pas suffisant pour assurer la stabilité de la bête, une carte de crédit (périmée) quelconque et un peut de colle, et le tour est joué!

Ne reste plus maintenant qu’à brancher.

2- Installation du système

J’ai suivi les indications de cette page: http://route63.free.fr/blog/?p=1873

3- A suivre…

Note: je m’intéresse aussi fortement à ceci et cela

Clonezilla: résoudre l’erreur « not a mounting point »

Clonezilla est un système très pratique permettant de prendre l’image d’un système et de la réinstaller sur un autre ordinateur (ou sur le même). Je m’en sers régulièrement avant des manipulations dangereuses pour le système, pour avoir la certitude de pouvoir revenir à l’état initial au besoin. Ou pour transférer un système vers un autre disque.

Je sauvegardais mes images sur le réseau, à l’endroit proposé par défaut dans le live CD, sur /home/partimag. Mais la partition home devenant remplie, j’ai déplacé les sauvegardes dans un nouveau disque sur le serveur, et j’ai créé un lien de /home/partimag pointant vers /stockage/partimag.

Erreur. Depuis ce jour, le message  « Clonezilla image home directory /home/partimag is not a mounting point! Failed to mount other device as /home/partimag! » venait gâcher le plaisir que j’avais à utiliser ce logiciel, sans trop savoir pourquoi.

La réponse est que sshfs a des problèmes avec les liens symboliques et qu’il n’arrive pas à accéder au contenu du lien. La solution consiste à monter le dossier des sauvegardes de partimage à l’endroit attendu avec la ligne de commande suivante dans le fstab

/stockage/partimag /home/partimag auto bind 0 0

Assurez vous de créer le dossier /home/partimag puis montez le dossier des sauvegardes au bon endroit avec
mount -a
L’utilisation de clonezilla redevient identique à celle d’avant, et surtout fonctionnelle.

Quand à savoir pourquoi tenir à utiliser /home/partimag au lieu de taper l’adresse du dossier de sauvegarde, c’est qu’il est plus simple de taper sur entrée que de taper le chemin quand le clavier est accidentellement en qwerty…

D’ailleurs, j’aimerais modifier le liveCD afin d’intégrer mes clefs et personnaliser certaines opérations, mais je n’arrive pas à faire quelque chose de fonctionnel. Si vous avez des pistes ou des tutos (autre que celles du site de clonezilla), je suis intéressé.

Hémiplégie

Joies et mystères de l’informatique….

Une utilisatrice m’appelle pour me dire que son poste est bloqué et qu’elle ne peut plus rien faire. Elle a beau cliquer sur les boutons de son logiciel, rien ne se passe. Par conséquent, elle a envoyé plusieurs résets à la machine qui a redémarré à chaque fois, mais elle ne peut rien faire.

Bon, me dis-je, la souris est morte, ou le système se fige, allons voir ce qu’il en est.

Le poste fait tourner une ubuntu 12.04, ce qui me permet en arrivant de me connecter en console, de voir que le système n’est ni occupé ni chargé, qu’il reste de la place sur les disques durs et que le bon utilisateur est loggué (login automatique) graphiquement.

Retour sur l’interface graphique, la souris déplace correctement le curseur, mais pas de clic. Impossible de lancer quoi que ce soit à la souris, mais le clavier est OK. Puis je me rends compte que le clic droit est fonctionnel, mais pas le clic gauche.

Problème identifié, changeons de souris. J’en sors une de la réserve, je la branche sur un autre port USB en façade et…pas de miracle, mêmes symptômes. Pourtant la souris est neuve! Je vais la tester sur un autre ordinateur, et pas de problème. De retour sur celui ci, rebelotte.

Inferni propter, me dis-je, il y a un problème avec le système, une mise à jour foireuse ou un réglage modifié. Testons le tout en live CD pour en être sûr. Et le problème est identique avec un système live…

Habituellement, la souris fonctionne, ou elle ne fonctionne pas. Mais quand elle ne fonctionne pas, c’est rien: pas de déplacement de curseur, pas de clic quel qu’il soit.

Donc je me met à soupçonner le matériel lui même, bien que si le port USB reçoit les déplacements de la souris, il devrait recevoir les ordres de clic, quels qu’ils soient.

Je m’arrête donc pour réfléchir en ignorant la pression de l’utilisatrice qui veut savoir pourquoi son poste n’est plus utilisable et je trouve la solution en une minute.

Et vous, auriez vous trouvé? Je vous laisse quelques jours pour donner votre solution, dire si j’ai fait une erreur, et laquelle, et ensuite je vous dirais ce qu’il en était.

Un indice: non debet operari in emergency.

Ubuntu-tweak est mort. Vive ubuntu-tweak?

Le logiciel bien connu de customisation d’Ubuntu, à mon avis vital depuis le passage à Unity, n’est plus.

L’auteur vient d’annoncer aujourd’hui sur son blog arrêter le développement de ce logiciel. S’il ne donne pas de raison particulière, il dit que ce projet commencé dans l’enthousiasme le rend désormais malheureux et que « si faire du logiciel libre n’est plus gratuit, pourquoi continuer à en faire? » .

C’est vraiment dommage à mon avis.

Le logiciel fonctionne toujours pour la partie customisation, au moins jusqu’à la 12.10, mais l’onglet Application ne fonctionnera plus, vu qu’il s’agissait d’un web service.

Ceci dit, comme tous les projets open source, rien n’empêche qu’il renaisse prochainement de ses cendres, repris par une autre communauté. Longue vie à Ubuntu-tweak et merci au développeur.

Mise à jour: au vu des messages de soutien, l’auteur a décidé de reprendre le développement.

greemote et Ubuntu precise 12.04

greemotegreemote est une application très pratique pour commander sa freebox depuis son PC. Malheureusement, l’installation sur 12.04 ne fonctionne pas, le lancement provoque l’erreur suivante:

Traceback (most recent call last):
File "/usr/bin/greemote", line 4, in <module>
import libgreemote.greemote, socket
ImportError: No module named libgreemote.greemote

Mais on peut résoudre le problème!

Téléchargez l’archive libgreemote.tar.gz et copiez la dans /tmp/

Ensuite, exécutez les commandes suivantes:

sudo cp /tmp/libgreemote.tar.gz /usr/share/pycentral
cd /usr/share/pycentral
sudo tar xvfz libgreemote.tar.gz

Enfin, il ne reste plus qu’à modifier le programme afin qu’il trouve ce qu’il cherche et qu’on vient de ranger

sudo gedit /usr/bin/greemote

et remplacez le contenu par

#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
sys.path.insert(0, "/usr/share/pycentral/")
import libgreemote.greemote, socket
def main():
    print "Télécommande pour Freebox HD."
    socket.setdefaulttimeout(5)
    libgreemote.greemote.greemote()
if __name__ == '__main__':
    main()

Lancez, et ça devrait fonctionner!

Déplacer les base mysql sur Ubuntu

J’ai voulu déplacer des bases mysql pour les placer sur une autre partition, mais sur Ubuntu, il ne suffit pas de déplacer les bases pour pourvoir relancer le serveur, même en ayant modifié le fichier my.cnf.

L’erreur était la suivante dans le fichier /var/log/mysql/error.log

/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
120902 16:57:07 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
120902 16:57:07  InnoDB: Initializing buffer pool, size = 8.0M
120902 16:57:07  InnoDB: Completed initialization of buffer pool
120902 16:57:07  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

J’ai heureusement trouvé la solution sur La case de l’oncle tom après avoir beaucoup cherché mais en n’ayant trouvé que des suggestions non fonctionnelles pour mon problème.

Le problème vient de apparmor qui ne considère pas le nouvel emplacement comme fiable. Il suffit donc de modifier le fichier /etc/apparmor.d/usr.sbin.mysqld comme indiqué pour pouvoir relancer mysql.

Pourtant, comme le dit Daniel, le fichier my.cnf comporte bien l’avertissement suivant:

# * IMPORTANT
#   If you make changes to these settings and your system uses apparmor, you may
#   also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.

Comme quoi, vouloir aller trop vite pour gagner du temps et se jeter sur le net n’est pas toujours la bonne solution…

Note a moi même: prendre l’habitude de lire les commentaires des fichiers de configuration, ça peut aider.

Source: La case de l’oncle tom

SSHplus: le SSHmenu pour unity

S’il est un outil dont je ne pourrais me passer et qui freinait considérablement mon passage à unity, c’est bien sshmenu. Une fois paramétré, j’ai sous la main en quelques clics l’accès ssh aux machines que je gère.

Autant lorsqu’on n’en a que quelques unes ça peut rester gérable à la main, autant quand on en a plus d’une trentaine, c’est impensable de ne pas utiliser un outil dédié.

Malheureusement, sshmenu ne fonctionne pas avec unity. Heureusement, il existe un autre logiciel qui permet de faire la même chose et même plus, c’est SSHplus.

Le seul petit point négatif, c’est que le paramétrage se fait pour l’instant en éditant le fichier de configuration, pas avec une interface graphique. Gageons cependant que ce n’est qu’une question de temps avant que ce ne soit corrigé.

Les fonctionalités

  • Lance SSH, rdesktop, et presque n’importe quelle commande ou application
  • Compatible avec le menu de configuration de sshmenu
  • Supporte les dossiers imbriqués (mais pas encore ceux importés depuis sshmenu)

Je n’ai pas testé l’import depuis le fichier de configuration de sshmenu puisque j’en ai profité pour faire du rangement dans mes entrées, et j’ai réécrit le fichier de configuration, ce qui m’a permis de me faire la main sur son fonctionnement.

Installer SSHplus

  • Téléchargez la dernière version sur le repo github
  • Copiez le dans /usr/local/bin
  • Ajoutez lui les droits en exécution par un chmod +x /usr/local/bin/sshplus.py
  • Lancez sshplus.py ou mettez le dans vos applications au démarrage
  • Éditez le fichier de configuration ~/.sshplus comme indiqué ci dessous

La configuration

Quelques infos rapides avant de commencer:

  • Les lignes commençant par le caractère # sont ignorées (commentaires). Ne placez pas de commentaire à la suite de lignes indiquant des commandes
  • Les espaces en début de ligne sont ignorés. Vous pouvez indenter pour que le fichier soit plus clair
  • Les lignes vides sont ignorées (il n’y en a pas dans mon fichier d’exemple à cause de wordpress qui ne sais plus reconnaitre la fin du code)
  • L’instruction sep ajoute un séparateur dans le menu

Les instructions du fichier de configuration ~/.sshplus

C’est très simple, elles se présentent sous la forme NOM | COMMANDE | ARGUMENTS. Ainsi, pour ouvrir un terminal avec la commande « top », il suffit d’ajouter l’instruction suivante:

Afficher top|gnome-terminal|-x top

Pour lancer firefox sur le site des astuces d’absolacom:

Astuces d'Absolacom|firefox|http://astuces.absolacom.com

Accéder à un dossier local (la structure est la même utilisée dans le fichier ~/.gtk-bookmarks)

Dossier temporaire|nautilus|file:///tmp

ou distant

Dossier distant|nautilus|sftp://manu@192.168.10.214

A partir de là, vous voyez que c’est simple de faire ce qu’on veut. Ne reste plus qu’à savoir quoi y mettre, mais si on ne trie pas, c’est vite le bazar et il est impossible de s’y retrouver.

Menus et Sous menus

On peut heureusement créer des sous menus de façon aussi simple: il suffit d’utiliser l’instruction folder:label pour donner un nom à votre dossier, et l’instruction folder: pour remonter d’un niveau et « fermer votre dossier ».

Exemple de fichier de configuration

Je vous donne ci dessous un exemple de fichier de configuration ((fichier fourni par le développeur et adapté par mes soins)). Attention, rien n’est fonctionnel dans le sens ou les adresses et les identifiants sont fantaisistes. A vous d’adapter à votre besoin.

# Lanceurs d'application dans un dossier
folder:Applications
Show top|gnome-terminal|-x top
Dossier distant|nautilus|sftp://manu@192.168.10.214
# Un sous dossier
folder:Absolacom
Astuces d'Absolacom|firefox|http://astuces.absolacom.com
folder:
folder:
#sep ajoute un séparateur
sep
# label: Ajoute un label aux menus
label:Connexions SSH
SSH server1|gnome-terminal|-x ssh root@google.com
SSH server2|gnome-terminal|-x ssh -p 456 manu@192.168.10.23
sep
# Utilise rdesktop pour se connecter à des postes windows
label:Connexions RDesktop
Win-Server 1|rdesktop|-T “Win-Server 1″ 1.2.3.4
Win-Server 3 (with many arguments)|rdesktop|-g 1320×680 -T “Win-Server 3″ -x l -P -r sound:local 1.2.3.6
sep
label:Connexions Putty
# PuTTY
PuTTY-Session 1|putty|-load SavedSession1
PuTTY-Session 2|putty|-load SavedSession2
#Si un fichier de connexion sshmenu est présent, il sera ajouté automatiquement

Comme vous le voyez, c’est simple d’usage et tellement pratique.

Edit du 24/08/12

Je modifie cet article pour apporter deux petites informations.

Tout d’abord, si vous mettez un underscore dans le nom de votre raccourci, vous pourrez avoir un accès rapide en appuyant sur la lettre correspondante. Par exemple, prenons la ligne PuTTY-Session 2|putty|-load SavedSession2 du fichier ci dessus, si je la note Pu_TTY-Session 2|putty|-load SavedSession2 dans mon fichier de configuration, je pourrais lancer ce raccourci en appuyant sur la touche « T ». Pas primordial, mais pratique, d’autant que je n’ai trouvé cette info nulle part, mais en bidouillant.

Ensuite, j’ai eu besoin de transformer un fichier de conf de sshmenu vers sshplus avec des dizaines d’entrées. Impossible d’utiliser le fichier d’origine dans sshplus, il ne me le prenait pas. Étant donné qu’il n’était pas question que je refasse tout à la main dans le cas présent, j’ai écrit un petit programme python pour le convertir. Il fonctionne comme suit en ligne de commande:

  • Sans argument, il va chercher le fichier ~/.sshmenu. S’il ne le trouve pas, le programme s’arrête.
  • En précisant sur la ligne de commande le chemin vers le fichier à transformer on peut préciser le fichier à utiliser. S’il ne le trouve pas, le programme s’arrête.
  • Le résultat converti est affiché dans le terminal. Une fois validé, on peut le rediriger vers un fichier (en général ~/.sshplus)
  • Le programme essaye de récupérer l’organisation des sous dossiers de sshmenu, mais il a des soucis avec les sous-sous-sous-…dossiers. Au pire, il ne vous restera plus qu’à placer les « folder: » au bon endroit. C’est plus rapide que de le faire manuellement quand on a beaucoup d’entrées.

Téléchargez le fichier sshmenu2sshplus , renommez le en « .py » ((wordpress ne me laisse pas les monter en py)), rendez le exécutable et lancez le en lui précisant l’emplacement vers votre fichier .sshmenu, et redirigez la sortie vers votre fichier sshplus. Par exemple:

./sshmenu2sshplus.py /tmp/.sshmenu >> ~/.sshplus

Unity et le dual screen

C’est rien, mais j’ai cherché quelques minutes avant de trouver ce qui était sous mon nez…

Quand on active le dual-screen, il faut désormais se poser la question de savoir sur quel écran on désire le lanceur. Sur les deux? Celui de gauche? Celui de droite?

Ceci dit, si vous ne vous posez pas la question, un petit détail va vous faire rager rapidement: le passage d’un écran à l’autre est gêné par un ralentissement de la souris dû aux bords collants. Grrr!

Bon, c’est tout simple et il faut lire les fenêtres, même quand on croit les connaitre.

Dans le réglage d’affichage, sélectionnez l’écran sur lequel vous voulez le menu et si vous désirez les bords collants.

Ubuntu: system halted ou le poste ne s’éteint pas

L’ordinateur ne s’éteint pas

J'ai dit halte!
Depuis ubuntu 11.04 ((il me semble)), un problème récurent se produit: lors d’une demande d’arrêt, le poste reste sous tension et un message indique laconiquement:

*Will now halt
[...] System halted

C’est d’autant plus embêtant que parfois la commande entrée manuellement dans un terminal fonctionne sans provoquer ce problème, mais que dans un script ou avec certains logiciels, le système ne se coupe pas. Et si le système n’est pas coupé, impossible de démarrer les postes par wake on lan!

J’avais écrit à ce sujet en donnant une solution de contournement qui ne fonctionnais pas systématiquement non plus…

A noter que ce problème apparait lors d’une mise à jour ou d’une installation neuve, quelle que soit la distribution basée sur ubuntu (voyager, mint, Xubuntu, …)

Je suis tombé sur l’explication de Steve Langasek (vorlon) sur bugs.launchpad qui éclaire ce problème:

Ok, j’ai travaillé à ma façon sur toutes les formes de ce bug maintenant, et je dois conclure que ce comportement ne peut pas / ne devrait pas changer.

– La commande «shutdown» a trois options: « -h » (arrêt ou mise hors tension), ‘-H’ (arrêt), et «-p» (hors tension).
– La commande «halt» fait référence à -H,  par défaut.
– La commande «poweroff» fait référence à -p, par conception.
– La configuration de /etc/default/halt affecte *uniquement* le comportement lorsque ni -H ni -P n’a été spécifié.
– Il n’y a pas moyen de faire «halt» correspondre par lui-même à «poweroff», sans qu’il soit impossible de faire un véritable «arrêt».
– Ce sont toutes des options standard qui ne devraient pas être changé.

Donc, je ferme ce rapport de bug comme «wontfix». Le comportement actuel est incompatible avec le comportement arriviste précédent, mais ce comportement était bogué. Le comportement actuel est correct, et je crains que les gens vont juste devoir apprendre que «halt» ne signifie pas ce que vous avez été amené à croire que cela signifie.

Si vous voulez que le système se coupe, vous avez besoin pour fonctionner soit de « shutdown -h now», «halt -p», ou «poweroff». Toutes ces trois commandes fonctionnent. «halt -p» est la plus courte et probablement la plus compatible avec la mémoire musculaire existante.

Même si le ton est un peu hautain à mon goût ((pour les pauvres utilisateurs perturbés que nous sommes, et vraiment nombreux au vu des pages complètes de google à ce sujet)) , il est logique de comprendre que « halt » arrête le système informatique ((ce qu’il fait d’ailleurs très bien comme le prouve le message « system halted »)) et que « poweroff  » coupe l’alimentation matérielle.

Le problème est que pendant des années nous avons appris à utiliser « halt » plutôt que « shutdown -h » ou « poweroff » et qu’il nous semble que ce nouveau comportement est un bug, alors que c’est l’ancien comportement qui était anormal. Il va falloir commencer à changer certaines habitudes…

On peut contourner ce comportement en modifiant les aliases (alias halt= »halt -p ») mais c’est à faire pour tous les utilisateurs et ne fonctionne pas pour les scripts ou programmes qui ne lancent pas un shell.

De plus, sur la 10.04, vous constaterez que « halt » est un lien vers la commande « reboot »… D’autant plus surprenant que « reboot » fonctionne…

Eteindre ubuntu ET l’ordinateur

Note: la solution proposée par chmd dans les commentaires est en effet plus propre et conseillée.

Je me trouve confronté à des logiciels écrits il y a quelques années qui font appel à la commande halt et à qui je peux difficilement expliquer ((pour diverses raisons…)) que c’est une mauvais habitude, mais une solution de comportement existe en interceptant la commande halt et en la renvoyant vers poweroff

  • renommez la commande halt en autre chose

sudo mv /sbin/halt /sbin/haltorig

  • Créez un programme /sbin/halt qui fera appel à « poweroff » ou « shutdown -h now »

#!/bin/sh
/sbin/poweroff

puis sudo chmod +x /sbin/halt

On retrouve ensuite un comportement « normal » ((le comportement attendu, à savoir une coupure propre, même s’il vaudrait mieux prendre la bonne habitude immédiatement)) du système.

Depuis quelques jours que je teste cette modification, je n’ai remarqué aucun effet de bord, ni graphiquement, ni sur le fonctionnement des autres programmes. À part que c’est un bonheur de pouvoir à nouveau éteindre ses machines par cron ou ssh et de pouvoir les relancer par WOL.

J’ai pensé que vous trouveriez cet article utile ;oD

Equivalent à CHKDSK sous Linux

Il est bien évident qu’à choisir un système de fichier mon choix premier ne se porterait pas sur les formats Microsoft. Cependant, l’interopérabilité fait que le choix ne nous est pas forcément disponible.

Surtout quand on me transmet un disque externe  en me disant « Tiens, voilà la sauvegarde, prends en soin c’est la seule » et que je me rends compte que le système de fichier est dans les choux… ((d’ici à ce qu’on vienne dire que c’est parce que j’ai osé le brancher sur un Linux, il n’y a qu’un pas qui a déjà été franchi depuis longtemps!)).

Sueurs froides, tremblement, méditation et incantations :d plus tard, voici ce que ça donne.

Partitions FAT

Certains appareils (lecteur DVD, décodeur TNT, autoradio ou systèmes propriétaires) n’acceptent que les lecteurs externes au format VFAT. Or, quand il y a des problèmes sur la partition et qu’on veut la corriger, c’est dommage de ne garder un windows que pour ça.

Heureusement, le paquet dosfstools possède la commande dosfsck qui permet de le faire:

sudo dosfsck -a -t -w /dev/sdc1

Cette commande va nous permettre de vérifier le disque /dev/sdc1 en réparant automatiquement les erreurs sans confirmation (-a), en marquant les mauvais secteurs comme tels (-t) et en le faisant immédiatement (-w). Vous pouvez aussi ajouter les options -n (à la place de -w) pour simplement tester, -l pour afficher la liste des fichiers traités et -v pour avoir plus de sortie à l’écran.

Démontez votre disque sans le retirer avant de lancer la commande, mais dans les cas où je l’ai utilisée, le disque ne montait pas de lui même.

Partitions NTFS

Je n’ai pas trouvé de commande permettant de le faire. Si vous en connaissez une, je suis preneur.

La commande ntfsfix du paquet ntfsprogs permet de faire certaines réparations simples, mais pas une véritable vérification. Comme le dit le man:

ntfsfix est un utilitaire qui permet de résoudre certains problèmes NTFS communs. ntfsfix N’EST PAS une version Linux de chkdsk. Il répare seulement certaines incohérences fondamentales du NTFS, réset le journal NTFS et programme une vérification du système de fichiers au prochain boot de Windows.

Cependant, on peut s’en sortir sans avoir windows installé, simplement avec le CD d’installation (exemple pour XP) ((même si ça pique les yeux, tout ce bleu)):

  • démarrez un ordinateur où le disque est branché depuis le CD d’installation
  • Dans les choix qui vous sont donnés, choisissez R pour réparation
  • Quand vous êtes dans la console de réparation, lancez la commande CHKDSK C: /R. Si un seul disque est présent, vous pouvez omettre de le nommer.

Si vous n’avez pas le CD d’installation de windows, vous pouvez télécharger Revovery Console (RC.iso) fourni par The computer paramedic qui contient des outils de réparation et l’utiliser comme dans la méthode donnée ci dessus. Notez que si vous avez eu un ordinateur sans CD d’installation, il est utile de le télécharger pour l’avoir sous la main, y compris pour réparer le MBR

Pour Vista et Seven, la méthode est approximativement la même, même si elle n’apporte rien de plus. Démarrez avec votre DVD d’installation et adaptez la méthode à ce qui vous est proposé. Vous pouvez aussi consulter cette page même si l’accès aux consoles de réparation est devenu payant pour des problèmes de licences Microsoft ((Obligé de payer des licences à Microsoft pour permettre de réparer leur système… Comme quoi c’est un business de leur part, pas un bug. Encore un bonnet d’ÂNE mérité.)) depuis Aout 2011.

Konica Minolta Bizhub 350 et cups

Après avoir encore une fois perdu du temps à retrouver comment le faire fonctionner, je le note pour pouvoir le retrouver.

Ensuite, ça fonctionne en utilisant le premier driver de la catégorie KONICA MINOLTA (je ne l’ai pas noté…)

A noter que cela est valable pour tous les modèles de la liste suivante:

  • bizhub 7222, 7322, 7228, 7235
  • 7145
  • 7155, 7165, Force 65
  • 7255, 7272
  • 7075, Force 75
  • 7085, Force 85
  • bizhub PRO 1050/1050P
  • bizhub 350/250/200
  • bizhub 500/420/360
  • bizhub 501/421/361
  • bizhub 750/600
  • bizhub 920/PRO 920
  • bizhub C250/C250P
  • bizhub C252
  • bizhub C351
  • bizhub C352/C352P/C300
  • bizhub C353/C353P/C253/C203
  • bizhub C450/C450P
  • bizhub C451
  • bizhub C650/C550
  • magicolor 8650

Utiliser wget pour télécharger un site entier

C’est plus un pense bête qu’une astuce, et ça m’évitera de chercher encore une fois.

Pour l’anecdote, j’ai scripté cet usage afin de garder une copie de sauvegarde d’un site hébergé chez le prestataire d’un client qui a des « problèmes » avec celui ci. En cas de…je ne sais pas, mais au cas où, j’ai une copie de sauvegarde permettant une reprise sans avoir à tout recréer de zéro (images, mise en page, css,…). Et j’ai ainsi l’évolution des modifications sur les x derniers jours (une sorte de google cache en local)

Si vous voulez télécharger un site entier, peut être pour le visiter off-line, wget peut le faire . Par exemple:

$ wget \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --restrict-file-names=windows \
     --domains website.org \
     --no-parent \
         www.website.org/tutorials/html/

Cette commande va télécharger le site  www.website.org/tutorials/html/.

Les options sont:

  • –recursive: télécharge le site web entier.
  • –domains website.org: ne suit pas les liens pointant hors du domaine website.org.
  • –no-parent: ne suis pas les liens pointant hors du dossier tutorials/html/.
  • –page-requisites: récupère tous les éléments qui composent la page (images, CSS et cie).
  • –html-extension: enregistre les fichiers avec l’extention .html.
  • –convert-links: convertit les liens afin qu’ils fontionnent localement (off-line).
  • –restrict-file-names=windows: modifie les noms de fichiers afin qu’ils fonctionnent aussi sur Windows.
  • –no-clobber: n’écrase pas les fichiers déjà existants (utilisé en cas de téléchargement interrompu et repris).

Il peut aussi être important d’ajouter les options --wait=9 --limit-rate=10K qui éviteront de surcharger le serveur qui vous fournit les pages et d’éviter, éventuellement, de vous faire blacklister par un admin un peu pointilleux.

  • –wait=X : attend X secondes entre chaque téléchargement
  • –limit-rate=XK : limite la bande passante utilisée à X Ko/s

Utiliser ces options permet plus de souplesse que de simplement utiliser l’option -m (mirror).

Notez que wget existe aussi sous windows.

source: http://www.linuxjournal.com/content/downloading-entire-web-site-wget