Archives mensuelles : septembre 2009

Instal­ler une télé­com­mande ATI Remote Wonder sous Debian

ATIRWQui n’a jamais rêvé de pilo­ter son ordi­na­teur depuis son lit/canapé/fauteuil ? Toi là, dans le fond ? Menteur !

On m’a récem­ment prêté une ATI Remote Wonder et grâce à elle, je peux main­te­nant télé­com­man­der mon ordi ! Ça n’a l’air de rien mais c’est quand même bien pratique pour éteindre l’ordi le soir sans avoir à se rele­ver ou se mater un film et chan­ger les sous-titres/pistes audio sans se bouger du fauteuil !

Alors allons-y pour la confi­gu­ra­tion de la bestiole avec lirc ! Tout d’abord il faut instal­ler lirc :

# apt-get install lirc

Ensuite on construit les modules lirc avec module-assis­tant :

# m-a a-i lirc-modules

Ensuite on édite le fichier /etc/modprobe.d/black­list.conf et on rajoute la ligne quelque part.

black­list ati_remote

Véri­fiez bien que ce module n’est pas chargé par un petit

# lsmod | grep ati_remote

Char­gez le module lirc_atiusb

# modprobe lirc_atiusb

Vient la partie longue et fasti­dieuse de la créa­tion du fichier de confi­gu­ra­tion de la télé­com­mande (atten­tion, ça ne marchera pas si lirc est déjà lancé) :

$ irre­cord -d /dev/lirc0 atire­mote.conf
Press RETURN to conti­nue.Hold down an arbi­trary button. Appuyer de facon conti­nue sur un bouton
……………………………………………………………………..
Found gap length: 147959
Now enter the names for the buttons.

Please enter the name for the next button (press <enter> to finish recor­ding)
menu Défi­ni­tion de la touche menu

Now hold down button “menu” Appuyer sur le bouton adéquat
Please enter the name for the next button (press <enter> to finish recor­ding)

Et ainsi de suite
Quand c’est fini, appuyer sur ENTRÉE

Checking for toggle bit mask.
Please press an arbi­trary button repea­tedly as fast as possible.
Make sure you keep pres­sing the SAME button and that you DON’T HOLD
the button down!.
If you can’t see any dots appear, then wait a bit between button presses.
…………………………….
Inva­lid toggle bit.
Success­fully writ­ten config file.

Copiez ce fichier dans /etc/lirc :

# cp atire­mote.conf /etc/lirc/lircd.conf

Si vous avez un problème avec ce fichier, vous pouvez éven­tuel­le­ment essayer avec le mien :
Vous pouvez éditez le fichier /etc/lirc/hard­ware.conf mais je ne crois pas que ce soit obli­ga­toire :

# /etc/lirc/hard­ware.conf
#
# Argu­ments which will be used when laun­ching lircd
LIRCD_ARGS= » »
#Don’t start lircmd even if there seems to be a good config file
#START_LIRCMD=false
#Don’t start irexec, even if a good config file seems to exist.
#START_IREXEC=false
#Try to load appro­priate kernel modules
LOAD_MODULES=true
# Run « lircd –dri­ver=help » for a list of suppor­ted drivers.
DRIVER= » »
# If DEVICE is set to /dev/lirc and udev is in use /dev/lirc0 will be
# auto­ma­ti­cally used instead
DEVICE= »/dev/lirc0 »
MODULES= »lirc_atiusb »
# Default confi­gu­ra­tion files for your hard­ware if any
LIRCD_CONF= »/etc/lirc/lircd.conf »
LIRCMD_CONF= » »

Ensuite il faut créer un fichier .lircrc pour défi­nir les actions pour les boutons :

begin
flags = star­tup_mode
mode = desk­top
end

begin
button = a
prog = irexec
repeat = 3
config = osd_cat -p middle -A center -f -*-*-bold-r-normal-*-60-*-*-*-*-*-*-* -d 1 ~/.lirc_desk­top_text &
mode = desk­top
flags = quit
end

begin
button = b
prog = irexec
repeat = 3
config = osd_cat -p middle -A center -f -*-*-bold-r-normal-*-60-*-*-*-*-*-*-* -d 1 ~/.lirc_mplayer_text &
mode = mplayer
flags = quit
end

begin
button = power
prog = irexec
repeat = 3
config = shut­down -h now
end

## Volume Control
begin
prog = irexec
button = volup
repeat = 3
config = aumix -v+10 &
end

begin
prog = irexec
button = voldown
repeat = 3
config = aumix -v-10 &
end

begin
button = mute
prog = irexec
config = amixer -c 0 set PCM toggle &
end

include ~/.lircrc.desk­top
include ~/.lircrc.mplayer

Je pense que la syntaxe de ce fichier parle d’elle-même.

Notez le include ~/.lircrc.desk­top qui permet d’al­lé­ger le .lircrc en mettant une partie de la confi­gu­ra­tion dans un autre fichier. Ainsi, tous les boutons utiles pour mplayer se retrouvent dans ~/.lircrc.mplayer.

Si le osd-cat perturbe certaines personnes, sachez qu’il agit comme cat mais qu’il envoie sa sortie direc­te­ment sur l’écran, comme l’osd de mplayer. Osd-cat est fourni par le paquet xosd-bin. Quand on veut chan­ger de mode, je pense qu’il est bien d’en avoir la confir­ma­tion et c’est pourquoi j’ai utilisé osd-cat.

Qu’est-ce que le « mode = desk­top » dans ce fichier .lircrc ?

En fait cela permet d’as­si­gner des actions diffé­rentes à un bouton selon le mode dans lequel on se trouve (vous pouvez allez voir mes fichiers .lircrc.mplayer et .lircrc.desk­top pour des exemples).
Pour défi­nir un mode, rien de plus simple :

begin mode
begin
button = bouton
prog = irexec
config = action
end
end mode

Le programme irexec est un lanceur fourni avec lirc et doit être lancé au début de votre session.

Person­nel­le­ment, après quelques problèmes j’ai réussi à faire fonc­tion­ner tout ça en éditant le fichier /etc/X11/xinit/xini­trc et en rajou­tant ceci à la fin :

/usr/bin/irexec

Voilà, un bon petit reboot et tout devrait fonc­tion­ner comme sur des roulettes !

Me soutenir sur Tipeee Me soutenir sur Liberapay

Instal­ler un serveur Jabberd2 sous Debian unstable

Cette page wiki est honteu­se­ment pompée sur http://doc.ubuntu-fr.org/jabberd2

A noter que le paquet jabberd2 n’est dispo­nible sous Debian qu’en unstable.

Si vous ne l’avez pas déjà fait, ajou­ter cette ligne à votre /etc/apt/sources.list

deb http://debian.mines.inpl-nancy.fr/debian/ unstable main contrib non-free

Le but de ce docu­ment et de propo­ser une façon simple et rapide d’ins­tal­ler un serveur jabberd2. Pour une confi­gu­ra­tion plus détaillée, il faut se réfé­rer à la docu­men­ta­tion offi­cielle de jabberd2 qui a servi à l’éla­bo­ra­tion de cette page.

Prérequis

Pour garder les infor­ma­tions liées aux utili­sa­teurs, vous devez avoir un serveur de base de donnée installé (postgre, mysql…).

Cette façon de procé­der doit marcher pour dapper et edgy (il y a de forte chance que ce soit toujours valable pour feisty).

Pour ajou­ter un utili­sa­teur au serveur, exécu­tez la commande suivante en tant que root :

# grou­padd jabber

# useradd -g jabber jabber

Choi­sis­sez ensuite un mot de passe pour ce compte à l’aide de la commande suivante :

# passwd jabber

Après avoir changé le mot de passe, nous devons créer un réper­toire dans lequel le proces­sus stockera ses jour­naux et ses pids.

Pour ce faire, exécu­tez les commandes suivantes :

# mkdir -p /usr/local/var/jabberd/pid/

# mkdir /usr/local/var/jabberd/log/

Une fois les réper­toires créés, chan­geons l’ap­par­te­nance des réper­toires de façon à ce que l’uti­li­sa­teur jabber puisse écrire dedans. Exécu­tez les commandes suivantes :

# chown -R jabber:jabber /usr/local/var/jabberd/

Instal­la­tion du package jabberd2

# apt-get update && apt-get install jabberd2

Vous pouvez égale­ment utili­ser Synap­tic.

Via phpmyad­min, créer un user jabberd2 et sa table jabberd2 et bien noter son mot de passe, il servira plus bas.

(pour instal­ler phpmyad­min et la base MYSql: {CODE()}# apt-get install mysql-server phpmyad­min{CODE}

Le script pour créer les tables :

CREATE DATABASE jabberd2;

USE jabberd2;

— c2s authen­ti­ca­tion/regis­tra­tion table

CREATE TABLE `authreg` (

`user­na­me` TEXT, KEY `user­na­me` (`user­na­me`(255)),

`realm` TINYTEXT, KEY `realm` (`realm`(255)),

`pass­word` TINYTEXT ) DEFAULT CHARSET=UTF8;

— Session mana­ger tables

— Active (seen) users

— Used by: core

CREATE TABLE `acti­ve` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`time` INT ) DEFAULT CHARSET=UTF8;

— Logout times

— Used by: mod_iq_last

CREATE TABLE `logout` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`time` INT ) DEFAULT CHARSET=UTF8;

— Roster items

— Used by: mod_roster

CREATE TABLE `ros­ter-items` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`jid` TEXT,

`name` TEXT,

`to` TINYINT,

`from` TINYINT,

`ask` INT ) DEFAULT CHARSET=UTF8;

— Roster groups

— Used by: mod_roster

CREATE TABLE `ros­ter-groups` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`jid` TEXT,

`group` TEXT ) DEFAULT CHARSET=UTF8;

— vCard (user profile infor­ma­tion)

— Used by: mod_iq_vcard

CREATE TABLE `vcard` (

`col­lec­tion-owner` VARCHAR(255) NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`fn` VARCHAR(255),

`nick­na­me` VARCHAR(255),

`url` VARCHAR(255),

`tel` VARCHAR(255),

`email` VARCHAR(255),

`jab­be­rid` VARCHAR(3071),

`mai­ler` VARCHAR(1023),

`tit­le` VARCHAR(255),

`role` VARCHAR(255),

`bday` VARCHAR(255), # Shouldn’t this be a DATE?

`tz` VARCHAR(7),

`n-fami­ly` VARCHAR(255),

`n-given` VARCHAR(255),

`n-midd­le` VARCHAR(255),

`n-prefix` VARCHAR(255),

`n-suffix` VARCHAR(255),

`adr-street` VARCHAR(255),

`adr-extadd` VARCHAR(255),

`adr-pobox` VARCHAR(15),

`adr-loca­li­ty` VARCHAR(255),

`adr-region` VARCHAR(255),

`adr-pcode` VARCHAR(31),

`adr-coun­try` VARCHAR(63),

`geo-lat` VARCHAR(255),

`geo-lon` VARCHAR(255),

`org-orgna­me` VARCHAR(255),

`org-orgu­nit` VARCHAR(255),

`agent-extval` VARCHAR(255),

`sort-string` VARCHAR(255),

`desc` TEXT,

`note` TEXT,

`uid` VARCHAR(255),

`photo-type` VARCHAR(127),

`photo-binval` TEXT,

`photo-extval` VARCHAR(255),

`logo-type` VARCHAR(127),

`logo-binval` TEXT,

`logo-extval` VARCHAR(255),

`sound-phone­tic` VARCHAR(255),

`sound-binval` TEXT,

`sound-extval` VARCHAR(255),

`key-type` VARCHAR(127),

`key-cred` TEXT,

`rev` VARCHAR(255)

) DEFAULT CHARSET=UTF8;

— Offline message queue

— Used by: mod_offline

CREATE TABLE `queue` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`xml` MEDIUMTEXT ) DEFAULT CHARSET=UTF8;

— Private XML storage

— Used by: mod_iq_private

CREATE TABLE `pri­va­te` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`ns` TEXT,

`xml` MEDIUMTEXT ) DEFAULT CHARSET=UTF8;

— Message Of The Day (MOTD) messages (announ­ce­ments)

— Used by: mod_announce

CREATE TABLE `motd-messa­ge` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`xml` TEXT ) DEFAULT CHARSET=UTF8;

— Times of last MOTD message for each user

— Used by: mod_announce

CREATE TABLE `motd-times` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`time` INT ) DEFAULT CHARSET=UTF8;

— User-publi­shed disco­very items

— Used by: mod_disco_publish

CREATE TABLE `disco-items` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`jid` TEXT,

`name` TEXT,

`node` TEXT ) DEFAULT CHARSET=UTF8;

— Default privacy list

— Used by: mod_privacy

CREATE TABLE `pri­vacy-default` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`default` text ) DEFAULT CHARSET=UTF8;

— Privacy lists

— Used by: mod_privacy

CREATE TABLE `pri­vacy-items` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`list` TEXT,

`type` TEXT,

`value` TEXT,

`deny` TINYINT,

`order` INT,

`blo­ck` INT ) DEFAULT CHARSET=UTF8;

— Vaca­tion settings

— Used by: mod_vaca­tion

CREATE TABLE `vaca­tion-settings` (

`col­lec­tion-owner` TEXT NOT NULL, KEY(`col­lec­tion-owner`(255)),

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(`object-sequen­ce`),

`start` INT,

`end` INT,

`mes­sa­ge` TEXT ) DEFAULT CHARSET=UTF8;

— Users statuses

— Used by: mod_status

CREATE TABLE `sta­tus` (

`col­lec­tion-owner` TEXT NOT NULL,

`object-sequen­ce` BIGINT NOT NULL AUTO_INCREMENT, KEY(`object-sequen­ce`),

`sta­tus` TEXT NOT NULL,

`show` TEXT NOT NULL,

`last-login` INT DEFAULT ‘0’,

`last-logout` INT DEFAULT ‘0’,

`xml` TEXT);

Confi­gu­ra­tion

Le nom du serveur dans sm.xml et c2s.xml

Votre nom de serveur doit être rensei­gné à la fois dans /etc/jabberd2/sm.xml et dans /etc/jabberd2/c2s.xml.

Editez /etc/jabberd2/sm.xml :

# vi /etc/jabberd2/sm.xml

Rensei­gnez le champ id de la section sm (~ ligne 1) :

<!– Session mana­ger confi­gu­ra­tion –>

<sm>

<!– Our ID on the network. Users will have this as the domain part of

their JID. If you want your server to be acces­sible from other

Jabber servers, this ID must be resol­vable by DNS.s

(default: local­host) –>

<id>ma_machine.mon_domaine.com</id>

<!– Par exemple <id>marvin.asrall.iuta.univ-nancy2.fr</id> –>

Editez /etc/jabberd2/c2s.xml :

#vi /etc/jabberd2/c2s.xml

Rensei­gnez le champ id de la section local (~ ligne 63) :

<!– Local network confi­gu­ra­tion –>

<local>

<!– Who we iden­tify ourselves as. This should corres­pond to the

ID (host) that the session mana­ger thinks it is. You can

specify more than one to support virtual hosts, as long as you

have addi­tio­nal session mana­ger instances on the network to

handle those hosts. The realm attri­bute speci­fies the auth/reg

or SASL authen­ti­ca­tion realm for the host. If the attri­bute is

not speci­fied, the realm will be selec­ted by the SASL

mecha­nism, or will be the same as the ID itself. Be aware that

users are assi­gned to a realm, not a host, so two hosts in the

same realm will have the same users.

If no realm is speci­fied, it will be set to be the same as the

ID. –>

<id>ma_machine.mon_domaine.com</id>

Comme il est mentionné dans le fichier c2s.xml, le nom du serveur (qui est conca­téné à l’id jabber) doit pouvoir être résolu par DNS (ou via /etc/hosts) :!: EVITEZ local­host, une ID jabber est <nom d’uti­li­sa­teur>@<nom de serveur>, donc lorsqu’un client se connecte à votre serveur il doit avoir le bon nom de serveur et pas local­host :!:

Mysql

Éditez encore votre /etc/jabberd2/c2s.xml

<!– MySQL driver confi­gu­ra­tion –>

<mysql>

<!– Data­base server host and port –>

<host>local­host</host>

<port>3306</port>

<!– Data­base name –>

<dbname>jabberd2</dbname>

<!– Data­base user­name and pass­word –>

<user>jabberd2</user>

<pass>secret</pass>

Vous ne devez chan­ger le champ host que si votre base de données ne se trouve pas sur la même machine que le serveur jabberd2. Si vous n’uti­li­sez pas le port par défaut de mysSQL (3306), vous devez modi­fier le champ port.

Bien sûr le pass n’est pas « secret » mais corres­pond au mot de passe pour la base MySQL de votre user jabberd2 créé au début du tuto.

Jabberd2 est main­te­nant confi­guré. Il ne vous reste plus qu’à tester votre instal­la­tion.

Tests de l’ins­tal­la­tion

Le serveur jabberd2 étant lancé dès l’ins­tal­la­tion du paquet, il faut redé­mar­rer celui-ci afin de prendre en compte les étapes précé­dentes :

# /etc/init.d/jabberd2 restart

Ou

# service jabberd2 restart

Ensuite confi­gu­rez un client jabber (psi par exemple) depuis une machine du réseau local pour vous connec­ter à votre serveur jabberd2. Si ça ne marche pas, bonne chance ! Allez tout de même jetter un coup d’oeil dans les logs (/var/log/jabber/).

Si cette opéra­tion réus­sit et que vous voulez que votre serveur soit acces­sible depuis inter­net, recom­men­cez l’opé­ra­tion depuis une machine exté­rieure à votre réseau (ou un service live comme JWchat), si cela ne fonc­tionne pas veri­fiez vos fire­walls et que vous utili­sez un FQDN (essayez par exemple de resoudre votre DNS pas un des sites qui propose ce service)

Dans un autre post, je vous indique­rai comment instal­ler le compo­sant multi-user chat.

EDIT : Euh, non, en fait je n’ex­plique­rais pas comment instal­ler le multi-user chat, j’ai trop galéré quand je l’ai fait et de toute façon j’ai oublié comment le faire.

Me soutenir sur Tipeee Me soutenir sur Liberapay