Less verbose index page

This commit is contained in:
Bob Mottram 2018-06-16 10:32:25 +01:00
parent e30f2fb913
commit efc318db22
3 changed files with 187 additions and 174 deletions

View File

@ -17,13 +17,11 @@ So you want to run your own internet services? Email, chat, VoIP, web sites, fil
You can run Freedombone on an old laptop or a single board computer. See the [[./installmethods.html][list of installation methods]]. You can also use it to [[./mesh.html][set up a mesh network]] in your local area. You can run Freedombone on an old laptop or a single board computer. See the [[./installmethods.html][list of installation methods]]. You can also use it to [[./mesh.html][set up a mesh network]] in your local area.
Check out the [[./apps.html][list of available apps]] and [[./faq.html][Frequently Asked Questions]] section. Recent developments are also described on [[https://blog.freedombone.net/tag/freedombone][the blog]]. You might also wish to know how to [[./backups.html][backup and restore the system]]. #+attr_html: :align center
| [[./downloads/v31][Downloads]] | [[./apps.html][Apps]] |
Disk images which can be cloned straight to USB or microSD drives are [[./downloads/v31][available here]]. | [[./devguide.html][Developers]] | [[./codeofconduct.html][Code of Conduct]] |
| [[https://blog.freedombone.net/tag/freedombone][Blog]] | [[./backups.html][Backups]] |
If you find bugs, or want to add a new app to this system see the [[./devguide.html][Developers Guide]] and [[./codeofconduct.html][Code of Conduct]]. There is a Matrix chat room available at *#fbone:matrix.freedombone.net* and an XMPP channel at *support@chat.freedombone.net*. The XMPP channel requires membership which you can ask for via [[./support.html][these contact details]]. | [[./faq.html][FAQ]] | [[./support.html][Contact]] |
If you like this project and want to support continued development then [[./support.html][here's what to do]].
#+attr_html: :width 10% :height 2% :align center #+attr_html: :width 10% :height 2% :align center
[[file:fdl-1.3.txt][file:images/gfdl.png]] [[file:fdl-1.3.txt][file:images/gfdl.png]]

View File

@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title></title> <title></title>
<!-- 2018-05-24 Thu 21:18 --> <!-- 2018-06-16 Sat 10:32 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" /> <meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" /> <meta name="author" content="Bob Mottram" />
@ -165,21 +165,36 @@ So you want to run your own internet services? Email, chat, VoIP, web sites, fil
You can run Freedombone on an old laptop or a single board computer. See the <a href="./installmethods.html">list of installation methods</a>. You can also use it to <a href="./mesh.html">set up a mesh network</a> in your local area. You can run Freedombone on an old laptop or a single board computer. See the <a href="./installmethods.html">list of installation methods</a>. You can also use it to <a href="./mesh.html">set up a mesh network</a> in your local area.
</p> </p>
<p> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides" align="center">
Check out the <a href="./apps.html">list of available apps</a> and <a href="./faq.html">Frequently Asked Questions</a> section. Recent developments are also described on <a href="https://blog.freedombone.net/tag/freedombone">the blog</a>. You might also wish to know how to <a href="./backups.html">backup and restore the system</a>.
</p>
<p>
Disk images which can be cloned straight to USB or microSD drives are <a href="./downloads/v31">available here</a>.
</p>
<p> <colgroup>
If you find bugs, or want to add a new app to this system see the <a href="./devguide.html">Developers Guide</a> and <a href="./codeofconduct.html">Code of Conduct</a>. There is a Matrix chat room available at <b>#fbone:matrix.freedombone.net</b> and an XMPP channel at <b>support@chat.freedombone.net</b>. The XMPP channel requires membership which you can ask for via <a href="./support.html">these contact details</a>. <col class="left" />
</p>
<p> <col class="left" />
If you like this project and want to support continued development then <a href="./support.html">here's what to do</a>. </colgroup>
</p> <tbody>
<tr>
<td class="left"><a href="./downloads/v31">Downloads</a></td>
<td class="left"><a href="./apps.html">Apps</a></td>
</tr>
<tr>
<td class="left"><a href="./devguide.html">Developers</a></td>
<td class="left"><a href="./codeofconduct.html">Code of Conduct</a></td>
</tr>
<tr>
<td class="left"><a href="https://blog.freedombone.net/tag/freedombone">Blog</a></td>
<td class="left"><a href="./backups.html">Backups</a></td>
</tr>
<tr>
<td class="left"><a href="./faq.html">FAQ</a></td>
<td class="left"><a href="./support.html">Contact</a></td>
</tr>
</tbody>
</table>
<div class="figure"> <div class="figure">

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2018-05-10 Thu 11:48 --> <title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <!-- 2018-06-15 Fri 17:40 -->
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>&lrm;</title> <meta name="generator" content="Org-mode" />
<meta name="generator" content="Org mode" /> <meta name="author" content="Bob Mottram" />
<meta name="author" content="Bob Mottram" /> <meta name="description" content="Freedombone mesh network images"
<meta name="description" content="Freedombone mesh network images"
/> />
<meta name="keywords" content="freedombone, mesh" /> <meta name="keywords" content="freedombone, mesh" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![CDATA[/*><!--*/
.title { text-align: center; .title { text-align: center; }
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; } .todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; } .done { color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace; .tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; } padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; } .timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; } .timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; } .right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; } .left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; } .center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; } .underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; } #postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; } p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black; border: 1px solid black;
} }
pre.src:hover:before { display: inline;} pre.src:hover:before { display: inline;}
/* Languages per Org manual */ pre.src-sh:before { content: 'sh'; }
pre.src-asymptote:before { content: 'Asymptote'; } pre.src-bash:before { content: 'sh'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; } pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; } pre.src-R:before { content: 'R'; }
pre.src-gnuplot:before { content: 'gnuplot'; } pre.src-perl:before { content: 'Perl'; }
pre.src-haskell:before { content: 'Haskell'; } pre.src-java:before { content: 'Java'; }
pre.src-hledger:before { content: 'hledger'; } pre.src-sql:before { content: 'SQL'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; } table { border-collapse:collapse; }
caption.t-above { caption-side: top; } caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; } caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; } td, th { vertical-align:top; }
th.org-right { text-align: center; } th.right { text-align: center; }
th.org-left { text-align: center; } th.left { text-align: center; }
th.org-center { text-align: center; } th.center { text-align: center; }
td.org-right { text-align: right; } td.right { text-align: right; }
td.org-left { text-align: left; } td.left { text-align: left; }
td.org-center { text-align: center; } td.center { text-align: center; }
dt { font-weight: bold; } dt { font-weight: bold; }
.footpara { display: inline; } .footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; } .footdef { margin-bottom: 1em; }
.figure { padding: 1em; } .figure { padding: 1em; }
.figure p { text-align: center; } .figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; } { font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight .org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; } { background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="freedombone.css" /> <link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
JavaScript code in this tag. JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc. Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU redistribute it and/or modify it under the terms of the GNU
@ -236,23 +144,23 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a> <a name="top" id="top"></a>
</div> </div>
<div id="content"> <div id="content">
<h1 class="title"></h1>
<div class="figure"> <div class="figure">
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" /> <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p> </p>
</div> </div>
<div id="outline-container-org4a6d63d" class="outline-2"> <div id="outline-container-sec-1" class="outline-2">
<h2 id="org4a6d63d">Mesh Network: Images</h2> <h2 id="sec-1">Mesh Network: Images</h2>
</div> </div>
<div id="outline-container-org0b5ce82" class="outline-2"> <div id="outline-container-sec-2" class="outline-2">
<h2 id="org0b5ce82">Pre-built Disk Images</h2> <h2 id="sec-2">Pre-built Disk Images</h2>
<div class="outline-text-2" id="text-org0b5ce82"> <div class="outline-text-2" id="text-2">
</div> </div><div id="outline-container-sec-2-1" class="outline-3">
<div id="outline-container-org3c967ad" class="outline-3"> <h3 id="sec-2-1">Writing many images quickly</h3>
<h3 id="org3c967ad">Writing many images quickly</h3> <div class="outline-text-3" id="text-2-1">
<div class="outline-text-3" id="text-org3c967ad">
<p> <p>
There may be situations where you need to write the same disk image to multiple drives at the same time in order to maximize rate of deployment. In the instructions given below the <b>dd</b> command is used for writing to the target drive, but to write to multiple drives you can use a tool such as <a href="https://wiki.gnome.org/Apps/MultiWriter">GNOME MultiWriter</a>. There may be situations where you need to write the same disk image to multiple drives at the same time in order to maximize rate of deployment. In the instructions given below the <b>dd</b> command is used for writing to the target drive, but to write to multiple drives you can use a tool such as <a href="https://wiki.gnome.org/Apps/MultiWriter">GNOME MultiWriter</a>.
</p> </p>
@ -262,6 +170,7 @@ For example on Arch/Parabola:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo pacman -S gnome-multi-writer <pre class="src src-bash">sudo pacman -S gnome-multi-writer
</pre> </pre>
</div> </div>
@ -271,6 +180,7 @@ Or on Debian based systems:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo apt-get install gnome-multi-writer <pre class="src src-bash">sudo apt-get install gnome-multi-writer
</pre> </pre>
</div> </div>
@ -280,9 +190,9 @@ The MultiWriter tool is also available within mesh client images, so that you ca
</p> </p>
</div> </div>
</div> </div>
<div id="outline-container-orge9f8bf4" class="outline-3"> <div id="outline-container-sec-2-2" class="outline-3">
<h3 id="orge9f8bf4">Client images</h3> <h3 id="sec-2-2">Client images</h3>
<div class="outline-text-3" id="text-orge9f8bf4"> <div class="outline-text-3" id="text-2-2">
<div class="figure"> <div class="figure">
<p><img src="images/mesh_netbook.jpg" alt="mesh_netbook.jpg" width="100%" align="center" /> <p><img src="images/mesh_netbook.jpg" alt="mesh_netbook.jpg" width="100%" align="center" />
@ -293,14 +203,57 @@ The MultiWriter tool is also available within mesh client images, so that you ca
"Client" isn't exactly the right term, but it's a mesh peer with a user interface. These images can be copied to a USB drive, then you can plug it into a laptop/netbook/desktop machine and boot from it. You will probably also need an Atheros USB wifi dongle (the black protruding object on the left side of the netbook in the picture above), because most built-in wifi usually requires proprietary firmware. In the commands below substitute /dev/sdX with the USB drive device, excluding any trailing numbers (eg. /dev/sdb). The USB drive you're copying to will need to be at least 16GB in size. "Client" isn't exactly the right term, but it's a mesh peer with a user interface. These images can be copied to a USB drive, then you can plug it into a laptop/netbook/desktop machine and boot from it. You will probably also need an Atheros USB wifi dongle (the black protruding object on the left side of the netbook in the picture above), because most built-in wifi usually requires proprietary firmware. In the commands below substitute /dev/sdX with the USB drive device, excluding any trailing numbers (eg. /dev/sdb). The USB drive you're copying to will need to be at least 16GB in size.
</p> </p>
<p>
Install some prerequisites:
</p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo apt-get install xz-utils wget <pre class="src src-bash">sudo apt-get install xz-utils wget
wget https://freedombone.net/downloads/v31/freedombone-meshclient-i386.img.xz </pre>
</div>
<p>
To download images with dat:
</p>
<div class="org-src-container">
<pre class="src src-bash">dat clone dat://e2ed9767d6ab64f4c43a2adbce65af225133fec7ba95737f0a2f6ae292ba358e/
cd e2ed9767d6ab64f4c43a2adbce65af225133fec7ba95737f0a2f6ae292ba358e
</pre>
</div>
<p>
Or to download images directly with wget (may be slower):
</p>
<div class="org-src-container">
<pre class="src src-bash">wget https://freedombone.net/downloads/v31/freedombone-meshclient-i386.img.xz
wget https://freedombone.net/downloads/v31/freedombone-meshclient-i386.img.xz.sig wget https://freedombone.net/downloads/v31/freedombone-meshclient-i386.img.xz.sig
gpg --verify freedombone-meshclient-i386.img.xz.sig </pre>
</div>
<p>
Check the signature:
</p>
<div class="org-src-container">
<pre class="src src-bash">gpg --verify freedombone-meshclient-i386.img.xz.sig
unxz freedombone-meshclient-i386.img.xz unxz freedombone-meshclient-i386.img.xz
sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">count</span>=8 </pre>
sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=freedombone-meshclient-i386.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync,sync,noerror </div>
<p>
Then clone to the USB drive, where sdX is your USB device:
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
sudo dd bs=32M if=freedombone-meshclient-i386.img of=/dev/sdX conv=fdatasync,sync,noerror
</pre> </pre>
</div> </div>
@ -312,29 +265,72 @@ To get a number of systems onto the mesh repeat the <i>dd</i> command to create
If you're in an emergency and don't have Atheros wifi dongles then there is also an "insecure" image which contains some proprietary wifi drivers which may work with a wider range of laptops. Proprietary drivers <b>are not recommended</b> because they're unsupportable and may be exploitable or contain malicious antifeatures which fundamentally compromise the security of the network. However, the trade-off between security/maintainability and simply having the ability to communicate at all may be a valid one in some situations. If you're in an emergency and don't have Atheros wifi dongles then there is also an "insecure" image which contains some proprietary wifi drivers which may work with a wider range of laptops. Proprietary drivers <b>are not recommended</b> because they're unsupportable and may be exploitable or contain malicious antifeatures which fundamentally compromise the security of the network. However, the trade-off between security/maintainability and simply having the ability to communicate at all may be a valid one in some situations.
</p> </p>
<p>
Install some prerequisites:
</p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo apt-get install xz-utils wget <pre class="src src-bash">sudo apt-get install xz-utils wget
wget https://freedombone.net/downloads/v31/freedombone-meshclient-insecure-i386.img.xz </pre>
</div>
<p>
To download images with dat:
</p>
<div class="org-src-container">
<pre class="src src-bash">dat clone dat://6d1b73d13b6f9b5c481c6dfd64be6aa58e1cd2d153a6bb04bbc177999ee9925e/
cd 6d1b73d13b6f9b5c481c6dfd64be6aa58e1cd2d153a6bb04bbc177999ee9925e
</pre>
</div>
<p>
Or to download images directly with wget (may be slower):
</p>
<div class="org-src-container">
<pre class="src src-bash">wget https://freedombone.net/downloads/v31/freedombone-meshclient-insecure-i386.img.xz
wget https://freedombone.net/downloads/v31/freedombone-meshclient-insecure-i386.img.xz.sig wget https://freedombone.net/downloads/v31/freedombone-meshclient-insecure-i386.img.xz.sig
gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig </pre>
</div>
<p>
Check the signature:
</p>
<div class="org-src-container">
<pre class="src src-bash">gpg --verify freedombone-meshclient-insecure-i386.img.xz.sig
unxz freedombone-meshclient-insecure-i386.img.xz unxz freedombone-meshclient-insecure-i386.img.xz
sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">count</span>=8 </pre>
sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=freedombone-meshclient-insecure-i386.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync,sync,noerror </div>
<p>
Then clone to the USB drive, where sdX is your USB device:
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
sudo dd bs=32M if=freedombone-meshclient-insecure-i386.img of=/dev/sdX conv=fdatasync,sync,noerror
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org82896b1" class="outline-3"> <div id="outline-container-sec-2-3" class="outline-3">
<h3 id="org82896b1">Router images</h3> <h3 id="sec-2-3">Router images</h3>
<div class="outline-text-3" id="text-org82896b1"> <div class="outline-text-3" id="text-2-3">
<p> <p>
Routers are intended to build network coverage for an area using small and low cost hardware. You can bolt them to walls or leave them on window ledges. They don't have any user interface and their only job is to haul network traffic across the mesh and to enable peers to find each other via running bootstrap nodes for Tox and IPFS. Copy the image to a microSD card and insert it into the router, plug in an Atheros wifi dongle and power on. That should be all you need to do. Routers are intended to build network coverage for an area using small and low cost hardware. You can bolt them to walls or leave them on window ledges. They don't have any user interface and their only job is to haul network traffic across the mesh and to enable peers to find each other via running bootstrap nodes for Tox and IPFS. Copy the image to a microSD card and insert it into the router, plug in an Atheros wifi dongle and power on. That should be all you need to do.
</p> </p>
</div> </div>
<div id="outline-container-org874f9bb" class="outline-4"> <div id="outline-container-sec-2-3-1" class="outline-4">
<h4 id="org874f9bb">Beaglebone Black</h4> <h4 id="sec-2-3-1">Beaglebone Black</h4>
<div class="outline-text-4" id="text-org874f9bb"> <div class="outline-text-4" id="text-2-3-1">
<div class="figure"> <div class="figure">
<p><img src="images/mesh_router.jpg" alt="mesh_router.jpg" width="50%" align="center" /> <p><img src="images/mesh_router.jpg" alt="mesh_router.jpg" width="50%" align="center" />
@ -346,14 +342,13 @@ The above picture shows a Beaglebone Black with the image copied onto a microSD
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo apt-get install xz-utils wget <pre class="src src-bash">sudo apt-get install xz-utils wget
wget https://freedombone.net/downloads/v31/freedombone-mesh_beaglebone-armhf.img.xz wget https://freedombone.net/downloads/v31/freedombone-mesh_beaglebone-armhf.img.xz
wget https://freedombone.net/downloads/v31/freedombone-mesh_beaglebone-armhf.img.xz.sig wget https://freedombone.net/downloads/v31/freedombone-mesh_beaglebone-armhf.img.xz.sig
gpg --verify freedombone-mesh_beaglebone-armhf.img.xz.sig gpg --verify freedombone-mesh_beaglebone-armhf.img.xz.sig
sha256sum freedombone-mesh_beaglebone-armhf.img.xz
ad8f22c0d46c98a80aa47b5809402971cf5cf26ebf587c59a667307b2386c3d2
unxz freedombone-mesh_beaglebone-armhf.img.xz unxz freedombone-mesh_beaglebone-armhf.img.xz
sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=freedombone-mesh_beaglebone-armhf.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync,sync,noerror sudo dd bs=32M if=freedombone-mesh_beaglebone-armhf.img of=/dev/sdX conv=fdatasync,sync,noerror
</pre> </pre>
</div> </div>
@ -369,9 +364,9 @@ There is still a software freedom issue with the Beaglebone Black, but it doesn'
</div> </div>
</div> </div>
<div id="outline-container-orgda68996" class="outline-2"> <div id="outline-container-sec-3" class="outline-2">
<h2 id="orgda68996">Building Disk Images</h2> <h2 id="sec-3">Building Disk Images</h2>
<div class="outline-text-2" id="text-orgda68996"> <div class="outline-text-2" id="text-3">
<p> <p>
It's better not to trust images downloaded from random places on the interwebs. Chances are that unless you are in the web of trust of the above GPG signatures then they don't mean very much to you. If you actually want something trustworthy then build the images from scratch. It will take some time. Here's how to do it. It's better not to trust images downloaded from random places on the interwebs. Chances are that unless you are in the web of trust of the above GPG signatures then they don't mean very much to you. If you actually want something trustworthy then build the images from scratch. It will take some time. Here's how to do it.
</p> </p>
@ -381,12 +376,13 @@ First you will need to create an image. On a Debian based system (tested on Debi
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo apt-get -y install git wget build-essential <pre class="src src-bash">sudo apt-get -y install git wget build-essential
wget https://freedombone.net/downloads/v31/freedombone.tar.gz wget https://freedombone.net/downloads/v31/freedombone.tar.gz
wget https://freedombone.net/downloads/v31/freedombone.tar.gz.sig wget https://freedombone.net/downloads/v31/freedombone.tar.gz.sig
gpg --verify freedombone.tar.gz.sig gpg --verify freedombone.tar.gz.sig
tar -xzvf freedombone.tar.gz tar -xzvf freedombone.tar.gz
<span class="org-builtin">cd</span> freedombone cd freedombone
git checkout stretch git checkout stretch
sudo make install sudo make install
freedombone-image --setup debian freedombone-image --setup debian
@ -399,6 +395,7 @@ If you don't have Atheros or free software compatible wifi adapter then you can
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-image -t i386 -v meshclient --insecure yes <pre class="src src-bash">freedombone-image -t i386 -v meshclient --insecure yes
</pre> </pre>
</div> </div>
@ -412,6 +409,7 @@ List what drives are on your system with:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ls /dev/sd* <pre class="src src-bash">ls /dev/sd*
</pre> </pre>
</div> </div>
@ -425,8 +423,9 @@ You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">count</span>=8
sudo dd <span class="org-variable-name">bs</span>=32M <span class="org-variable-name">if</span>=myimagefile.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync,sync,noerror <pre class="src src-bash">sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
sudo dd bs=32M if=myimagefile.img of=/dev/sdX conv=fdatasync,sync,noerror
</pre> </pre>
</div> </div>
@ -447,6 +446,7 @@ You can also use single board computers (SBCs) such as the BeagleBone Black to m
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">freedombone-image -t beaglebone -v mesh <pre class="src src-bash">freedombone-image -t beaglebone -v mesh
</pre> </pre>
</div> </div>