OpenWRT su Mikrotik RouterBoard 133c3

Scheda Mikrotik 133c3

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

per avere informazioni sulla nostra scheda scegliamo “i” (i – board info):

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”

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.