Difference between revisions of "Mesh/WalkThrough"

Jump to navigation Jump to search
5,845 bytes removed ,  15:42, 13 January 2019
→‎Makenode (v.0.2.3 and earlier): Move Makenode instructions to Mesh/Makenode
(Add flag to Makenode section warning away Autoconf users.)
(→‎Makenode (v.0.2.3 and earlier): Move Makenode instructions to Mesh/Makenode)
Line 138: Line 138:
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''


After you have successfully flashed your router with OpenWRT, you will need to use [https://github.com/sudomesh/makenode makenode] to complete the setup. makenode registers your node on the peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]
 
=== Install Dependencies ===
You first will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].
 
==== Linux ====
 
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software.
To install them, open your terminal and enter the following commands.
 
  sudo apt update
  sudo apt install curl git dropbear
  curl -o- ht<span>tps://</span>raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
  export NVM_DIR="$HOME/.nvm"
  [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # or you can close and reopen your terminal before using nvm
  nvm install 7.10
 
===== OS Compatibility checklist =====
 
{| class="wikitable"
! OS !! Compatible !! Link to ISO !! Notes
|-
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||
|-
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||
|-
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||
|-
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||
|-
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]
|-
|}
 
==== Mac ====
 
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.
 
  brew install nodejs
  brew install git
  brew install npm
  brew install dropbear
  brew install gnu-tar
  brew install fakeroot
  brew install iproute2mac
 
==== Windows 10 (Experimental)====
 
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''
 
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.
 
Once WSL is installed. Install dependencies (assuming Ubuntu).
 
  sudo apt update
  sudo apt install python
  sudo apt install make
  sudo apt install build-essential
 
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.
 
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp
 
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.
 
=== Install and run makenode ===
From your terminal, run the following:
 
  git clone https://github.com/sudomesh/makenode -b 0.0.1
  cd makenode
  npm install
  cp settings.js.example settings.js
 
The default settings in <tt>settings.js</tt> should suffice in most cases, but if you need to make changes, do them in <tt>settings.js</tt>.
 
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 <b>and</b> arbitrary websites like github.com.
 
Once your network configuration is refreshed, use the following command to run the script and configure your node:
 
  ./makenode.js
 
Now the configuration wizard will ask you a number of questions:
 
* "enter valid hostname" - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]
* "max share upstream bandwidth" - how much of your home network upstream bandwidth you wish to share with the mesh network, measured in kbps (kilobits per second). So if you'd like to share 10mbps (megabits per second) enter "10000" or if you want to share 256kbps (kilobits per second) enter "256". You may want to run a [http://www.dslreports.com/speedtest speed test] to find out how much bandwidth you have and determine how much you want to share.
* "max share downstream bandwidth" - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. "512" would share 512 kbps
* "admin user password" - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)
* "root user password" - used to SSH into the router so you modify files and manually configure your router. Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device, ssh keys are stored in /etc/dropbear/authorized_keys.
* "wifi transmit power" - set this to 23 dBm (which is equivalent to 200 milliwatts)
* "private wifi SSID" - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.
* "private wifi password" - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.
* "operator name" - name that the network admins can associate with the node - so use a unique name like your first name or location name
* "Operator email" - email that network admis can contact you at
* "Expected node address (optional)" - address location of node


= Testing =
= Testing =

Navigation menu