La Tanit

posté par cep le 25 janvier 2010

Exceptionnellement, j’ajoute sur ce blog un article non technique et ne traitant pas de linux.
En guise d’article il s’agit seulement d’un lien vers une page du blog “Le voyage de Tanit” dans lequel Chloé raconte leur rencontre avec les pirates et les évènements qui ont suivis.

“traduction de l’article de Jason Burke par Chloé”

cep

Topics : Général, Moments | 1 Commentaire »

2.6.32 et rt61

posté par cep le 9 décembre 2009

Les versions Rc* du kernel 2.6.32 de même que la version 2.6.32-1 révèlent un problème avec les cartes wifi à base de ralink rt61 (et s’emble-t’il pour d’autres constructeurs aussi ).

Voir :
http://lkml.org/lkml/2009/12/8/213
http://patchwork.kernel.org/patch/65154/
http://bugzilla.kernel.org/show_bug.cgi?id=14731

Une solution temporaire si les dernières versions du kernel ne sont pas disponibles est de désactiver le “powersaving” par la commande :
iwconfig wlan0 power off
en adaptant l’adresse de votre interface.

cep

Topics : Général, linux | Pas de commentaire »

initrd sur 2.6.3*

posté par cep le 12 novembre 2009

Un ami devait recompiler son noyau pour y modifier une option concernant la gestion de la mémoire. Après avoir récupéré le linux-source xxx et fait toutes les procédures de compilation, y compris le :

fakeroot make-kpkg –initrd etc. etc.

à la fin, après installation du nouveau kernel il n’y avait pas d’ initrd.img-xxxx dans /boot/ et cela malgré la présence du fichier /etc/kernel/postinst.d/initramfs-tools créé lors de l’installation du paquet initramfs-tools.

La commande dpkg-reconfigure linux-image-2.6.3xxxx ne générait pas non plus l’initrd.

Bien sûr il a tout de suite résolu son problème en faisant un : update-initramfs -c -k 2.6.3xxxx
suivi d’un update-grub. Mais cela ne le satisfaisait pas.

Nous avons fait quelques recherches google, lu le man make-kpkg, man kernel-package, différents man de initramfs-tools pour enfin se rendre compte qu’il fallait compléter les scripts dans /etc/kernel/postinst.d.

Après avoir récupéré dans /usr/share/kernel-package/examples/etc/kernel/postinst.d l’exemple de script initramfs nous l’avons ajouté dans le répertoire /etc/kernel/postinst.d et l’avons rendu exécutable.

Après cela la commande dpkg-reconfigure linux-image-2.6.3xxxx générait bien l’initrd :

$ sudo dpkg-reconfigure linux-image-2.6.30-mem
Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs
2.6.30-mem /boot/vmlinuz-2.6.30-mem
run-parts: executing /etc/kernel/postinst.d/initramfs-tools
2.6.30-mem /boot/vmlinuz-2.6.30-mem
Running postinst hook script update-grub.
. . .

Donc si on utilise les dernières versions de kernel-package, initramfs-tools, et que l’on compile son kernel avec génération d’un initrd penser à compléter les scripts dans /etc/kernel/postinst.d/ en piochant dans /usr/share/kernel-package/examples/*.

Accessoirement, en ce qui me concerne pour faire une petite modification sur un kernel officiel debian que je ne vais pas conserver longtemps je procède de la manière suivante :

$ apt-get source  linux-source-2.6.31
$ cd linux-2.6-2.6.31/

Là je change le paramètre désiré (à noter qu’il n’est pas conseillé de changer ce paramètre) :
$ perl -i -p -e ’s/CONFIG_STRICT_DEVMEM=y/CONFIG_STRICT_DEVMEM=n/g;’ debian/config/kernelarch-x86/config

Puis je reprends la procédure :

$ fakeroot debian/rules
$ cd ..
$ fakeroot make -f debian/rules.gen binary-arch_i386_none_686
$ ls ../*deb
../linux-headers-2.6.31-1-686_2.6.31-1_i386.deb  ../linux-image-2.6.31-1-686_2.6.31-1_i386.deb
$ sudo dpkg -i ../*.deb

cep

Topics : Général, debian | Pas de commentaire »

aptitude Method rred

posté par cep le 4 novembre 2009

Ce matin il m’était impossible de faire les mises à jour. La commande aptitude update tout comme apt-get update se terminaient toujours par ce message d’erreur :

E: Method rred has died unexpectedly!
E: Le sous-processus rred a commis une violation d’accès mémoire

La solution trouvée pour récupérer la liste des paquets à mettre à jour a été de lancer la commande aptitude update avec l’option  -o Acquire::Pdiffs=false :

:~# aptitude update -o Acquire::Pdiffs=false

Avec cette option on ne récupérée pas simplement la liste des paquets ayant été modifiés mais la totalité de la liste. Cela a bien sûr pour conséquence d’augmenter l’utilisation de la bande passante sur les miroirs.

Pour plus de détails sur cette option voir :

http://www.debian-administration.org/article/Avoiding_slow_package_updates_with_package_diffs

Curieusement, après avoir fait mon aptitude update une fois avec cette option, les autres “updates” se sont déroulés normalement sans avoir à entrer à nouveau ce paramètre.

cep

Topics : Général, debian | 2 Commentaires »

grub 2 et multiboot linux

posté par cep le 15 octobre 2009

Si vous possédez deux distributions linux sur le même pc, avec un grub installé dans le mbr et un second dans le secteur de boot d’une autre partition, lors de la mise à jour du noyau de la deuxième distribution le menu grub.cfg de la première distribution ne sera pas mis à jour, et donc ne portera pas les références de ce nouveau noyau.

Afin de pouvoir toujours démarrer ce nouveau noyau depuis le grub du mbr il est possible de créer un “script simplifié” dans le fichier /etc/grub.d/40_custom , fichier qui est lu à chaque update-grub pour configurer /boot/grub/grub.cfg.

Par exemple pour pouvoir lancer debian squeeze installé dans la deuxième partiton du disque 1, il faudra modifier le fichier /etc/grub.d/40_custom dans la première distribution dont le grub est installé dans le mbr, et y ajouter :

menuentry “lancement squeeze” {
set root=(hd0,2)
configfile    /boot/grub/grub.cfg
}

Il est possible aussi de supprimer le lancement de os-prober afin de ne plus avoir dans grub.cfg toute une série de lignes de kernels de l’autre distribution. Pour cela ajouter dans le fichier /etc/default/grub les lignes :

# désactiver os_prober
GRUB_DISABLE_OS_PROBER=”true”

Après avoir fait ces modifications lancer la commande update-grub pour que grub.cfg soit reconfiguré.

Il est possible de faire cela sur chacune des distributions installées.

cep

p.s. si grub n’est pas dans /boot sur / mais dans une partition dédiée il faudra adapter l’adresse grub/grub.cfg

Topics : Général, debian, linux | 3 Commentaires »

Od

posté par cep le 5 octobre 2009

Octal dump expliqué, commenté, disséqué par tellmewhy.

Voir  : http://cepcasa.info/tellmewhy/od/od.html

Description

Utilisation

Particularités

Topics : Général, linux | 4 Commentaires »

grub-pc error 15 sur squeeze

posté par cep le 29 septembre 2009

J’utilise grub2 (grub-pc) sur ma Sid depuis au moins 2 ans, mais ce matin sur ma Debian Squeeze j’ai fait la mise à jour de grub vers grub-pc.

Lors de la mise à jour il y avait bien un message disant qu’un chainload était prévu pour tester l’installation et que, si lors du test tout fonctionnait bien, il faudrait faire la mise à jour définitive en passant la commande upgrade-from-grub-legacy.

Mais voilà, sûr de moi Rolleyes après avoir édité le fichier grub.cfg pour vérifier que tout était ok, j’ai lancé la commande upgrade-from-grub-legacy et j’ai redémarré la machine.

Au boot error 15 et je ne pouvais pas relancer le système. Après quelques secondes de réflexion je me suis dit que l’installation du nouveau grub dans le mbr n’était probablement pas correcte.

Solution :
- démarrer avec un cd-rom de secours
- chrooter le système qui ne démarre pas
- réinstaller grub dans le mbr (ou partition de boot) par la commande grub-install /dev/sda (adapter /dev/sda)

Exemple de commandes à passer pour un système installé sur /dev/sda1 et grub à installer sur /dev/sda :

mkdir /mnt/sda1
mount /dev/sda1 /mnt/sda1
chroot /mnt/sda1
mount -t proc /proc /proc
grub-install /dev/sda
umount /proc
ctrl + D

cep

p.s. si vous avez d’autres systèmes installés sur la même machine voir l’utilisation de grub-probe / os-prober

Topics : Général, debian | 4 Commentaires »

Exemples d’utilisation de awk

posté par cep le 21 septembre 2009

Awk est un programme permettant, entre autre, de consulter un fichier ou toute autre donnée et d’en extraire précisément certains éléments et les mettre en forme.
Je vais montrer avec quelques exemples l’utilisation de awk à l’usage des débutants, en prenant comme base le fichier /proc/net/wireless, fichier qui donne l’état de la connexion wifi, y compris la force du signal.

Il existe plusieurs programmes awk, nawk, gawk. Sur mes systèmes j’installe gawk, un peu plus complet que awk et la commande awk est redirigée automatiquement vers gawk. Sur une debian le vérifier par la commande : update-alternatives –display awk

Point de départ : la lecture du fichier /proc/net/wireless nous renseigne sur la connexion wifi :

:~$ cat /proc/net/wireless
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 22
wlan0: 0000 56. -54. -256 0 0 0 0 0 0

la troisième ligne nous donne l’interface wlan0 et dans la troisième colonne la force du signal. On pourrait donc faire :
grep wlan0 /proc/net/wireless
pour afficher la totalité de la ligne en occultant ce qui précède. Ou bien :

grep wlan0 /proc/net/wireless | awk ‘{ print $3 }’

pour ne sélectionner que la colonne 3 dans la ligne contenant wlan0.

Il est aussi possible de faire une mise en forme pour ajouter les signes complémentaires Force du signal et 00 %. Pour être affichés en sortie, ces signes doivent être entourés de ” ” (attention de ne pas confondre ” avec ‘ ou même ` )

grep wlan0 /proc/net/wireless |awk ‘{ print “Force du signal = ” $3 “00 %” }’

Mais il est possible de simplifier encore. En effet, il n’est pas nécessaire de mélanger des grep et awk, puisque awk peut très bien se débrouiller tout seul. Par exemple pour n’afficher que la colonne 3 de la ligne numéro 3 on fera :

awk ‘NR==3 {print $3 }’ /proc/net/wireless

Si l’on veut ajouter une mise en forme pour afficher les signes complémentaires Force du signal et 00 % :

awk ‘/wlan0/’ /proc/net/wireless | awk ‘{print “Force du signal = ” $3 “00 %” }’

La commande peut être encore simplifiée. En effet, comme on peut n’utiliser que awk et non awk avec grep, autant ne lancer qu’une seule procédure awk plutôt que deux awk avec un tube (ou pipe) | . La commande finale et simplifiée sera donc :

awk ‘/wlan0/ {print “Force du signal = ” $3 “00 %”}’ /proc/net/wireless

qui affichera : Force du signal = 56.00 %

si l’on ne connait pas wlan0 ou si l’on ne veut pas le spécifier mais seulement afficher la ligne 3 quelle que soit l’adresse de la carte :

awk ‘NR==3 {print “Force du signal = ” $3 “00 %”}’ /proc/net/wireless

Sortie de awk dans une boite de dialogue : si l’on veut améliorer l’affichage du résultat dans une boite et que zenity est installé sur le système, la commande sera :

zenity –info –text=” `awk ‘/wlan0/ {print “Force du signal = ” $3 “00 %”}’ /proc/net/wireless` “

On peut aussi ne pas utiliser zenity mais xdialog :

Xdialog –msgbox `awk ‘/wlan0/ {print “signal=” $3 “00%”}’ /proc/net/wireless` 10 30

ou avec dialog :

dialog –msgbox `awk ‘/wlan0/ {print “signal=” $3 “00%”}’ /proc/net/wireless` 0 0

Un autre outil bien pratique pour afficher des boites est notify-send. Pour l’utiliser sur Debian, il faut avoir installé libnotify-bin. La commande sera donc :

notify-send “Force Du Signal wlan0 =” `awk ‘/wlan0/ {print $3″00%”}’ /proc/net/wireless`

ou bien plus généralement :

notify-send “Force Du Signal =” `awk ‘NR==3 {print $3″00%”}’ /proc/net/wireless`

Pour utiliser simplement cette commande, il est possible de mettre un script dans le répertoire bin/ de son /home/ :

#!/bin/bash
#Force du signal wifi avec notify
notify-send “Force Du Signal wlan0 =” `gawk ‘NR==3 {print $3″00%”}’ /proc/net/wireless`

script que l’on appellera par exemple signal et, après l’avoir rendu exécutable, si le répertoire bin est dans le PATH de l’user, il pourra être lancé très simplement par la commande signal depuis n’importe quel répertoire où l’on se trouve. Pour vérifier si votre bash comprend le répertoire bin/ voir votre fichier .bash_profile qui doit contenir :
# set PATH so it includes user’s private bin if it exists
if [ -d ~/bin ] ; then
PATH=~/bin:”${PATH}”
fi

ou vérifier par la commande echo $PATH quel est votre path.

Une précision pour terminer : le fichier /proc/net/wireless est aussi consultable par la commande iwlist. Donc  :

iwlist wlan0 scan |grep Qual
va afficher le résultat : Quality=56/70 Signal level=-54 dBm

ou bien :
iwlist wlan0 scan |awk ‘/Qual/ {print $1}’
affichera : Quality=56/70

Comme on peut le voir, il est possible d’utiliser indifférement grep ou awk, mais les possibilités de awk sont bien plus nombreuses que ce que l’on vient de voir. Il permet par exemple de savoir à quelle date a été installé son système :
ls -lct /boot/ | tail -1 | awk ‘{print $7, $6, $8}’

ou bien de convertir de l’hexadécimal :
echo 0×12 |gawk –non-decimal-data ‘{printf ” %d\n”,$1}’

de convertir dans un répertoire les extensions txt en ps :
ls | awk -F”.” ‘ /txt/ { print “mv ” $1 “.” $2 ” ” $1 “.ps” } ‘ | bash

Et bien d’autres choses encore. Pour plus de détails voir :

http://www.gnu.org/software/gawk/manual/gawk.html
http://www.shellunix.com/awk.html

cep

p.s. Pour discuter de cet article, voir :

http://cyrille-borne.com/forum/showthread.php?tid=69

Topics : Général, linux | Pas de commentaire »

the Cyrille forum

posté par cep le 20 juillet 2009

Cyrille ouvre un forum.

Gageons que, comme pour son blog, cette adresse deviendra rapidement une référence pour l’utilisation de linux et des logiciels libres, en particulier dans le mode de l’éducation et des programmes pour enfants.

Le forum se compose actuellement de trois sections. Je cite Cyrille :

cep

Topics : Général, découvertes | Pas de commentaire »

Serveur dédié Gandi

posté par cep le 13 juillet 2009

Suite à l’offre de Gandi qui mettait gratuitement à disposition un serveur dédié pour une durée limitée, j’ai voulu tester leur solution sur la base d’une part (la puissance de la machine et la place disponible dépendent du nombre de parts.

Au départ, pour simplifier les choses et gagner du temps j’ai choisi l’installation automatisée d’une ubuntu 7.10, mais j’ai ensuite activé le compte root.

L’installation du serveur ne pose pas de problème particulier et, même sans connaissances particulières, on se retrouve rapidement avec une solution configurée comprenant :
- apache2
- mysql-server-5.0
- proftpd
- libapache2-mod-php5
- phpmyadmin

Préférant gérer directement les bases de données, j’ai tout de suite désactivé phpmyadmin. Pour la petite histoire, j’ai vu que mes logs augmentaient rapidement suite à des attaques ssh provenant d’une IP Gandi. Après avoir pris quelques précautions pour ne pas avoir des milliers de lignes Failed j’ai signalé le cas à abuse@gandi qui a répondu très rapidement.

Pour le reste, pas de mauvaises surprises rencontrées sur ces quelques jours de tests, la machine est normalement réactive pour sa configuration et cette solution de parts n’est pas sans interêt. Un serveur dédié pour moins de 10 € par mois (pour un engagement de 1 an) avec 2.4 Go pour / et 5 Go pour /srv peut être une solution tout à fait intéressante.

Pour plus de détails sur leurs offres, voir https://www.gandi.net/hebergement/offre/ et https://www.gandi.net/hebergement/offre/prix/

Voir les résultats détaillés des tests et benchmarks.

Détail de UnixBenchmark.

cep

Topics : Général, linux, découvertes | Pas de commentaire »

« Previous Entries