systemx

Aller au contenu | Aller au menu | Aller à la recherche

vendredi, novembre 26 2010

Xorg 1.8.X + et les peripheriques

Suite au passage au Xorg 1.8.x de gros changements sont à prévoir.
Un des points cruciaux est le remplacement de HAL par udev pour la reconnaissance du matériel.
Suite à ce changement, le probleme classique est que la config clavier  est en anglais pour les DM (kde/gdm ..).
Impossible à configurer.
Le moyen de contournement que j'avais trouvé était de faire :
Section "ServerFlags"
Option "AutoAddDevices" "off"
EndSection
Mais ca ne ma satisfaisait pas beaucoup de mettre le systeme de detection à off et je perdais les fonctions du touchpad.
Après des recherches, pour retrouver mon clavier fr :
1 - Enlever le "AutoAddDevices" "off" et remplacer par :
Section "ServerFlags"
    Option         "AllowMouseOpenFail" "true"
EndSection

2 - Configurer evdev pour reconnaitre le clavier fr (xorg.conf ou xorg.conf.d/...)
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "XkbLayout" "fr"
EndSection
3 - Enfin Réglages du touchpad (eviter d'avoir le touchpad activé lors de la saise de texte (très très pénible !) :
- Tout d'abord vérifier quel est le touchpad (dans mon cas ETPS/2 Elantech Touchpad) :
% xinput list 
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=11 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=13 [slave pointer (2)]

- Valider SHMconfig dans evdev pour synaptics (xorg.conf) :

Section "InputClass"
#Identifier "Touchpad"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
Option "SHMConfig" "on"
EndSection

Ensuite il suffit de lancer la commande syndaemon :
syndaemon -t -i 2 -d 

ou bien plus pratique pour régler la config du pad, le menu de config KDE :
- Vérifier que le package : kde-misc/synaptiks-0.4.0 est bien installé
- Chercher touchpad ou synap.. dans le kmenu et configurer graphiquement.

Synaptiks

En cas de perte complete du trackpad (sabayon linux) :
insmod /lib64/modules/$(uname -r)/kernel/drivers/input/mouse/psmouse.ko
Liens :
https://wiki.archlinux.org/index.php/Asus_N82JV
http://forums.gentoo.org/viewtopic-t-694054.html

Pour les acharnés :
http://www.reactivated.net/writing_udev_rules.html

mercredi, septembre 29 2010

Zypper error sur opensuse 11.3 avec un proxy

Impossible de mettre à jour opensuse du à l'erreur suivante :
linux-rt7j:~ # zypper -n -q refresh
Failed to download /media.1/media from http://download.opensuse.org/distribution/11.3/repo/non-oss/
Abort, retry, ignore? [a/r/i/?] (a): a
Repository 'openSUSE-11.3-Non-Oss' is invalid.
J'ai essayé plein d'options mystiques mais rien n'y fait. Curl/Wget/Ftp fonctionne correctement à travers un proxy.
Au final trouvé sur un forum russe !
export ZYPP_ARIA2C=0
linux-rt7j:~ # zypper in nmap
Retrieving repository 'openSUSE-11.3-Non-Oss' metadata [done]
Building repository 'openSUSE-11.3-Non-Oss' cache [done]
Retrieving repository 'openSUSE-11.3-Oss' metadata [done]
Building repository 'openSUSE-11.3-Oss' cache [done]
Retrieving repository 'openSUSE-11.3-Update' metadata [done]
Building repository 'openSUSE-11.3-Update' cache [done]
Et hop ... Mais bon je cherche des explications à tout cela.
Apparement c'est un client http censé assuré un meilleur service pour les updates.
J'imagine que c'est un problème du à mon proxy et que "ariac" n'utilise pas le setting proxy.
Voir ce lien.
Voir aussi sur ce lien.

lundi, juin 28 2010

Correction affichage de boot et ctrl+alt+F1 sous Lucid (10.04)

Ca faisait un moment que ca me turlupinais, les ecrans virtuels ne fonctionnent pas sous lucid.
Le crtl-alt-F1 ou autre ne donnais rien (la souris qui disparait c'est tout) et le logo ubuntu du boot avais des couleurs horribles (pas grave mais un si gras bug ...)
C'est très deprimant car on se retrouve bloqué si un pb apparait au boot.
J'avais bien vu la page de ubuntu-fr et plymouth mais j'aime pas ce que je comprends pas et ces v86d ou uvesafb ne me disais rien.
En cherchant un peu j'ai trouvé une solution similaire mais qui semble moins ésotérique. installer si besoin est hwinfo (apt-get install hwinfo)
hwinfo --framebuffer
Choisir la resolution qui vous convient Changer la ligne suivante dans /etc/default/grub.cfg (j'en profite pour enlever le mem check et uuid) vga=792 est en fonction du code ascii retourné par hwinfo choisissez votre résolution
GRUB_CMDLINE_LINUX_DEFAULT="splash vga=792"
Updater votre grub
update-grub
Enfin editer /etc/initramfs-tools/conf.d/splash et ajouter (le fichier n'existe pas d'origine)
FRAMEBUFFER=y
Voila voila c'est beau et la console fonctionne (le bug original etait du à une mauvaise utilisation de l'ecran/framebuffer)

Poste d'origine a la fin de cet page
Liste des parametres VGA pour aider à faire la correspondance avec hwinfo : http://www.pendrivelinux.com/vga-boot-modes-to-set-screen-resolution/

lundi, juin 21 2010

GNUtls sur debian/ubuntu

S'assurer que le mod gnutls est enable.

a2enmod gnutls

Eventuellement virer le ssl, à noter que gnutls et ssl peuvent cohabiter sur différents ports

a2dismod ssl

Valider dans port.conf :

Listen 443

Creer son vhost :

DocumentRoot /srv/www/ssl ServerName monserver.org:443 ServerAdmin theboss@monserver.org GnuTLSEnable on GnuTLSCertificateFile /etc/apache2/ssldir/ssl.cert GnuTLSKeyFile /etc/apache2/ssldir/ssl.key GnuTLSPriorities SECURE AuthType Digest AuthName "ssl" AuthDigestDomain / https://monserver.org/ AuthDigestProvider file AuthUserFile /etc/apache2/passwd.htdigest Require valid-user theboss ErrorLog /var/log/apache2/ssl_error.log CustomLog /var/log/apache2/ssl_access.log combined

- Creer son certificat et très important il faut copier le pem apres le cert dans le meme fichier (gandi - redemarrer le server web et voila !

jeudi, avril 22 2010

Réduction du temps de boot (k)ubuntu/debian

Réduction du temps de boot ubuntu :
1 - Tout d'abord on vire le splash de boot qui sert à rien : editer /boot/grub/grub.cfg
Avant -> linux /vmlinuz-2.6.33-020633-generic root=UUID=05943250-1fca-4035-923e-68594ae2492f ro quiet splash
Apres -> linux /vmlinuz-2.6.33-020633-generic root=UUID=05943250-1fca-4035-923e-68594ae2492f ro quiet section
2 - Services courants inutiles pour ma config :
update-rc.d -f bluetooth remove
update-rc.d cups disable
update-rc.d -f rsync disable
update-rc.d -f apparmor remove -> j'utilise pas mais ca me laisse une erreur au boot (mais en corrige une subdomainfs ...)
update-rc.d -f saned remove -> utilisé pour les scanners
update-rc.d -f dns-clean remove -> utilisé pour le DNS pour des connections lentes types dialup
update-rc.d -f pppd-dns -> utilisé pour le dialup (pppd)

A noter l'utile update-rc.d pour avoir une vue globale de la config des scripts de boot.

3 - Connection manager
Utilisant principalement gdm (car double ecran pas encore stable sous KDE) je repasse en gdm pour eviter de charger des librairies inutiles à mon environnement standard.
Après ces modifs je passe à un modeste 1mn et 12s sur un i5 M430 à 2.27ghz en 2.6.33.
Il faut dire que 20s suffisent avant le lancement de gdm, je me loggue manuellement avec le temps de latence induit à cette étape.
Mais ca reste pas terrible.
Sous sidux en faisant plus ou moins les mêmes manips je suis à 50s et en debian/KDE un peu moins mais il n'y a pas toutes les applets genre network manager ou compiz (j'adore :-)).
Enfin pour ceux qui cherchent à savoir ce qu'il y a sous le capot, l'excellente page en englishe sur les scripts de boot pour ubuntu.

En note rapide :
1 - Après le lancement de KDE sous gnome les fontes sont horribles :
~ : cp ~/.fonts.conf vi ~/.fonts.conf.okou ~ : cat << fin > ~/.fonts.conf true fin Ca n'est surement pas l'idéal mais ca sauve (inspiré de ce lien).
2 - J'en ai marre de ce melange immonde qui resulte de l'install de KDE + gnome + xfce + e17 sur un même OS. Pareil d'ailleurs sur debian ou ubuntu ...
3 - Je vois pas l'interet de blkid qui changent après reformattage d'une partition, faut que je repasse en sdX

mercredi, février 17 2010

Cacti install on SLES 10

Install de Cacti + plugins + NPC sur un SLES10.1
1 - Install de cacti standard
ll faut recuperer tous les packages php necessaires dispos dans le cd
2 - Recuperer le addon pour utiliser les plugins cacti
http://trac2.assembla.com/npc/wiki/QuickStartGuide
3 - Installer via la commande patch ou recopier directement les fichiers
Pour mon cas l'extention des plugins est : cacti-plugin-0.8.7e-PA-v2.6
4 - pour utiliser les plugins il faut valider l'acces au pluginspour le login (même admin).
Console > User mgt > admin (ou user au choix) > Realm permission > Plugin Management
Le menu Console > Plugin Management apparait
5 - Installer NPC
Il suffit de copier le plugin dans le repertoire plugin de cacti et d'aller le valider dans les menus cacti de la doc :

Go to Console -> Plugin Management -> Uninstalled
Click the "Install" link in the npc section
Click the "Installed" tab
Click the "Enable" link in the npc section. The npc tab should be viewableat this point.

6 - Ensuite ca marche pas ...
Page blanche dans le nouvel onglet NPC, l'erreur vient de fonctionn manquante : json_encode()
PHP Fatal error:  Call to undefined function json_encode()
Il faut ajouter une extension via le pecl, cela necessite la commande phpsize qui bien avec le pkg php5-devel
pear5 install pecl/json
Ca compile bien, il faut rajouter l'extention dans php (/etc/php5/apache2/php.ini :
extension=json.so
7 - J'affiche bien les infos de l'onglet NPC mais ca plante quand même :
Uncaught exception 'Doctrine_Connection_Exception' with message 'Couldn't locate driver named mysql
install du rpm php5-pdo + ajout dans php.ini de apache + restart d'apache ...
Pareil.
En fait il faut ajouter : pdo_mysql.so
C'est là que les choses se gatent. Pour une raison inconnu pdo_mysql n'est pas inclus dans SLES10. Le site package built me donne une version soit disant pour SLES10 mais à l'installil reclame php 5.1.4 alors que c'est la 5.1.2 d'installée.
7.1 pear install pecl/pdo
running: make INSTALL_ROOT="/var/tmp/pear-build-merlep/install-PDO-1.0.3" install
Installing shared extensions: /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/lib64/php5/extensions/
Installing header files: /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/include/php/
Installing PDO headers: /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/include/php/ext/pdo/
running: find "/var/tmp/pear-build-merlep/install-PDO-1.0.3" | xargs ls -dils
262202 4 drwxr-xr-x 3 root root 4096 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3
262231 4 drwxr-xr-x 4 root root 4096 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr
262235 4 drwxr-xr-x 3 root root 4096 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/include
262236 4 drwxr-xr-x 3 root root 4096 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/include/php
262237 4 drwxr-xr-x 3 root root 4096 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/include/php/ext
262238 4 drwxr-xr-x 2 root root 4096 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/include/php/ext/pdo
262239 24 -rw-r--r-- 1 root root 23679 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/include/php/ext/pdo/php_pdo_driver.h
262241 4 -rw-r--r-- 1 root root 3016 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/include/php/ext/pdo/php_pdo.h
262232 4 drwxr-xr-x 3 root root 4096 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/lib64
262233 4 drwxr-xr-x 3 root root 4096 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/lib64/php5
262234 4 drwxr-xr-x 2 root root 4096 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/lib64/php5/extensions
262230 284 -rwxr-xr-x 1 root root 284969 2010-02-18 13:07 /var/tmp/pear-build-merlep/install-PDO-1.0.3/usr/lib64/php5/extensions/pdo.so

Build process completed successfully
Installing '/usr/lib64/php5/extensions/pdo.so'
Installing '/usr/include/php/ext/pdo/php_pdo.h'
Installing '/usr/include/php/ext/pdo/php_pdo_driver.h'
install ok: channel://pecl.php.net/PDO-1.0.3
configuration option "php_ini" is not set to php.ini location
You should add "extension=pdo.so" to php.ini
7.2 On commence à rigoler pour l'nstall de pdo_mysql
Un bout de la réponse à cette page qui est un gros hack des fichiers de config pour la compil. Ou bien celle ci et miracle ca tombe en marche. Le pb c'est que les 2 tombent en marche en même temps sans que je comprennes pourquoi ...

mercredi, juillet 29 2009

mysql et logadm

Logadm est l'équivalent de logrotate sous Solaris. Il a l'avantage d'avoir une syntaxe plus consise.
J'ai bêtement galéré avec l'archivage des logs de mysql. En effet la commande "flush logs" qui permet de recreer les logs de mysql crée un fichier logfile-old.
Le plus drole est que il ecrit dans ce fichier -old ! Je vous laisse admirer :
host admin : mysqladmin -u root -p flush-logs 
Enter password:
host admin : ls -l
total 5776
-rw-rw---- 1 mysql dba 0 Jul 29 14:39 myserver.log
-rw-rw---- 1 mysql dba 604 Jul 29 14:39 myserver-old
-rw-rw---- 1 mysql dba 16571 Jul 29 14:46 myserver.slowquery.log
On voit donc que :
  1. Le slowquery log est pas roté
  2. Le fichier de log mis à jour est myserver-old !
Le plus amusant est que si on fait comme suggéré dans la doc un mv des fichiers .log on se retrouve toujours avec 2 fichier (myserver.log et myserver-old)
La procédure semblait pourtant exact (doc mysql) :
shell> cd mysql-data-directory
shell> mv mysql.log mysql.old
shell> mv mysql-slow.log mysql-slow.old
shell> mysqladmin flush-logs
Mais finalement une option de logadm m'a sauvé la mise.
Cette option '-c' permet de copier le fichier (en rotant les numéro de version) puis trunquer le fichier ouvert.
On évite ainsi tout ce bazar. La ligne logadm :
/srv/mysq/admin/*.log -C 4 -c -s 1k
Puis on lance logadm pour avoir :
-rw-rw----   1 mysql dba            0 Jul 29 15:10 SESRBR.log
-rw-rw---- 1 mysql dba 323307 Jul 29 15:09 SESRBR.log.0
-rw-rw---- 1 mysql dba 0 Jul 29 15:10 SESRBR.slowquery.log
-rw-rw---- 1 mysql dba 43464 Jul 29 15:10 SESRBR.slowquery.log.0

PS : Cepedant pour rétablir les logs correctement après un flush log ... Il faut redémarrer mysql.
PS2 : Le -s 1k est pour les tests !
PS3 : Pour mettre le log en verbose manuellement : SET GLOBAL general_log = 'ON';

jeudi, mars 19 2009

Quel process ouvre quel port sous solaris

Comment savoir qui écoute sur quel port, question inévitable sur unix/linux.
On utilise en général lsof mais sur solaris on peut faire plus simple grace au script pcp.
se-srm-dev srmadm # ./pcp -p 587 
PID Process Name and Port
_________________________________________________________
9163 /usr/lib/sendmail 587
sockname: AF_INET 0.0.0.0 port: 587
_________________________________________________________
Pratique non !
C'est un script trouvé sur cette page.
Voici le code modifé pour checker si l'utilisateur est bien root :
#!/usr/bin/ksh
ID=`id | cut -f 2 -d '=' | cut -f 1 -d '('`
if [ $ID -ne 0 ] ;
then
echo >&2 "Need to be run by root"
exit 1
fi
i=0
while getopts :p:P:a opt
do
case "${opt}" in
p ) port="${OPTARG}";i=3;;
P ) pid="${OPTARG}";i=3;;
a ) all=all;i=2;;
esac
done
if [ $OPTIND != $i ]
then
echo >&2 "usage: $0 [-p PORT] [-P PID] [-a] (Wildcards OK) "
exit 1
fi
shift `expr $OPTIND - 1`
if [ "$port" ]
then
# Enter the port number, get the PID
#
port=${OPTARG}
echo "PID\tProcess Name and Port"
echo "_________________________________________________________"
for proc in `ptree -a | awk '/ptree/ {next} {print $1};'`
do
result=`pfiles $proc 2> /dev/null| egrep "port: $port$"`
if [ ! -z "$result" ]
then
program=`ps -fo comm= -p $proc`
echo "$proc\t$program\t$port\n$result"
echo "_________________________________________________________"
fi
done
elif [ "$pid" ]
then
# Enter the PID, get the port
#
pid=$OPTARG
# Print out the information
echo "PID\tProcess Name and Port"
echo "_________________________________________________________"
for proc in `ptree -a | awk '/ptree/ {next} $1 ~ /^'"$pid"'$/ {print $1};'`
do
result=`pfiles $proc 2> /dev/null| egrep port:`
if [ ! -z "$result" ]
then
program=`ps -fo comm= -p $proc`
echo "$proc\t$program\n$result"
echo "_________________________________________________________"
fi
done
elif [ $all ]
then
# Show all PIDs, Ports and Peers
#
echo "PID\tProcess Name and Port"
echo "_________________________________________________________"
for proc in `ptree -a | sort -n | awk '/ptree/ {next} {print $1};'`
do
out=`pfiles $proc 2>/dev/null| egrep "port:"`
if [ ! -z "$out" ]
then
name=`ps -fo comm= -p $proc`
echo "$proc\t$name\n$out"
echo "_________________________________________________________"
fi
done
fi
exit 0
Sous linux
/ # fuser -n tcp 8080
8080/tcp:             8349
/ # lsof -i :8080
COMMAND  PID   USER   FD   TYPE  DEVICE SIZE NODE NAME
java    8349 tomcat    3u  IPv4 2435417       TCP *:tomcat (LISTEN)
#### SHOW TIMER
/ # netstat -nao
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       Timer
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0     48 172.31.208.143:22       172.26.44.48:13277      ESTABLISHED on (0.33/0/0)
tcp        0      0 172.31.208.143:22       172.28.120.138:4508     ESTABLISHED keepalive (1857.58/0/0)
udp        0      0 172.31.208.143:32770    172.31.208.50:514       ESTABLISHED off (0.00/0/0)
#### SHOW PID/PRG
/ #  netstat -lnp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      8349/java           
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      8349/java           
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      2473/portmap        
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      8349/java           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2980/sshd           

vendredi, mars 13 2009

lvm - espace libre

Afficher les partitions avec espace libre/occupé :
host:~ # pvscan 
PV /dev/sdb1 VG vgstandardfs lvm2 [4.99 GB / 3.52 GB free]
PV /dev/sda2 VG vgsystem lvm2 [14.90 GB / 100.00 MB free]
Total: 2 [19.89 GB] / in use: 2 [19.89 GB] / in no VG: 0 [0 ]
Creer un vg sur l'espace disque restant :
host:~ # lvcreate -l 100%FREE  -n srv vgstandardfs 
Logical volume "srv" created
Puis creation fs ..

# vi /etc/fstab :
/dev/vgstandardfs/srv /srv ext3 acl,user_xattr 1 2

host:~ # mkfs.ext3 -m 3 /dev/vgstandardfs/srv
mke2fs 1.38 (30-Jun-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
462144 inodes, 923648 blocks
27709 blocks (3.00%) reserved for the super user
First data block=0
29 block groups
32768 blocks per group, 32768 fragments per group
15936 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done
Creating journal (16384 blocks): done

page 2 de 2 -