Ecco i passaggi da fare per installare OpenWRT su una scheda Mikrotik RouterBORAD 133C3
Il processore della scheda 133C3 e’ un Infineon ADM5120 percio’ abbiamo bisogno di questi files:
http://www.wifiextreme.com.au/files/openwrt/openwrt-adm5120-2.6-vmlinux.elf
http://www.wifiextreme.com.au/files/openwrt/openwrt-adm5120-2.6-rootfs.tgz
http://www.wifiextreme.com.au/files/openwrt/kernel (nome completo openwrt-adm5120-2.6-rb1xx-vmlinux)
Per caricare questi files abbiamo bisogno di un server di appoggio con i servizi dhcpd, tcpd e httpd
Illustrero’ le prodedure adottate utilizzando un server di appoggio linux (debian) e quelle adottate utilizzando un comune pc con windows XP.
Debian
Ho scaricato l’immagine minimale di debian: http://cdimage.debian.org/debian-cd/6.0.1a/i386/iso-cd/debian-6.0.1a-i386-businesscard.iso ed installata (nel mio caso in un pc virtuale)
Ho assegnato alla macchina debian l’ip statico 192.168.1.100 (supponendo che il router di rete abbia ip 192.168.1.2):
in /etc/network/interfaces:
auto lo iface lo inet loopback iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.2 auto eth0
Installo i pacchetti che mi servono:
aptitude install apache2 tftpd dhcp3-server screen
ho creato la dir /srv/tftp
mkdir /srv/tftp; cd /srv/tftp
e scaricato qui dentro il file http://www.wifiextreme.com.au/files/openwrt/openwrt-adm5120-2.6-vmlinux.elf che rinominero’ in linuxrc
wget -O /srv/tftp/linuxrc http://www.wifiextreme.com.au/files/openwrt/openwrt-adm5120-2.6-vmlinux.elf
perche’ tftp funzioni assegno i permessi 777 alla cartella e al suo contenuto:
chmod -R 777 /srv/tftp
configuro il server dhcp in questo modo (/etc/dhcp/dhcpd.conf):
option domain-name "example.com"; option domain-name-servers 4.2.2.3, 8.8.8.8, ns1.example.com; option subnet-mask 255.255.255.0; default-lease-time 600; max-lease-time 7200; server-name "servername"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.250; option routers 192.168.1.2; } host clientname { filename "/srv/tftp/linuxrc"; server-name "servername"; next-server 192.168.1.100; hardware ethernet 01:23:45:67:89:AB; fixed-address 192.168.1.90; }
01:23:45:67:89:AB va sostituito con il mac address della scheda Mikrotik. Vedi dopo come ricavarlo da console seriale.
nella cartella /var/www scarico gli altri file che serviranno in seguito:
cd /var/www; wget http://www.wifiextreme.com.au/files/openwrt/openwrt-adm5120-2.6-rootfs.tgz; wget -O /var/www/openwrt-adm5120-2.6-rb1xx-vmlinux http://www.wifiextreme.com.au/files/openwrt/kernel
ho rinominato il file kernel con il suo nome completo perche’ poi lo script di OpenWRT richiedera’ quel nome.
riavvio i servizi per applicare le modifiche:
/etc/init.d/isc-dhcp-server restart; /etc/init.d/openbsd-inetd restart
Passiamo ora alla scheda Mikrotik:
Colleghiamo un cavo null-modem tra la scheda e il pc (un adattatore usb-seriale puo’ tornar comodo).
Dalla mio pc la nuova seriale rilevata (tramite l’adattatore USB) si chiama /dev/ttyUSB0
Collego anche un cavo di rete direttamente tra la scheda ed il pc (la rete della mia macchina virtuale e’ impostata in bridge)
Dal mio pc apro una console seriale tramite screen
screen /dev/ttyUSB0 115200
(nel vostro pc potete scegliere la vostra console seriale preferita)
Diamo alimentazione alla scheda Mikrotik
Sulla console seriale comparira’ la scritta:
Press any key within 2 seconds to enter setup
Entro 2 secondi dovremo premere un tasto per accedere al bios della scheda Mikrotik
Board Info: Board type: 133C3 Serial number: 12270CCBBAAD Firmware version: 2.11 CPU frequency: 175 MHz Memory size: 16 MB eth1 MAC address: 01:23:45:67:89:AB
formattiamo la memoria NAND (salutate prima per l’ultima volta il firmware originale..)
scegliamo “e” (e – format nand) e confermiamo con “yes”
scegliamo “o” (o – boot device) e poi “1” (1 – boot Ethernet once, then NAND)
ora scegliamo “p” (p – boot protocol) e poi “2” (2 – dhcp protocol)
ora possiamo uscire con “x” (x – exit setup)
e vedere se la scheda tramite dhcp riesce a ricevere il file linuxrc dalla macchina debian
Premendo invio alla fine del primo caricamento di openwrt ci ritroveremo una shell linux
ora per installare OpenWRT diamo il comando:
wget2nand http://192.168.1.100
Lo script wget2nand automaticamente effettua questi passaggi
mount /dev/mtdblock2 /mnt; cd /mnt; wget -O /mnt/kernel http://192.168.1.100/openwrt-adm5120-2.6-rb1xx-vmlinux; cd /; umount /mnt; mount /dev/mtdblock3 /mnt; cd /mnt; wget http://192.168.1.100/openwrt-adm5120-2.6-rootfs.tgz gzip -d openwrt-adm5120-2.6-rootfs.tgz; tar xvf openwrt-adm5120-2.6-rootfs.tar rm openwrt-adm5120-2.6-rootfs.tar cd /; umount /mnt; sync
ora possiamo riavviare tramite il comando “reboot” e verificare nel bios che il boot device (opzione “o”) sia impostato su “n” (n – boot from NAND, if fail then Ethernet).
Ora l’installazione e’ finita.
OpenWRT rispondera’ via telnet all’indirizzo 192.168.1.1 e dopo aver cambiato la password di root potremo accedere tramite ssh.
Windows
Utilizzo Windows come pc di supporto per i servizi:
creo la cartella c:\wrt
scarico all’interno di questa cartella questo files:
http://tftpd32.jounin.net/download/tftpd32.400.zip
http://smallsrv.com/shttp3.exe
http://www.wifiextreme.com.au/files/openwrt/kernel
http://www.wifiextreme.com.au/files/openwrt/openwrt-adm5120-2.6-rootfs.tgz
creo la cartella c:\wrt\tftp
scarico all’interno di questa cartella questo file:
http://www.wifiextreme.com.au/files/openwrt/openwrt-adm5120-2.6-vmlinux.elf
e lo rinomino in linuxrc
installo il programma shttp3.exe nella cartella c:\wrt ed ottengo:
– la cartella del server http c:\wrt\shttps
– la cartella dove mettere i files che saranno accessibili da wget:
c:\wrt\shttps\www
sposto dentro la cartella c:\wrt\shttps\www i due files “kernel” e
“openwrt-adm5120-2.6-rootfs.tgz”
scompatto il programma tftpd32.400.zip
ottengo la cartella tftpd32.400
entro dentro e lancio il programma tftpd32 e lo configuro come segue:
Server interface: 192.168.1.100 Settings -> Global -> Start services: TFTP Server, DHCP Server TFTP -> Base dir: c:\wrt\tftp Security: standard tftp configuration: Timeout: 3, Max retrasmit: 6, TFTP port: 69 Advanced TFTP Opions: PXE Compatibility, Allow '\' ad virtual root, translate unix file names DHCP -> IP pool start. add.: 192.168.1.50 Size of pool: 10 Boot file: linuxrc Default router: 192.168.1.100 Mask: 255.255.255.0 DHCP Options: (no, no, no)
Chiudere e riaprire il programma tftpd32
collego il cavo seriale (cross) alla scheda mikrotik c133c
configuro il mio pc con l’ip di rete statico 192.168.1.100 netmask 255.255.255.0
collego il cavo di rete direttamente alla scheda mikrotik c133c
avvio un terminale con queste impostazioni: 115200 N,8,1
attacco l’alimentazione alla scheda mikrotik c133c
appena compare il messaggio “Press any key within 2 seconds to enter
setup” premere un tasto
dal menu principale entro in “boot device” (o) e scelgo l’opzione “1 –
boot Ethernet once, then NAND” (1)
entro ora nella sezione “boot protocol” (p) e scelgo “2 – dhcp protocol” (2)
alla fine esco dal menu del bios (x)
La sceda dovrebbe acquisire un indirizzo dinamico dal pc windows e
scaricare automaticamente il file linurc
Alla fine ci troveremo in console seriale il prompt dei comandi di openwrt
Posso vede le partizioni presenti con
cat /proc/mtd
ed ottengo una cosa del tipo:
dev: size erasesize name mtd0: 00010000 00001000 "booter" mtd1: 00010000 00001000 "firmware" mtd2: 00400000 00004000 "RouterBoard NAND Boot" mtd3: 03c00000 00004000 "rootfs" mtd4: 04000000 00004000 "NAND 64MiB 3,3V 8-bit"
Ora procedo all’installazione vera e propria:
Nel pc windows avvio il server web lanciando dalla cartella
c:\wrt\shttp il programma “http”
Dalla console seriale do i comandi:
mount /dev/mtdblock2 /mnt; cd /mnt; wget http://192.168.1.100/kernel cd /; umount /mnt; mount /dev/mtdblock3 /mnt; cd /mnt; wget http://192.168.1.100/openwrt-adm5120-2.6-rootfs.tgz gzip -d openwrt-adm5120-2.6-rootfs.tgz; tar xvf openwrt-adm5120-2.6-rootfs.tar rm openwrt-adm5120-2.6-rootfs.tar cd /; umount /mnt; sync; reboot
L’installazione di OpenWRT e’ terminata.
Possiamo cancellare dal pc windows tutta la cartella c:\wrt
Da console seriale impostiamo la password di root per disabilitare
telnet e abilitare automaticamente ssh
l’ip di default e’ 192.168.1.1 e l’utente e’ “root”