Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
zh-tw:doc:howto:generic.flashing [2015/04/26 07:17] – fix link theoradicuszh-tw:doc:howto:generic.flashing [2018/03/03 20:55] – ↷ Links adapted because of a move operation bobafetthotmail
Line 1: Line 1:
 +====== Installing OpenWrt (generic) ======
 +The Installation of OpenWrt is quite device specific. A detailed procedure should be found on the device-pages in this wiki: [[toh:start|Table of Hardware]]. If none is found you should read on here. Definitely have a look at the ->[[docs:techref:flash.layout]].
  
 +{{page>meta:infobox:dangerous&noheader&nofooter&noeditbtn}}
 +
 +:!: If your attempt to install OpenWrt fails, [[docs:guide-user:troubleshooting: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 page//
 +  * **''Option_2:''** install OpenWrt into the RAM:
 +  * **''Option_3:''** boot OpenWrt over the network: [[inbox:howto:netboot|Netbooting]] is not supported by all [[docs:techref:bootloader|bootloaders]]!
 +
 +===== 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 [[docs:techref:bootloader]]s contain a build-in functionality for this purpose. Some contain a [[wp>Trivial File Transfer Protocol|TFTP]]-client, others a TFTP-server, others a [[wp>File Transfer Protocol|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 [[wp>List of TCP and UDP port numbers|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)
 +  - read the manual pages for that software! e.g. ''[[http://linux.die.net/man/1/tftp|man tftp]]'', ''[[http://linux.die.net/man/8/tftpd|man tftpd]]'', ''[[http://linux.die.net/man/1/ftp|man ftp]]'', ''[[http://linux.die.net/man/1/ncftp|man ncftp]]'', ''[[http://linux.die.net/man/8/ftpd|man ftpd]]'', ''[[http://linux.die.net/man/8/pure-ftpd|man pure-ftpd]]'' or ..
 +  - 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
 +  - **<color red>Do not overwrite or alter the bootloader</color>** until explicitly instructed to do so!
 +
 +**''NOTE:''** Sometimes even the bootloader prevents you from flashing a non-OEM firmware, e.g. the [[toh/inventel/dv4210|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 [[http://support.microsoft.com/kb/239924|disable media sensing]] of your OS.
 +
 +
 +=== Specific Howtos ===
 +  * -> [[docs:guide-user:installation:generic.flashing.tftp]]
 +  * -> [[docs:guide-user:installation:generic.flashing.ftp]]
 +  * -> [[docs:guide-user:installation:generic.flashing.xmodem]]
 +
 +==== 3. via Bootloader and Serial port ====
 +  * -> [[docs:guide-user:installation:generic.flashing.serial]]
 +
 +==== 4. via JTAG ====
 +-> [[docs:hardware:port.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:
 +    * <code bash>
 +./wndr3700 openwrt-ar71xx-uImage-lzma.bin openwrt-fixed.out
 +</code>
 +  - 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:<code bash>
 +setenv ipaddr 192.168.0.1
 +setenv serverip 192.168.0.10
 +setenv bootargs 'board=WNDR3700'
 +tftpboot 80800000 openwrt-fixed.out
 +bootm
 +</code>(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: [[toh/netgear/wnr2000]], ...
 +
 +
 +----
 +Don't forgett to consult the other [[doc:howto:generic.overview|Generic Basic Howtos for OpenWrt]].
 +----
  • Last modified: 2018/03/31 23:22
  • by bobafetthotmail