• Note: La version francaise de ce site est tres peu a jour et contient beaucoup de fautes d'orthographe. Vous pouvez acceder a la version anglaise via le lien en haut a droite.

GNU-Linux howtos

Debian Lenny sur Aspire One

Publié par manu
Mise à jour
Ce document n'est pas encore traduit en français, ça viendra, dsl.

This page is complementary to the Debian Wiki page dedicated to this machine.. so here are some things that are not (yet) on that page and are maybe a tiny bit off topic (kde related) etc.. I might add some of it, if i don't, whoever maintains that page can of course copy content from here to there.

Basically you can just go install Debian as usual, maybe chose Ext2 filesystem, and also i tend to always uncheck all the boxes when it comes to installing base software (Desktop, Web server Dns server etc), this is especially useful on this computer as it only has an 8Gb hard drive.. plus saving space is environment friendly, less downloading (install and upgrades) means less power... . . :] of course if you do so you will have to manually install everything even xorg, so do what you feel like doing.

Card reader

First thing, after installing Debian (with ext2 filesystem why not), you might want to rid the SD slots of any SD cards if any are inserted, if not you might experience some problems booting into your "new" system.. . After that you can safely follow the wiki instructions and the two slots should be working fine..

Wireless

using the standard debian kernel - 2.6.26-1-686

First thing, I have never been able to get the Madwifi package to compile on either Debian or Ubuntu, HOWEVER, the Madwifi-hal works perfectly, so this is what i do (there could be a more recent version available from the page http://snapshots.madwifi-project.org/)

apt-get install build-essential linux-headers-2.6.26-1-686 wireless-tools cd /usr/src/ wget http://snapshots.madwifi-project.org/madwifi-hal-0.10.5.6-current.tar.gz tar zxvf madwifi-hal-0.10.5.6-current.tar.gz cd madwifi-hal-0.10.5.6-r3879-20081204/ make make install madwifi-unload modprobe ath_pci

That should work, meaning iwlist ath0 scan should give you results (given there is a signal somewhere near.. If it doesn't then just reboot, just don't tell anyone you did that.

It's said that network-manager (Gnome and Kde have a front end to that, just add a "g" or a "k"...) doesn't really work so good with this madwifi-hal thing.. . I can somewhat confirm. I installed Wicd as stated on the Debian Wiki page and that works not too bad however sometime i'd still need to reload the drivers for it to work.. so that's almost the same

madwifi-unload && modprobe ath_pci

However, i still prefer knetworkmanager for some weird reason and so i tried figuring out what the hec could be done on my level. .. . i could manually do (as root):

/etc/init.d/network-manager stop madwifi_unload modeprobe ath_pci /etc/init.d/network-manager restart

to automate those commands on resume edit a new file in /usr/lib/pm-utils/sleep.d, call it something starting with the number 96 for example: 96mynetworkfixer (the following could work with Wicd also (please adapt it though). :

#!/bin/sh . "${PM_FUNCTIONS}" unload_stuff() { # add anything else you might logger "96mynetworkfixer suspend" } reload_stuff() { # restart network-manager and reload madwifi stuff logger "reload_start madwifi sleep.d/96mynetworkfixer" /etc/init.d/network-manager stop /usr/local/bin/madwifi-unload modprobe ath_pci /etc/init.d/network-manager start } case "$1" in hibernate|suspend) unload_stuff ;; thaw|resume) reload_stuff ;; *) exit $NA ;; esac

Now that sould be better (now that I corrected the path to /usr/local/bin/madwifi-unload... ahem..

If you want the whole Wifi led thing go for it (debian wiki page again), i tried it, it works, and then i didn't add it to startup because i don't want to..

using a more recent kernel like 2.6.31.3 o/ (free wireless drivers and more)

I'm not sure since which kernel life has changed for the little bugger (that being ath4k) but after having some issues with the SSD disk I wondered if that could be solved by better kernel support. I noticed after compiling a new kernel that the wireless card works right out of the box. Here is my .config file if you want a starting point (i'm sure this can be optimized even more), it has all you need to make the computer work

config-hal-0.3

What the Cpufreq

The wiki says that it should work out of the box, and it does. ... well you might just need to activate the correct modules though, i like using modconf, but if you want you can just add to /etc/modules:

acpi-cpufreq cpufreq_powersave cpufreq_ondemand

if you only added this to the file you will need to reboot OR load each module for now via modprobe like this :

modprobe acpi-cpufreq modprobe cpufreq_ondemand modprobe cpufreq_powersave

Suspend to RAM

So now everything is starting to totally rule.. but still not there yet, suspend to RAM (and and Disk) might not work and that would most probably just be because your user is not in the powerdev group so you could do:

adduser USER powerdev

Now even the "Fn + Z" button should work just as the kpowersave menu works, if you running something other than KDE than maybe there is either just a keybinding issue or command problem. You can manually test the suspend function with the following (as root):

s2ram -f -a 3

If this works then you just need to figure out a way to execute that more conveniently.. otherwise you might have to RTFM s2ram a bit (but normally we have the same computer so this should work).

Another thing, maybe we can reduce the size of the image for quicker "stuff"... try:

echo 0 > /sys/power/image_size

if that works than just add it to the end of a bootup script somewhere. I personally prefer adding my own bootup script in which I add all my little things, for one all is gathered in the same place, and it also makes upgrading less hectic.. imho. I will put en example script at the end of this document that gathers all the little tweaks and such.

Disk optimisations

Here are a few things that can help reduce writing data on the slow SSD memory. First dissuade the system from using swap and then something about inodes and stuff :

echo 1 > /proc/sys/vm/swappiness echo 50 > /proc/sys/vm/vfs_cache_pressure

for these settings to take place on bootup you can either add this to the "common tweaks script" or edit /etc/sysctl.conf and add :

vm.swappiness = 10 vm.vfs_cache_pressure = 50

Now a piece of software thats nice to know is powertop, you probably guessed what it does, anyway it showed a few things of interest like :

echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

this tells the system to bother the disk a bit less often than the usual.. same as the above this can be added to /etc/sysctl.conf (or later on in a boot script):

vm.dirty_writeback_centisecs = 15000

More optimizations via Grub

The elevator=noop option will optimize access to the disk as the function of an elevator is more relevant when using one classic disk drive and not an SSD, read more here. We can also use a more precise clock, hpet (read here) can save us some time and battery.

for this edit /boot/grub/menu.lst and modify the kernel line as follows :

title Debian GNU/Linux, kernel 2.6.26-1-686 root (hd0,1) kernel /boot/vmlinuz-2.6.26-1-686 root=/dev/sda2 ro quiet clocksource=hpet elevator=noop initrd /boot/initrd.img-2.6.26-1-686

For this to take effect upon kernel upgrades make the line

# defoptions=quiet

look like this :

# defoptions=quiet elevator=noop clocksource=hpet

Function Keys - with KDE

It seems for me the function keys work except the volume keys.. .hmm, what to do.. well, the following is more fun than tricky.. :]

first thing is use xev to see what the keycode is, of course i could just tell you (and i will) but if you want to do this for an other key you will know how to do it, open KDE and then open a terminal (Konsole). Type xev.. you should have a small window called Event Tester, in the terminal you will see a whole bunch of stuff, for every input event there should be some info up there, it's a bit "weird".. anyway, for "Fn + (sound up)" you should see among the waterfall of crap that comes up "keycode 176" and then "NoSymbol". This means that the key is not mapped (or something along that line).

HINT:

the keys we are looking for are; Sound (up, down, mute) and their keycodes are respectively: 176, 174 and 160 so now write the file (as user): ~/.xmodmaprc with inside:

keycode 160 = XF86AudioMute keycode 174 = XF86AudioLowerVolume keycode 176 = XF86AudioRaiseVolume

to use this config type:

xmodmap ~/.xmodmaprc

to get this to start automatically on startup edit a new file in .kde/Autostart, call it whatever you want, i call it my_xmodmap so vi ~/.kde/Autostart/my_xmodmap and inside it put:

#!/bin/sh xmodmap ~/.xmodmaprc

and then:

chmod +x ~/.kde/Autostart/my_xmodmap

Now that's done, all you need to do is use kmenuedit to add a Sub Menu with a few entries. I called my Sub Menu .keyboard, with a "dot" as prefix so that this menu does not show up in the Kmenu.

Then add a New Item as follows:

  • Name: sound_up
  • Command: amixer set Master 6db+
  • Uncheck "Enable launch feedback"
  • define shortcut: press "Fn + Volume Up" (it should show "XF86AudioRaiseVolume")

I use the command amixer to control the sound (part of alsa-utils package => apt-get install alsa-utils) you can use whatever you want of course. Another thing, I put here 6db+, you can increment by however many decibels you want.

Add another new item for sound_down as follows

  • Name: sound_down
  • Command: amixer set Master 6db-
  • Uncheck "Enable launch feedback"
  • define shortcut: press "Fn + Volume Down" (it should show "XF86AudioLowerVolume")

AND, last but certainly not least, add a new item for Mute/UnMute

  • Name: mute
  • Command: if amixer get Master|grep off; then amixer set Master unmute; else amixer set Master mute; fi
  • Uncheck "Enable launch feedback"
  • define shortcut: press "Fn + Mute" (it should show "XF86AudioMute")

Trickle

Publié par manu

Trickle est un programme qui sert a modeler la bande passant du traffic réseau. Je le trouve plutot utile lorsque je souhaite télécharger des données lourdes vers l'exterieur sans que cela mange toute ma bande passante.

J'ai tenté d'utiliser trickled avec tricked.conf mais j'ai eu l'impresionne que c'était un peu inutile, c'est supposé gerer des priorités lors des accès aux ressources réseau selon le programme. J'ai reglé ssh sur la plus haute priorité et ncftp sur la priorité la plus basse, cependant cela ne changais rien pour moi et donc la connection ssh était un peu comme un steack, haché (pour ne pas dire autre chose). J'ai du ma faire quelque chose.. . : ] (liens, explications etc bienvenue).

En tout cas en utilisant trickle en tant qu'utilisateur avec quelque chose comme "trickle [bandwidth]option programme" cela fonctionne largement bien pour moi.. . .

Example d'utilisation

Prenons un cas simple, j'utilise ssh, je veux aussi émmettre des fichiers lourds via ncftp. Ncftp utilise trop le peu de bande passante qui m'est disponible. Je n'ai pas de routeur classieu avec QoS etc. Que faire donc ?? D'abord, quelle est la bande passante totale disponible ? En émmetant normalement avec ncftp je remarque que la vitesse se tasse autour de 90Ko/s du coup je peux me dire qu'en le limitant a 60Ko/s il me restera assez d'espace réseau pour faire du ssh confortablement et même un peu de http.

Du coup il ne me reste qu'a lancé ncftp dans une enveloppe "trickle" a lui dire d'emmetre a 60Ko/s maximum :

trickle -u 60 ncftp -u utilisateur hôte

On peut aussi limiter en réception via l'option -d qui fonctionne de la même manière, bien entendu on peut combiner l'utilisation des deux options

Limitations

Ce programme sert a placer des limites, mais il est lui même aussi limité (un peu) :

  • Il ne peut uniquement géré le protocol TCP. Cela veut dire qu'il ne pourr rien faire avec les connexion UDP.
  • Il doit utiliser la couche libc, pour voir si votre programme s'en sert, vous pouvez faire : ldd /usr/bin/ncftp|grep libc il devrait retourner : libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e0c000)

remplacer un disque

Publié par manu

L'idée : copier l'intégral d'un disque dur A sur un disque B dans le but de remplacer le disque A. causes possibles:

  • Disque A est vieux ou "presque" cassé (voir smartmontools)
  • Disque A est plein, on veut le remplacer par un disque plus grand.
  • Déménagement
  • Envie de répliquer un système

Ce qu'il nous faut :

  • un pc
  • un disque A - a remplacer
  • un disque B - le remplaçant
  • un CD d'install Debian (un netinst suffirait) ou autre liveCD (le but sera juste d'avoir un shell)

ce qu'il faut faire :

  • brancher le disque nouveau sur le pc en "sda" (ou hda), et le vieux (actuel) en "sdb" (ou hdb)
  • dans l'exemple on aura :

    • sda - nouveau 320Go
    • sdb - vieux - 80Go
      • sdb1 10Go ext3
      • sdb2 1Go swap
      • sdb3 69Go ext3

Démarrage sur le CD d'install Debian, partitionnement et formatage

Bootez sur le cd d'install Debian et choisissez juste les premières options, concernant le clavier surtout (ne pas faire l'étape de partitionnement). Ensuite prendre un terminal en appuyant sur alt - F2. Si vous avez déjà partitionné votre disque nouveau, tant mieux pour vous :] sinon il va falloir partitionner en ayant a l'esprit qu'il faudra que sda1 soit de la même taille ou plus grand que sdb1 (ou alors qu'il soit juste suffisamment grand pour contenir le contenu de sdb1), pareil pour sda3. Pour la swap, sda2, on peut faire ce que l'on veut. On peut ce faire avec fdisk en ayant booté sur le cd Debian. Je ne détaille pas l'utilisation de fdisk dans ce tuto, si besoin vous pouvez faire une demande de "tuto fdisk". Créez donc les partitions. Pour le formatage, j'utilise ext3 avec la commande qui suit (si vous décidez de changer de type système de fichiers au passage du changement de disque alors pensez a modifier le nouveau fstab en fonction).

mke2fs -j /dev/sda1 mke2fs -j /dev/sda3

Copie de données

On peut tout simplement utiliser cp pour copier les données en utilisant l'option "-a" qui équivaut a "-dpR" ce qui veut dire :

  • -d identique à --no-dereference --preserve=link
  • -p identique à --preserve=mode,ownership,timestamps
  • -R, -r, --recursive

Montons les deux disques comme suit :

cd /mnt mkdir sda1 sdb1 sda3 sdb3 mount /dev/sda1 /mnt/sda1 mount /dev/sdb1 /mnt/sdb1 mount /dev/sda3 /mnt/sda3 mount /dev/sdb3 /mnt/sdb3

et la copie supra simple mais qui peut être longue :

cp -a /mnt/sdb1/* /mnt/sda1/ cp -a /mnt/sdb3/* /mnt/sda3/

Ensuite, initialisation de la partition swap

mkswap /dev/sda2

Et enfin, installer grub (ou lilo) sur la MBR

chroot /mnt/sda1 grub-install # ou 'lilo' halt

Bien, la machine est a l'arrêt, vous pouvez maintenant enlever le "vieux" disque dur et peut être même virer le cd hein .. :] et paf vous pouvez maintenant booter sur le vieux système avec tout qui va bien, mais sur un "nouveau" disque... .. . euh, a condition que tout s'est bien passé.. :]

Et après

Veuillez recycler vos anciens équipements, mais avant, pour votre plus grand confort, detruisez les données sur vos vieux disques avant de les jeter, voir cet article

Smart tools - S.M.A.R.T.

Publié par manu

Smart est un système pour connaître l'état de santé d'un disque dur, plus d'info sur la wikipedia. En résumé c'est bien pratique pour surveiller ses disques

Ce qu'il faut

  • un disque dur (avec un ordinateur autour c'est mieux)
  • smartmontools - le package avec les outils "smart"
  • apt-get install smartmontools

Le support S.M.A.R.T.

Il faut d'abord voir si S.M.A.R.T. est supporté et voir s'il est activé, pour cela.. .

sur un disque IDE :

smartctl -i /dev/hda

sur un disque SATA :

smartctl -i -d ata /dev/sda

Il est évident que hda et sda doivent être adapté au disque que l'on souhaite vérifier

cela donnera quelque chose comme :

[root@weetabix][~-11:11] smartctl -i -d ata /dev/sda smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF INFORMATION SECTION === Device Model: ST3160812AS Serial Number: 5LS49ZE1 Firmware Version: 3.AAE User Capacity: 160 041 885 696 bytes Device is: Not in smartctl database [for details use: -P showall] ATA Version is: 7 ATA Standard is: Exact ATA specification draft version not indicated Local Time is: Tue Apr 15 11:11:47 2008 CEST SMART support is: Available - device has SMART capability. SMART support is: Enabled

Si la ligne SMART support is: Disabled apparaît a la place de SMART support is: Enabled alors il faudra l'activer, cela a condition de voir la ligne SMART support is: Available - device has SMART capability..Pour activer le support smart :

smartctl -s on /dev/hda

ou sur un disque SATA faire :

smartctl -s on -d ata /dev/sda

Faire des tests

Avec l'option -H on peut connaître l'état de santé du disque. Cette information est basé sur des tests que vous pouvez faire manuellement (offline) ainsi que les tests que fait le disque tout seul lorsque SMART est activé (online) via l'option -s :

smartctl -H /dev/hda

ou sur un disque SATA

smartctl -H -d ata /dev/sda

Le résultat devrais indiquer :

SMART overall-health self-assessment test result: PASSED

Si ce n'est pas le cas, il faut faire une sauvegarde et s'inquiéter un peu, il est probable que le disque soit très proche de la fin.

Faire un petit test

Ce test va vérifier les performances électriques et mécaniques ainsi que les performances de lecture du disque dur

smartctl -t short /dev/hda

sur un disque SATA

smartctl -t short -d ata /dev/sda

S'affichera un message qui indique quand le test sera fini, en général le test dure dans les 2 minutes, pour avoir les résultats il faut faire :

smartctl -l selftest /dev/hda

sur un disque SATA

smartctl -l selftest -d ata /dev/sda

On pourrait voir ceci :

=== START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 7022 -

ou alors un truc beaucoup moins bien ce serait

=== START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed: read failure 60% 18222 44603135

Faire un test plus complet

Ce test est comme la version courte mais "on" y passe plus de temps donc c'est plus.. . . comme dire.. . c'est "plus" quoi

smartctl -t long /dev/sda

sur un disque SATA

smartctl -d ata -t long /dev/sda

Ce test est bien plus long, sur un disque SATA (ou non SATA) de 40Go il dure 17 minutes, dans mon cas. Pour voir le résultat c'est la même chose que pour le test court, d'ailleurs sera indiqué les résultats des tests précédants aussi (même ceux d'il y a 6 mois).

Pour un disque en santé correcte on verra un truc du genre :

=== START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Extended offline Completed without error 00% 7023 - # 2 Short offline Completed without error 00% 7022 -

et pour un disque (ou plutôt utilisateur) qui a moins de chance :

=== START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Extended offline Completed: read failure 20% 18223 45651711 # 2 Short offline Completed: read failure 60% 18222 44603135 # 3 Extended offline Completed without error 00% 0 -

Voir les logs d'erreurs

On aimerait bien ne pas avoir d'erreur, mais si on a besoin de voir les logs d'erreurs (ou juste constaté qu'il n'y a pas d'erreur dans le log, il faut utiliser l'option "-l error".

smartctl -l error -d ata /dev/sda

voila pour nous, pour aller plus loin y'a pleins de pages qui en parlent dont une écrite par l'auteur du logiciel smartmontools ici

le gps avec linux

Publié par manu

aujourd'hui trouvons enfin une utilité a un récepteur GPS bluetooth. .. évidement on est bien sous linux et éventuellement dans mon cas sous ubuntu, j'avais déjà fait a peu près la même chose il y a quelques années avec une debian sarge, c'est dire que ça doit passer un peu partout. cela étant toute la partie installation de "bluez" et autre bidules n'est pas couvert ici car en effet avec ubunut tout est déjà installé par défaut.

comment trouver le récepteur gps

pour cela, il va falloir utiliser un truc comme hcitool par exemple de la sorte :

hcitool scan

cet outil avec l'option 'scan' va permettre (en dehors de trouver les casques audio et téléphones de vos voisins) de connaitre l'addresse MAC (non, rien a voir avec les pommes blanches) du récepteur GPS.

exemple :

[manu@hal][~-20:46] hcitool scan Scanning ... 00:44:44:44:44:44 Ordinateur 00:DD:DD:DD:DD:DD HOLUX GPSlim236 00:33:33:33:33:33 telephone

donc la nous avons bien trouvé le MAC du "HOLUX GPSlim236", nous sommes contents.

connexion du pc au GPS

on peut utiliser rfcomm pour attacher le GPS a /dev/rfcomm0, pour cela il suffit de faire :

rfcomm connect 0 00:DD:DD:DD:DD:DD

en fait ça donne ça (si l'on dézoome) :

[manu@hal][~-20:52] rfcomm connect 0 00:DD:DD:DD:DD:DD Connected /dev/rfcomm0 to 00:DD:DD:DD:DD:DD on channel 1 Press CTRL-C for hangup

le "0" indique donc que ce sera /dev/rfcomm0, on peut utiliser d'autres numéros si l'on veut. "hangup" en anglais veut dire "raccrocher", donc pour terminer la conversation entre le pc et le GPS suffit de faire "ctrl + c" dans le terminal concerné.

on pourra y voir des infos bruts en faisant "cat /dev/rfcomm0", si vous arrivez a déchifrer le tout a la vitesse du défilement des infos alors il vous sera peut etre inutile d'aller plus loin.. :]

[manu@hal][~-20:53] cat /dev/rfcomm0 $GPGGA,182655.235,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*4A $GPRMC,182655.235,V,0000.0000,N,00000.0000,E,,,311006,,,N*7A $GPVTG,,T,,M,,N,,K,N*2C $GPGGA,182656.235,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*49 $GPRMC,182656.235,V,0000.0000,N,00000.0000,E,,,311006,,,N*79 $GPVTG,,T,,M,,N,,K,N*2C $GPGGA,182657.235,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*48 $GPGSA,A,1,,,,,,,,,,,,,,,*1E

gpsd - le serveur de GPS

Gpsd va servir de relais entre le GPS et les logiciels GPS, c'est a dire qu'il va aller lire /dev/rfcomm0 et géré la chose, puis les logiciels de gps vont se connecter a gpsd pour avoir les infos.

dans un premier temps, pour tester en gros, on peut le lancer avec du debug "-D 2" aussi on veut pas qu'il tourne en fond, donc "-N". un truc pour éviter de casser son gps (sur le mien il est arrivé que le GPS se met a parler "binaire" et donc les infos n'étaient plus lisibles, si cela vous arrive alors voir plus bas gpsctl pour un remède éventuel) est d'utiliser l'option "-b", cette option fait que gpsd ne va pas tenter d'envoyer des instructions au récepteur il ne fera QUE lire

gpsd -b -N -D 2 /dev/rfcomm0

par défaut il tournera sur le port 2947 ce qui nous conviendra puisque les logiciels gps vont par défaut aller chercher les infos de position sur le port 2947.

et maintenant le(s) client(s)

il existe pleins de clients gps pour le système linux ("what else ?"), en voici quelques uns sympa :

  • xgps - client graphique pour voir les infos satellites, position et vitesse.
  • cgps - idem mais en mode texte
  • gpsdrive - un truc pour conduire un gps. ... (ou se faire conduire), pas encore le top du must, mais sympa
  • viking - je n'ai fait que peu de choses mais il est joli ce soft. .. :]
  • gpsctl - un truc pour changer le mode du récepteur GPS entre NMEA et le mode binaire propriétaire

xgps et cgps

ces deux programmes sont a la base la pour tester le fonctionnement du GPS, en gros ils vont donc se connecter a gpsd et avec ça afficher les infos des satellites, la position, la vitesse etc etc. c'est pas mal utile pour savoir ce qui se passe.

gpsdrive

ceci est censé être un logiciel de navigation, je ne crois pas qu'il soit encore totalement au point, mais c'est un des plus aboutis je crois bien.. . il faudra télécharger les cartes via l'internet avant de prendre la route (a moins d'avoir des morceaux de Internet sur soi). je trouve que l'utilisation est spéciale (déplacement sur la carte etc), je vous laisse souffrir un peu. . (sinon très sympa) : ]

viking

ce truc est censé faire plein de choses, évidement ici je ne détail pas l'utilisation des logiciels clients, il y a pour ça les sites officiels deja (et sans doute d'autres encore) cependant une petite note "marrante" pour ce qui sont sous (k)ubuntu, quand on ajoute une "Layer" GPS il ne propose pas de se connecter sur /dev/rfcomm0 (ah oui, j'oubliais, il ne passe pas que par gpsd on dirait mais directement sur /dev/le_device) donc en gros la solution sale est de faire un lien de /dev/rfcomm0 vers ttyUSB0 par exemple comme ainsi :

sudo ln -s /dev/rfcomm0 /dev/ttyUSB0

avec ce que je viens de dire j'ai quand même envie de parler du mode "Realtime", je trouve que ça déchire sa maman. en effet j'ai enregistré le trajet que j'ai fait (Ctrl + s) puis en rentrant j'ai pu ajouter une "layer" (calque) avec des cartes google ou openstreetmaps etc etc... y'a même possibilité de voir dans les détails pas mal de choses dont la vitesse moyenne etc etc. c'est très très sympa.. . .

gpsctl

ce truc la sert a changer le mode du récepteur GPS, en effet certains peuvent parler NMEA ou binaire, avec ce petit soft on peut changer le mode

s'il n'y a qu'un seul récepteur et que gpsd tourne il suffira alors, pour mettre en mode NMEA de faire :

gpsctl -n

a vous de jouer avec les différents logiciels clients et de voir ce qui vous convient le plus, si le but est juste de savoir ou vous êtes ou la vitesse, cgps est très très bien. . . : ]

commandes de base

Publié par manu

j'ai écrit ce truc quand j'ai débuté mon aventure linux, oui il faut bien l'avouer au début c'était l'aventure. . .. en même temps que j'apprenais a faire des choses de base je me suis dit que je me ferais quelques notes, et puis je les ai partagé avec des gens qui a leur tour débutaient aussi. . j'ai donc retrouvé ce petit tuto destiné aux gens qui débutent vraiment mais qui contient peut être des petites astuces qu'un "habitué" ne connais pas forcément. . . (en même temps ça métonnerais) : ]

Les commandes utilisés :

  • ls : liste
  • pwd : indiquer le répertoire courant
  • cd : changer de répertoire
  • cp : copie
  • mv : déplacer
  • rm : supprimer
  • df : espace libre sur le disque
  • du : utilisation du disque (non c'est pas pareil que "df" :] )

ls - liste

ls sert a lister les fichiers. Par défaut il va lister les fichiers dans le répertoire ou l'on se trouve. exemple:

[user@machine]$ ls images/ text.txt

on peut aussi spécifier le répertoire dont on veut lister le contenu, pour cela il suffit de l'indiquer après la commande ls, on dit que c'est un "argument" (mais pas une dispute non plus :] ). par exemple:

[user@machine]$ ls /home/user images/ text.txt

cette commande va lister ce qu'il y a dans le dossier /home/user ou que l'on soit, cette même logique est d'ailleurs possible pour toutes les commandes que l'on va traiter ici.

un autre aspect de la plupart des commandes linux est la possibilité d'utiliser des options, cela se present sous forme de "tiret" puis d'une lettre, pour la commande ls parmi toutes les options possible on va juste voir les plus utile pour débuter, le mieux sera de les essayer pour mieux comprendre

  • -l : liste détaillé; permissions, propriétaire, taille, etc.
  • -a : liste toutes le fichiers, c'est a dire aussi les fichiers cachés
  • -h : quand il est associé avec le "-l" il montre la taille en version "lisible par un humain" (Ko,Mo,Go)
  • -S : trier la liste par taille de fichier

ces options peuvent bien entendu être combiné, ainsi l'on peut utiliser ls -lha pour lister tout les fichiers avec les tailles inscrit en version "human readable" (lisible par un humain) avec en plus les fichiers cachés.

pwd - indiquer le dossier courant (print working directory)

nous n'avons pas encore vu comment se déplacer dans le système de fichiers, mais d'abord voyons comment savoir ou l'on se trouve. la commande pwd nous indique ou l'on se trouve avec le chemin absolu, c'est a dire que cela commence par le "slash" "/" qui représente la racine du système de fichier, le haut du haut en gros et ça va jusqu'au répertoire ou l'on se trouve.. exemple ? d'accord.

[user@machine]$ pwd /home/user/dossier

cd - changer de répertoire (change directory)

cette commande sert a se déplacer vers un répertoire autre, par exemple nous avons un dossier images dans /home/user, pour s'y rendre on peut écrire :

[user@machine]$ cd /home/user/images

cette commande nous amène au répertoire "images", quelque soit le dossier dans lequel on se retrouve cette commande nous mènera au bon endroit. l'on peut aussi utiliser les chemins relatif, donc si l'on est dans le dossier /home/user pour aller dans images il suffit de taper cd images.

quand on fait un ls -a on pourra remarquer qu'il y a un "." et un ".." présent. le . symbolise le dossier courant et le .. le dossier un cran plus haut, donc cd .. nous remonte d'un cran, et cd . nous laisse sur place, oui cd . n'est pas très utile je l'accorde, mais le . ne sert pas a rien il est la et ça personne n'en parle.. . .. (hahahaahaa)

si l'on est dans le dossier /home/user on peut donc faire les deux commandes pour arriver au même endroit :

cd ../un_autre_user/images2 cd /home/un_autre_user/images2

aussi, petite astuce du jour, "cd ~" vous mènera a votre dossier home (maison), c'est a dire /home/vous

cp - copie

pour copier un fichier il suffit de faire cp fichier-source destination donc, cp text.txt images/text.txt - pour copier 'text.txt' dans le dossier 'images', si l'on ne compte pas changer le nom du fichier text.txt on peut alors écrire : cp text.txt images/ qui copiera text.txt DANS images.

on peut bien évidement spécifier de manière absolu ou relatif le chemin du fichier a copier ainsi que sa destination.

entre autre options une (ou deux) bien pratique :

  • -r : pour copier tout un dossier (recursive)
  • -p : pour preserver les attributs, date et permissions

mv - déplacer (move)

cette commande sert autant a deplacer un fichier qu'a le renommer, donc pareil, mv /chemin/fichier /nouveau/chemin/ ou mv nomdefichier nouveaunom, aussi mv peut directement déplacer les dossiers sans avoir besoin d'option supplémentaires.

rm - effacer (remove)

c'est ici que ça se passe pour effacer, attention je n'ai toujours pas trouver la fonction "restaurer la corbeille". . · : ]

qques options bien pratique :

  • -r : pour supprimer les dossiers, récursivement
  • -f : pour forcer la supression, sinon il demande confirmation pour chaque fichier (selon la configuration globale et d'autres affinités)

exemples :

rm fichier #supprime un fichier rm -rf /home/user/images/ # supprime le dossier images ainsi que tout son contenu

df - espace libre sur le disque (disk free)

connaître la taille du disque peut être pratique. .. df donne la taille de chaque partition monté avec l'espace utilisé, libre, etc.

des options

  • -h : lisible par l'humain (human readable)
  • -T : donne les types de system de fichier

du - utilisation du disque (disk usage)

très pratique pour connaître la taille d'un dossier, du liste tout les dossier présent et ce de manière récursive avec la taille de chaque fichier puis il donne le total.

voici qques options pratique :

  • -h : lisible par les humains
  • -s : ne montrer que le résultat final (total)

une commande que j'aime bien est : "du -hs */" cette commande affiche la taille des dossier un par un avec leur taille en omettant les fichiers seuls. .. .

exemples

du . # la le . sert a indiquer qu'on veut mesurer a partir du dossier présent. du -hs . # la même chose mais en version lisible par un être humain. du -hs /home/*/ # celui-ci va nous indiquer la taille des dossiers des utilisateurs

a savoir, selon les distributions de linux utilisé il se peut que des alias soit preconfiguré, par exemple sous mandrake 9.1 (ça remonte tiens) la commande "df" est en fait "df -h", cela vous pouvez le voir dans le fichier /etc/profile.d/alias.sh. donc avant de paniquer ou de vous posez trop de questions il est bien de regarder la dedans.

apprendre a pêcher et ce sera mieux encore

DONC ne jamais oublier de jeter un coup d'oeil au manuel, pour cela il suffit de taper man commande . .. ....comme ceci

man pwd

maintenant prochaine étape pour un débutant qui a compris ce cours sera de voir comment coder une distribution de A à Z.. .

NFS

Publié par manu

NFS, Network File System, traduit; Système de Fichiers via Réseau, est comme son nom l'indique, un système de fichiers qui fonctionne au travers d'un réseau.. avec ça on peut donc monter le répertoire d'un ordinateur serveur sur un autre ordinateur client.. NFS utilise les adresses IP pour s'authentifier, aussi il va utiliser les droits d'accès du serveurs selon les UID et GID.assez de blah bla, voyons voir.

installation du serveur (sous debian)

pour faire fonctionner le serveur il faut:

  • le logiciel: nfs-kernel-server apt-get install nfs-kernel-server
  • les modules noyau suivants: (en générale c'est dans le noyau par défaut) NFS server support [*] Provide NFSv3 server support [*] Provide server support for the NFSv3 ACL protocol extension [*] Provide NFS server over TCP support
  • optionnel, le support pour monter le NFS (sera utile pour le client) NFS file system support

configuration

il faut définir ce que l'on veut partager via le fichier /etc/exports

/mnt/partage 192.168.88.8 (rw) 10.20.30.100 (ro) /home/user/autre 192.168.88.8 (rw)

explications :

  • le chemin du partage : on mets le chemin complet sans "slash" a la fin.
  • l'ip qui a droit au partage
  • droits sur le partage : (ro) (read only, lecture seul) ou (rw) (read write, lecture et écriture).

    je parlais de droits en introduction, ici il ne suffit pas de mettre uniquement (rw) pour avoir les pleins droits, l'utilisateur qui montera le partage aura un UID et GID qui dépends de sa machine, il faudra que ça corresponde aux droits sur l'hôte (ou que sur l'hôte ce soit 777 par exemple).

ensuite il faut configurer hosts allow et deny

/etc/hosts.deny par défaut on ferme tout :

portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL

/etc/hosts.allow et la on ouvre précisément pour ceux qu'on veut bien :

portmap: 192.168.88.8 10.20.30.100 lockd: 192.168.88.8 10.20.30.100 mountd: 192.168.88.8 10.20.30.100 rquotad: 192.168.88.8 10.20.30.100 statd: 192.168.88.8 10.20.30.100

redémarrage des services concernés

c'est pas bien compliqué

/etc/init.d/portmap restart /etc/init.d/nfs-kernel-server restart

coté client

c'est bien beau d'avoir un serveur de fichier, mais sans client on peut fermé boutique :] ici il nous faut:

  • les logiciels nfs-common portmap: apt-get install nfs-common portmap
  • les modules noyau suivants (souvent déjà dispo par défaut) : NFS file system support [*] Provide NFSv3 client support

configuration du client

il suffit maintenant de monter le partage NFS, pour cela il existe plusieurs possibilités, a la "main", via fstab, ou alors a la demande via autofs (voir l'article autofs)

on considere que :

  • SERVEUR_NFS est l'ip ou le nom de hôte du serveur NFS
  • /mnt/partage est le partage configuré sur le serveur NFS
  • /home/user/partage l'endroit ou l'on souhaite monter le partage sur le client

maintenant voyons les différentes manières de monter ce partage

  1. méthode a la "main" (faudra être root) mount SERVEUR_NFS:/mnt/partage /home/user/partage
  2. via /etc/fstab SERVEUR_NFS:/mnt/partage /home/user/partage nfs rw 0 0
  3. en passant par autofs partage rw SERVEUR_NFS:/mnt/partage

    avec plus d'options ça donnerait :

    partage -rsize=8192,wsize=8192,soft,timeo=14,rw SERVEUR_NFS:/mnt/partage

quelques options de montage NFS

  • hard or soft ?

    on pourra constater que lorsque le serveur NFS est injoignable le logiciel qui accède au montage NFS partira quelques temps en vacances. .... c'est normal, il est monté par défaut en "hard" (dur) ce qui signifie que tant que la source n'est plus disponible le programme ne peut plus continuer, une fois le serveur est de nouveau disponible tout repart comme si de rien n'etait. on peut donc ajouter l'option "soft" ce qui pourrait provoquer des perte de données en cas de coupure vers le serveur NFS, on pourra donc avoir des erreurs d'entrée/sortie. il faut donc faire un choix selon les besoins

  • rsize wsize

    cela défini la taille des blocs que s'échangent les 2 machines. certaines combinaisons de (vieilles) cartes réseau et modules noyau peuvent ne pas supporter des tailles trop grandes, mais ensuite des tailles plus grandes pourraient optimiser les transferts.. voir la page http://tldp.org/HOWTO/NFS-HOWTO/performance.html pour plus d'info

pour plus d'infos tout court

attention danger, ce site est en anglais :] http://tldp.org/HOWTO/NFS-HOWTO/

install debian via usb

Publié par manu

ce document explique comment créer une clef usb bootable avec de quoi installer debian dessus, il va de soi que je ne parle pas de la fabrication physique de la clef, mais juste comment caser le .iso netinst de debian sur la clef... : ]

il faut:

  • le fichier : boot.img.gz (hd-media)
  • l'image : iso debian-xxx-netinst.iso
  • une clef usb

partitionnement et formatage

c'est très simple, tu mets la clef sur la machine, mais il ne faut pas le monter, on fera tout cela manuellement. dans cette example la clef est /dev/sda

fdisk /dev/sda

maintenant avec les options il faut supprimé ce qui existe et repartionner, ATTENTION avec ce qui suit on supprime tout ce qui existe sur la clef

  • repartir a zero : o
  • créer une nouvelle partition : n puis p puis 1 puis accepter les réponses par défaut pour les deux options suivantes
  • rendre amorçable : a puis 1
  • mettre en fat16 : t puis 6
  • appliquer les reglages et quitter fdisk: w

maintenant on formate tranquillement

mkdosfs /dev/sda1

un petit MBR serait le bienvenue aussi

lilo -M /dev/sda

copiage des images debian

on va faire des choses sympa en poussant boot.img.gz dans /dev/sda1 puis on va copier l'image .iso

zcat boot.img.gz > /dev/sda1 mkdir /mnt/debianusb mount /dev/sda1 /mnt/debianusb cp debian-xxx-netinst.iso /mnt/debianusb umount /dev/sda1 rmdir /mnt/debianusb

et voilà, c'est tout, suffit de booter sur la clef pour installer des debians partout

kubuntu sur acer aspire one

Publié par manu

le acer aspire one est un de ces nouveaux micro pc portables avec un disk SSD, j'ai pris celui avec linpus linux qui bien évidement ne sert pas a grand chose quand on veut utiliser son pc, donc j'ai décidé d'installer kubunut.. . :] ce qui suit peut tout a fait fonctionner avec ubuntu, voir même d'autres distributions (hmm), enfin pas tout quand même mais bon.

création d'une clef usb pour booter

pour cela on a besoin de:

  • un pc sous linux
  • un clef usb (au moins 1Go)
  • un accès interweb

il faut télécharger l'image de kubuntu.iso par ici: http://www.kubuntu.org/getkubuntu/download

iso2usb.sh

y'a plein de manières pour transférer l'image sur la clef, le plus simple est via ce script, disponible: http://jak-linux.org/tmp/iso2usb.sh .. ...il faudra aussi syslinux donc en tant que root:

ATTENTION: dans ce cas /dev/sda correspond a la clef usb stick, si c'est sdb autre il faudra ajusté a votre configuration

apt-get install syslinux mbr wget http://jak-linux.org/tmp/iso2usb.sh sh iso2usb.sh kubuntu-xxx.iso sda

installation de kubuntu

pendant le démarage du petit portable appuies sur F12 pour démarrer sur la clef USB. ecrit "live" ou quelque chose pour commencer l'install.. . ensuite c'est l'habituel choix de lieu/langue/clavier/etc etc.. . la partie intéressante est le formatage.. .. quelques indices:

  • choisir "ext2", j'ai cru comprendre que ce fs ne tient pas un journal intime aussi intense que d'autres
  • pour la swap.. perso, j'ai fini par virer la swap mais autrement, faites comme vous voulez

NOTE concernant le "disk": la vitesse de lecture est correcte mais en revanche l'écriture est d'une lenteur hallucinante, et donc ça fait ramer le pc a un point qui frôle l'insupportable .. donc le but ici sera d'éviter autant que possible l'écriture sur le disk (j'ai cru comprendre que j'avais le "SSD lent" je ne sais pas s'il y a des séries avec des SSD plus rapide.. selon cette page http://www.blogeee.net/codex/index.php?title=Acer_Aspire_One ou il y a beaucoup de specs, j'aurais la version rapide.). SI t'as moyen d'ajouter de la RAM fait le, perso je tourne avec 512Mo pour l'instant 1024Mo et pas de swap

pour connaitre le model du SSD :

root@hal:/home/manu# hdparm -i /dev/sda /dev/sda: Model=P-SSD1800 ...............

première chose a faire sur la nouvelle kubunut

... mettre à jour.. : ]

sudo su # car je déteste taper sudo a chaque ligne apt-get update apt-get upgrade

why fie

évidement la wifi ne fonctionne pas d'office et un micro pc avec des cables partout "ça ne fait pas de sens". .. pour cela il va falloir compiler les modules et pour cela il va falloir installer quelques logiciels.. alors:

apt-get install build-essential libc6-dev

le site madwifi est un peu. .. mouvementé amha, j'avais a la base pris les sources de madwifi-nr-r3366+ar5007.tar.gz depuis http://snapshots.madwifi.org/special/ mais maintenant il semble qu'il faut prendre madwifi-hal-0.10.5.6-r3816-20080724.tar.gz (dernière version le jour de la reinstall) depuis http://snapshots.madwifi.org/madwifi-hal-0.10.5.6/ ... (je pense qu'il y a déjà une version plus récente):

cd /usr/src wget http://snapshots.madwifi.org/madwifi-hal-0.10.5.6/madwifi-hal-0.10.5.6-r3816-20080724.tar.gz tar zxvf madwifi-hal-0.10.5.6-r3816-20080724.tar.gz cd madwifi-hal-0.10.5.6-r3816-20080724 make make install

il est possible qu'au cours de la vie. .. le "make install" demande s'il faut supprimer les pilotes actuels, dit oui via l'option r puis:

madwifi-unload modprobe ath_pci

j'ai du rebooter et jouer avec le bouton wifi (qui ne s'allume pas dans tout les cas) avant de voir du réseau, bonne chance avec ça.. . :]

optimisations générales

un tutoriel intéressant m'as indiqué quelques tuyaux sympa.. dans /etc/rc.local ajoute le suivant (avant la ligne exit 0).

# SP: save the SSD sysctl -w vm.swappiness=1 # Strongly discourage swapping sysctl -w vm.vfs_cache_pressure=50 # Don't shrink the inode cache aggressively # SP: depuis rc.last.ctrl sur Linpus echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor echo 1500 > /proc/sys/vm/dirty_writeback_centisecs echo 20 > /proc/sys/vm/dirty_ratio echo 10 > /proc/sys/vm/dirty_background_ratio [ -L /sys/bus/usb/devices/1-5/power/level ] && echo auto > /sys/bus/usb/devices/1-5/power/level [ -L /sys/bus/usb/devices/5-5/power/level ] && echo auto > /sys/bus/usb/devices/5-5/power/level # SP: accélère l'hibernation et réduire la taille de l'image echo 0 > /sys/power/image_size # SP: d'après Linpus pour le lecteur multicarte (a droite) ## ça ne fonctionne pas totalement pour l'instant (il faut que la carte y soit avant le boot # pour le scripte jmb38x_d3e.sh setpci -d 197b:2381 AE=47 nice /usr/local/sbin/jmb38x_d3e.sh & # SP: un autre truc de Linpus /usr/bin/setkeycodes e025 130 /usr/bin/setkeycodes e026 131 /usr/bin/setkeycodes e027 132 /usr/bin/setkeycodes e029 133 /usr/bin/setkeycodes e071 134 /usr/bin/setkeycodes e072 135 /usr/bin/setkeycodes e055 159 /usr/bin/setkeycodes e056 158 # /SP

/boot/grub/menu.lst

car il y a un souci de gestion de temps, on peut économiser quelques 0.00000000032 secondes au boot, et chaque picosecond compte, alors, déjà on va modifier les options par défaut pour que ce soit appliqué lors des mise à jour du noyau, ensuite on va le foutre dans la ligne du noyau actuel.trouves donc la ligne:

# defoptions=quiet splash

et fait le devenir ainsi:

# defoptions=elevator=noop clocksource=hpet quiet splash

ensuite dans la section kernel, pour chaque noyau que tu veux utiliser ajoute l'option clocksource=hpet et elevator=noop comme suitde:

kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=d73def36-8ef6-4da3-a8cf-d899fda3834a ro quiet splash

vers

kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=d73def36-8ef6-4da3-a8cf-d899fda3834a ro clocksource=hpet quiet splash elevator=noop

pour plus d'info sur le noop va voir (english) http://lonesysadmin.net/2008/02/21/elevatornoop/

plus plus plus d'optimisations

on peut aussi modifier /etc/sysctl.conf et rajouter a la fin:

# minimise l'utilisation de la swap vm.swappiness = 1 # ne pas être trop agressif avec la cache inode vm.vfs_cache_pressure = 50

oh dio

autrement dit audio, normalement le son ne sert a rien, mais pour la forme.. .: ] le son devrait fonctionner de suite MAIS après une petite hibernation j'ai remarqué que le son s'est barré dans les îles avec toute ma thune et le seul moyen de le faire revenir est d'utiliser les réflexes du maître windowsien, c'est a dire rebooter.. . évidement on va pas en rester la, y'a moyen de moyenner, cela en ajoutant quelque chose quelque part.. ..

echo "options snd-hda-intel model=acer" >> /etc/modprobe.d/alsa-base

petite note pour le son, la sortie casque fonctionne mais ne coupe pas le son des haut parleurs, c'est chiant et y'a pas mal de soucis dans ce sens (je n'ai pas testé le micro par exemple).. il va donc falloir attendre (ou bien développer) des pilotes meilleurs. .. (sinon voir sur d'autre tutos, mais dans tout les cas tout ne peut pas fonctionner correctement en même temps)

conclusion

ça devrait suffire pour l'instant non ? j'ajouterais des trucs sans doute si j'ai le temps (et l'envie), surtout en ce qui concerne es les lecteurs de cartes qui ne fonctionne pas pour moi.. .pour l'instant. ..

post conclusion

un truc supra chiant : un truc qui m'a fort contrarié est le fait que NetworkManager a une fuite de mémoire aussi grand que la chine. visiblement c'est un bug connu et dont une solution est d'installer network-manager_0.6.6-0ubuntu7_i386.deb qui lui est disponible sur la page ou alors directement ici. après téléchargement de ce truc il suffit de faire :

dpkg -i network-manager_0.6.6-0ubuntu7_i386.deb

quelques liens

tout ce que je sais a déjà était su ailleurs par d'autres et même publié avant ma naissance, voici quelques références qui m'ont aidé a faire tourner ce document ainsi que le pc. ..

Pysieved avec workaround.org (etch)

Publié par manu

voici quelques notes pour utiliser le système de filtrage sieve en utilisant le sytème de mail Workaround ISP style email en gros j'utilise le tutoriel workaround (avec une toute petite modification), j'ajoute pysieved et j'utilise le le meilleur webmail (squirrelmail bien sur) avec le plugin avelsieve.

Pysieved

Première étape, s'occuper de Pysieved, le serveur de sieve.

  • va sur http://woozle.org/~neale/src/pysieved/et récupére pysieved-HEAD.tar.gz (ce tutoriel a était fait avec la version 1.0)
  • décompresse l'archive dans /usr/local/ et copie le fichier de configuration dans /usr/local/etc/
cd /usr/local cp /la_ou/ta_téléchargé/pysieved-HEAD.tar.gz . tar xvf pysieved-HEAD.tar.gz cp /usr/local/pysieved/pysieved.ini /usr/local/etc/

pleins de trucs ont besoin d'être modifiés, donc en gros je donne ici le fichier de configuration complet (avec en plus l'option bindaddr qui pourrait être utile dans certains cas).

/usr/local/etc/pysieved.ini:

[main] # Authentication back-end to use auth = Dovecot # User DB back-end to use userdb = Dovecot # Storage back-end to use storage = Dovecot # Bind to what address? (Ignored with --stdin) #bindaddr = 127.0.0.1 # Listen on what port? (Ignored with --stdin) port = 2000 # Write a pidfile here pidfile = /var/run/pysieved.pid # What UID and GID should own all files? -1 to not bother uid = -1 gid = -1 # Switch user@host.name to host.name/user? hostdirs = False [Dovecot] # Path to Dovecot's auth socket (do not set unless you're using Dovecot auth) mux = /var/spool/postfix/private/auth # Path to Dovecot's master socket (if using Dovecot userdb lookup) master = /var/run/dovecot/auth-master # Path to sievec sievec = /usr/lib/dovecot/sievec # Where in user directory to store scripts scripts = pysieved # Filename used for the active SIEVE filter (see README.Dovecot) active = .dovecot.sieve # What user/group owns the mail storage (-1 to never setuid/setgid) uid = -1 gid = -1

édite et recharge inted

echo "sieve stream tcp nowait root /usr/bin/python python /usr/local/pysieved/pysieved.py --inetd" >> /etc/inetd.conf /etc/init.d/openbsd-inetd restart

Squirrelmail

je ne sais pas pourquoi mais j'ai bien cru que cette étape allé être long et chiant, mais finalement pas.. :]

avec une config de squirrelmail qui fonctionne il faut

  1. télécharger le plugin avelsieve dans le bon répertoire depuis le site de l'auteur ou bien depuis sa page dans la section "plugins de squirrelmail.
  2. extraire l'archive
  3. copier config_sample vers config.php
cd /chemin/vers/squirrelmail/plugins/ cp /la/ou/tu_a/téléchargé/avelsieve-1.9.7.tar.gz . tar zxvf avelsieve-1.9.7.tar.gz cp avelsieve/config/config_sample.php avelsieve/config/config.php

ensuite il faut exécuter conf.pl (dans /chemin/vers/squirrelmail/config) pour activer le plugin

Dovecot

j'ai changé une ligne dans le fichier dovecot.conf afin d'avoir un peu plus "d'espace" avant :

mail_location = maildir:/home/vmail/%d/%n

après

mail_location = maildir:/home/vmail/%d/%n/maildir

IMPORTANT: si ton serveur de mail a déjà reçu des mails avant cette manipulation il va alors falloir déplacer des trucs de /home/vmail/domain.tld/user/ vers /home/vmail/domain.tld/user/maildir/

après le répertoire /home/vmail/domain.tld/user/ devrait ressembler à:

lrwxrwxrwx 1 vmail vmail 18 2008-05-16 12:41 .dovecot.sieve -> pysieved/phpscript drwx------ 9 vmail vmail 4,0K 2008-05-15 20:34 maildir drwxr-xr-x 2 vmail vmail 4,0K 2008-05-16 12:41 pysieved

et /home/vmail/domain.tld/user/maildir/ ressemblerais à :

drwx------ 2 vmail vmail 4,0K 2008-05-15 20:30 cur -rw------- 1 vmail vmail 168 2008-05-15 20:30 dovecot.index -rw------- 1 vmail vmail 17K 2008-05-15 20:32 dovecot.index.cache -rw------- 1 vmail vmail 756 2008-05-15 20:32 dovecot.index.log -rw------- 1 vmail vmail 89 2008-05-15 20:30 dovecot-uidlist drwx------ 5 vmail vmail 4,0K 2008-05-15 20:34 .INBOX.Drafts drwx------ 5 vmail vmail 4,0K 2008-05-15 20:34 .INBOX.Sent drwx------ 5 vmail vmail 4,0K 2008-05-15 21:46 .INBOX.spam drwx------ 5 vmail vmail 4,0K 2008-05-15 20:25 .INBOX.Trash drwx------ 2 vmail vmail 4,0K 2008-05-15 20:30 new -rw------- 1 vmail vmail 47 2008-05-15 20:34 subscriptions drwx------ 2 vmail vmail 4,0K 2008-05-15 20:30 tmp

quleques "burnes" (et les astuces)

il y a quelques trucs qu'il faut savoir:

  • une fois qu'un utilisateur a créer son propre filtre sieve cela désactive le filtre global (globalsieverc), ce qui veux dire que le spam ne sera plus filtré... Donc, la première règle a créer devrait être une règle qui filtre les pourriels..
  • la suppression des règles fonctionne SAUF qu'il faut toujours qu'il reste au moins une règle dans la liste, même si elle est désactivée. CEPENDANT il existe un FIX, merci à Mike Lewinski, le fichier table.php a besoin d'être patché, voici comment faire:
cd /path/to/squirrelmail/plugins/avelsieve/ cp table.php table.php.bak wget http://www.rockynet.com/patches/table.patch patch table.php table.patch

et voilà, tu peux, si tu veux, supprimer toute les règles sieve.

c'est tout c'est fini.. .. . \o/

Awstats

Publié par manu

Un petit tutoriel concernant Awstats, cela suppose que vous avez déjà Apache installé sur votre serveur.

Récupérer et décompresser les sources

Il faut récupérer les sources depuis http://awstats.sourceforge.net/#DOWNLOAD (version testé dans ce tutoriel awstats-6.7.tar.gz)

donc pour cela:

cd /usr/local/ wget http://le_lien_pour_telecharger_awstats

décompresser et installer awstats

tar zxvf awstats-6.7.tar.gz mv awstats-6.7 /usr/local/awstats chown -R root:www-data /usr/local/awstats chmod 750 /usr/local/awstats mkdir /var/cache/awstats chown www-data:www-data /var/cache/awstats

Configurer Awstats

On pourra prendre les fichiers de configuration par défaut "maison" pour ensuite les modifier:

mkdir /etc/awstats cd /etc/awstats wget http://manurevah.com/stuff/awstats/awstats.domaine.tld.conf wget http://manurevah.com/stuff/awstats/include.conf

copier awstats.domaine.tld.conf vers awstats.monsiteamoi.com.conf et faire la même chose pour chaque domaine/site dont il faut faire les statistiques via awstats.

cp awstats.domaine.tld.conf awstats.monsiteamoi.com.conf

puis dans le fichier il faut modifier:

LogFile="/var/log/apache/monsiteamoi.com.log" #le fichier de log qui nous concerne SiteDomain="monsiteamoi.com" # le nom de domaine HostAliases="www.monsiteamoi.com"

Mettre a jour les statistiques a heure régulier

Nous allons créer un script qui sera exécuté via crontab.

vi /usr/local/sbin/awstats-cronbin

dans lequel on mets par exemple

#!/bin/bash perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=monsiteamoi.com perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=exemple.fr

puis on le rends executable

chmod +x /usr/local/sbin/awstats-cronbin

Créons la tâche planifiée:

echo "0 6,12,18,22 * * * root /usr/local/sbin/awstats-cronbin" >> /etc/crontab

Configuration de Apache

Pour voir les statistiques on passe par apache, la configuration qui suit doit donc être ajouté dans apache, soit de manière globale (déconseillé) soit dans un VirtualHost dédié a cette fonction (un peu mieux). Dans cette exemple on va configurer le sous domaine stats.monsiteamoi.com pour consulter les statistiques, cela suppose que vous comprenez suffisamment apache pour adapter ceci a votre installation.

<VirtualHost *:80> ServerName stats.monsiteamoi.com DocumentRoot /var/www/html/user/stats.monsiteamoi.com CustomLog /var/log/apache2/stats.monsiteamoi.com.log combined # Configuration pour Awstats <Directory "/usr/local/awstats/wwwroot"> Options None AllowOverride AuthConfig Order allow,deny Allow from all </Directory> Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/" Alias /awstatscss "/usr/local/awstats/wwwroot/css/" Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/" ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/" </VirtualHost>

Aussi, il faut que dans chaque vhost concerné par les stats il y ai (c'est cela que va lire awstats.domain.tld.conf):

CustomLog /var/log/apache/domain.tld.log combined

puis il faut relancer apache, peut etre tester la configuration avant, toujours plus sympalol.

apachectl configtest apachectl graceful

Voir les stats

Il suffit de pointer son navigateur vers le VirtualHost configuré plus haut, dans cette exemple c'est stats.monsiteamoi.com, puis vers le script awstats avec comme argument le domaine dont il faut voir les statistiques. attention la partie config=monsiteamoi.com va chercher dans /etc/awstats un fichier avec le meme nom, prefixé de "awstats" et suffixé de ".conf", donc /etc/awstats/awstats.monsiteamoi.com.conf.

en résumé : http://stats.monsiteamoi.com/awstats/awstats.pl?config=monsiteamoi.com

Sécurité

On peut tout a fait mettre en place une sécurisation par .htaccess ou directement dans la configuration de Apache:

<Files "awstats.pl"> AuthUserFile /var/www/.htpasswd #s'assurer de créer un htpasswd quelquepart AuthGroupFile /dev/null AuthName "mdp stp" AuthType Basic require valid-user AllowOverride AuthConfig </Files>

je crois que la c'est fini, comme toujours y'a moyen de peaufiner tout cela.

noyau dedibox

Publié par manu

j'ai pris une dedibox récemment et j'ai trouvé que l'interface de gestion est pas mal et plein de choses sont pas mal, cependant j'ai constaté un souci que visiblement je n'étais pas seul a avoir. en effet la freebox plante inopinément, de préférence le matin entre 5h et 9h, mais des fois en plein après midi, rien dans les logs, rien null part

je tourne sous Debian GNU/Linux Etch, c'est a dire la version stable, et selon certains dires il y aurai une incompatibilité entre l'option "NX Bit" et la carte mère et noyau dedibox, et la solution serait d'utiliser un noyau sans le support "NX Bit" ou de le désactivé du firmware la carte mère. Il y a peut être des variantes matérielles sur les dedibox qui fait que certains choses subtiles peuvent varier. (?)

j'ai commencé par désactivé le NX Bit du firmware mais ça n'a RIEN changé, j'ai donc téléchargé la dernière version stable du noyau (2.6.22.7) depuis kernel.org et j'ai compilé mon petit noyau, au bout d'une semaine sans plantages j'estime que ça va mieux, beaucoup mieux, donc si cela intéresse qqun, voici un paquet Debian du noyau que j'ai compilé:

  • paquet debian 2.6.22.7 avec support du processeur C7 (et non pas C3 comme dans le noyau dedibox-r7)
  • fichier config 2.6.22.7
    • les changements (en gros)

      • Forced module unloading: désactivé, je ne dev pas de modules linux c'est donc inutle
      • Support for Large Block Devices: désactivé, 2TB sur dedibox ? voilà quoi.
      • Processor family: VIA C7 au lieu de C3
      • High Memory Support: off, il y a 1Go de ram, pas un bit de plus (ni même l'option d'avoir plus)
      • IP virtual server support: si c'est expérimental je ne le mets pas dans mon noyau
      • Normal floppy disk support: je ne pense pas que cela me servira
      • ATA/ATAPI/MFM/RLL support:
      • CMD640 chipset bugfix/support: y'as pas besoin !
      • RZ1000 chipset bugfix/support: pareil, y'a pas de RZ1000 la dessus !
      • File systems: en gros j'ai désactivé ce dont je n'avais pas du tout besoin

      et c'est tout. je me demande si finalement y'aura pas un rapport avec la gestion de la ram des fois plus qu'avec le support NX Bit, qui sont lié dirait-t'on, ou tout simplement le support C7 recent qui arrange beaucoup de choses.. . .. qui sait ? pas moi en tout cas. : ]

Munin

Publié par manu

Munin est un logiciel qui permet de surveiller son système et de créer des graphiques qui seront accessible via une page web.

Il y a deux parties, le serveur et le client, on pourra donc avoir un serveur et plusieurs clients (nodes) et donc depuis le serveur connaitre l'état de chaque machine. Dans ce tuto, pour l'instant, je survol une installation des plus simples.

Installation

Sur Debian il suffit de:

apt-get install munin munin-node

Sera crée :

  • /var/www/munin
  • /etc/munin/
  • /usr/share/munin/plugins/

Configuration du serveur

Dans /etc/munin/munin.conf on a :

dbdir /var/lib/munin htmldir /var/www/munin logdir /var/log/munin rundir /var/run/munin

Si l'on veut changer quelque chose, comme le htmldir c'est ici qu'il faut le faire.

Aussi on peut modifier ainsi (exemple) :

[localhost.localdomain] address 127.0.0.1 use_node_name yes

en

[nomdemachine.lan] address 127.0.0.1 use_node_name yes

c'est ici qu'on indique au serveurs quels sont les "nodes" (clients) qu'il faut intérogé, aussi en changeant le "nomdemachine" il est plus simple d'identifier ce que l'on lit.

Visualiser les graphes

Il suffira d'aller sur la page qui montrera ce qui est défini par htmldir, c'est a dire: /var/www/munin

Sur une Debian par défaut ce sera http://IP/munin cependant cela peut varier.

configuration du node

par défaut la configuration devrait être suffisante, cependant vous pouvez regarder dans /etc/munin/munin-node.conf et voir ce qui se passe. si votre node n'est pas le serveur lui même il faudra alors permetter l'accès au serveur selon l'exemple:

allow ^127\.0\.0\.1$ allow ^192\.168\.1\.11$

ici on permet a localhost (par défaut) et un autre ordinateur sur le lan (le serveur qui regroupe toute les graphs), ceci fonctionne évidement avec des IP publics. si vous vous demandé quelle port il faudra ouvrir voici la réponse: TCP 4949

Plugins

Pour ajouter un plugin, en principe, il suffit de créer un lien dans /etc/munin/plugins/ vers le plugin qui est dans /usr/share/munin/plugins/, configurer le plugin, puis redémarrer munin-node.

Par exemple :

cd /etc/munin/plugins/ ln -s /usr/share/munin/plugins/df . # celui-ci sera sans doute déjà activé. ./df autoconf yes /etc/init.d/munin-node restart

Il va de soi que ce ne sera pas toujours si simple, il faudra lire ce qui se trouve dans le fichier du plugin en question, il y a souvent quelques explications et chaque plugin dépend de ce qu'il aura a faire pour fonctionner, certains plugins requièrent des modules noyau et/ou des logiciels pour fonctionner.

Il y a des plugins dont le nom se fini avec un tiret bas "_", il ne faut pas créer des alias tout bêtement, pour savoir que faire voyons l'exemple:

Je veux utiliser sensors, je vois /usr/share/munin/plugins/sensors_ donc j'utilise l'option suggest comme suit:

/usr/share/munin/plugins/sensors_ suggest

et cela me dit :

fan volt temp

alors pour avoir la température je fais:

cd /etc/munin/plugins/ ln -s /usr/share/munin/plugins/sensors_ sensors_temp

maintenant vous pouvez compliquer votre installation avec pleins de nodes/serveurs/plugins etc etc..
:]

AutoFS

Publié par manu

ce logiciel permet de monter des systèmes de fichier a la demande que ce soit des disque USB/carte flash ou des système de fichiers distant et même pourquoi pas un disque interne.

Ce qu'il faut

  • Un noyau ayant l'option "Kernel automounter" File Systems ---> <*> Kernel automounter version 4 support (also supports v3)
  • Le logiciel autofs apt-get install autofs
  • De quoi gerer le(s) système(s) de fichier qu'on aura a monté

    Par exemple pour un disque USB il faudra le bon module noyau, pour du samba pareil avec en plus le logiciel smbfs.

Configuration

Pour configurer autofs il faut éditer le fichier maitre /etc/auto.master, dans ce fichier on fera référence a d'autre fichiers de configuration.

/etc/auto.master

Dans le fichier /etc/auto.master il faut ajouter la ligne (on peut avoir plusieurs lignes au besoin):

/mnt/autofs-user /etc/auto.user --timeout=3 --ghost

Dans l'ordre on précise:

  • le répertoire de montage
  • le fichier de configuration des montages
  • les options supplémentaire

--timeout : permet d'indiquer a partir de combien de temps (en secondes) de non accès au ressource le système de fichiers sera démonté.

--ghost : si l'on ne mets pas cette option aucun répertoire ne sera crée dans /mnt/autofs-user et donc pour monter le systéme de fichiers il faudra y accéder en tapant le chemin complet, par exemple /mnt/autofs-user/sda1, vous comprendrez en lisant la suite.

Il faut donc créer le répertoire de montage:

mkdir -p /mnt/autofs-user

/etc/auto.user

C'est dans ce fichier que l'on pourra définir les montages un par un:

usb1 -fstype=auto,rw,uid=1000,gid=1000 :/dev/sda1 usb2 -fstype=auto,rw,uid=1000,gid=1000 :/dev/sdb1

C'est donc dans /mnt/autofs-user/sda1 que sera monté /dev/sda1 avec les options habituelles de fstab. etc etc.

uid et gid : le numéro du compte utilisateur a qui appartiendra le montage, il est important sans quoi cela risque d'avoir les droits "root".

maintenant que tout est bon on redémarre autofs

/etc/init.d/autofs restart

En pratique

Il suffit donc d'aller dans /mnt/autofs-user/ vous verrez les répertoires usb1 et usb2 qui sont a priori vides.

En allant dans le répertoire /mnt/autofs-user/usb1 (ou en listant son contenu etc etc) autofs va monter /dev/sda1 dans le répertoire usb1 comme défini dans le fichier /etc/auto.user et /etc/auto.master. En effet il va monter sda1 dans usb1 par rapport au point de montage défini dans /etc/auto.master, c'est a dire dans /mnt/autofs-user.

La configuration sans --ghost

L'option --ghost va créer automatiquement les répertoires usb1 et usb2 dans /mnt/autofs-user/ ce qui est pratique, cependant je trouve cela moins pratique pour ce que j'en fait.

Ma technique consiste a créer un répertoire depuis lequel j'accéderais au montage, dans mon cas je fais:

mkdir /home/manu/autofs/ cd /home/manu/autofs/ ln -s /mnt/autofs-user/usb1 . ln -s /mnt/autofs-user/usb2 .

Cela me créera des liens vers des répertoires qui n'existe pas SAUF quand sda1 ou sda2 est monté.

lrwxrwxrwx 1 manu manu 21 2005-08-14 09:53 usb1 -> /mnt/autofs-user/sda1 lrwxrwxrwx 1 manu manu 21 2005-08-14 09:53 usb2 -> /mnt/autofs-user/sdb1

Ainsi quand je liste le contenu du répertoire /home/manu/autofs/ autofs va tenter de monter sda1 et sdb1, normal, ce qui est plus subtile est l'affichage.

Je m'explique, j'ai un bash coloré, si le lien pointe vraiment quelque part ce sera affiché en jaune pour moi, si c'est un lien vers un répertoire inexistant (non monté) ce sera rouge, ainsi je sais tout de suite ce qui est monté ou non. De plus avec un navigateur de fichier comme Konqueror par exemple on voit de suite si l'icône affiché est un lien vers quelque chose cela veut dire que la ressource est monté sinon il m'affichera une icône avec un "?".

AutoFS et samba et/ou NFS

AutoFS est une sorte de fstab qui monte au besoin, on peut tout a fait monté des partages réseau avec.

zik -fstype=smbfs,credentials=/etc/smb.auth.manu,uid=1000,gid=1000 ://192.168.0.100/zik nfs -rsize=8192,wsize=8192,soft,timeo=14,rw 192.168.0.100:/chemin/nfs

A noter pour le samba qu'il faudra le fichier /etc/smb.auth.manu, qu'il soit chmod 600 et contienne les infos d'authentification samba, par exemple:

username=manu password=toto

maintenant tout devrait fonctionner a merveille, le soleil doit briller et vous gagnerais le lotto si vous forwardez ce lien vers au moins 15 personnes.. . .

: ]