Update README.md
[oweals/nmrpflash.git] / README.md
index 9db374fe194fa4407657c1c7bd137a620d46f9b7..21e02f36bc1e06c9e67a800645a5fc98d91eb374 100644 (file)
--- a/README.md
+++ b/README.md
@@ -43,19 +43,19 @@ In this example, we'll use `192.168.1.2`. All available network interfaces
 can be listed using
 
 ```
-$ nmrpflash -L
+# nmrpflash -L
 eth0      192.168.1.2  f2:11:a1:02:03:b1
 ```
 
-Now we can `nmrpflash`. The argument for the `-a` option needs
+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
+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`.
 
 ```
-$ nmrpflash -i eth0 -a 192.168.1.254 -f EX2700-V1.0.1.8.img
+# nmrpflash -i eth0 -a 192.168.1.254 -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.
@@ -67,10 +67,28 @@ Reboot your device now.
 ```
 
 ### Common issues
+
+In any case, run `nmrpflash` with `-vvv` before filing a bug report.
+
+###### "Error while loading shared libraries: libpcap.so.0.8" (Linux)
+
+You must install your Linux distribution's `libpcap` package. In
+openSUSE 42 for example, install `libpcap0.8` (cheers to
+[@gvcastellon](https://github.com/gvcastellon).
+
+###### "The program can't start because wpcap.dll is missing" (Windows)
+
+Install [WinPcap](https://www.winpcap.org/install/default.htm).
+
 ###### "No suitable network interfaces found."
 
-If you're *not* on Windows, rerun `nmrpflash -L` using `sudo`. In any case,
-use `-vvvL` to see more detailed messages, and file a bug report if applicable.
+Make sure the network interface is up. Wireless interfaces are not supported.
+On Windows, try rebooting the WinPcap service (commands must be run as administrator):
+
+```
+C:\> net stop npf
+C:\> net start npf
+```
 
 ###### "No response after 60 seconds. Bailing out."
 
@@ -78,6 +96,27 @@ 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."
+
+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:
+
+`# nmrpflash -i eth0 -a 192.168.1.254 -c "busybox tftp -p -l EX2700-V1.0.1.8.img 192.168.1.254"`
+
+<strike>
+If the upload still fails, and you're on Windows, try executing the following command before
+running `nmrpflash`:
+
+`C:\> netsh interface ip add neighbors <interface> <ip> <mac>`
+
+where `<interface>` is the pretty interface name (e.g. "Local Area Connection"; as displayed by
+`nmrpflash -L`), `<ip>` is the same IP address you'd use for `nmrpflash`'s `-a` flag, and `<mac>`
+is the target device's mac address.
+
+Cheers to [@ntadmin](https://github.com/ntadmin) for this info!
+</strike>
+
 ###### "Timeout while waiting for CLOSE_REQ."
 
 After a successful file upload, `nmrpflash` waits for up to 120 seconds for an
@@ -105,7 +144,7 @@ disabled.
 An alternative would be to add `-c 'ifconfig <interface> <ip>'` to the command line,
 for example:
 
-`nmrpflash -i eth0 -a 192.168.1.1 -f firmware.bin -c 'ifconfig eth0 192.168.1.2'`
+`nmrpflash -i eth0 -a 192.168.1.1 -f firmware.bin -c 'ifconfig eth0 192.168.1.2'`
 
 This will execute the command specified by `-c` prior to starting the TFTP upload (in
 this case setting the IP address to 192.168.1.2).