Difference between revisions of "Mesh/Flashing extender nodes"

Jump to navigation Jump to search
no edit summary
 
(27 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Download the Image File For a Extender Node ==
After following the [[Mesh/WalkThrough]], you are probably just an isolated node on the virtual People's Open Network. If you want to become part of the physical mesh, you are going to need to extend the signal from home node using what we call an extender node. An extender node is just a roof-mounted, directional antenna used to make point-to-point connections between two locations that have line-of-sight (LOS) to one another. Preparing an extender node generally consists to two stages, downgrading the proprietary AirOS firmware and flashing it with our custom build of OpenWrt.
 
== Downgrading to older AirOS ==
 
Typically, we use Ubiquiti equipment for our extender nodes. These come with a proprietary firmware called AirOS. Any extender node with version 5.6 of AirOS and above needs to be downgraded to a 5.5.XX version of AirOS version before you can flash it with OpenWRT.
 
First check what version of AirOS your extender node is running, to do this,
 
* Edit your network settings to reflect the following:
 
* Network Manager Method: Manual
** IP Address: 192.168.1.10 (some devices will only accept from this IP)
** Subnet Mask: 255.255.255.0
** Gateway: 0.0.0.0 (Or leave blank)
 
You can also use the commands:
  sudo ip link set <eth_interface> down
  sudo ip addr add 192.168.1.10/24 dev <eth_interface>
  sudo ip link set <eth_interface> up
 
where <eth_interface> is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)
 
* Plug one Ethernet cable into your laptop on one end and into the "LAN" port of the Power-over-Ethernet (PoE) power supply on the other end.
 
* Plug another Ethernet cable into your extender node on one end and into the "POE" port of the PoE power supply on the other end.
 
* Power on the extender node by plugging in the PoE and wait for it to boot (may take a few minutes).
 
* Make sure you aren't connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if necessary.
 
* In a browser, go to the AirOS web interface at http://192.168.1.20
 
* Log in using the credentials
** username: ubnt
** password: ubnt
 
* Look at the Firmware information, it may say something like XM.v5.6.6.bin or XW.v5.6.6, based on this download the correct version of AirOS v5.5.10
 
{| class="wikitable"
! Version !! Firmware Image
|-
| XW v5.5.10 || http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin
|-
| XM v5.5.10 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin
|-
| TI v5.5.11 || http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/TI.v5.5.11.28002.150723.1518.bin
|}
 
* Back in the web interface, go to the "System" tab.
* Click the "Browse" button next to the "Upload Firmware" box
* Select the firmware image you just downloaded
* Click "Upload".
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.
* Ignore any warnings about changing the default admin password, we're gonna overwrite it anyway
* Let the router finish flashing and wait for it to fully reboot.
* After it reboots, you may wanna go back into the web interface to make sure the downgrade was successful before proceeding.
 
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the preceding method. Instead you will need to use command-line method as follows,
 
  ssh-keygen -f "/home/yourusername/.ssh/known_hosts" -R 192.168.1.20
  scp <firmware_image.bin>  ubnt@192.168.1.20:/tmp/fwupdate.bin
  ssh ubnt@192.168.1.20  # password is "ubnt"
  /sbin/fwupdate -m
 
 
== Flash the Extender Node ==
Now that you have successfully downgraded the AirOS firmware, we can go ahead with flashing it with our custom build of OpenWRT. Start by downloading our firmware image for your model of extender node,


The extender nodes that we currently support are:
The extender nodes that we currently support are:
Line 6: Line 72:
! Name !! Notes !! OpenWRT Doc !! Firmware Image
! Name !! Notes !! OpenWRT Doc !! Firmware Image
|-
|-
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016]
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! Note that this will almost certainly require a USB to Serial connection (see below).|| [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]
|-
|-
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]
| Ubiquiti Picostation 2 || Not being built in current firmware release, Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]
|-
|-
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]
|-
|-
| Ubiquiti Nanobeam M2 and M5 || NBE‑M2‑13 and NBE‑M5‑16 work but some (earlier?) NBE‑M5‑19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]
| Ubiquiti Nanobeam M2 and M5 || NBE‑M2‑13 and NBE‑M5‑16 work but some (earlier?) NBE‑M5‑19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]
|-
|-
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]
|-
|-
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]
|}
|}
More firmware images can be found at http://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx.extender-node/
Also, if you are flashing for practice or testing, you can try using the dev-builds here, http://builds.sudomesh.org/dev-builds/, NOTE: USE WITH CARE, THESE PROVIDE SSH ACCESS WITH A DEFAULT PASSWORD AND SHOULD NOT BE USED FOR DEPLOYMENT NODES


== Downgrading to earlier AirOS ==


Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying "Firmware check failed".
* Configure your wired ethernet interface as instructed in the previous sections
* Plug one Ethernet cable into your laptop on one end and into the "LAN" port of the Power-over-Ethernet (PoE) power supply on the other end.


If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.
* Plug another Ethernet cable into your extender node on one end and into the "POE" port of the PoE power supply on the other end.


The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:
* Push a pin into the reset hole and hold it.
* With the pin held down, plug in the power to the extender node, either by plugging in it's ethernet cable or by powering on the PoE.


* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]
* Continue holding down the pin, watch the lights on the antenna - they will all flash together a few times and then flash back-and-forth in what is affectionately known as cha-cha mode (or more accurately, TFTP mode).
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0
* Plug one Ethernet cable into your laptop on one end and into the "LAN" port of the power-over-ethernet power supply on the other end.
* Plug another Ethernet cable into your node/router on one end and into the "POE" port of the power-over-ethernet power supply on the other end.
* Power on the router.
* Wait for a couple of minutes.
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.
* In your browser go to http://192.168.1.20
* Log in using the credentials username: ubnt and password: ubnt
* Click the "System" tab.
* Click the "Browse" button next to the "Upload Firmware" box
* Select the XW.v5.5.10.bin file that you downloaded earlier.
* Click "Upload".
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.
 
== Flash the Extender Node ==


* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0
* Plug one Ethernet cable into your laptop on one end and into the "LAN" port of the power-over-ethernet power supply on the other end.
* Plug another Ethernet cable into your node/router on one end and into the "POE" port of the power-over-ethernet power supply on the other end.
* Push a pin into the reset hole and hold it.
* With the pin held down, plug in the power to the power-over-ethernet power supply.
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.
* Once the lights on the antenna are flashing up and down, you can let go of the pin.
* Once the lights on the antenna are flashing up and down, you can let go of the pin.


You should be able to ping the extender at 192.168.1.20.
* You should be able to ping the extender at 192.168.1.20.


   $ ping 192.168.1.20
   $ ping 192.168.1.20
Line 60: Line 107:
   64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms
   64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms


In your Linux terminal, type:
* Open a terminal (Linux or Mac?) and run the following:


   git clone https://github.com/sudomesh/ubi-flasher
   git clone https://github.com/sudomesh/ubi-flasher
Line 67: Line 114:
   ./flasher.js '<path to firmware>'
   ./flasher.js '<path to firmware>'


The terminal will tell you "The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed."
* The terminal should return the following,
  The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed."


Wait until the antenna has only the power LED lit and you're done.
* Wait until the antenna has only the power LED lit and you're done.


Reconfigure your machine with the following static network configuration.
* Reconfigure your machine with the following static network configuration.
** IP address: 172.22.0.10
** Subnet mask:  255.255.255.0
** Gateway: 0.0.0.0


* IP Address: 172.22.0.10
Or use the commands
* Subnet mask:  255.255.255.0
  sudo ip link set <eth_interface> down
* Gateway: 0.0.0.0
  sudo ip addr add 172.22.0.10/24 dev <eth_interface>
  sudo ip link set <eth_interface> up
 
where <eth_interface> is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)


See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]
Line 87: Line 141:
   64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms
   64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms


Once configured with our firmware, an extender node will not start broadcasting an SSID until it is plugged into a home node because it must first get a mesh IP address.
If you have a mynet n600 or n750, you can get a mesh IP for your extender node by plugging the LAN cable that was plugged into your computer into to port one or two on the back of the home node.
The mesh IP that the extender node receives is the IP of the home node plus one or two. For example, if your home node broadcasts the SSID "peoplesopen.net 65.21.65" corresponding to the IP 100.65.21.65, then your extender node will receive either an IP or either 100.65.21.66 or 100.65.21.67. Once plugged into this home node, the extender node should broadcast the SSID "peoplesopen.net 65.21.66" or ".67" as well as the ad-hoc network, "pplsopen.net-node2-node" (you may not see these if your computer's WiFi antenna is only 2.4 GHz)
== Testing and Network Detection ==
If you flashed your extender node with a dev-build of the firmware, you should now be able to ssh into to it.
It is probably easiest to first ssh in to your home node over the private interface and then into the extender node with its mesh IP.


== Extender Detection ==
First, you should immediately change or disable the root password and instead add your ssh key to `/etc/dropbear/authorized_key` (this method of login will not work when sshing through a home node)
  passwd
 
Once ssh'ed into the extender node, there are few files you can play around with,
`/etc/config/wireless` sets the names of the SSIDs broadcast by the antenna, you may want to change the name of the ad-hoc interface so as to distinguish it from home node's ad-hoc network
Trying changing it to something like "popplesopen.net-nod2nod", then reboot the extender node and check if you can see the new name in your network list.
 
YNext, you my be curious what you can see with your antenna, to scan for other visible networks, ssh in to the extender node and run the following,
  iw dev mesh0 scan | grep SSID:
This should return a lengthy list of SSID, if you can see another "pplsopen.net-node2node" SSID, you should be meshing with it automatically.
 
If you'd like to view more info about the network you can see, you can pipe the output of the previous command to a log file like so,
  iw dev mesh0 scan > scan log
 
Once you are done meshing around with your extender node make sure to reset the root password with passwd or reflash the router with the standard build of our firmware.


Log into your home node via SSH, and tail <tt>/var/log/messages</tt>
Log into your home node via SSH, and tail <tt>/var/log/messages</tt>
Line 108: Line 184:


There should be a debug message in the log from notdhcpserver concerning the extender node.
There should be a debug message in the log from notdhcpserver concerning the extender node.


== Troubleshooting ==
== Troubleshooting ==
Line 469: Line 546:
    
    
   root@sudomesh-node:/#
   root@sudomesh-node:/#
== Extender Node Installation ==
=== Installation Order ===
1. Flash home nodes and extender nodes
2. Get on roof and determine which direction to face the extender nodes
3. Install J-Pole
4. Crimp end onto Ethernet cable
5. Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)
6. Crimp other end of Ethernet cable and connect to home node via a POE adaptor
7. Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up
8. Walk around the neighborhood to check the signal
=== Gear Checklist ===
* Protective and personal gear
* Wear clothes you can get dirty and sturdy boots for roof walking
* Sunscreen
* Sunglasses
* Pocketknife (for cutting zip ties etc)
* Ladder
* Safety harness & rope in a bucket
* Smart phone (to check signal and take pictures)
* Home node gear
* 2 flashed Western Digital Mynet N600 Home Nodes
* paperclip (to reset equipment)
* Laptop (to configure equipment)
* Plastic outdoor enclosure for router (optional)
* Power Strip
* J-Pole gear
* J-Pole
* Latex gloves (for dealing with roofing sealant)
* Roofing sealant
* Ratchet set - 10mm for small bolts, 13mm for large bolts
* Corldless Drill
* 3/16" drill bit for J-pole bolts
* Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)
* Screws for the Steel one-hole straps
* Ethernet cable gear
* Ethernet Spool
* Ethernet Ends
* Ethernet Crimper
* Laminated card showing the Ethernet cable order
* Label Maker - so you can know which cable is which
* Extender node gear
* Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)
* Power over Ethernet (POE) adapters
* Zip Ties
95

edits

Navigation menu