OpenWRT installeren op een Fritz!repeater 3000 (Deel 2)

Deel 2 van mijn queste om een uniform netwerk te realiseren met routers/repeaters van 3 verschillende fabrikanten, dit door OpenWRT op de routers/repeaters te installeren. OpenWRT is een open source operating systeem gebaseerd op Linux die zeer geschikt is voor routers ed.
In deze tutorial ga ik ervan uit dat je reeds een TFTP server toegevoegd hebt aan het netwerk, anders verwijs ik je graag naar Stap 1. van mijn tutorial OpenWrt installeren op een Linksys RE6500. Wel download ik de benodigde image-files. Flash de Fritz!repeater 3000 met OpenWRT en configureer ik OpenWRT zodanig dat de Fritz!repeater zich weer gedraagt als een accesspoint in bridging modus. Stap 1. U-boot environment installeren op Fritz!repeater 3000 Door de U-boot environment in het memory van de repeater te plaatsen verander je aantal instellingen in je repeater zodat de repeater jou TFTP-server aanspreekt voor het downloaden van firmware. Dit doe je als volgt: Download het python script eva_romboot.py, en de uboot voor de Fritz!repeater 3000 van GITHUB
cd /tmp
mkdir Fritz3000
cd Fritz3000
wget https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob_plain;f=scripts/flashing/eva_ramboot.py;hb=148d29d47b1d555d0058dcc5dda450b74c4628ec
chmod 755 eva_ramboot.py
wget https://downloads.openwrt.org/releases/19.07.0/targets/ipq40xx/generic/u-boot-fritz3000/uboot-fritz3000.bin

Tijdens het boot-proces van de Fritz!repeater 3000 heeft de repeater (tijdelijk) het default IP-address 192.168.178.1. Het is dus zaak om de ethernetadapter van je laptop/desktop tijdelijk in hetzelfde subnet te laten opereren. Geeft daarom je ethernetadapter het statische IP-address 192.168.178.10 met subnetmask 255.255.255.0. Je kunt dit vanaf de commandline doen, of via de instellingen van je Linux systeem. Vanaf commandline: Achterhaal eerst je ethernet device met ip -a:
syds@test:/tmp/Fritz3000$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 0c:9d:92:30:0f:41 brd ff:ff:ff:ff:ff:ff
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 80:c5:f2:ea:b3:69 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.115/24 brd 192.168.2.255 scope global dynamic noprefixroute wlp3s0
       valid_lft 2946sec preferred_lft 2946sec
    inet6 fe80::6a46:a0e1:cc3a:1648/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

In dit geval gebruik ik de ethernetadapter van de laptop, dus enp2s0. Hier voeg ik tijdelijk het ip-address 192.168.178.10 met subnet-mask 255.255.255.0 aan toe:
syds@test:/tmp/Fritz3000$ sudo ip addr add 192.168.178.10/24 dev enp2s0
Nu gaan we de uboot laden in de Fritz!repeater 3000. Haal de Fritz!repeater 3000 los van je netwerk, en haal de stekker uit het stopcontact. Sluit een ethernetkabel aan tussen je laptop/desktop en één van de poorten van je repeater. Stop nu de stekker in het stopcontact en zodra je het link-ledje van je ethernetadapter van je laptop/desktop begint te knipperen (meestal na zo’n 2 tot 5 seconden), voer je onderstaand commando uit.
syds@test:/tmp/Fritz3000$ ./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz3000.bin
Zodra je onderstaand bericht ziet staan, en het python script afgesloten wordt en je op de commandoprompt terugkomt, kun je verder met de volgende stap.
syds@test:/tmp/Fritz3000$ ./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz3000.bin 
> SETENV memsize 0x00080000 
< 200 SETENV command successful 
> SETENV kernel_args_tmp mtdram1=0x85000000,0x88000000 
< 200 SETENV command successful 
> MEDIA SDRAM 
< 200 Media set to MEDIA_SDRAM
syds@test:/tmp/Fritz3000$
Stap 2. IP-address TFTP-server aanpassen Door de uboot in de Fritz!repeater 3000 te laden, zoekt deze een TFTP server op het subnet 192.168.1.255. Het is dus zaak om de TFTP-server een IP-address in dit subnet te geven, volgens de beschrijving op github moet dit 192.168.1.70 met subnetmask 255.255.255.0 zijn. Ik verwijder eerst het tijdelijk IP-address 192.168.178.10, en voeg daarna het nieuwe IP-address toe.
syds@test:/tmp/Fritz3000$ sudo ip addr del 192.168.178.10/24 dev enp2s0
syds@test:/tmp/Fritz3000$ sudo ip addr add 192.168.1.70/24 dev enp2s0
Stap 3. Benodigde OpenWRT images downloaden De TFTP-server gebruikt de directory /var/lib/tftpboot voor het up- en downloaden van bestanden. Plaats hier de image files m.b.v. de commando’s:
cd /var/lib/tftpboot
sudo wget https://downloads.openwrt.org/releases/19.07.0/targets/ipq40xx/generic/openwrt-19.07.0-ipq40xx-generic-avm_fritzrepeater-3000-initramfs-fit-uImage.itb
sudo wget https://downloads.openwrt.org/releases/19.07.0/targets/ipq40xx/generic/openwrt-19.07.0-ipq40xx-generic-avm_fritzrepeater-3000-squashfs-sysupgrade.bin
Hernoem de file openwrt-19.07.0-ipq40xx-generic-avm_fritzrepeater-3000-initramfs-fit-uImage.itb naar FRITZ3000.bin. Hier zoekt de Fritz!repeater 3000 namelijk naar.
sudo mv openwrt-19.07.0-ipq40xx-generic-avm_fritzrepeater-3000-initramfs-fit-uImage.itb FRITZ3000.bin
Stap 4. De Fritz!repeater 3000 flashen met OpenWRT Om controle te houden op het proces volgen we de /var/log/syslog file, daar schrijft de TFTP-server namelijk zijn logging naar toe. In een terminal venster typen we:
tail -f /var/log/syslog
Als het goed is gaat de met uboot geladen Fritz!repeater nu automatisch z’n firmware ophalen bij je TFTP-server, in je terminal venster zie in de syslog de volgende regel verschijnen:
Jul 25 00:59:12 test in.tftpd[8733]: RRQ from 192.168.1.1 filename FRITZ3000.bin
Tijdens het downloaden en in memory plaatsen van de image-file knippert de groene led van de Fritz!repeater 3000 langzaam. Daarna reboot de Fritz!repeater 3000 en gaat de led vast branden. Opdat moment draait een minimale versie van OpenWRT op de Fritz!repeater 3000. Je kunt vervolgens met ssh een verbinding opzetten naar de Fritz!repeater 3000. Als je eerder een andere router/repeater hebt geflashed met OpenWRT, dan staat de ssh-key van 192.168.1.1 nog in je ssh-cache, verwijder deze eerst.
sudo ssh-keygen -R 192.168.1.1
sudo ssh -l root 192.168.1.1
Je krijgt dan het volgende scherm te zien: Verander als eerste het root password met:
root@OpenWrt:~# passwd
Changing password for root
New password:
Mount daarna het root file system:
mount_root
We gaan de uboot-fritz3000.bin file m.b.v. scp in de directory / plaatsen. Open een tweede terminal venster op je laptop en geef daar de commando’s:
syds@test:/ cd /tmp/Fritz3000
syds@test:/tmp/Fritz3000$ scp uboot-fritz3000.bin 192.168.1.1:/
Ga terug naar je eerste terminal venster (met daarin OpenWRT op je Fritz!repeater 3000). We gaan nu de Bootloader (uboot-fritz3000.bin) naar beide kernel partities wegschrijven en de AVM filesystem partities weggooien.
mtd write /uboot-fritz3000.bin uboot0
mtd write /uboot-fritz3000.bin uboot1

ubirmvol /dev/ubi0 --name=avm_filesys_0
ubirmvol /dev/ubi0 --name=avm_filesys_1
Vervolgens gaan we de sysupgrade-file m.b.v. scp in de directory / plaatsen. Ga naar je tweede terminal venster op je laptop en geef daar het commando:
syds@test:/ cd /var/lib/tftpboot
syds@test:/var/lib/tftpboot$ scp openwrt-19.07.0-ipq40xx-generic-avm_fritzrepeater-3000-squashfs-sysupgrade.bin 192.168.1.1:/
Ga terug naar je eerste terminal venster (met daarin OpenWRT op je Fritz!repeater 3000). We gaan nu de definitieve OpenWRT image installeren met sysupgrade:
sysupgrade -n /openwrt-19.07.0-ipq40xx-generic-avm_fritzrepeater-3000-squashfs-sysupgrade.bin

Commencing upgrade. 
Closing all shell sessions. 
Connection to 192.168.1.1 closed by remote host. 
Connection to 192.168.1.1 closed.
Hetzelfde ritueel, langzaam knipperende led tijdens het laden van de definitieve image, reboot en daarna een vast brandende led ten teken dat hij klaar en operationeel is. Stap 5. OpenWRT op Fritz!repeater 3000 configureren Ga in je browser naar http://192.168.1.1, de LuCI webinterface van OpenWRT wordt getoond.
Klik op Login, en pas als eerste het password van root aan via System, Administration:
De volgende stap is de Fritz!repeater 3000 een IP-address van je DHCP server laten verkrijgen, kies Network, Interfaces:
Selecteer de LAN-interface “br-lan”, en klik op Edit: Kies bij Protocol voor “DHCP client”, en vul bij Hostname to send when requesting DHCP een zinvolle naam in, en klik op Save: Klik daarna op Save & Apply, de Fritz!repeater gaat nu rebooten. Na enige tijd verschijnt onderstaande melding, klik op Apply unchecked
De Fritz!repeater 3000 krijgt nu een nieuw IP-address van je DHCP-server. Maar uiteraard moet je repeater daarvoor eerst weer aan je netwerk hangen. Haal daarom de ethernetkabel uit je laptop/desktop en zet de repeater op je beoogde locatie en sluit hem daar aan op het netwerk. Achterhaal daarom in je router cq op je DHCP server wat het nieuwe IP-address van je repeater wordt. In mijn geval is dat 192.168.2.118. Ga vervolgens in je browser naar het IP-address van je Fritz!repeater 3000, in mijn geval dus 192.168.2.118, of wel http://192.168.2.118 en log in met root en het password wat je eerder gekozen hebt. Als laatste stap gaan we nu de Wireless instellingen aanpassen van je 2.4Ghz en 5Ghz netwerk. Kies voor Network, Wireless: Radio0 staat voor je 5Ghz netwerk, en Radio1 voor je 2.4Ghz netwerk. Ik heb er voor gekozen om mijn 5Ghz netwerk een unieke SSID te geven, en mijn 2.4Ghz netwerk een SSID die op alle routers/repeaters voorkomt. Zo kan ik bewust met mijn laptop of telefoon het 5Ghz netwerk benutten, terwijl alle domotica devices zelf kiezen welke router/repeater het sterkste signaal geeft. Kies onder radio0 de regel die begint met SSID:, en klik op Edit: Kies onder het tab General Setup voor Mode: Access Point, kies een zinvolle naam voor ESSID, de rest kun je default laten staan. Klik op Save. Kies onder het tab Wireless Security bij Encryption voor WPA2-PSK, en vul bij Key het wachtwoord van je draadloos netwerk in, laat de rest default en klik op Save. Je keert nu terug in het vorige scherm, doe hetzelfde voor de regel die begint met SSID onder radio1. Klik daarna op Save & Apply.
Tot slot nog de NTP-server configureren t.b.v. de tijd synchronisatie. Kies voor System, System, en het tab General settings.
Toelichting: Hostname: zinvolle naam Timezone: Europe/Amsterdam (CEST) Klik vervolgens op het tab Time Synchronization
Toelichting: Enable NTP client: aangevinkt Use DHCP advertised servers: aangevinkt NTP server candidates kan in principe leeg of default blijven, omdat de optie Use DHCP advertised servers aangevinkt staat. Dit gaat er wel vanuit dat je je DHCP server dusdanig hebt geconfigureerd dat hij de NTP server adressen meeservereerd in het DHCP bericht. Dat is in mijn geval wel het geval. Toch maar voor de zekerheid het NTP server adres ingevuld van mijn lokale NTP server bij NTP server candidates, kan geen kwaad lijkt me. Je bent nu klaar, test nu met je laptop/telefoon of je een draadloze verbinding met de Fritz!repeater krijgt en bijv. met je browser www.google.com kunt bereiken.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *