Contact: kaillasse91 at hotmail dot fr
Mise en place du redboot modifié.
  1. Acquisition du lien Telnet avec le routeur
    1. Dans un premier temps on cherche à établir un lien telnet entre le PC et le routeur
      NB: il peut être nécessaire de désactiver le service network-manager (ignoré les messages de conseil qui s'affichent):
      /etc/init.d/network-manager stop

      Sur le PC: configurer son adresse IP locale à 192.168.20.80, commande:
      ifconfig eth0 192.168.20.80

      Connecter le PC et le routeur par un cable ethernet branché sur le port WAN (noté Internet sur le DIR-300)

      Dans un terminal préparer / commencer le ping du routeur:
      ping 192.168.20.81
      on va laisser tourner, ca va permettre de voir quand la connexion avec le serveur RedBoot
      deviendra active.

      Dans un terminal préparer la commande:
      putty -telnet -P 9000 192.168.20.81
      ne pas valider de suite, cela va permettre la connexion telnet.

      Débrancher l'alimentation du routeur et rebrancher:
      Surveiller le terminal avec le ping du routeur qui tourne au bout de quelques secondes le routeur
      répond au ping : à ce moment lancer putty dans le terminal

      Si tout à fonctionné un prompt « RedBoot> » apparaît dans le terminal putty,
      des messages d'erreur apparaissent dans ce terminal c'est à cause du ping: arrêter le ping du
      routeur.

      NB: la connexion à RedBoot ne peut se faire que dans une fenetre de temps assez reduite, lancer
      putty dés que le ping fonctionne.
      Si la connexion n'a pas lieu recommencer.


  2. Installation du fichier .ram du RedBoot modifié
    1. Maintenant que la connexion telnet est effective on va pouvoir lancer le serveur tftp:
      - En cas de doute sur le fait que tftp soit lancé: dans un terminal:
      /etc/init.d/xinetd restart

      dans Putty:

        RedBoot> load ap61.ram
        Using default protocol (TFTP)
        Entry point: 0x800410bc, address range: 0x80041000-0x800680d8
        RedBoot> go
        
      Le routeur va se reconfigurer et au bout de une minute un nouveau bootloader
      devrait être disponible à l'adresse 192.168.1.1 sur le port 9000.


  3. Connexion via le nouveau BootLoader
    1. Pour pouvoir l'atteindre du pc:
      dans un terminal:
      sudo ifconfig eth0 down
      sudo ifconfig eth0 192.1681.23
      sudo eth0 up

      dans un autre terminal lancer putty:
      putty -telnet -P 9000 192.168.1.1

      Si tout s'est bien passé on retombe un prompt de type « DDR-WRT> »
      dans putty (et non plus « RedBoot> »


  4. Installation du fichier .rom du RedBoot modifié
    1. NB: durant toute la phase suivante il semble qu'une rupture de l'alimentation
      ou un débranchement du cable ethernet puisse être très très facheuse !!!
      NE JAMAIS DEBRANCHER

      Un peu de configuration:

        DD-WRT> fconfig -i
        Initialize non-volatile configuration - continue (y/n)? y
        Run script at boot: false
        Use BOOTP for network configuration: true
        Default server IP address:
        Console baud rate: 9600
        GDB connection port: 9000
        Force console for special debug messages: false
        Network debug at boot time: false
        Update RedBoot non-volatile configuration - continue (y/n)? y
        ... Erase from 0xbffe0000-0xbfff0000: .
        ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
        
      On va définir le paramètre bootp flag à « false »:

        DD-WRT> fconfig bootp false
        bootp: Setting to false
        Update RedBoot non-volatile configuration - continue (y/n)? y
        ... Erase from 0xbffe0000-0xbfff0000: .
        ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
        
      Puis on initialise le sytème de fichier de la mémoire flash:

        DD-WRT> fis init
        About to initialize [format] FLASH image system - continue (y/n)? y
        *** Initialize FLASH Image System
        ... Erase from 0xbffe0000-0xbfff0000: .
        ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: .
        
      On configure l'adresse IP du serveur tftp:

        DD-WRT> ip_address -l 192.168.1.1 -h 192.168.1.23
        
      IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
      Default server: 192.168.1.23
      On récupère l'image ROM:

        DD-WRT> load -r -b %{FREEMEMLO} ap61.rom
        Using default protocol (TFTP)
        Raw file loaded 0x80080000-0x800a8717, assumed entry at 0x80080000
        
      On crée le système de fichier pour le bootloader:

        DD-WRT> fis create -l 0x30000 -e 0xbfc00000 RedBoot
        An image named 'RedBoot' exists - continue (y/n)? y
        ... Erase from 0xbfc00000-0xbfc30000: ...
        ... Program from 0x80080000-0x800a8718 at 0xbfc00000: ...
        ... Erase from 0xbffe0000-0xbfff0000: .
        ... Program from 0x807f0000-0x80800000 at 0xbffe0000: .
        
      On relance le routeur:

        DD-WRT> reset
        
      Normalement le routeur se relance, le bootloader charger s'éxécute
      et on va pouvoir récupérer la connexion sur l'ip 192.168.1.1 et le port 9000.