Blog de Nicolas Guillaume

dimanche 19 septembre 2010

Pilotez votre Freebox HD avec votre shell !


Introduction

Depuis quelques temps il est possible de piloter votre (ou vos) boitiers HD depuis le réseau local en utilisant une API HTTP. C'est ainsi qu'un certain nombre d'application mobile (notamment pour Android) fleuris sur le web.
Pour profiter de cette fonctionnalité vous devez mettre à jour la Freebox HD (en la rebootant). Ensuite notez le code "télécommande" (8 chiffres). Il est disponible dans Free > Paramètres > Informations générales > Code télécommande.


Utilisation du script

Téléchargez le script attaché à cet article.
Ensuite, configurez le code télécommande :
$ freeboxremote setcode 12345678

Il est alors possible de simuler l'appuie sur une touche de la télécommande.
Pour un appui :
$ freeboxremote press <touche>

Pour un appui prolongé :
$ freeboxremote hold <touche>

Pour un appui répété :
$ freeboxremote rep <touche> <n>

Pour obtenir la liste des touches :
$ freeboxremote keys

Ce qui donne :

       red

green       yellow

       blue

power   list   tv

1    2    3    info/epg
4    5    6    mail/media
7    8    9    help/options
back 0    swap pip

           up
vol_inc           prgm_inc
      left ok right 
vol_dec           prgm_dec
         down

mute     home     rec

bwd               fwd
      play  stop
prev              next


Principe de fonctionnement

Le principe de fonctionnement est simple, une requête HTTP GET (effecctuée via curl dans le script) suffit.
Pour un appui :
http://hd1.freebox.fr/pub/remote_control?code=12345678&key=<touche>

Pour un appui prolongé :
http://hd1.freebox.fr/pub/remote_control?code=12345678&key=<touche>&long=true

Pour un appui répété :
http://hd1.freebox.fr/pub/remote_control?code=12345678&key=<touche>&repeat=<n>

Note : hd1.freebox.fr peut être remplacé par hd2.freebox.fr pour commander le deuxième boitier.

Fichier(s) attaché(s) :

jeudi 6 novembre 2008

Connecter l'Eee PC 1000H à Internet 3G avec un portable bluetooth Orange

Cette article décrit comment se connecter avec un téléphone 3G Orange à Internet.

Prérequis

Cette manipulation fonctionne sur n'importe quel PC ayant Linux Slackware 12 d'installé. Il faut également un adapteur bluetooth fonctionnel (sous forme de clef USB ou intégré comme dans l'Eee PC).

Ceci peut également fonctionner pour d'autres opérateurs à condition d'apadter wvdial.conf.

Configuration de PPP

Nous allons utiliser wvdial pour nous connecter via PPP, nous allons donc l'installer :

$ wget http://www.babeuk.net/ng/eeePC_1000H_slackware/drivers/3G_phone/wvstreams-4.2.2-i486-1ztm.tgz
$ wget http://www.babeuk.net/ng/eeePC_1000H_slackware/drivers/3G_phone/wvdial-1.56-noarch-1ztm.tgz
# installpkg wvstreams-4.2.2-i486-1ztm.tgz wvdial-1.56-noarch-1ztm.tgz

Maintenant vous devez avoir un fichier de configuration /etc/wvdial.conf comme celui ci :

[Dialer Defaults]
Modem = /dev/rfcomm1
Baud = 460800
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init5 = AT+CGDCONT=1,"IP","orange";
ISDN = 0
Modem Type = Analog Modem
Phone = *99***1#
username = orange
password = orange
Stupid Mode = 1

Activation du Bluetooth

Si Bluetooth n'est pas activé, activez le :

# sh /etc/rc.d/rc.bluetooth start
# hcitool scan # Recherche des périphériques
Scanning ...
XX:XX:XX:XX:XX:XX MonTel

Maintenant on connait l'adresse du périphérique. On définit le code pin par défaut :

# PHONE_MAC=XX:XX:XX:XX:XX:XX
# echo -n 0000 > /etc/bluetooth/passkeys/$PHONE_MAC
# sh /etc/rc.d/rc.bluetooth restart

On connecte le canal série :

# DUN_CHANNEL=$(sdptool search --bdaddr $PHONE_MAC DUN | grep Channel | awk '{print $2}')
# rfcomm bind 1 $PHONE_MAC $DUN_CHANNEL

Connexion à Internet

Pour vous connecter, vous pouvez désactiver les autres interfaces :

# ifconfig eth0 down
# ifconfig ra0 down

Puis on se connecte :

# wvdial

Vous voilà connecté au Net depuis n'importe où !

jeudi 28 août 2008

Installer Slackware 12.1 sur un Eee PC 1000H

Je décris ici comment installer Slackware 12.1 sur un Eee PC. J'ai également installé KDE4 depuis current/testing mais ce n'est pas spécifique à l'Eee PC donc je n'en parle pas ici :).

Une petite capture d'écran pour le plaisir :

Installation de base

Comme il n'y a pas de lecteur de DVD sur la machine, le plus simple consiste à booter sur une clef USB et d'installer les paquets depuis un disque dur externe ou par le réseau (dans ce cas il faudra installer le module qui va bien pour que le port ethernet fonctionne, voir plus bas).

On prépare la clef bootable (attention, son contenu sera effacé !) :

$ wget http://ftp.lip6.fr/pub/linux/distributions/slackware/slackware-12.1/usb-and-pxe-installers/usbboot.img
# dd if=usbboot.img of=/dev/sdX

Ensuite il suffit d'insérer la clef, de monter le support externe et le tour est joué.

Noyau personnalisé

Le noyau par défaut (hugesmp.s) reconnait le disque dur du PC avec un mauvais pilote. On se retrouve avec un périphérique en /dev/hda au lieu de /dev/sda et les performances sont absolument catastrophiques. Pour remédier à cela, il faut désactiver ATA/ATAPI/MFM/RLL support dans Device Drivers dans la config du noyau et recompiler.

Sinon un tel noyau déjà compilé est disponible ici (avec le fichier config).

Il faut également penser à ajouter les lignes suivantes au /etc/rc.d/rc.modules :

/sbin/modprobe atl1e
/sbin/modprobe i915
/sbin/modprobe uvcvideo
/sbin/modprobe eeepc_acpi

Pour charger respectivement les pilotes ethernet, graphique, de la webcam, et pour l'acpi.

Installation du pilote acpi

Il faut le compiler depuis les sources, ce qui se fait très simplement :

$ wget http://www.babeuk.net/ng/eeePC_1000H_slackware/drivers/acpi/eeepc-acpi.tar.gz
$ tar fxz eeepc-acpi.tar.gz
$ cd eeepc-acpi
# make
# make install

Un petit tour dans /proc/acpi/asus permettra de vérifier que le module fonctionne bien.

Installation du pilote ethernet

Les sources sont ici.

Il suffit de télécharger l'archive, de la décompresser, d'aller dans L1e_Lan/src/ et de taper :

# KBUILD_NOPENDANTIC=1 make
# KBUILD_NOPENDANTIC=1 make install

Il y a déjà un binaire compilé par mes soins dans L1e_Lan/ pour le noyau 2.6.24.5-smp. Il est particulièrement utile si vous désirez faire l'installation réseau et que vous ne pouvez pas encore compiler.

Installation du pilote audio

La carte son est reconnue par le module snd_hda_intel sans rien faire. Par contre je ne suis pas encore parvenu à faire fonctionner les haut-parleurs intégrés, seule la sortie écouteur fonctionne.

Installation du pilote vidéo

La carté vidéo est reconnue par le module i915. Mon xorg.conf est disponible ici.

On peut très facilement activer le port VGA :

$ xrandr --output VGA --mode 1280x1024

Et le désactiver :

$ xrandr --output VGA --off

Installation du touchpad

La configuration est dans le xorg.conf, il faut juste installer les pilotes pour X :

$ wget http://www.babeuk.net/~ng/eeePC_1000H_slackware/drivers/touchpad/synaptics-git20080509-i486-1.tgz
# installpkg synaptics-git20080509-i486-1.tgz

Installation de la webcam

C'est très simple :

$ wget http://www.babeuk.net/ng/eeePC_1000H_slackware/drivers/webcam/uvcvideo-svn208_2.6.24.5_smp-i686-1_evs.tgz
# installpkg uvcvideo-svn208_2.6.24.5_smp-i686-1_evs.tgz

Et voilà ! On peut tester avec mplayer :

mplayer -fps 30 tv:// -tv driver=v4l2:device=/dev/v4l/video0

La webcam fonctionne également automatiquement avec Kopete.

Installation du WiFi N

Nous allons installer le WiFi avec le pilote RT2860 natif. Il suffit de le télécharger et de le compiler :

$ wget http://www.babeuk.net/ng/eeePC_1000H_slackware/drivers/wifi/RT2860_Linux_STA_WPASupplicant_v1.7.0.0.tar.bz2
$ tar fxj RT2860_Linux_STA_WPASupplicant_v1.7.0.0.tar.bz2
$ cd RT2860_Linux_STA_WPASupplicant_v1.7.0.0
# make
# make install
# modprobe rt2860sta

Ce pilote fonctionne très bien avec le pilote générique (wext) de wpa_supplicant, on peut donc installer et utiliser ce dernier :

$ wget http://www.babeuk.net/ng/eeePC_1000H_slackware/drivers/wifi/wpa_supplicant_1000H.tar.bz2
$ tar fxj wpa_supplicant_1000H.tar.bz2
# cp wpa_supplicant wpa_cli wpa_passphrase /usr/local/bin/

Ensuite, il ne reste plus qu'à configurer votre WiFi avec wpa_supplicant, comme d'habitude et de taper :

# ifconfig ra0 up
# wpa_supplicant -Dwext -ira0 -c votre_fichier_config
# dhclient ra0

Et vous voilà connecté !

Installation du bluetooth

Rien à faire.

Installation du lecteur de carte SD

Rien à faire.

Installation de la TNT Asus MyCinema U3000

Il faut compiler les modules depuis les sources.

Ensuite on peut installer dvb-apps puis la liste des fréquences à extraire dans /usr/share/dvb/dvb-t/. On peut également utiliser ce script sympa pour scanner automatiquement les chaines pour mplayer, en fonction du lieu.

Le firmware est à copier dans /lib/firmware/.

Une fois tout ceci installé, on peut tester :

$ mplayer-scan-dvb fr-Nancy # tapez mplayer-scan-dvb seul pour voir la liste des villes supportées
$ mplayer dvb://W9

dimanche 24 août 2008

vdm2fortune ou comment lire les VDMs avec fortune


Installation de vdm2fortune

Téléchargez le script attaché à ce billet et placez le dans votre /usr/bin/ par exemple :

# cp vdm2fortune /usr/bin/
# chmod a+rx /usr/bin/vdm2fortune

Note : Vous pouvez lancer le script sans l'installer.


Mise à jour de la base fortune

Pour mettre à jour votre base fortune tapez simplement vdm2fortune, le script se charge de tout !

Si vous être root, la base sera partagée pour tout le monde (dans /usr/share/games/fortunes) sinon elle sera copiée dans le dossier courant.

Il ne vous reste plus qu'a entrer fortune vdm pour voir une VDM aléatoire.

Fichier(s) attaché(s) :

mercredi 23 juillet 2008

Des VDMs dans la console ?

Si vous êtes passionné par les VDM au point de vouloir les lire dans votre console, cet article est fait pour vous !


Installation de VDM

Téléchargez le script attaché à ce billet et placez le dans votre /usr/bin/ par exemple :

# cp vdm /usr/bin/
# chmod a+rx /usr/bin/vdm

Désormais, en tapant simplement vdm dans votre shell préféré, une VDM aléatoire s'affiche !


Les différentes options

Vous pouvez spécifier des options au script :

  • -r : affiche une VDM aléatoire (choix par défaut);
  • -l : affiche les 15 dernières VDM;
  • -t : affiche le top;
  • -f : affiche le flop;
  • -p <n> : indique la page à afficher (0 pour la première, 1 pour la deuxième, ...).


Des VDMs quand on se connecte

Pour que tout les utilisateurs profitent des VDMs à la connexion, tapez :

# ln -s /usr/bin/vdm /etc/profile.d/vdm.sh

Ou sinon dans votre ajoutez dans votre .bashrc :

vdm


Conculsion

Et voilà vous n'avez plus de raison de vous ennuyer face à votre shell :) !

Fichier(s) attaché(s) :

    vdm :: 1021 B (téléchargé 2027 fois)