Installing OpenWrt (generic)
The Installation of OpenWrt is quite device specific. A detailed procedure should be found on the device-pages in this wiki: Table of Hardware. If none is found you should read on here. Definitely have a look at the →flash.layout.
If your attempt to install OpenWrt fails, generic.debrick could help you.
This HowTo is VERY generic. You cannot just use it, but you have to adapt values and other stuff to you hardware
Generally, you have three options:
Option_1:
install OpenWrt onto the router's non-volatile memory: this pageOption_2:
install OpenWrt into the RAM:
Four Methods
There are four ways to install OpenWrt on a device:
1. via original firmware
Open the WebUI of the original firmware with your web browser and install the OpenWrt firmware image file using the “Firmware Upgrade” option of the original firmware. Done.
NOTE:
Sometimes the upgrade functionality of the original firmware contains some mechanism to make sure you do not inadvertently flash a wrong firmware-file. If that is the case, it will prevent you from installing OpenWrt this way.
2. via Bootloader and Ethernet port
To facilitate exactly this, namely to allow flashing of a firmware, most if not all bootloaders contain a build-in functionality for this purpose. Some contain a TFTP-client, others a TFTP-server, others a FTP-client and some even a FTP-server. You need to know:
- the preset IP address in the bootloader (this is not necessarily the same IP address the device has after it has booted the original firmware!)
- which of the above protocols is used
- whether the bootloader acts as client or as server
- the preset port number for the service, if not default
- the interface you need to connect to
- possibly a user name and a password to login
- it is useful to know the time window you have after starting the device to obtain a connection to it, e.g. a 1 sec time windows 5 sec after start
Once you know all of the above parameters, you may proceed:
- install the corresponding software on your PC (i.e. in case the bootloader contains a FTP-server, you need a FTP-client)
- give your PC a static IP address in the same network as pre-configured in the bootloader
- connect your PC with the correct port
- power cycle the device
- obtain a connection to the bootloader
- follow specific procedures to overwrite original firmware with OpenWrt firmware file
- Do not overwrite or alter the bootloader until explicitly instructed to do so!
NOTE:
Sometimes even the bootloader prevents you from flashing a non-OEM firmware, e.g. the Inventel DV4210 (AKA Livebox)
Time window:
To be able to use the entire time window, the connection between host and router needs to be established quickly. To make this as quick possible, you could disable auto-negotiation of your NIC and especially disable media sensing of your OS.
Specific Howtos
3. via Bootloader and Serial port
4. via JTAG
5. install a ramdisk-image into main memory
This step shows you howto upload a new ramdisk image to the device. The existing firmware on the flash remains unchanged! You require a working serial cable to do the ramdisk upload.
- specifically select the RAMDISK option to make OpenWrt Buildroot create a ramdisk-image for you to upload
- connect an ethernet cable between your computer and one of the LAN ports (doesn't matter which, just so long as it's not the WAN port) of the WNDR3700.
- connect your serial cable to the header on the WNDR3700 and set your local terminal program (eg. minicom) to
- 115200 bps 8N1
- no software flow control
- no hardware flow control.
- set your computer's ethernet port to use the IP address
192.168.0.10/24
- set up a TFTP server on your local computer to respond to requests on the 192.168.0.10 interface. Make sure that the ramdisk image (openwrt-ar71xx-uImage-lzma.bin) is in the directory used by the TFTP server.
- Fix the header for the ramdisk image so that it's recognized by the u-Boot firmware. Use the wndr3700.c program that was posted by *aorlinsk* on the forums here http://aorlinsk2.free.fr/openwrt/wndr3700/ and run it from the TFTP server's data directory. I've also reproduced the code here just in case:
./wndr3700 openwrt-ar71xx-uImage-lzma.bin openwrt-fixed.out
- power up the board. When it gets to the message asking you to press any key to interrupt the normal bootup sequence, press a key on the serial console (or just hold down the enter key from first bootup until you get to a prompt):
- enter the following into the serial console:
setenv ipaddr 192.168.0.1 setenv serverip 192.168.0.10 setenv bootargs 'board=WNDR3700' tftpboot 80800000 openwrt-fixed.out bootm
(if you forget the bootargs piece below, the board will boot and look normal, but it won't be able to bring up any of the network interfaces!)
- The system should boot!
Concrete examples: wnr2000, ...
Don't forgett to consult the other Generic Basic Howtos for OpenWrt.