Archives de catégorie : Logiciels libres

Configuration mpd sur debian pour écoute sur iphone

Objectif : Pouvoir écouter sur mon iPhone 3G la musique stockée sur mon serveur linux, sans devoir passer par l’ignoble iTunes, et sans dupliquer les données.
La solution existe, il s’agit de mpd (music player daemon) pour la partie serveur, et MPoD pour la partie cliente.
L’installation sur une debian squeeze et le manque de doc m’ont incité à partager cette expérience.
Configuration validée:

  • iPhone 3G
  • iOS 4
  • MPoD 1.6
  • Debian Squeeze amd64
  • mpd 0.15.12
Avertissement

Ces manipulations ont été réalisées sur une squeeze installée originellement il y a plus de 7 ans, il manque donc peut-être certaines opérations. Afin de bien montrer que ce n’est pas parfait, toutes les opérations seront réalisées en tant que root 😉

Recompilation mpd

La version debian de mpod n’inclut pas le support lame, il faut donc recompiler le paquet.
Tout d’abord, activer le dépôt Debian Multimédia comme indiqué ici
Installer lame

# apt-get install libmp3lame
# apt-get install build-essentials
# cd /usr/local/src/

Télécharger les sources du paquet, et installer les dépendances nécessaires

# apt-get source mpd
# apt-get build-dep mpd

Se rendre dans le répertoire, et activer le support lame

# cd mpd-0.15.12/
# vi debian/rules

Sur la ligne DEB_CONFIGURE_USER_FLAGS, remplacer –disable-lame par –enable-lame
Puis lancer la compilation

# dpkg-buildpackage

Une fois terminé, remonter au répertoire parent puis installer le fichier deb ainsi créé

# dpkg -i mpd_0.15.12-1.1_amd64.deb
Configuration de mpd

Editer le fichier /etc/mpd.conf et définir les paramètres suivants:

music_directory         "/mnt/data/musique/"
bind_to_address         "0.0.0.0"
audio_output {
        type            "httpd"
        name            "My HTTP Stream"
        encoder         "lame"          # optional, vorbis or lame
        port            "8000" 
#       quality         "5.0"                   # do not define if bitrate is defined
        bitrate         "128"                   # do not define if quality is defined
        format          "44100:16:1"
}

Enregistrer et démarrer le service mpd

La partie iPhone

Installer MPoD
Aller dans les réglages de l’application et ajouter manuellement un serveur:

  • Connection mode: On the go
  • Serveur: IP/nom du serveur
  • Port: 6600
  • Stream: http://(serveur):8000

Une fois connecté (Status: Connected), retourner dans le menu préférences.
Sélectionner « Update database » pour demander à mpd de lister les fichiers disponibles
Vérifier dans la partie « Outputs » que « My HTTP Stream » soit bien sélectionné

Et si ça ne fonctionne pas

Quelques pistes…

  • Vérifier que mpd fonctionne, en utilisant un autre client que l’iPhone
  • Essayer d’écouter le flux http://(serveur):8000 avec vlc ou un navigateur web
  • Vérifier les connexions réseaux, en lançant la commande
# watch -n 1 "netstat -apn | grep /mpd"
tcp        0      0 0.0.0.0:6600            0.0.0.0:*               LISTEN      14046/mpd
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      14046/mpd
tcp        0  15334 192.168.3.9:8000        192.168.3.64:49954      ESTABLISHED 14046/mpd

On voit ici:

  • Que mdp fonctionne bien et écoute bien sur le port 6600 (le service est lancé)
  • Que mdp écoute sur le port 8000 (uniquement lorsqu’une lecture est en cours)
  • Que l’iphone est connecté sur le port 8000 et « reçoit » le flux audio
Bonus

Profitez maintenand de MPoD, qui a en plus la bonne idée d’aller chercher tout seul les pochettes chez Amazon

ben quoi ?

 

Wireshark remote sniffing without rpcapd

Wireshark for windows

After reading my article about rpcapd, Peter Calum sent me this message:

I can not use rcapd because of the problem with the random chosen port for the data transfer, because of the FW between our office network and our technical network servers. Our wireshark collecting host is placed here.

But after some work I found another solution which works real fine : Pipe a tcpdump command on the collecting host back trough SSH.
I use plink.exe which comes with PuTTY

Make a command file with the tcpdump command :

tcpdump -s0 -w - -i eth0 not port 22

Run

plink.exe -ssh -pw mypassword root@192.168.1.10 -m commands.txt | "c:program fileswiresharkwireshark.exe" -k -i –

when you send the command wireshark starts up and shows the data … voila

Wireshark for linux

And from linux, just run :

ssh root@192.168.5.228 "tcpdump -w - host 192.168.5.219" | wireshark -k -i -

AWStats byte order is not compatible

After migrating awstats data from debian i386 to debian amd64, awstat gives me the following error:

/usr/lib/cgi-bin/awstats.pl -config=awstats -update
Update for config "/etc/awstats/awstats.conf"
With data in log file "/var/log/apache2/access.log"...
Warning: Error while retrieving hashfile: Byte order is not compatible at 
../../lib/Storable.pm (autosplit into ../../lib/auto/Storable/_retrieve.al) 
line 331, at (eval 5) line 1

Explanation is here : hashes are not stored in the same way by Perl Storable on debian 32 bit and 64 bit.
The workaround is pretty simple: delete all hashes files, awstats will rebuild them

rm /var/lib/awstats/*.hash

Astuces Exim

Simuler le routage d’un mail :

exim -bt cyril@domain.com


Voir la file d’attente

exim -bp


Supprimer un mail donné:

exim -Mrm id_mail


Débloquer un mail donné:

exim -M id_mail


Utiliser un smarthost:

Certaines listes de spam (notamment spamhaus) considèrent les IP résidentielles comme source de spam, et blacklistent donc ces adresses IP : « This IP range has been identified by Spamhaus as not meeting our policy for IPs which should deliver ‘direct-to-mx’ mail to PBL users. »

La solution la plus simple consiste à renvoyer les mails à destination des domaines concernés vers le smtp du FAI, ce dernier n’étant pas (toujours) blacklisté

Ajouter dans exim4.conf, au début de la section « begin routers »

send_to_smarthost:
       driver = manualroute
       domains = gmail.com : netcourrier.com
       transport = remote_smtp
       route_list = * smtp.free.fr

Renvoi des requêtes apache vers un autre serveur web

La problématique est la suivante: Je veux tranquillement migrer mes virtualhosts apache d’un serveur web vers l’autre.
Ces serveurs sont sur mon lan, et mon routeur forwarde le port 80 vers mon ancien serveur web. Je ne pourrais basculer ce transfert de ports vers le nouveau serveur qu’une fois tous mes virtualhosts migrés.

La solution consiste donc à demander à apache d’utiliser le nouveau serveur web comme proxy pour chaque virtualhost migré.
La configuration du serveur virtuel (sur l’ancien serveur) passe donc de :

<VirtualHost *:80>
 ServerName monvirtualhost.pawelko.net
 DocumentRoot /mnt/data/monvirtualhost
</VirtualHost>

en

<VirtualHost *:80>
 ServerName monvirtualhost.pawelko.net
 <IfModule mod_proxy.c>
    ProxyRequests Off
    ProxyRemote * http://monnouveauserveur
    ProxyPass  /  http://monvirtualhost.pawelko.net/
    ProxyPassReverse / http://monvirtualhost.pawelko.net/
 </IfModule>
</VirtualHost>

Une fois tous les virtualhosts migrés, je n’aurais plus qu’à forwarder le port 80 vers mon nouveau serveur

Astuces Thunderbird

Désactiver l’avertissement de sécurité des certificats

Une extension très pratique pour désactiver l’avertissement « Erreur de sécurite: Nom de domaine incompatible » dans Thunderbird, il s’agit de « Remember Mismatched Domains » (site).
Elle ajoute une case à cocher qui permet de ne plus afficher l’avertissement concernant un domaine.
Utile par exemple avec zimbra ou un autre serveur IMAPS utilisé avec des noms DNS différents.


Chercher les nouveaux messages dans tous les dossiers

Pour que Thunderbird scrute tous les dossiers IMAP à la recherche de nouveaux dossiers, aller dans Outils / Options / Avancé / Editeur de configuration:
Mettre la valeur mail.check_all_imap_folders_for_new à true

Réencoder un divx pour le Kiss DP-500

English version here

Il est loin le temps où la grande majorité des divx passaient sans problème sur ma platine de salon Kiss DP-500. Entre les nouveaux codecs, les extensions de codecs existants (QPEL, GMC, etc..) et les derniers firmwares de Kiss qui sont bourrés de défauts, il est rare qu’un film passe du premier coup.
Pour y remédier, une simple ligne de commande suffit :

mencoder mauvaisdivx.avi -of avi -oac mp3lame -lameopts cbr:br=128 -ovc lavc -lavcopts vcodec=mpeg4:vhq -ffourcc DX50 -o nouveaudivx.avi

Veillez cependant à installer mencoder et les plugins adéquats.

Et voici un petit script qui prend en paramètre le nom du fichier à convertir, et crée un fichier avec le suffixe -KISS qui passe sans problème sur la platine: divxconvert.sh

Recode divx for Kiss DP-500

Pour la version française, suivre ce lien.

My Kiss-DP500 DVD/DivX player can’t play a lot of divx, because of the new codec extensions (QPEL, GMC, etc…). Most « recent » firmwares are buggy, and I often have to recode my movies.
The magic command line is:
mencoder baddivx.avi -of avi -oac mp3lame -lameopts cbr:br=128 -ovc lavc -lavcopts vcodec=mpeg4:vhq -ffourcc DX50 -o newdivx.avi

Of course, you need mencoder and appropriate plugins.
You can use this script, it takes the avi file name as an argument and creates and kiss-friendly version : divxconvert.sh