Il y a quelques temps, j'ai commandé un TP-LINK WR703N sur DX.COM pour une vingtaine d'euros.



Ce petit routeur ayant son interface en chinois, ma première manip a été de le passer en anglais en reflashant le firmware avec openwrt ( tuto bien détaillé )

Malgrè une interface (LUCI) relativement intuitive, le basculement en mode Acces point, répéteur etc.. demande pas mal de manip.

Personnellement je voulais une manière très simple de modifier les paramètres du routeur :

- Soit pour créer un accès point wifi depuis un réseau filaire RJ45.



- Soit créer un répéteur wifi pour permettre de capter un point d'accès wifi trop distant, en positionnant judicieusement le TP-Link



- Pouvoir diffuser des films/photos se trouvant sur une clé usb ou un disque dur à brancher sur le TP-Link.

Je me suis alors tourné vers une version customisée qui permet par défaut de paramètrer très simplement ces différents modes.
Sur le forum openwrt.org j'ai trouvé une version qui permet de faire tout cela, y compris le serveur FTP (Il offre également un client Bittorrent mais dont je me sers pas)
La version se trouve ici en téléchargement : http://db.tt/shdpF9XG

L'installation du nouveau firmware s'effectue depuis LUCI dans les paramètres system.

Une fois le TP-Link 703N flashé avec le nouveau firmware, lors de son premier démarrage il est accessible soit en wifi :
SSID : OpenWrt Clé WPA : administrator
Ou par cable réseau avec votre ordinateur en DHCP.

Effectuez une connection Telnet sur 192.168.2.1
Changez le mot de passe Root avec la commande : passwd
Puis le mot de passe de l'utilisateur usbdrive (qui correspond à l'utilisateur pour se connecter en FTP) par la commande : usbpass

Vous devez maintenant vous connecter en ssh sur le routeur.

Dès le prompt il suffit de faire ? pour avoir la liste des commandes :

PREDEFINED COMMANDS FOR THIS OPENWRT ROUTER:
--------------------------------------------

?                Run to show this help.

conf_wifi_ap     Run to configure the ssid name and password
                 of the serving (AP) WIFI network.
                 Encryption is always set to WPA2-PSK. Check openwrt.org
                 for instructions to set other encryption methods.

conf_wifi_client Run and follow the on-screen instructions to
                 select an available WIFI network and connect to it.
                 Command only valid in Client+AP_mode.

disable_ap_wifi  Run to disable the serving WIFI network (AP).

enable_ap_wifi   Run to enable the serving WIFI network (AP).
                 Configure the WIFI properties with: "conf_wifi_ap"

mode_ap          Run to configure the router in AP mode (access point).
                 Connect an internet cable in router LAN port.
                 WIFI network is created automatically.
                 Configure the WIFI properties with: "conf_wifi_ap"

mode_clap        Run to configure the router as Client+AP.
                 Router connects to existing wifi network
                 and shares it through the LAN port.
                 Make sure to run "conf_wifi_client" to select
                 the network to connect.
                 In this mode it is also possible to create
                 a serving AP WIFI network with: "enable_ap_wifi"
                 Configure the AP WIFI properties with: "conf_wifi_ap"
                 Warning: AP WIFI doesn't work unless Client WIFI is
                 succesfully connected to another serving WIFI. You can
                 use a LAN cable to access the router in this mode.

removeusb        Run before unplug the usbdrive for extract safely.
                 This command also stops the bittorrent transmission.

usbpass          Run and follow the on-screen instructions to
                 change the password for usbdrive FTP/SFTP access and
                 bittorrent web interface access (http://:9091).

usbspace         Run to check the free/used space in the usbdrive.
conf_wifi_ap vous permet de personnaliser votre SSID et clé WPA pour votre routeur.

Nota : Il faut effectuer cette commande une fois en mode_ap et une fois en mode_clap pour la mémoriser.

Mode_ap : Il s'agit du mode routeur simple avec le TP-Link en Access Point

Mode_clap : il s'agit du mode répéteur wifi.

En cas d'utilisation du mode clap il vous faut ensuite utiliser la commande conf_wifi_client pour vous connecter à l'access point que vous souhaitez retransmettre.

Démonstation de la commande conf_wifi_client pour répéter le signal de l'AP TagadaBox

root@OpenWrt:~# conf_wifi_client

killall: wpa_supplicant: no process killed
Available WIFI networks:
    1 : "Bouygues Telecom Wi-Fi" (open)
    2 : "Bbox-xxx44" (secure)
    3 : "TagadaBox" (secure)
    4 : "" (secure)
    5 : "FreeWifi" (open)
    6 : "FreeWifi_secure" (secure)
    7 : "Bbox-xxx" (secure)
    8 : "SFR WiFi Mobile" (secure)
    9 : "NEUF_DC0C" (secure)
   10 : "freebox_xxx" (secure)
   11 : "" (secure)
   12 : "SFR WiFi Public" (open)
   13 : "FreeWifi" (open)
   14 : "FreeWifi_secure" (secure)
   15 : "FreeWifi" (open)
   16 : "FreeWifi_secure" (secure)
   17 : "xxx_Free" (secure)
   18 : "" (secure)
   19 : "FreeWifi" (open)
   20 : "FreeWifi_secure" (secure)
   21 : "" (secure)
   22 : "FreeWifi" (open)
   23 : "FreeWifi" (open)
   24 : "FreeWifi_secure" (secure)
   25 : "xxxgnat" (secure)
   26 : "xxx_HD" (secure)
   27 : "FreeWifi" (open)
   28 : "Livebox-xxx" (secure)
   29 : "orange" (open)
   30 : "Livebox-xxx" (secure)
   31 : "" (secure)
   32 : "freeboxmaxxx" (secure)
Enter the numeric option for your selected network: 3
Enter password of the selected WIFI network: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Trying to connect to WIFI network.
(Wait a few seconds and check status with: iwconfig )

Configuration file: /var/run/hostapd-phy0.conf
Using interface wlan0 with hwaddr ec:00:8f:dc:00:de and ssid "Mon TP-Link"
Successfully initialized wpa_supplicant
Le signal de TagadaBox est maintenant retransmis par Mon TP-Link

Nota : En mode répéteur (mode_clap) le TP Link 703N retransmet simultanément l'internet sur le port RJ 45 et en wifi.
  • Il est donc possible de distribuer Internet à plusieurs ordinateurs via un switch plus tablette et smartphone en Wifi
  • De s'en servir comme simple carte Wifi en le connectant directement avec un cable RJ45 sur un ordinateur dépourvu de carte Wifi sans avoir à installer les drivers d'une clé Wifi

Autre possibilité du routeur (même en mode ap sans connexion à retransmettre, exemple en vacances) c'est de donner accès en http et en ftp au contenu d'un clé usb ou d'un disque dur externe usb.

Serveur HTTP :

Installation :
opkg update
opkg install mini-httpd
Modification du fichier de configuration pour utiliser la clé usb comme répertoire par défaut du serveur :
Fichier : /etc/mini_httpd.conf
cgipat=cgi-bin/**|**.sh
dir=/usbdrive
nochroot
pidfile=/var/run/mini_httpd.pid
user=root
port=80
Lancement du serveur :
/etc/init.d/mini_httpd enable
/etc/init.d/mini_httpd start
Ensuite le serveur se lancera à chaque insertion d'une clé usb (voir détail dans fichier en fin de billet Fichier à editer : /etc/hotplug.d/block/50-transmission)
Le serveur sera coupé par la commande removeusb dans laquelle j'ai ajouté la ligne : /etc/init.d/mini_httpd stop

On peut aussi se servir de ce mode pour distribuer des PDF, DOC, vidéos, musique, à une assemblée pendant une réunion sans faire passer une clé usb aux personnes présente.

Vous avez même la possibilité de diffuser un petit site web (uniquement html) que vous aurez placé à la racine de votre clé usb.

ou pour visionner des films de vacances ;) contenus dans la clé usb :

Si vous préférez temporairement utiliser uniquement l'accès FTP (protection par mot de passe) il faut stopper le process HTTP
Pour effectuer rapidement les commandes arrêt et marche du serveur http j'ai crée deux fichiers dans le repertoire /bin

http_stop contenant la ligne /etc/init.d/mini_httpd stop
http_start contenant la ligne /etc/init.d/mini_httpd start

Ne pas oublier de faire un : chmod +x http_stop et chmod +x http_start pour les rendre exécutables

Serveur FTP

L'avantage du serveur FTP est que l'on peut écrire, modifier, lire sur le contenu de la clé USB. De plus l'identification se fait avec usbdrive comme utilisateur et le mot de passe que vous avez renseigné lors du premier paramétrage.

Si vous souhaitez visionner un film uniquement en FTP voici quelques astuces :
  • Sous Windows : Netdrive qui permet de monter comme un disque dur le contenu du serveur ftp et ensuite lecture avec VLC
  • Sous Linux : Il est possible de monter le contenu d'un serveur FTP avec curlftps
  • Sous IOS iphone/ipad J'utilise Ace Player qui permet de visionner directement le flux
  • Sous Android : L'exploration du contenu FTP se fait dans un premier temps par ES File Explorer qui vous proposera ensuite la lecture dans votre player habituel.
Cette utilisation permet de faire fonctionner le TP-Link en vacances, dans le train, en voiture afin de regarder vos DivX préférés. Un essai a été effectué avec un android et un iphone chacun regardant simultanément un film différent sans freeze ou autre.

L'alimentation via une prise micro usb se fait soit :
  • Par adaptateur 220v/5V USB d'au moins 2A de sortie pour pouvoir alimenter un disque dur externe,
  • Un chargeur allume cigare/Usb pour l'utilisation en voiture,
  • Ou bien une petite batterie portable.
J'ai effectué des essais avec une batterie de type 2000 mAh



Cette petite batterie a permis d'alimenter le TP Link WR703N en diffusion permanente de films en wifi vers un ordinateur portable durant 5H10.

Problème lié au mode_clap (répéteur)

Je teste le mode clap chez moi le soir, cela fonctionne nickel, le TP Link me répète bien le wifi de ma freebox.

Le lendemain au travail, voulant faire une démonstration, je rebranche le TP Link, je le vois furtivement en wifi mais impossible de me connecter dessus, puis il disparaît.

Cause :

Le TP Link démarre en mode répéteur. Il monte normalement on voit le voit furtivement en wifi.
Il tente de se connecter à ma freebox, mais bien sur il est "hors zone" donc cela ne fonctionne pas.
A partir de la, je ne sais pas ce qu'il se passe dans la config mais le fait de ne pouvoir se connecter en répéteur il disparaît....
Seule solution pour le retrouver, câble réseau sur l'ordi mis en DHCP, le reprendre en ssh et le remettre en mode_ap, mais quand on est en vacances juste avec sa tablette ou son smartphone il est impossible de se connecter avec un câble réseau !

Le même problème est rencontré si en configurant le mode répéteur on se trompe sur la clé WEP ou WPA de l'access point sélectionné !

Résolution du problème :

Par défaut le firmware téléchargé permet dès l'insertion d'une clé d'USB de lancer un client Bittorrent (aucun besoin pour moi). J'ai donc modifié ce petit scritp de "montage de clé" qui maintenant au lieu de lancer le client Bittorent redonne automatiquement la main sur le TP Link 703N.

Modification du 10/02/2013.

Dans la première version de ce billet, j'effectuais une modification afin de repasser le routeur en mode_ap si une clé usb était insérée. Cette méthode permettait de reprendre la main sur le routeur, par contre je me suis rendu compte qu'il était impossible de repasser en mode répéteur car le TP Link voulais toujours revenir sur sa configuration avec un Access Point inaccessible et du coup redevenait invisible.

J'ai donc du créer un script pour "remettre à zéro" automatiquement la config répéteur en cas d'insertion de la clé USB.

Création du fichier recup dans le répertoire bin
cp /etc/config/confs/wireless.clap /etc/config/confs/wireless.tempo
uci set wireless.radio0.channel=4
uci set wireless.wificlient.ssid=""
uci set wireless.wificlient.encryption=""
uci set wireless.wificlient.key=""
uci commit wireless
disable_ap_wifi
enable_ap_wifi
Nota : Pensez à effectuer chmod +x recup pour rendre ce fichier exécutable.

Les paramètres de la carte Radio0 sont ainsi remis à zéro. Le TP Link reste en mode répéteur (mode_clap) il faudra par contre refaire un "conf_wifi_client" pour assigner un autre AP. (si la commande de configuration ne fonctionne pas du premier coup, renouveler l'opération)

Puis modifier ainsi le fichier /etc/hotplug.d/block/50-transmission pour que la commande recup soit lancée lors de l'insertion de la clé.

Fichier à editer : /etc/hotplug.d/block/50-transmission

#!/bin/sh

# Copyright (C) 2009 OpenWrt.org
case "$ACTION" in
	add)
		# check usbdrive connected and start transmission
		if [ ! -f /usbdrive/USB_DISK_NOT_PRESENT ]; then
		# Je commente la ligne du dessous qui lance normalement Bittorrent
		#	/etc/init.d/transmission start 
                # Arrêt et lancement du serveur http
                /etc/init.d/mini_httpd stop
                /etc/init.d/mini_httpd start
		# Je force les paramètres du repeteur 
		/bin/recup
		fi
		;;
	remove)
		# check usbdrive removed and stop transmission
		if [ -f /usbdrive/USB_DISK_NOT_PRESENT ]; then
			/etc/init.d/transmission stop
		fi
		;;
esac	
Inconvénient : quand le TP Link est en mode clap et qu'il fonctionne normalement, le fait d'insèrer une clé usb oblige à reprendre la main dessus, et de refaire un conf_wifi_client pour répéter à nouveau le signal

Si c'est le cas, et qu'après l'insertion de la clé vous voulez éviter de retaper une clé WPA de 15 kilomètres, j'ai pensé à vous !

Un autre petit script vous permettra de reparamétrer rapidement le routeur avec l'ancien AP si vous êtes toujours capable de le capter:
fichier last_conf_clap à placer dans le répertoire /bin et à rendre exécutable également :
cp /etc/config/confs/wireless.tempo /etc/config/wireless
/etc/init.d/network restart
wifi down
wifi
Mais bon, je préfère ce petit désagrément au fait de devoir courir pendant les vacances après un ordi et un cordon RJ45 pour retrouver mon TP Link !


Afin de me souvenir de ces différentes commandes, j'ai personnalisé le message d’accueil SSH afin d'avoir les commandes principales rapidement sous la main.

Fichier : /etc/banner
        __________  _____   _____
       |___  / __ \|  __ \ / ____|
          / / |  | | |__) | |  __
         / /| |  | |  _  /| | |_ |
        / /_| |__| | | \ \| |__| |
       /_____\____/|_|  \_\\_____|

  mode_ap : Mode Acces Point
  mode_clap : Mode repeteur
  conf_wifi_client : Liste AP Wifi
  http_start : Lance client http
  http_stop : Coupe client http
  last_conf_clap : Derniere config repeteur


oui Zorg c'est le nom de mon routeur ;)

Le but de ce billet est de vous montrer ce que j'ai réussi à faire avec, mais aussi de garder pour moi une trace de mes "essais".