Bricolage autour d’un routeur Asus WL500Gp – Partie 4

Après une bonne journée de boulot, me revoilà avec un œil neuf sur mes problèmes de la veille. Après en être resté sur des soucis avec les modules python, je me suis dit pourquoi s’acharner sur le script easy_setup si l’on peut essayer wymypy directement. J’ai lancé un wget  http://manatlan.free.fr/setup/wymypy.tar.gz et là oh surprise:

root@OpenWrt:/opt# python wymypy
wymypy can’t connect to your MPD :  Errno 12: problems connecting to `localhost’ on port 6600

Victoire, après quelques heures de galère, voilà quelque chose de positif.

Lançons mpd (après avoir modifié mpd.conf):

root@OpenWrt:~# mpd –no-daemon –stdout
current locale is « C »
setting filesystem charset to ISO-8859-1
mixer control « Speaker » not found at line 152
using software volume

Puis wymypy:

root@OpenWrt:/opt# python wymypy
wymypy is listening on http://localhost:8080/
(hit CTRL+C to quit)

Tout à l’air de fonctionner. Je n’ai plus qu’à copier quelques MP3 sur un disque externe pour tester l’ensemble.

Filling external harddrive with some MP3

Mon disque est branché. Je lance un petit mpd –create-db pour créer la base de données. Tout se passe à merveille. Un petit tour dans /etc/mpd.conf pour ajuster quelques paramètres (le mixeur se nomme « Vol » et non « PCM »)

P.S: J’en profite pour tester recordmydesktop, un très mon petit logiciel pour créer des « screencast »

[youtube:http://fr.youtube.com/watch?v=qRjsnZzeop4]

L’interface de wymypy

screenshot wymypy

Le routeur et le disque externe (reste à ranger les câbles)

My asus audio center :-)

C’est terminé pour cette partie là du projet, il me reste juste à créer quelques scripts de démarrage pour peaufiner le système.

Sinon, je vais peut-être ajouter un écran LCD ( et oui, il reste un uart libre dans la boite ). J’ai trouvé sur internet un programme permettant d’émuler un écran LCD graphique avec un vieux palm III. ça tombe bien, j’en ai un qui traine dans un tiroir…

Entre mon autre asus WL500GP qui envoie sur ma dédibox les données de ma station météo et celui-là qui se prend pour une station multimédia, je peux vous dire que ce routeur est fantastique pour un bidouilleur. Il surpasse même le célèbre LINKSYS WRT54G (grâce à l’usb), qui traine aussi dans un de mes tiroirs.

peut-être à bientôt pour la suite 😉

Bricolage autour d’un routeur Asus WL500Gp – Partie 3

Me revoilà avec mon routeur légèrement bricolé 😉

Pour ceux qui n’ont pas suivi, voilà la partie 1 et la partie 2.

La dernière fois, je m’étais arrêté sur un problème d’espace disque.

ipkg: write error: No space left on device

Heureusement, il me reste en interne un port USB pour pouvoir ajouter un peu de mémoire. J’ai retrouvé une clef usb obsolète de 128Mo.

exploded usbkey

Je l’ai démonté pour en retirer la petite carte électronique.

Connector removed

Pour les premier tests, je démarre le routeur sans fixer la clef définitivement. Ca ne fait pas pfffttt 🙂 c’est déjà bon signe. J’attends que le routeur boote avant de me connecter en ssh. Un petit dmesg me rassure.

SCSI subsystem driver Revision: 1.00
hub.c: new USB device 01:03.1-1, assigned address 2
usb.c: USB device 2 (vend/prod 0xd8c/0xc) is not claimed by any active driver.
Initializing USB Mass Storage driver…
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
hub.c: new USB device 01:03.1-2, assigned address 3
scsi0 : SCSI emulation for USB Mass Storage devices
Vendor: PIXIKA    Model: USB Flash Drive   Rev: 4.00
Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 255231 512-byte hdwr sectors (131 MB)
sda: Write Protect is off
Partition check:
/dev/scsi/host0/bus0/target0/lun0: p1
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 3

Testing on router

Voilà, on peut maintenant la coller définitivement.

Memory hot glued on motherboard

Le test avec mon eeepc fraichement installé sous ubuntu.

checking with my eeepc

On peut maintenant se lancer sereinement dans l’installation des utilitaires qui nous manquent.

Un petit coup de fdisk, une pincée de mkfs.ext2 et nous voilà avec un beau filesystem de 128Mo tout prêt à acceuillir le Python récalcitrant.

root@OpenWrt:~# mkfs.ext3 /dev/scsi/host0/bus0/target0/lun0/part1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
16000 inodes, 127472 blocks
6373 blocks (5.00%) reserved for the super user
First data block=1
16 block groups
8192 blocks per group, 8192 fragments per group
1000 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

j’ai ajouté un script de montage de la partition dans le /etc/init.d

root@OpenWrt:/opt# df -h
Filesystem                Size      Used Available Use% Mounted on
none                     14.9M     36.0k     14.9M   0% /tmp
/dev/mtdblock/4           6.0M      5.8M    236.0k  96% /jffs
mini_fo:/jffs             1.2M      1.2M         0 100% /
/dev/scsi/host0/bus0/target0/lun0/part1    122.5M      4.0M    112.2M   3% /opt

il n’y a plus qu’à ajouter « dest opt /opt » dans le fichier /etc/ipkg.conf et à utiliser ipkg avec l’option « -d opt »

root@OpenWrt:/etc/rc.d# ipkg install -d opt mpd
Installing mpd (0.13.0-1) to opt…
Downloading http://downloads.openwrt.org/kamikaze/packages/mipsel/./mpd_0.13.0-1_mipsel.ipk
Configuring mpd
Done.

root@OpenWrt:/etc/rc.d# ipkg install -d opt /tmp/python_2.5.1-2_mipsel.ipk
Installing python (2.5.1-2) to opt…
Configuring python
Done.

Cool 🙂

Maintenant la suite, installons wymypy. Le site de l’auteur indique qu’il faut utiliser easy_install pour installer son programme.

root@OpenWrt:/opt# python ez_setup.py –install-dir=/opt
Traceback (most recent call last):
File « ez_setup.py », line 267, in <module>
main(sys.argv[1:])
File « ez_setup.py », line 198, in main
egg = download_setuptools(version, delay=0)
File « ez_setup.py », line 120, in download_setuptools
import urllib2, shutil
File « /opt/usr/lib/python2.5/urllib2.py », line 87, in <module>
import base64
File « /opt/usr/lib/python2.5/base64.py », line 9, in <module>
import struct
File « /opt/usr/lib/python2.5/struct.py », line 30, in <module>
from _struct import Struct, error
ImportError: No module named _struct

Au secours !!!

Bon un peu de google me dit qu’il manque _struct.so a cause de mauvais chemins.

Je mets donc un PYTHONPATH=/opt/usr/lib/python2.5 et un PYTHONHOME=/opt/usr/

Allez, on progresse, il me dit qu’il lui manque le module md5… C’est sans fin…

La suite au prochain numéro 🙂

Bricolage autour d’un routeur Asus WL500Gp – Partie 2

Me revoilà avec mon routeur et sa nouvelle sortie USB. Je viens d’aller acheter une clef USB audio ~15 €.

UsbKey

A peine rentré, direction la table de torture pour la désosser. Le capot se retire facilement, il n’est même pas collé, juste glissé en force.

Without cover :-)

Ensuite quelques coups de fer à souder vont me permettre de déporter la sortie audio et la led d’alimentation de la clef.

extend audio output

Une fois cette étape terminée, je branche la clef sur le routeurs et hop un coup de lsusb pour vérifier:

root@OpenWrt:~# lsusb
Bus 003 Device 001: ID 0000:0000
Bus 003 Device 002: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

in place

Voilà la clef en place avec la sortie audio déportée. Au début je voulais mettre 2 prises RCA au lieu d’un jack 3.5mm mais elles ne retraient pas sur la face arrière. Du coup j’ai choisi le jack. Je l’ai installé dans l’espace vide entre le switch et le port WAN.

audio output

Voilà pour cette partie du hardware, maintenant voyons un peu côté soft. Le datasheet du routeur indique 32Mo de ram alors que seulement 16 sont disponibles. Le site d’openwrt donne la méthode pour rendre disponible les 32Mo de ram. La voici:

nvram set sdram_init=0x0009
nvram set sdram_ncdl=0x10308
nvram commit
reboot

Le système est prêt, il ne reste plus qu’à installer les modules et divers utilitaires:

ipkg install kmod-sound-core sox kmod-alsa alsa-utils

voilà pour ce qui est du support de l’audio. Maintenant, pour lire des MP3, il nous faut mpd. Le serveur s’installe facilement avec un coup de

ipkg install mpd

Ensuite il nous faut un frontend pour utiliser mpd. Il en existe pas mal pour tous les OS. Mon choix s’est porté sur un script python wymypy qui permet de piloter MPD avec un naviguateur web ( sans avoir à installer lighthttpd ou apache). Pour l’utiliser, il faut commencer par installer python. Le problème c’est que le paquet python dispo dans les dépots d’Openwrt Kamikaze est cassé.

root@OpenWrt:~# ipkg install python
Installing python (2.5.1-1) to root…
Downloading http://downloads.openwrt.org/kamikaze/packages/mipsel/./python_2.5.1-1_mipsel.ipk
Nothing to be done
An error ocurred, return value: 1.
Collected errors:
ERROR: Cannot satisfy the following dependencies for python:
libreadline

Pour résoudre ce problème un petit tour sur le net nous dit qu’il faut recompiler le paquet python en modifiant le Makefile. J’avais déjà le kit de développement OpenWrt du temps ou je jouais avec la station météo et la fonera. Il ne me reste plus qu’à cocher les bonnes options et hop, on compile.

OpenWrt Kamikaze

Ca y est, on peut installer:

root@OpenWrt:~# ipkg install python_2.5.1-2_mipsel.ipk
Installing python (2.5.1-2) to root…
ipkg: write error: No space left on device

et zut… il va falloir utiliser le second port usb interne pour coller de la mémoire flash dans le boitier… la suite au prochain numéro 😉

P.S: Qu’est ce que l’on peut s’amuser avec ces boiboites « open » 🙂 merci aux constructeurs qui ont compris que mettre notre tux dans leur matériel présentait bien des avantages…

La clef Orange ICON 225 sur Ubuntu 8.04

A la demande d’un certain nombre d’entre vous, j’ai installé la dernière release d’ubuntu en beta: Ubuntu 8.04 (hardy) afin de pouvoir tester la clef USB 3G+ dont je vous ai déjà parlé pour Ubuntu 7.10.

J’ai donc recompilé le driver du noyau afin de mettre à jour le script de connexion pour cette version.

Le voici, il vous permettra de faire fonctionner la clef USB 3G+ d’Orange sur votre PC sous Ubuntu.

DSC00864
Ouvrez une console puis lancez les commandes suivantes:

[code]

wget https://www.equinoxefr.org/wp-content/uploads/2008/11/icon225.tgz

tar xvf icon225.tgz

cd hso

sudo ./install.sh
[/code]

Répondre "O" à la demande d'installation de paquets supplémentaires.

Edit (17/10/2008)
Vous pouvez maintenant utiliser l'interface hsoconnect si vous le souhaitez.
ou celle en ligne de commande en éditant le fichier conninfo

[code]
gedit  conninfo.ini
[/code]

Entrez votre code PIN (0000 par défaut)

Puis l’APN. Il faut mettre orange.ie pour une connexion avec un pass internet everywhere ou orange.fr pour une connexion avec un forfait classique.

Capture

Puis pour vous connecter faites:

[code]

sudo ./connect.sh up
[/code]

Pour vous déconnecter faites:

[code]
sudo ./connect.sh down
[/code]

Ou utilisez hsoconnect (python-2.5 -m hsoc). Voici quelques captures.





Voilà, bon surf. Pour info j’ai acquis cette clef dans le cadre du forfait 0€ internet Everywhere mais elle marche très bien avec un abonnement 3G classique. Elle ne semble donc pas verrouillée sur un forfait mais juste sur l’opérateur.

DSC00865

DSC00866

Pour ceux qui veulent compiler le module eux-même pour d’autres noyaux, il suffit de taper « make » dans le répertoire hso. Par contre vous devez posséder les paquets de développement du noyau correspondant à votre distribution.

EDIT (23/04/08): J’ai mis à jour le driver HSO en version 1.2

EDIT (29/05/08): Le paquet installe les outils de développement du noyau et compile le module. Ce pack peut donc a priori être installé sur n’importe quelle version d’ubuntu.

EDIT (17/10/08): J’ai mis à jour le driver HSO en version 1.6 (merci Brazz pour l’info)

EDIT (9/11/08): Le paquet hsolink est maintenant compilé à l’installation. A priori ça doit fonctionner sur les architectures 64 bits.

Cet article décrit l’installation en 64bits avec pas mal d’infos sur la configuration d’hsoconnect (Merci

Tous ces modules proviennent de l’excellent forum sur http://www.pharscape.org/ (merci Paul:-)