Browse Source

Mesh router on x86

Bob Mottram 3 months ago
parent
commit
685bc2c10e
2 changed files with 172 additions and 100 deletions
  1. 8
    0
      doc/EN/mesh_images.org
  2. 164
    100
      website/EN/mesh_images.html

+ 8
- 0
doc/EN/mesh_images.org View File

@@ -187,3 +187,11 @@ freedombone-image -t beagleboneblack -v mesh
187 187
 #+end_src
188 188
 
189 189
 The resulting image can be copied to a microSD card, inserted into a Beaglebone Black and booted. Don't forget to plug in an Atheros USB wifi dongle.
190
+
191
+You can also use hardware other than the Beaglebone Black as mesh routers. Old laptops if any are available. You could build with:
192
+
193
+#+begin_src bash
194
+freedombone-image -t amd64 -v mesh --insecure yes
195
+#+end_src
196
+
197
+The "insecure" option adds proprietary wifi drivers so that you'll have the best chance of some random piece of hardware working.

+ 164
- 100
website/EN/mesh_images.html View File

@@ -3,26 +3,33 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
+<!-- 2020-02-15 Sat 10:50 -->
7
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
+<meta name="viewport" content="width=device-width, initial-scale=1" />
6 9
 <title>Freedombone</title>
7
-<!-- 2019-03-10 Sun 11:34 -->
8
-<meta  http-equiv="Content-Type" content="text/html;charset=utf-8" />
9
-<meta  name="generator" content="Org-mode" />
10
-<meta  name="author" content="Bob Mottram" />
11
-<meta  name="description" content="Freedombone mesh network images"
10
+<meta name="generator" content="Org mode" />
11
+<meta name="author" content="Bob Mottram" />
12
+<meta name="description" content="Freedombone mesh network images"
12 13
  />
13
-<meta  name="keywords" content="freedombone, mesh" />
14
+<meta name="keywords" content="freedombone, mesh" />
14 15
 <style type="text/css">
15 16
  <!--/*--><![CDATA[/*><!--*/
16
-  .title  { text-align: center; }
17
+  .title  { text-align: center;
18
+             margin-bottom: .2em; }
19
+  .subtitle { text-align: center;
20
+              font-size: medium;
21
+              font-weight: bold;
22
+              margin-top:0; }
17 23
   .todo   { font-family: monospace; color: red; }
18
-  .done   { color: green; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
19 26
   .tag    { background-color: #eee; font-family: monospace;
20 27
             padding: 2px; font-size: 80%; font-weight: normal; }
21 28
   .timestamp { color: #bebebe; }
22 29
   .timestamp-kwd { color: #5f9ea0; }
23
-  .right  { margin-left: auto; margin-right: 0px;  text-align: right; }
24
-  .left   { margin-left: 0px;  margin-right: auto; text-align: left; }
25
-  .center { margin-left: auto; margin-right: auto; text-align: center; }
30
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
31
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
32
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
26 33
   .underline { text-decoration: underline; }
27 34
   #postamble p, #preamble p { font-size: 90%; margin: .2em; }
28 35
   p.verse { margin-left: 3%; }
@@ -49,27 +56,111 @@
49 56
     border: 1px solid black;
50 57
   }
51 58
   pre.src:hover:before { display: inline;}
52
-  pre.src-sh:before    { content: 'sh'; }
53
-  pre.src-bash:before  { content: 'sh'; }
59
+  /* Languages per Org manual */
60
+  pre.src-asymptote:before { content: 'Asymptote'; }
61
+  pre.src-awk:before { content: 'Awk'; }
62
+  pre.src-C:before { content: 'C'; }
63
+  /* pre.src-C++ doesn't work in CSS */
64
+  pre.src-clojure:before { content: 'Clojure'; }
65
+  pre.src-css:before { content: 'CSS'; }
66
+  pre.src-D:before { content: 'D'; }
67
+  pre.src-ditaa:before { content: 'ditaa'; }
68
+  pre.src-dot:before { content: 'Graphviz'; }
69
+  pre.src-calc:before { content: 'Emacs Calc'; }
54 70
   pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
55
-  pre.src-R:before     { content: 'R'; }
56
-  pre.src-perl:before  { content: 'Perl'; }
57
-  pre.src-java:before  { content: 'Java'; }
58
-  pre.src-sql:before   { content: 'SQL'; }
71
+  pre.src-fortran:before { content: 'Fortran'; }
72
+  pre.src-gnuplot:before { content: 'gnuplot'; }
73
+  pre.src-haskell:before { content: 'Haskell'; }
74
+  pre.src-hledger:before { content: 'hledger'; }
75
+  pre.src-java:before { content: 'Java'; }
76
+  pre.src-js:before { content: 'Javascript'; }
77
+  pre.src-latex:before { content: 'LaTeX'; }
78
+  pre.src-ledger:before { content: 'Ledger'; }
79
+  pre.src-lisp:before { content: 'Lisp'; }
80
+  pre.src-lilypond:before { content: 'Lilypond'; }
81
+  pre.src-lua:before { content: 'Lua'; }
82
+  pre.src-matlab:before { content: 'MATLAB'; }
83
+  pre.src-mscgen:before { content: 'Mscgen'; }
84
+  pre.src-ocaml:before { content: 'Objective Caml'; }
85
+  pre.src-octave:before { content: 'Octave'; }
86
+  pre.src-org:before { content: 'Org mode'; }
87
+  pre.src-oz:before { content: 'OZ'; }
88
+  pre.src-plantuml:before { content: 'Plantuml'; }
89
+  pre.src-processing:before { content: 'Processing.js'; }
90
+  pre.src-python:before { content: 'Python'; }
91
+  pre.src-R:before { content: 'R'; }
92
+  pre.src-ruby:before { content: 'Ruby'; }
93
+  pre.src-sass:before { content: 'Sass'; }
94
+  pre.src-scheme:before { content: 'Scheme'; }
95
+  pre.src-screen:before { content: 'Gnu Screen'; }
96
+  pre.src-sed:before { content: 'Sed'; }
97
+  pre.src-sh:before { content: 'shell'; }
98
+  pre.src-sql:before { content: 'SQL'; }
99
+  pre.src-sqlite:before { content: 'SQLite'; }
100
+  /* additional languages in org.el's org-babel-load-languages alist */
101
+  pre.src-forth:before { content: 'Forth'; }
102
+  pre.src-io:before { content: 'IO'; }
103
+  pre.src-J:before { content: 'J'; }
104
+  pre.src-makefile:before { content: 'Makefile'; }
105
+  pre.src-maxima:before { content: 'Maxima'; }
106
+  pre.src-perl:before { content: 'Perl'; }
107
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
108
+  pre.src-scala:before { content: 'Scala'; }
109
+  pre.src-shell:before { content: 'Shell Script'; }
110
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
111
+  /* additional language identifiers per "defun org-babel-execute"
112
+       in ob-*.el */
113
+  pre.src-cpp:before  { content: 'C++'; }
114
+  pre.src-abc:before  { content: 'ABC'; }
115
+  pre.src-coq:before  { content: 'Coq'; }
116
+  pre.src-groovy:before  { content: 'Groovy'; }
117
+  /* additional language identifiers from org-babel-shell-names in
118
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
119
+     the execution function name together. */
120
+  pre.src-bash:before  { content: 'bash'; }
121
+  pre.src-csh:before  { content: 'csh'; }
122
+  pre.src-ash:before  { content: 'ash'; }
123
+  pre.src-dash:before  { content: 'dash'; }
124
+  pre.src-ksh:before  { content: 'ksh'; }
125
+  pre.src-mksh:before  { content: 'mksh'; }
126
+  pre.src-posh:before  { content: 'posh'; }
127
+  /* Additional Emacs modes also supported by the LaTeX listings package */
128
+  pre.src-ada:before { content: 'Ada'; }
129
+  pre.src-asm:before { content: 'Assembler'; }
130
+  pre.src-caml:before { content: 'Caml'; }
131
+  pre.src-delphi:before { content: 'Delphi'; }
132
+  pre.src-html:before { content: 'HTML'; }
133
+  pre.src-idl:before { content: 'IDL'; }
134
+  pre.src-mercury:before { content: 'Mercury'; }
135
+  pre.src-metapost:before { content: 'MetaPost'; }
136
+  pre.src-modula-2:before { content: 'Modula-2'; }
137
+  pre.src-pascal:before { content: 'Pascal'; }
138
+  pre.src-ps:before { content: 'PostScript'; }
139
+  pre.src-prolog:before { content: 'Prolog'; }
140
+  pre.src-simula:before { content: 'Simula'; }
141
+  pre.src-tcl:before { content: 'tcl'; }
142
+  pre.src-tex:before { content: 'TeX'; }
143
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
144
+  pre.src-verilog:before { content: 'Verilog'; }
145
+  pre.src-vhdl:before { content: 'VHDL'; }
146
+  pre.src-xml:before { content: 'XML'; }
147
+  pre.src-nxml:before { content: 'XML'; }
148
+  /* add a generic configuration mode; LaTeX export needs an additional
149
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
150
+  pre.src-conf:before { content: 'Configuration File'; }
59 151
 
60 152
   table { border-collapse:collapse; }
61 153
   caption.t-above { caption-side: top; }
62 154
   caption.t-bottom { caption-side: bottom; }
63 155
   td, th { vertical-align:top;  }
64
-  th.right  { text-align: center;  }
65
-  th.left   { text-align: center;   }
66
-  th.center { text-align: center; }
67
-  td.right  { text-align: right;  }
68
-  td.left   { text-align: left;   }
69
-  td.center { text-align: center; }
156
+  th.org-right  { text-align: center;  }
157
+  th.org-left   { text-align: center;   }
158
+  th.org-center { text-align: center; }
159
+  td.org-right  { text-align: right;  }
160
+  td.org-left   { text-align: left;   }
161
+  td.org-center { text-align: center; }
70 162
   dt { font-weight: bold; }
71
-  .footpara:nth-child(2) { display: inline; }
72
-  .footpara { display: block; }
163
+  .footpara { display: inline; }
73 164
   .footdef  { margin-bottom: 1em; }
74 165
   .figure { padding: 1em; }
75 166
   .figure p { text-align: center; }
@@ -89,6 +180,7 @@
89 180
     { font-size: 10px; font-weight: bold; white-space: nowrap; }
90 181
   .org-info-js_search-highlight
91 182
     { background-color: #ffff00; color: #000000; font-weight: bold; }
183
+  .org-svg { width: 90%; }
92 184
   /*]]>*/-->
93 185
 </style>
94 186
 <link rel="stylesheet" type="text/css" href="freedombone.css" />
@@ -97,7 +189,7 @@
97 189
 @licstart  The following is the entire license notice for the
98 190
 JavaScript code in this tag.
99 191
 
100
-Copyright (C) 2012-2013 Free Software Foundation, Inc.
192
+Copyright (C) 2012-2018 Free Software Foundation, Inc.
101 193
 
102 194
 The JavaScript code in this tag is free software: you can
103 195
 redistribute it and/or modify it under the terms of the GNU
@@ -140,9 +232,6 @@ for the JavaScript code in this tag.
140 232
 </script>
141 233
 </head>
142 234
 <body>
143
-<div id="preamble" class="status">
144
-<a name="top" id="top"></a>
145
-</div>
146 235
 <div id="content">
147 236
 <h1 class="title">Freedombone</h1>
148 237
 
@@ -151,16 +240,17 @@ for the JavaScript code in this tag.
151 240
 </p>
152 241
 </div>
153 242
 
154
-<div id="outline-container-sec-1" class="outline-2">
155
-<h2 id="sec-1">Mesh Network: Images</h2>
243
+<div id="outline-container-org5e8d988" class="outline-2">
244
+<h2 id="org5e8d988">Mesh Network: Images</h2>
156 245
 </div>
157 246
 
158
-<div id="outline-container-sec-2" class="outline-2">
159
-<h2 id="sec-2">Pre-built Disk Images</h2>
160
-<div class="outline-text-2" id="text-2">
161
-</div><div id="outline-container-sec-2-1" class="outline-3">
162
-<h3 id="sec-2-1">Writing many images quickly</h3>
163
-<div class="outline-text-3" id="text-2-1">
247
+<div id="outline-container-org10c6c9e" class="outline-2">
248
+<h2 id="org10c6c9e">Pre-built Disk Images</h2>
249
+<div class="outline-text-2" id="text-org10c6c9e">
250
+</div>
251
+<div id="outline-container-org0215686" class="outline-3">
252
+<h3 id="org0215686">Writing many images quickly</h3>
253
+<div class="outline-text-3" id="text-org0215686">
164 254
 <p>
165 255
 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>.
166 256
 </p>
@@ -170,7 +260,6 @@ For example on Arch/Parabola:
170 260
 </p>
171 261
 
172 262
 <div class="org-src-container">
173
-
174 263
 <pre class="src src-bash">sudo pacman -S gnome-multi-writer
175 264
 </pre>
176 265
 </div>
@@ -180,7 +269,6 @@ Or on Debian based systems:
180 269
 </p>
181 270
 
182 271
 <div class="org-src-container">
183
-
184 272
 <pre class="src src-bash">sudo apt-get install gnome-multi-writer
185 273
 </pre>
186 274
 </div>
@@ -190,9 +278,9 @@ The MultiWriter tool is also available within mesh client images, so that you ca
190 278
 </p>
191 279
 </div>
192 280
 </div>
193
-<div id="outline-container-sec-2-2" class="outline-3">
194
-<h3 id="sec-2-2">Client images</h3>
195
-<div class="outline-text-3" id="text-2-2">
281
+<div id="outline-container-org49236aa" class="outline-3">
282
+<h3 id="org49236aa">Client images</h3>
283
+<div class="outline-text-3" id="text-org49236aa">
196 284
 
197 285
 <div class="figure">
198 286
 <p><img src="images/mesh_netbook.jpg" alt="mesh_netbook.jpg" width="100%" align="center" />
@@ -208,7 +296,6 @@ Download the following files. They're about 2.3GB in size, so be prepared to wai
208 296
 </p>
209 297
 
210 298
 <div class="org-src-container">
211
-
212 299
 <pre class="src src-bash">wget https://freedombone.net/downloads/freedombone-meshclient-all-i386.img.xz
213 300
 wget https://freedombone.net/downloads/freedombone-meshclient-all-i386.img.xz.asc
214 301
 </pre>
@@ -219,7 +306,6 @@ Check the signature and extract the image:
219 306
 </p>
220 307
 
221 308
 <div class="org-src-container">
222
-
223 309
 <pre class="src src-bash">gpg --verify freedombone-meshclient-all-i386.img.xz.asc
224 310
 unxz freedombone-meshclient-all-i386.img.xz
225 311
 </pre>
@@ -230,9 +316,8 @@ Then clone to the USB drive, where sdX is your USB device:
230 316
 </p>
231 317
 
232 318
 <div class="org-src-container">
233
-
234
-<pre class="src src-bash">sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
235
-sudo dd bs=32M if=freedombone-meshclient-all-i386.img of=/dev/sdX conv=fdatasync,sync,noerror
319
+<pre class="src src-bash">sudo dd <span style="color: #4eee94;">if</span>=/dev/zero <span style="color: #4eee94;">of</span>=/dev/sdX <span style="color: #4eee94;">bs</span>=32M <span style="color: #4eee94;">count</span>=8
320
+sudo dd <span style="color: #4eee94;">bs</span>=32M <span style="color: #4eee94;">if</span>=freedombone-meshclient-all-i386.img <span style="color: #4eee94;">of</span>=/dev/sdX <span style="color: #4eee94;">conv</span>=fdatasync,sync,noerror
236 321
 </pre>
237 322
 </div>
238 323
 
@@ -249,7 +334,6 @@ Download the following files. They're about 2.3GB in size, so be prepared to wai
249 334
 </p>
250 335
 
251 336
 <div class="org-src-container">
252
-
253 337
 <pre class="src src-bash">wget https://freedombone.net/downloads/freedombone-meshclient-insecure-all-i386.img.xz
254 338
 wget https://freedombone.net/downloads/freedombone-meshclient-insecure-all-i386.img.xz.asc
255 339
 </pre>
@@ -260,7 +344,6 @@ Check the signature:
260 344
 </p>
261 345
 
262 346
 <div class="org-src-container">
263
-
264 347
 <pre class="src src-bash">gpg --verify freedombone-meshclient-insecure-all-i386.img.xz.asc
265 348
 unxz freedombone-meshclient-insecure-all-i386.img.xz
266 349
 </pre>
@@ -271,24 +354,23 @@ Then clone to the USB drive, where sdX is your USB device:
271 354
 </p>
272 355
 
273 356
 <div class="org-src-container">
274
-
275
-<pre class="src src-bash">sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
276
-sudo dd bs=32M if=freedombone-meshclient-insecure-all-i386.img of=/dev/sdX conv=fdatasync,sync,noerror
357
+<pre class="src src-bash">sudo dd <span style="color: #4eee94;">if</span>=/dev/zero <span style="color: #4eee94;">of</span>=/dev/sdX <span style="color: #4eee94;">bs</span>=32M <span style="color: #4eee94;">count</span>=8
358
+sudo dd <span style="color: #4eee94;">bs</span>=32M <span style="color: #4eee94;">if</span>=freedombone-meshclient-insecure-all-i386.img <span style="color: #4eee94;">of</span>=/dev/sdX <span style="color: #4eee94;">conv</span>=fdatasync,sync,noerror
277 359
 </pre>
278 360
 </div>
279 361
 </div>
280 362
 </div>
281 363
 
282
-<div id="outline-container-sec-2-3" class="outline-3">
283
-<h3 id="sec-2-3">Router images</h3>
284
-<div class="outline-text-3" id="text-2-3">
364
+<div id="outline-container-org81a27a1" class="outline-3">
365
+<h3 id="org81a27a1">Router images</h3>
366
+<div class="outline-text-3" id="text-org81a27a1">
285 367
 <p>
286 368
 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.
287 369
 </p>
288 370
 </div>
289
-<div id="outline-container-sec-2-3-1" class="outline-4">
290
-<h4 id="sec-2-3-1">Beaglebone Black</h4>
291
-<div class="outline-text-4" id="text-2-3-1">
371
+<div id="outline-container-org2c073b0" class="outline-4">
372
+<h4 id="org2c073b0">Beaglebone Black</h4>
373
+<div class="outline-text-4" id="text-org2c073b0">
292 374
 
293 375
 <div class="figure">
294 376
 <p><img src="images/mesh_router.jpg" alt="mesh_router.jpg" width="50%" align="center" />
@@ -304,7 +386,6 @@ Download the following files. They're about 2GB in size, so be prepared to wait.
304 386
 </p>
305 387
 
306 388
 <div class="org-src-container">
307
-
308 389
 <pre class="src src-bash">wget https://freedombone.net/downloads/freedombone-mesh_beagleboneblack-armhf.img.xz
309 390
 wget https://freedombone.net/downloads/freedombone-mesh_beagleboneblack-armhf.img.xz.asc
310 391
 </pre>
@@ -315,7 +396,6 @@ Check the signature:
315 396
 </p>
316 397
 
317 398
 <div class="org-src-container">
318
-
319 399
 <pre class="src src-bash">gpg --verify freedombone-mesh_beagleboneblack-armhf.img.asc
320 400
 unxz freedombone-mesh_beagleboneblack-armhf.img.xz
321 401
 </pre>
@@ -326,9 +406,8 @@ Then clone to the microSD drive, where sdX is your device name:
326 406
 </p>
327 407
 
328 408
 <div class="org-src-container">
329
-
330
-<pre class="src src-bash">sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
331
-sudo dd bs=32M if=freedombone-mesh_beagleboneblack-armhf.img of=/dev/sdX conv=fdatasync,sync,noerror
409
+<pre class="src src-bash">sudo dd <span style="color: #4eee94;">if</span>=/dev/zero <span style="color: #4eee94;">of</span>=/dev/sdX <span style="color: #4eee94;">bs</span>=32M <span style="color: #4eee94;">count</span>=8
410
+sudo dd <span style="color: #4eee94;">bs</span>=32M <span style="color: #4eee94;">if</span>=freedombone-mesh_beagleboneblack-armhf.img <span style="color: #4eee94;">of</span>=/dev/sdX <span style="color: #4eee94;">conv</span>=fdatasync,sync,noerror
332 411
 </pre>
333 412
 </div>
334 413
 
@@ -344,9 +423,9 @@ There is still a software freedom issue with the Beaglebone Black, but it doesn'
344 423
 </div>
345 424
 </div>
346 425
 
347
-<div id="outline-container-sec-3" class="outline-2">
348
-<h2 id="sec-3">Building Disk Images</h2>
349
-<div class="outline-text-2" id="text-3">
426
+<div id="outline-container-orgda9e06f" class="outline-2">
427
+<h2 id="orgda9e06f">Building Disk Images</h2>
428
+<div class="outline-text-2" id="text-orgda9e06f">
350 429
 <p>
351 430
 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.
352 431
 </p>
@@ -356,7 +435,6 @@ First you will need to create an image. On a Debian based system (tested on Debi
356 435
 </p>
357 436
 
358 437
 <div class="org-src-container">
359
-
360 438
 <pre class="src src-bash">wget https://freedombone.net/downloads/source.tar.gz
361 439
 wget https://freedombone.net/downloads/source.tar.gz.asc
362 440
 </pre>
@@ -367,7 +445,6 @@ Check the signature:
367 445
 </p>
368 446
 
369 447
 <div class="org-src-container">
370
-
371 448
 <pre class="src src-bash">gpg --verify source.tar.gz.asc
372 449
 </pre>
373 450
 </div>
@@ -377,9 +454,8 @@ Install it:
377 454
 </p>
378 455
 
379 456
 <div class="org-src-container">
380
-
381 457
 <pre class="src src-bash">tar -xzvf source.tar.gz
382
-cd freedombone
458
+<span style="color: #f08080;">cd</span> freedombone
383 459
 git checkout buster
384 460
 sudo make install
385 461
 </pre>
@@ -390,7 +466,6 @@ Setup your build environment. If you're using Arch/Parabola substitute <i>debian
390 466
 </p>
391 467
 
392 468
 <div class="org-src-container">
393
-
394 469
 <pre class="src src-bash">freedombone-image --setup debian
395 470
 </pre>
396 471
 </div>
@@ -400,7 +475,6 @@ And then build the image:
400 475
 </p>
401 476
 
402 477
 <div class="org-src-container">
403
-
404 478
 <pre class="src src-bash">freedombone-image -t i386 -v meshclient
405 479
 </pre>
406 480
 </div>
@@ -410,7 +484,6 @@ If you don't have Atheros or free software compatible wifi adapter then you can
410 484
 </p>
411 485
 
412 486
 <div class="org-src-container">
413
-
414 487
 <pre class="src src-bash">freedombone-image -t i386 -v meshclient --insecure yes
415 488
 </pre>
416 489
 </div>
@@ -424,7 +497,6 @@ List what drives are on your system with:
424 497
 </p>
425 498
 
426 499
 <div class="org-src-container">
427
-
428 500
 <pre class="src src-bash">ls /dev/sd*
429 501
 </pre>
430 502
 </div>
@@ -438,9 +510,8 @@ You can now copy the image to the USB thumb drive, replacing <b>sdX</b> with the
438 510
 </p>
439 511
 
440 512
 <div class="org-src-container">
441
-
442
-<pre class="src src-bash">sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
443
-sudo dd bs=32M if=myimagefile.img of=/dev/sdX conv=fdatasync,sync,noerror
513
+<pre class="src src-bash">sudo dd <span style="color: #4eee94;">if</span>=/dev/zero <span style="color: #4eee94;">of</span>=/dev/sdX <span style="color: #4eee94;">bs</span>=32M <span style="color: #4eee94;">count</span>=8
514
+sudo dd <span style="color: #4eee94;">bs</span>=32M <span style="color: #4eee94;">if</span>=myimagefile.img <span style="color: #4eee94;">of</span>=/dev/sdX <span style="color: #4eee94;">conv</span>=fdatasync,sync,noerror
444 515
 </pre>
445 516
 </div>
446 517
 
@@ -461,7 +532,6 @@ You can also use single board computers (SBCs) such as the BeagleBone Black to m
461 532
 </p>
462 533
 
463 534
 <div class="org-src-container">
464
-
465 535
 <pre class="src src-bash">freedombone-image -t beagleboneblack -v mesh
466 536
 </pre>
467 537
 </div>
@@ -469,32 +539,26 @@ You can also use single board computers (SBCs) such as the BeagleBone Black to m
469 539
 <p>
470 540
 The resulting image can be copied to a microSD card, inserted into a Beaglebone Black and booted. Don't forget to plug in an Atheros USB wifi dongle.
471 541
 </p>
472
-</div>
473
-</div>
474
-</div>
475
-<div id="postamble" class="status">
476 542
 
477
-<style type="text/css">
478
-.back-to-top {
479
-    position: fixed;
480
-    bottom: 2em;
481
-    right: 0px;
482
-    text-decoration: none;
483
-    color: #000000;
484
-    background-color: rgba(235, 235, 235, 0.80);
485
-    font-size: 12px;
486
-    padding: 1em;
487
-    display: none;
488
-}
543
+<p>
544
+You can also use hardware other than the Beaglebone Black as mesh routers. Old laptops if any are available. You could build with:
545
+</p>
489 546
 
490
-.back-to-top:hover {
491
-    background-color: rgba(135, 135, 135, 0.50);
492
-}
493
-</style>
547
+<div class="org-src-container">
548
+<pre class="src src-bash">freedombone-image -t amd64 -v mesh --insecure yes
549
+</pre>
550
+</div>
494 551
 
495
-<div class="back-to-top">
496
-<a href="#top">Back to top</a> | <a href="mailto:bob@freedombone.net">E-mail me</a>
552
+<p>
553
+The "insecure" option adds proprietary wifi drivers so that you'll have the best chance of some random piece of hardware working.
554
+</p>
555
+</div>
497 556
 </div>
498 557
 </div>
558
+<div id="postamble" class="status">
559
+<p class="author">Author: Bob Mottram</p>
560
+<p class="date">Created: 2020-02-15 Sat 10:50</p>
561
+<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
562
+</div>
499 563
 </body>
500 564
 </html>

Loading…
Cancel
Save