X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=README.md;h=1ce6dd3bac6423bc18d849c924e185bba91afd17;hb=c7106becb164f4a9d2f2f13f0e982303097de7ed;hp=063381c3f49a09b629ea615ce28c59f7bcb87379;hpb=510bc6794700f86babb93912a8ecd66aa5aa8e43;p=oweals%2Fnmrpflash.git diff --git a/README.md b/README.md index 063381c..1ce6dd3 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,21 @@ nmrpflash - Netgear Unbrick Utility ==================================== -This program uses Netgear's [NMRP protocol] -(http://www.chubb.wattle.id.au/PeterChubb/nmrp.html) -to flash a new firmware image to a compatible device. This utility has been -successfully used on a Netgear EX2700 and DNG3700v2, but is likely to work +`nmrpflash` uses Netgear's [NMRP protocol](http://www.chubb.wattle.id.au/PeterChubb/nmrp.html) +to flash a new firmware image to a compatible device. It has been +successfully used on a Netgear EX2700, DNG3700v2 and R6220, but is likely to work with many other Netgear routers as well. -Prebuilt binaries for Linux, OS X and Windows are available +Prebuilt binaries for Linux, ~OS X~ macOS and Windows are available [here](https://github.com/jclehner/nmrpflash/releases) ([WinPcap](https://www.winpcap.org/install/default.htm) is required on Windows). ``` Usage: nmrpflash [OPTIONS...] -Options (-a, -i and -f and/or -c are mandatory): +Options (-i and -f and/or -c are mandatory): -a IP address to assign to target device + -A IP address to assign to interface -c Command to run before (or instead of) TFTP upload -f Firmware file -F Remote filename to use during TFTP upload @@ -34,32 +34,26 @@ Options (-a, -i and -f and/or -c are mandatory): ### Using nmrpflash -Connect your Netgear router to your computer using a network cable. -Assign a static IP address to the network adapter that's plugged into -the Netgear router. +Your Netgear router must be connected to your network using an +Ethernet cable. The device running `nmrpflash` must be connected +to the same network, using either Wi-Fi or Ethernet. -For this example, we'll assume that your network interface is `eth0`. -First, we have to assign a static IP address to our network interface. -In this example, we'll use `192.168.1.2`. All available network interfaces -can be listed using +All available network interfaces can be listed using ``` # nmrpflash -L eth0 192.168.1.2 f2:11:a1:02:03:b1 ``` -Now we can flash the image. The argument for the `-a` option needs -to be a *free* IP address from the same subnet as the one used by your -network interface; we'll use `192.168.1.254`. Firmware images can usually -be downloaded directly from Netgear. For details on how to do this, see -[here](#obtaining-firmware-images). Power on your device immediately -after starting `nmrpflash`. +Once you've determined the interface to use, we can flash the image. Firmware +images can usually be downloaded directly from Netgear. Power on your device +immediately after starting `nmrpflash`. ``` -# nmrpflash -i eth0 -a 192.168.1.254 -f EX2700-V1.0.1.8.img +# nmrpflash -i eth0 -f EX2700-V1.0.1.8.img Advertising NMRP server on eth0 ... / Received configuration request from a4:2b:8c:00:00:01. -Sending configuration: ip 192.168.1.254, mask 255.255.255.0. +Sending configuration: ip 10.164.183.252, mask 255.255.255.0. Received upload request: filename 'firmware'. Uploading EX2700-V1.0.1.8.img ... OK Waiting for remote to respond. @@ -69,13 +63,14 @@ Reboot your device now. ### Common issues -In any case, run `nmrpflash` with `-vvv` before filing a bug report. +In any case, run `nmrpflash` with `-vvv` before filing a bug report. Also, +try connecting your Netgear router *directly* to the computer running +`nmrpflash`. -###### "Error while loading shared libraries: libpcap.so.0.8" (Linux) +###### "Error while loading shared libraries: ..." (Linux) -You must install your Linux distribution's `libpcap` package. In -openSUSE or Ubuntu for example, install `libpcap0.8`. Other distros -will have a similarily named package. +You must install your Linux distribution's `libpcap` and `libnl-3` +packages (exact names will vary depending on your distribution). ###### "The program can't start because wpcap.dll is missing" (Windows) @@ -98,13 +93,22 @@ The router did not respond. Try rebooting the device and run `nmrpflash` again. You could also try running `nmrpflash` with `-m` and specify your router's MAC address. It's also possible that your device does not support the NMRP protocol. -###### "Timeout while waiting for initial reply." +###### "Timeout while waiting for ACK(0)/OACK." -The device did not respond to `nmrpflash`'s TFTP upload request. This could indicate a bug -in the TFTP code; try using an external tftp client (busybox in this example), by specifying -the `-c` flag instead of the `-f` flag: +The device did not respond to `nmrpflash`'s TFTP upload request. By default, +`nmrpflash` will assign `10.164.183.252` to the target device, while adding `10.164.183.253` +to the network interface specified by the `-i` flag. You can use `-a` to change the IP +address assigned to the target (e.g. if your network is `192.168.1.0/24`, specify a *free* +IP address, such as `-a 192.168.1.252`), and `-A` to change the IP address used for the +network interface. -`# nmrpflash -i eth0 -a 192.168.1.254 -c "busybox tftp -p -l EX2700-V1.0.1.8.img 192.168.1.254"` +This error message could also indicate a bug in the TFTP code; try using an external tftp +client (busybox in this example), by specifying the `-c` flag instead of the `-f` flag: + +`# nmrpflash -i eth0 -c 'busybox tftp -p -l EX2700-V1.0.1.8.img $IP'` + +The environment variable `IP` is set by `nmrpflash` (other environment variables +are: `MAC`, `PORT`, `NETMASK`). ###### "Timeout while waiting for CLOSE_REQ." @@ -153,21 +157,5 @@ project file (`nmrpflash.dev`). Download the latest [WinPcap Developer Pack](https://www.winpcap.org/devel.htm) and extract it into the root folder of the nmrpflash sources. -### Obtaining firmware images - -Firmware images can be downloaded directly from Netgear's FTP servers. -For the Netgear EX2700 for example, download -ftp://updates1.netgear.com/ex2700/ww/fileinfo.txt. At the top there -should be an entry like this: - -``` -[Major1] -file=EX2700-V1.0.1.8.img -... -``` -The download link for the latest firmware image for this device is thus: -ftp://updates1.netgear.com/ex2700/ww/EX2700-V1.0.1.8.img. Substitute -`ex2700` for your device (`wndr4300`, `wndr3700`, `r6100`, etc.). If -neccessary, substitute `ww` (world-wide) for a specific region.