Difference between revisions of "OpenWRT: Flash Mikrotik RB433"

From OnnoWiki
Jump to navigation Jump to search
(New page: Installation overview Here are the three main steps of the installation: * Boot the board on OpenWrt from the network (netboot): DHCP and TFTP servers required on the host. * Install Ope...)
 
Line 7: Line 7:
 
* Reboot on the new installation, configure, etc.
 
* Reboot on the new installation, configure, etc.
  
Netboot
+
==Netboot==
  
 
The bootloader of RB433 is able to load an image in elf format via BOOTP into RAM and execute it.
 
The bootloader of RB433 is able to load an image in elf format via BOOTP into RAM and execute it.
Build the Target
+
 
 +
==Build the Target==
  
 
You need to get OpenWrt trunk. In menuconfig choose:
 
You need to get OpenWrt trunk. In menuconfig choose:
Line 20: Line 21:
 
Now build the ram disk version. While it's building create the tftp-root directory if not already done and a symlink to the ram disk image
 
Now build the ram disk version. While it's building create the tftp-root directory if not already done and a symlink to the ram disk image
  
sudo mkdir -p /tftpboot
+
sudo mkdir -p /tftpboot
sudo ln -sf $(HOME)/openwrt/rb433uah-netboot/bin/ar71xx/openwrt-ar71xx-nand-vmlinux-initramfs.elf /tftpboot/openwrt.elf
+
# sudo ln -sf $(HOME)/openwrt/rb433uah-netboot/bin/ar71xx/openwrt-ar71xx-nand-vmlinux-initramfs.elf /tftpboot/openwrt.elf
 +
 
 +
cp openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf /tftpboot/openwrt.elf
 +
chmod -Rf 777 /tftpboot/
  
Setup the Host
+
==Setup the Host==
  
 
You need a BOOTP and a TFTP server on your host machine, we use dnsmasq here, since it can provide both services. Install dnsmasq with:
 
You need a BOOTP and a TFTP server on your host machine, we use dnsmasq here, since it can provide both services. Install dnsmasq with:
  
sudo apt-get install dnsmasq
+
sudo apt-get install dnsmasq
 +
 
 +
Changes in
  
Changes in /etc/dnsmasq.conf:
+
vi /etc/dnsmasq.conf
  
 
only listen on the interface which is directly connected to the RouterBoards WAN (PoE) port. e.g.
 
only listen on the interface which is directly connected to the RouterBoards WAN (PoE) port. e.g.
Line 37: Line 43:
 
allow a DHCP range, e.g.
 
allow a DHCP range, e.g.
  
    dhcp-range=192.168.6.100,192.168.6.119,12
+
dhcp-range=192.168.0.50,192.168.0.150,12h
  
 
allocate an IP address to the board, e.g.
 
allocate an IP address to the board, e.g.
  
    dhcp-host=00:0C:42:XX:XX:XX,192.168.6.101
+
#    dhcp-host=00:0C:42:XX:XX:XX,192.168.6.101
 
+
dhcp-host=00:0C:42:72:E0:41,192.168.0.100
 
(replace the XX with the MAC address of your board!)
 
(replace the XX with the MAC address of your board!)
  
Line 55: Line 61:
 
set filename (produced above) and tftpd server for BOOTP, e. g.
 
set filename (produced above) and tftpd server for BOOTP, e. g.
  
     dhcp-boot=/tftpboot/openwrt.elf,boothost,192.168.6.1
+
     dhcp-boot=/tftpboot/openwrt.elf,boothost,192.168.0.6
  
 
Finally restart dnsmasq
 
Finally restart dnsmasq
  
  sudo /etc/init.d/dnsmasq restart
+
  /etc/init.d/dnsmasq restart  
  
 
You will probably need to set the IP of the interface manually:
 
You will probably need to set the IP of the interface manually:
Line 66: Line 72:
  
 
==Setup the Target==
 
==Setup the Target==
 +
 +
Install
 +
 +
apt-get install screen
 +
 +
Cara loginnya
 +
 +
screen /dev/ttyUSB0 115200,cs8,-ixon,-ixoff
 +
  
 
* Connect to the serial port with a null modem cable (115200, 8N1).
 
* Connect to the serial port with a null modem cable (115200, 8N1).
Line 72: Line 87:
 
* Press e to boot from ethernet in the future.
 
* Press e to boot from ethernet in the future.
 
* Press x to leave setup (-o-e-x is needed only once, the boot method is saved in non-volatile memory)
 
* Press x to leave setup (-o-e-x is needed only once, the boot method is saved in non-volatile memory)
 +
 +
 +
Untuk memperbaiki
 +
tekan o - o - x
 +
 +
 +
 +
RouterBOOT booter 3.02
 +
 +
RouterBoard 433AH
 +
 +
CPU frequency: 680 MHz
 +
  Memory size: 128 MiB
 +
    NAND size: 128 MiB
 +
 +
Press any key within 2 seconds to enter setup..
 +
 +
  
 
If everything is setup correctly it should look like:
 
If everything is setup correctly it should look like:
 +
 +
  
 
  RouterBOOT booter 2.16
 
  RouterBOOT booter 2.16
Line 93: Line 128:
 
  console [early0] enabled
 
  console [early0] enabled
 
  ...
 
  ...
 +
 +
 +
 +
RouterBOOT booter 3.02
 +
 +
RouterBoard 433AH
 +
 +
CPU frequency: 680 MHz
 +
  Memory size: 128 MiB
 +
    NAND size: 128 MiB
 +
 +
Press any key within 2 seconds to enter setup..
 +
trying bootp protocol.... OK
 +
Got IP address: 192.168.0.100
 +
resolved mac address 00:03:0D:E3:DB:76
 +
Gateway: 192.168.0.6
 +
transfer started  ........................................................................................
  
 
==Permanent Installation==
 
==Permanent Installation==

Revision as of 14:16, 13 December 2013

Installation overview

Here are the three main steps of the installation:

  • Boot the board on OpenWrt from the network (netboot): DHCP and TFTP servers required on the host.
  • Install OpenWrt to the internal flash with wget2nand: HTTP or FTP server required on the host.
  • Reboot on the new installation, configure, etc.

Netboot

The bootloader of RB433 is able to load an image in elf format via BOOTP into RAM and execute it.

Build the Target

You need to get OpenWrt trunk. In menuconfig choose:

   Target System: Atheros AR7xxx/AR9xxx
   Subtarget: Devices with NAND flash (mostly Mikrotik)
   Target Images: ramdisk (and also tar.gz if you plan to do a permanent install with the same image)

Now build the ram disk version. While it's building create the tftp-root directory if not already done and a symlink to the ram disk image

sudo mkdir -p /tftpboot
# sudo ln -sf $(HOME)/openwrt/rb433uah-netboot/bin/ar71xx/openwrt-ar71xx-nand-vmlinux-initramfs.elf /tftpboot/openwrt.elf
cp openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf /tftpboot/openwrt.elf
chmod -Rf 777 /tftpboot/

Setup the Host

You need a BOOTP and a TFTP server on your host machine, we use dnsmasq here, since it can provide both services. Install dnsmasq with:

sudo apt-get install dnsmasq

Changes in

vi /etc/dnsmasq.conf

only listen on the interface which is directly connected to the RouterBoards WAN (PoE) port. e.g.

   interface=eth0

allow a DHCP range, e.g.

dhcp-range=192.168.0.50,192.168.0.150,12h

allocate an IP address to the board, e.g.

  1. dhcp-host=00:0C:42:XX:XX:XX,192.168.6.101
dhcp-host=00:0C:42:72:E0:41,192.168.0.100

(replace the XX with the MAC address of your board!)

enable dnsmasq's built-in TFTP server

   enable-tftp

set the root directory for files available via FTP.

   tftp-root=/tftpboot

set filename (produced above) and tftpd server for BOOTP, e. g.

   dhcp-boot=/tftpboot/openwrt.elf,boothost,192.168.0.6

Finally restart dnsmasq

/etc/init.d/dnsmasq restart 

You will probably need to set the IP of the interface manually:

sudo ip addr add 192.168.6.1/24 dev eth0

Setup the Target

Install

apt-get install screen

Cara loginnya

screen /dev/ttyUSB0 115200,cs8,-ixon,-ixoff


  • Connect to the serial port with a null modem cable (115200, 8N1).
  • Press a key shortly after powering the board.
  • Press o to change the boot device
  • Press e to boot from ethernet in the future.
  • Press x to leave setup (-o-e-x is needed only once, the boot method is saved in non-volatile memory)


Untuk memperbaiki tekan o - o - x


RouterBOOT booter 3.02

RouterBoard 433AH

CPU frequency: 680 MHz
  Memory size: 128 MiB
    NAND size: 128 MiB

Press any key within 2 seconds to enter setup..


If everything is setup correctly it should look like:


RouterBOOT booter 2.16
RouterBoard 433AH
CPU frequency: 680 MHz
  Memory size: 128 MB
Press any key within 2 seconds to enter setup..
trying bootp protocol.......... OK
Got IP address: 192.168.6.101
resolved mac address 4E:80:00:00:00:00
Gateway: 192.168.6.1
transfer started ................................... transfer ok, time=7.16s
setting up elf image... OK
jumping to kernel code
Linux version 2.6.26.7 (joerga@thinkpad) (gcc version 4.1.2) #2 Mon Nov 10 11:23:37 CET 2008
console [early0] enabled
...


RouterBOOT booter 3.02

RouterBoard 433AH 

CPU frequency: 680 MHz
  Memory size: 128 MiB
    NAND size: 128 MiB

Press any key within 2 seconds to enter setup..
trying bootp protocol.... OK
Got IP address: 192.168.0.100
resolved mac address 00:03:0D:E3:DB:76
Gateway: 192.168.0.6
transfer started  ........................................................................................

Permanent Installation

You need a working netboot first, see above. Please note also that you cannot reflash from a previous OpenWrt installation, you need the netboot in any case.

Target Image

If you want to use the same trunk image as the netboot image (cf. above), you need to have the tar.gz target selected in the Target Images menu and rebuild if you didn't select it before. You can also use one of the pre-built images (tested with 12.09-rc2); in the download area, browse the ar71xx/nand/ directory and pick the two following files:

  • openwrt-ar71xx-nand-rootfs.tar.gz
  • openwrt-ar71xx-nand-vmlinux-lzma.elf

If you don't have many devices to install and your netbooted system can access the Internet, you can probably pass the download URL directly to wget2nand as well, that will save you the web server configuration step (see below).

Save your RouterOS license key

If you have access to the MikroTik's Winbox software, you can export the license file from System→Licence, as stated on the RouterBoard 411 page.

Otherwise, boot RouterOS and export the key to a file:

/system license output

Then list the files on your device to see which file the .key file was saved:

/file print

On a fresh install, the key file should be #1 (or #0 on a RB433UAH); to open the editor with file #1, type:

/file edit 1 value-name=contents

Then copy-paste the text in a file on your computer. The differences between the obtained key file and a key exported with Winbox are that the SoftwareID line is not present in the latter, and there are no empty lines, so you should probably delete all the empty lines in your file prior to import it for a new installation; the SoftwareID line should not bother the installer (untested).

Erase the NAND Flash

If you want to install OpenWrt permanently into the NAND flash you once need to erase the NAND flash to get rid of the RouterOS stuff:

  • connect via serial line
  • press a key shortly after powering the RB433 up
  • press e and type yes to format the flash from the bootloader

Setup the Host

An HTTP web server is required on the host, e.g. mini-httpd in Ubuntu. Install the mini-httpd web server

sudo apt-get install mini-httpd

In /etc/default/mini-httpd change

   Start daemon
   START=1

In /etc/mini-httpd.conf change

   On which host mini_httpd should bind
host=192.168.6.1
   Run in chroot mode
chroot
   Where are the web files stored
data_dir=/home/openwrt/rb433uah/bin/ar71xx/

Restart the mini-httpd web server

sudo /etc/init.d/mini-httpd restart

Install OpenWrt into Flash

   Start netboot (see above).
   Press ENTER to get a shell prompt.
   Execute:

wget2nand http://192.168.6.1

This script will set an IP address via dhcp on br-lan. The output should look like:

root@OpenWrt:/# wget2nand http://192.168.6.254
Connecting to 192.168.6.254 (192.168.6.254:80)
kernel               100% |*******************************|  1041k  0:00:00 ETA
Connecting to 192.168.6.254 (192.168.6.254:80)
rootfs.tgz           100% |*******************************|  4243k  0:00:00 ETA
Erasing filesystem...
[  137.110000] nand_erase_nand: attempt to erase a bad block at page 0x00002240
[  137.140000] nand_erase_nand: attempt to erase a bad block at page 0x00003ac0
[  137.180000] nand_erase_nand: attempt to erase a bad block at page 0x00005d40
[  137.620000] nand_erase_nand: attempt to erase a bad block at page 0x00026a80
[  137.850000] nand_erase_nand: attempt to erase a bad block at page 0x000373c0
[  137.860000] nand_erase_nand: attempt to erase a bad block at page 0x00037440
[  138.000000] yaffs: dev is 32505861 name is "mtdblock5" rw
[  138.000000] yaffs: passed flags ""
[  138.020000] yaffs: dev is 32505862 name is "mtdblock6" rw
[  138.020000] yaffs: passed flags ""
Mounting /dev/mtdblock6 as new root and /dev/mtdblock5 as kernel partition
Copying kernel...
Preparing filesystem...
./
./tmp/
./usr/
./usr/lib/
./usr/lib/opkg/
…
./proc/
./sys/
./www/
./root/
./var
Cleaning up...
Image written, you can now reboot.  Remember to change the boot source to Boot from Nand

Reboot the RB433 and change the boot source to NAND.

USB Ports

To have the USB ports work on the RB433UAH, you need to install the kmod-usb2 package, as explained on the USB Basic Support page. See also the USB Overview page.