OpenWRT sur un TL-MR3020 brické

OpenWRT sur un TL-MR3020 brické
Démontage d'un TL-MR3020

Après avoir récupéré un router TP-Link MR3020 brické, j’ai regardé ce qu’il était possible de faire. Sachant qu’il ne démarrait plus et que les soft / hard reset n’avait aucun effet. Je suis alors tombé sur pas mal d’articles détaillés qui m’ont permis de réinstaller mon firmware préféré sur mon mini-routeur préféré!

L’idée consiste à récupérer un shell sur le routeur via l’intermédiaire du port série. Une fois cette étape passée, il faudra récupérer via un serveur TFTP le firmware OpenWRT et l’installer sur la ROM du routeur (ici en version 1.9).

Brancher le routeur au PC via le port série

Démontage du routeur et branchements comme ci-dessous (prévoir une résistance de 10K entre le TXD et le VCC, soit les extrémités des pins) :

Branchements côté routeur
Branchements côté routeur
Branchement côté PC
Branchement côté PC

Serveur TFTP sur Linux

sudo dnf install tftp-server
/etc/xinetd.d/tftp
# Fichier de configuration ici : /etc/xinetd.d/tftp
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /var/lib/tftpboot
disable = no
}

# Permissions
sudo chmod -R 777 /var/lib/tftpboot/
sudo chown -R nobody /var/lib/tftpboot/
sudo cp ~/Downloads/openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin /var/lib/tftpboot/
sudo chmod 666 /var/lib/tftpboot/openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
# Si SElinux est activé (et que vous ne voulez pas le désactiver)
sudo restorecon -Rv /var/lib/tftpboot
# Si firewall
sudo systemctl stop firewalld

Pour tester le serveur TFTP :

sudo systemctl start tftp
sudo tftp localhost
get openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
q

Connexion via le port série

Pour se connecter au port série :

sudo dnf install gtkterm screen
sudo screen /dev/ttyUSB0 115200

Au démarrage (une fois le port série + alimentation + câble ethernet connectés), vous devriez voir ça :

U-Boot 1.1.4 (Aug 17 2012 - 15:21:03)
.
AP121 (ar9330) U-boot
.
DRAM:  32 MB
led turning on for 1s...
id read 0x100000ff
flash size 4194304, sector count = 64
Flash:  4 MB
Using default environment
.
In:    serial
Out:   serial
Err:   serial
Net:   ag7240_enet_initialize...
No valid address in Flash. Using fixed address
No valid address in Flash. Using fixed address
: cfg1 0x5 cfg2 0x7114
eth0: 00:03:7f:09:0b:ad
ag7240_phy_setup
eth0 up
: cfg1 0xf cfg2 0x7214
eth1: 00:03:7f:09:0b:ad
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
ag7240_phy_setup
eth1 up
eth0, eth1
Autobooting in 1 seconds

Dès lors que le “Autobooting in 1 seconds” apparaît, il faut immédiatement entrer tpl.
La commande permet d’accéder à un shell.

Installation de OpenWRT

Le fichier que j’ai récupéré (qui semble être la dernière version à supporter ce vieux MR3020 en v1.9 : openwrt-17.01.7-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin

Il faut set l’adressage IP et récupérer le firmware depuis le serveur TFTP (cela implique que le port Ethernet de votre PC est set sur 192.168.1.2/24).

hornet> setenv ipaddr 192.168.1.1
hornet> setenv serverip 192.168.1.2
hornet> tftpboot 0x80000000 openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin

La sortie devrait ressembler à ça :

Using eth1 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.1
Filename 'openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin'.
Load address: 0x80000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######################################################
done
Bytes transferred = 3932160 (3c0000 hex)

Pour écraser l’ancien firmware et flasher le nouveau :

hornet> erase 0x9f020000 +0x3c0000
.
First 0x2 last 0x3d sector size 0x10000           61
Erased 60 sectors

hornet> cp.b 0x80000000 0x9f020000 0x3c0000
Copy to Flash... write addr: 9f020000
done

hornet> bootm 9f020000
## Booting image at 9f020000 ...
   Uncompressing Kernel Image ... OK
.
Starting kernel ...

Bon flash les amis 🙂

0 Comments on “OpenWRT sur un TL-MR3020 brické

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.