mardi 28 août 2012

Linux Mint Cinnamon & wifi

Hier soir j'ai désactivé le Wifi dans la widget près de l'heure. Impossible de le réactiver, même un redémarrage ne fonctionne pas ! La fenêtre "Réseau" dans les préférences montrait un bouton où le mode avion était activé et rien n'y faisait, impossible de rétablir le wifi !! En attendant la réparation du bug...
$ rfkill list
0: hci0: Bluetooth
 Soft blocked: no
 Hard blocked: no
1: sony-wifi: Wireless LAN
 Soft blocked: yes
 Hard blocked: no
2: sony-bluetooth: Bluetooth
 Soft blocked: no
 Hard blocked: no
3: phy0: Wireless LAN
 Soft blocked: yes
 Hard blocked: yes
$ rfkill unblock 1
$ rfkill unblock 3

lundi 27 août 2012

Linux Mint Cinnamon & Samsung ML-1865

Impossible de faire fonctionner mon imprimante (une Samsung ML-1865) sur mon Sony SVS-1311 où j'ai installé un Linux Mint 13 Cinnamon.

L'imprimante était détectée  sur le réseau mais le modèle indiqué dans le panneau Imprimantes était Samsung ML-1750

Les impressions partaient mais les feuilles sortaient...
INTERNAL ERROR - Please use the proper driver
POSITION : 0x0 (0)
SYSTEM : h6fw_5.49/xl_op
LINE : 180
VERSION : SPL 5.49 10-20-2010 
Je suis allé sur le site de samsung pour télécharger le driver et l'ai installé... Même problème bien que le modèle indiqué dans le panneau soit mieux : Samsung ML-1860

Au final, après recherche sur google, je suis tombé sur la page suivante : http://forums.linuxmint.com/viewtopic.php?f=51&t=107026

J'ai ajouté deb http://www.bchemnet.com/suldr/ debian extra dans la liste des dépôts (menu configuration du gestionnaire de paquets Synaptic) et hop !

Un coup de :

$ su
$ wget -O - http://www.bchemnet.com/suldr/suldr.gpg | apt-key add -- - 
$ apt-get install samsungmfp-data samsungmfp-configurator-qt4 
  samsungmfp-configurator-data samsungmfp-driver 
  printer-driver-splix


On réinstalle l'imprimante et fini les
INTERNAL ERROR - Please use the proper driver
POSITION : 0x0 (0)
SYSTEM : h6fw_5.49/xl_op
LINE : 180
VERSION : SPL 5.49 10-20-2010 
Ouf!


EDIT : 7 Septembre 2016 les paquets samsungmfp-* ont été remplacés par suld-*

mercredi 8 août 2012

Bash, pattern substitution

Le manuel bash présente les syntaxes suivantes (voir)
  • ${parameter#word} et ${parameter##word} pour supprimer le plus court et le plus long préfix
  • ${parameter%word} et ${parameter%%word} pour supprimer le plus court et le plus long suffixe
  • ${parameter/pattern/string} pour substituer une chaîne à un pattern.
Il faut savoir que word peut être une regexp dans les 2 premiers cas. Mais il faut surtout savoir que la syntaxe du pattern diffère de celles que l'on connaît généralement... Sur wiki.bash-hackers.org :
?(<PATTERN-LIST>) Matches zero or one occurrence of the given patterns
*(<PATTERN-LIST>) Matches zero or more occurrences of the given patterns
+(<PATTERN-LIST>) Matches one or more occurrences of the given patterns
@(<PATTERN-LIST>) Matches one of the given patterns
!(<PATTERN-LIST>) Matches anything except one of the given patterns
D'où des choses zarbies du genre :
$ shopt -s extglob
$ v="LE temps PASSE vite"
$ echo ${v//+([[:upper:]])} 
temps vite
$ echo ${v%%+([[:lower:]])} 
LE temps PASSE
pattern

Bash, templating...

Pour faire un système de templating en bash (par exemple pour du mailing) on peut faire ainsi si l'on souhaite que le modèle soit dans un fichier à part :
$ cat template.txt 
<b>Hello '"${firstname}"'</b>
Bye '"${firstname}"'

$ for firstname in luc jeff gwen
> do 
>   while read line 
>   do 
>      eval echo "'$line'"
>   done <template.txt
> done
<b>Hello luc</b>
Bye luc
<b>Hello jeff</b>
Bye jeff
<b>Hello gwen</b>
Bye gwen
Avec les Here Documents, cela aurait été plus simple...

bash, affichage en mode intéractif

Dans un script bash, j'ai souhaité afficher un numéro de version lorsque celui-ci est lancé interactivement (ne reçoit pas de données depuis un pipe ou bien une redirection <).

Cela peut-être fait en utilisant l'option -t de la commande test.
if [ -t 0 ]; then
    echo "Version: $VERSION"
fi