Browse Source

Simplify installing packages for image building

Bob Mottram 8 years ago
parent
commit
a9de4c96c5
5 changed files with 160 additions and 88 deletions
  1. 5
    5
      README.md
  2. 7
    3
      doc/EN/installation.org
  3. BIN
      man/freedombone-image.1.gz
  4. 80
    1
      src/freedombone-image
  5. 68
    79
      website/EN/installation.html

+ 5
- 5
README.md View File

29
     cd freedombone
29
     cd freedombone
30
     sudo make install
30
     sudo make install
31
 
31
 
32
-Then install packages needed for building images:
32
+Then install the necessary packages for building images, on a debian based system using:
33
 
33
 
34
+    freedombone-image --setup debian
34
 
35
 
35
-    sudo apt-get -y install build-essential git python-docutils mktorrent
36
-    sudo apt-get -y install vmdebootstrap xz-utils dosfstools btrfs-tools extlinux
37
-    sudo apt-get -y install python-distro-info mbr qemu-user-static binfmt-support
38
-    sudo apt-get -y install u-boot-tools qemu
36
+or on Parabola/Arch
37
+
38
+    freedombone-image --setup parabola
39
 
39
 
40
 A typical use case to build an 8GB image for a Beaglebone Black is as follows. You can change the size depending upon the capacity of your microSD card.
40
 A typical use case to build an 8GB image for a Beaglebone Black is as follows. You can change the size depending upon the capacity of your microSD card.
41
 
41
 

+ 7
- 3
doc/EN/installation.org View File

41
 Then install packages needed for building images:
41
 Then install packages needed for building images:
42
 
42
 
43
 #+BEGIN_SRC bash
43
 #+BEGIN_SRC bash
44
-sudo apt-get -y install python-docutils mktorrent vmdebootstrap xz-utils
45
-sudo apt-get -y install dosfstools btrfs-tools extlinux python-distro-info mbr
46
-sudo apt-get -y install qemu-user-static binfmt-support u-boot-tools qemu
44
+freedombone-image --setup debian
45
+#+END_SRC
46
+
47
+or on an Arch/Parabola system:
48
+
49
+#+BEGIN_SRC bash
50
+freedombone-image --setup parabola
47
 #+END_SRC
51
 #+END_SRC
48
 
52
 
49
 A typical use case to build an 8GB image for a Beaglebone Black is as follows. You can change the size depending upon the capacity of your microSD card.
53
 A typical use case to build an 8GB image for a Beaglebone Black is as follows. You can change the size depending upon the capacity of your microSD card.

BIN
man/freedombone-image.1.gz View File


+ 80
- 1
src/freedombone-image View File

118
 # a new identity at every shutdown/boot
118
 # a new identity at every shutdown/boot
119
 AMNESIC='no'
119
 AMNESIC='no'
120
 
120
 
121
-mesh_router_setup_script() {
121
+# Versions used for Arch/Parabola setup
122
+MBR_VERSION='1.1.11'
123
+DEBOOTSTRAP_VERSION='1.0.83'
124
+
125
+function image_setup {
126
+    setup_type=$1
127
+
128
+    case $setup_type in
129
+        debian|ubuntu|trisquel|mint)
130
+            sudo apt-get -y install build-essential libc6-dev-i386 gcc-multilib g++-multilib
131
+            sudo apt-get -y install git python-docutils mktorrent vmdebootstrap xz-utils
132
+            sudo apt-get -y install dosfstools btrfs-tools extlinux python-distro-info mbr
133
+            sudo apt-get -y install qemu-user-static binfmt-support u-boot-tools qemu
134
+            ;;
135
+        parabola|arch)
136
+            sudo pacman -S --noconfirm libc++ git gcc gcc-libs python-docutils mktorrent patch
137
+            sudo pacman -S --noconfirm debootstrap xz dosfstools btrfs-progs syslinux python-pip
138
+            sudo pacman -S --noconfirm qemu-static binfmt-qemu-static uboot-tools qemu parted
139
+            sudo pacman -S --noconfirm dpkg-devtools bin86
140
+            mkdir ~/develop
141
+            if [ ! -d ~/develop/python-cliapp ]; then
142
+                git clone git://git.liw.fi/cliapp ~/develop/python-cliapp
143
+            fi
144
+            sudo pacman -S --noconfirm python2-coverage python2-pytest-cov python2-sphinx
145
+            sudo pacman -S --noconfirm autopep8 python2-pylint python2-yaml python2-xdg python2-pip
146
+            cd ~/develop/python-cliapp
147
+            sudo python2 setup.py install
148
+            sudo pip2 install distro-info logging
149
+            if [ ! -d ~/develop/mbr ]; then
150
+                git clone https://aur.archlinux.org/mbr.git ~/develop/mbr
151
+            fi
152
+            cd ~/develop/mbr
153
+            makepkg
154
+            tar -xzvf mbr-${MBR_VERSION}.tar.gz
155
+            cd ~/develop/mbr/mbr-${MBR_VERSION}
156
+            cp ../*.patch .
157
+            patch -p0 < *.patch
158
+            ./configure
159
+            make
160
+            sudo make install
161
+            if [ ! -f /usr/local/sbin/install-mbr ]; then
162
+                echo $'Failed to install mbr'
163
+                return
164
+            fi
165
+            sudo cp /usr/local/sbin/install-mbr /sbin
166
+            if [ ! -d ~/develop/multipath-tools ]; then
167
+                git clone https://aur.archlinux.org/multipath-tools.git ~/develop/multipath-tools
168
+            fi
169
+            sudo pacman -S device-mapper libaio liburcu fakeroot
170
+            cd ~/develop/multipath-tools
171
+            makepkg
172
+            makepkg -i
173
+            cd ~/develop
174
+            if [ ! -f ~/develop/debootstrap_${DEBOOTSTRAP_VERSION}.tar.gz ]; then
175
+                wget http://http.debian.net/debian/pool/main/d/debootstrap/debootstrap_${DEBOOTSTRAP_VERSION}.tar.gz
176
+            fi
177
+            if [ ! -f ~/develop/debootstrap_${DEBOOTSTRAP_VERSION}.tar.gz ]; then
178
+                echo $'Failed to download debootstrap code'
179
+                return
180
+            fi
181
+            if [ ! -d ~/develop/debootstrap/scripts ]; then
182
+                tar -xzvf debootstrap_${DEBOOTSTRAP_VERSION}.tar.gz
183
+            fi
184
+            sudo mv ~/develop/debootstrap/scripts/* /usr/share/debootstrap/scripts
185
+            ;;
186
+        *)
187
+            echo $'Unkown operating system'
188
+            return
189
+            ;;
190
+    esac
191
+
192
+    echo $'Setup complete'
193
+}
194
+
195
+function mesh_router_setup_script {
122
     # create a setup script for a mesh router
196
     # create a setup script for a mesh router
123
     mesh_script_filename=$1
197
     mesh_script_filename=$1
124
     echo "MY_USERNAME=${USERNAME}" > $mesh_script_filename
198
     echo "MY_USERNAME=${USERNAME}" > $mesh_script_filename
273
             shift
347
             shift
274
             INSECURE="$1"
348
             INSECURE="$1"
275
             ;;
349
             ;;
350
+        --setup)
351
+            shift
352
+            image_setup "$1"
353
+            exit 0
354
+            ;;
276
         *)
355
         *)
277
             # unknown option
356
             # unknown option
278
             ;;
357
             ;;

+ 68
- 79
website/EN/installation.html View File

3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5
 <head>
5
 <head>
6
-<!-- 2016-08-08 Mon 17:50 -->
6
+<!-- 2016-09-22 Thu 16:51 -->
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9
 <title></title>
9
 <title></title>
77
   pre.src-ledger:before { content: 'Ledger'; }
77
   pre.src-ledger:before { content: 'Ledger'; }
78
   pre.src-lisp:before { content: 'Lisp'; }
78
   pre.src-lisp:before { content: 'Lisp'; }
79
   pre.src-lilypond:before { content: 'Lilypond'; }
79
   pre.src-lilypond:before { content: 'Lilypond'; }
80
+  pre.src-lua:before { content: 'Lua'; }
80
   pre.src-matlab:before { content: 'MATLAB'; }
81
   pre.src-matlab:before { content: 'MATLAB'; }
81
   pre.src-mscgen:before { content: 'Mscgen'; }
82
   pre.src-mscgen:before { content: 'Mscgen'; }
82
   pre.src-ocaml:before { content: 'Objective Caml'; }
83
   pre.src-ocaml:before { content: 'Objective Caml'; }
254
 </colgroup>
255
 </colgroup>
255
 <tbody>
256
 <tbody>
256
 <tr>
257
 <tr>
257
-<td class="org-left"><a href="#org23d16e3">Building an image for a Single Board Computer or Virtual Machine</a></td>
258
+<td class="org-left"><a href="#orgd79c22b">Building an image for a Single Board Computer or Virtual Machine</a></td>
258
 </tr>
259
 </tr>
259
 
260
 
260
 <tr>
261
 <tr>
261
-<td class="org-left"><a href="#org623c1a8">Checklist</a></td>
262
+<td class="org-left"><a href="#org55bbed6">Checklist</a></td>
262
 </tr>
263
 </tr>
263
 
264
 
264
 <tr>
265
 <tr>
266
 </tr>
267
 </tr>
267
 
268
 
268
 <tr>
269
 <tr>
269
-<td class="org-left"><a href="#org9a7912d">Installation</a></td>
270
+<td class="org-left"><a href="#org017cb16">Installation</a></td>
270
 </tr>
271
 </tr>
271
 
272
 
272
 <tr>
273
 <tr>
273
-<td class="org-left"><a href="#org0f3e01c">Social Key Management - the 'Unforgettable Key'</a></td>
274
+<td class="org-left"><a href="#org11c44aa">Social Key Management - the 'Unforgettable Key'</a></td>
274
 </tr>
275
 </tr>
275
 
276
 
276
 <tr>
277
 <tr>
277
-<td class="org-left"><a href="#org75a19aa">Final Setup</a></td>
278
+<td class="org-left"><a href="#org90d37f2">Final Setup</a></td>
278
 </tr>
279
 </tr>
279
 
280
 
280
 <tr>
281
 <tr>
281
-<td class="org-left"><a href="#org31ec356">Keydrives</a></td>
282
+<td class="org-left"><a href="#orge4309c7">Keydrives</a></td>
282
 </tr>
283
 </tr>
283
 
284
 
284
 <tr>
285
 <tr>
285
-<td class="org-left"><a href="#org098f31b">On Client Machines</a></td>
286
+<td class="org-left"><a href="#org0b60a26">On Client Machines</a></td>
286
 </tr>
287
 </tr>
287
 
288
 
288
 <tr>
289
 <tr>
289
-<td class="org-left"><a href="#org77ebb5b">Administering the system</a></td>
290
+<td class="org-left"><a href="#org9c63345">Administering the system</a></td>
290
 </tr>
291
 </tr>
291
 </tbody>
292
 </tbody>
292
 </table>
293
 </table>
293
 
294
 
294
-<div id="outline-container-org23d16e3" class="outline-2">
295
-<h2 id="org23d16e3">Building an image for a Single Board Computer or Virtual Machine</h2>
296
-<div class="outline-text-2" id="text-org23d16e3">
295
+<div id="outline-container-orgd79c22b" class="outline-2">
296
+<h2 id="orgd79c22b">Building an image for a Single Board Computer or Virtual Machine</h2>
297
+<div class="outline-text-2" id="text-orgd79c22b">
297
 <p>
298
 <p>
298
 You don't have to trust images downloaded from random internet locations signed with untrusted keys. You can build one from scratch yourself, and this is the recommended procedure for maximum security. For guidance on how to build images see the manpage for the <b>freedombone-image</b> command.
299
 You don't have to trust images downloaded from random internet locations signed with untrusted keys. You can build one from scratch yourself, and this is the recommended procedure for maximum security. For guidance on how to build images see the manpage for the <b>freedombone-image</b> command.
299
 </p>
300
 </p>
303
 </p>
304
 </p>
304
 
305
 
305
 <div class="org-src-container">
306
 <div class="org-src-container">
306
-
307
 <pre class="src src-bash">sudo apt-get install git build-essential dialog
307
 <pre class="src src-bash">sudo apt-get install git build-essential dialog
308
 git clone https://github.com/bashrc/freedombone
308
 git clone https://github.com/bashrc/freedombone
309
 <span class="org-builtin">cd</span> freedombone
309
 <span class="org-builtin">cd</span> freedombone
316
 </p>
316
 </p>
317
 
317
 
318
 <div class="org-src-container">
318
 <div class="org-src-container">
319
+<pre class="src src-bash">freedombone-image --setup debian
320
+</pre>
321
+</div>
322
+
323
+<p>
324
+or on an Arch/Parabola system:
325
+</p>
319
 
326
 
320
-<pre class="src src-bash">sudo apt-get -y install python-docutils mktorrent vmdebootstrap xz-utils
321
-sudo apt-get -y install dosfstools btrfs-tools extlinux python-distro-info mbr
322
-sudo apt-get -y install qemu-user-static binfmt-support u-boot-tools qemu
327
+<div class="org-src-container">
328
+<pre class="src src-bash">freedombone-image --setup parabola
323
 </pre>
329
 </pre>
324
 </div>
330
 </div>
325
 
331
 
328
 </p>
334
 </p>
329
 
335
 
330
 <div class="org-src-container">
336
 <div class="org-src-container">
331
-
332
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G
337
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G
333
 </pre>
338
 </pre>
334
 </div>
339
 </div>
338
 </p>
343
 </p>
339
 
344
 
340
 <div class="org-src-container">
345
 <div class="org-src-container">
341
-
342
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G --minimal no
346
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G --minimal no
343
 </pre>
347
 </pre>
344
 </div>
348
 </div>
348
 </p>
352
 </p>
349
 
353
 
350
 <div class="org-src-container">
354
 <div class="org-src-container">
351
-
352
 <pre class="src src-bash">freedombone-image -t virtualbox-amd64 -s 8G
355
 <pre class="src src-bash">freedombone-image -t virtualbox-amd64 -s 8G
353
 </pre>
356
 </pre>
354
 </div>
357
 </div>
358
 </p>
361
 </p>
359
 
362
 
360
 <div class="org-src-container">
363
 <div class="org-src-container">
361
-
362
 <pre class="src src-bash">freedombone-image -t qemu-x86_64 -s 8G
364
 <pre class="src src-bash">freedombone-image -t qemu-x86_64 -s 8G
363
 </pre>
365
 </pre>
364
 </div>
366
 </div>
372
 </p>
374
 </p>
373
 
375
 
374
 <div class="org-src-container">
376
 <div class="org-src-container">
375
-
376
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G -m http://ftp.de.debian.org/debian
377
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G -m http://ftp.de.debian.org/debian
377
 </pre>
378
 </pre>
378
 </div>
379
 </div>
379
 </div>
380
 </div>
380
 </div>
381
 </div>
381
 
382
 
382
-<div id="outline-container-org623c1a8" class="outline-2">
383
-<h2 id="org623c1a8">Checklist</h2>
384
-<div class="outline-text-2" id="text-org623c1a8">
383
+<div id="outline-container-org55bbed6" class="outline-2">
384
+<h2 id="org55bbed6">Checklist</h2>
385
+<div class="outline-text-2" id="text-org55bbed6">
385
 <p>
386
 <p>
386
 Before installing Freedombone you will need a few things.
387
 Before installing Freedombone you will need a few things.
387
 </p>
388
 </p>
395
 </ul>
396
 </ul>
396
 </div>
397
 </div>
397
 </div>
398
 </div>
398
-<div id="outline-container-org9a7912d" class="outline-2">
399
-<h2 id="org9a7912d">Installation</h2>
400
-<div class="outline-text-2" id="text-org9a7912d">
399
+<div id="outline-container-org017cb16" class="outline-2">
400
+<h2 id="org017cb16">Installation</h2>
401
+<div class="outline-text-2" id="text-org017cb16">
401
 <p>
402
 <p>
402
 There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.
403
 There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.
403
 </p>
404
 </p>
404
 </div>
405
 </div>
405
 
406
 
406
-<div id="outline-container-org61e782a" class="outline-3">
407
-<h3 id="org61e782a">On a Laptop, Netbook or Desktop machine</h3>
408
-<div class="outline-text-3" id="text-org61e782a">
407
+<div id="outline-container-orgba36f85" class="outline-3">
408
+<h3 id="orgba36f85">On a Laptop, Netbook or Desktop machine</h3>
409
+<div class="outline-text-3" id="text-orgba36f85">
409
 <p>
410
 <p>
410
 If you have an existing system, such as an old laptop or netbook which you can leave running as a server, then install a new version of Debian Jessie onto it. During the Debian install you won't need the print server or the desktop environment, and unchecking those will reduce the attack surface. Once Debian enter the following commands:
411
 If you have an existing system, such as an old laptop or netbook which you can leave running as a server, then install a new version of Debian Jessie onto it. During the Debian install you won't need the print server or the desktop environment, and unchecking those will reduce the attack surface. Once Debian enter the following commands:
411
 </p>
412
 </p>
412
 
413
 
413
 <div class="org-src-container">
414
 <div class="org-src-container">
414
-
415
 <pre class="src src-bash">su
415
 <pre class="src src-bash">su
416
 apt-get update
416
 apt-get update
417
 apt-get -y install git dialog build-essential
417
 apt-get -y install git dialog build-essential
424
 </div>
424
 </div>
425
 </div>
425
 </div>
426
 
426
 
427
-<div id="outline-container-orge952622" class="outline-3">
428
-<h3 id="orge952622">On a single board computer (SBC)</h3>
429
-<div class="outline-text-3" id="text-orge952622">
427
+<div id="outline-container-org7010e61" class="outline-3">
428
+<h3 id="org7010e61">On a single board computer (SBC)</h3>
429
+<div class="outline-text-3" id="text-org7010e61">
430
 <p>
430
 <p>
431
 Currently the following boards are supported:
431
 Currently the following boards are supported:
432
 </p>
432
 </p>
445
 </p>
445
 </p>
446
 
446
 
447
 <div class="org-src-container">
447
 <div class="org-src-container">
448
-
449
 <pre class="src src-bash">gpg --verify filename.img.asc
448
 <pre class="src src-bash">gpg --verify filename.img.asc
450
 </pre>
449
 </pre>
451
 </div>
450
 </div>
455
 </p>
454
 </p>
456
 
455
 
457
 <div class="org-src-container">
456
 <div class="org-src-container">
458
-
459
 <pre class="src src-bash">sha256sum filename.img
457
 <pre class="src src-bash">sha256sum filename.img
460
 </pre>
458
 </pre>
461
 </div>
459
 </div>
465
 </p>
463
 </p>
466
 
464
 
467
 <div class="org-src-container">
465
 <div class="org-src-container">
468
-
469
 <pre class="src src-bash">unxz filename.img.xz
466
 <pre class="src src-bash">unxz filename.img.xz
470
 </pre>
467
 </pre>
471
 </div>
468
 </div>
475
 </p>
472
 </p>
476
 
473
 
477
 <div class="org-src-container">
474
 <div class="org-src-container">
478
-
479
 <pre class="src src-bash">sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=filename.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
475
 <pre class="src src-bash">sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=filename.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
480
 </pre>
476
 </pre>
481
 </div>
477
 </div>
485
 </p>
481
 </p>
486
 
482
 
487
 <div class="org-src-container">
483
 <div class="org-src-container">
488
-
489
 <pre class="src src-bash">ls /dev/sd*
484
 <pre class="src src-bash">ls /dev/sd*
490
 </pre>
485
 </pre>
491
 </div>
486
 </div>
499
 </p>
494
 </p>
500
 
495
 
501
 <div class="org-src-container">
496
 <div class="org-src-container">
502
-
503
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
497
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
504
 </pre>
498
 </pre>
505
 </div>
499
 </div>
510
 </div>
504
 </div>
511
 </div>
505
 </div>
512
 
506
 
513
-<div id="outline-container-orgffa792a" class="outline-3">
514
-<h3 id="orgffa792a">As a Virtual Machine</h3>
515
-<div class="outline-text-3" id="text-orgffa792a">
507
+<div id="outline-container-org9eb1542" class="outline-3">
508
+<h3 id="org9eb1542">As a Virtual Machine</h3>
509
+<div class="outline-text-3" id="text-org9eb1542">
516
 <p>
510
 <p>
517
 Virtualbox and Qemu are supported. You can run a 64 bit Qemu image with:
511
 Virtualbox and Qemu are supported. You can run a 64 bit Qemu image with:
518
 </p>
512
 </p>
519
 
513
 
520
 <div class="org-src-container">
514
 <div class="org-src-container">
521
-
522
 <pre class="src src-bash">qemu-system-x86_64 -m 1G filename.img
515
 <pre class="src src-bash">qemu-system-x86_64 -m 1G filename.img
523
 </pre>
516
 </pre>
524
 </div>
517
 </div>
534
 </div>
527
 </div>
535
 </div>
528
 </div>
536
 
529
 
537
-<div id="outline-container-org0f3e01c" class="outline-2">
538
-<h2 id="org0f3e01c">Social Key Management - the 'Unforgettable Key'</h2>
539
-<div class="outline-text-2" id="text-org0f3e01c">
530
+<div id="outline-container-org11c44aa" class="outline-2">
531
+<h2 id="org11c44aa">Social Key Management - the 'Unforgettable Key'</h2>
532
+<div class="outline-text-2" id="text-org11c44aa">
540
 <p>
533
 <p>
541
 During the install procedure you will be asked if you wish to import GPG keys. If you don't already possess GPG keys then just select "Ok" and they will be generated during the install. If you do already have GPG keys then there are a few possibilities
534
 During the install procedure you will be asked if you wish to import GPG keys. If you don't already possess GPG keys then just select "Ok" and they will be generated during the install. If you do already have GPG keys then there are a few possibilities
542
 </p>
535
 </p>
543
 </div>
536
 </div>
544
 
537
 
545
-<div id="outline-container-orgae3b8ca" class="outline-3">
546
-<h3 id="orgae3b8ca">You have the gnupg keyring on an encrypted USB drive</h3>
547
-<div class="outline-text-3" id="text-orgae3b8ca">
538
+<div id="outline-container-orgbf3c5bf" class="outline-3">
539
+<h3 id="orgbf3c5bf">You have the gnupg keyring on an encrypted USB drive</h3>
540
+<div class="outline-text-3" id="text-orgbf3c5bf">
548
 <p>
541
 <p>
549
 If you previously made a master keydrive containing the full keyring (the .gnupg directory). This is the most straightforward case, but not as secure as splitting the key into fragments.
542
 If you previously made a master keydrive containing the full keyring (the .gnupg directory). This is the most straightforward case, but not as secure as splitting the key into fragments.
550
 </p>
543
 </p>
551
 </div>
544
 </div>
552
 </div>
545
 </div>
553
-<div id="outline-container-org873fe08" class="outline-3">
554
-<h3 id="org873fe08">You have a number of key fragments on USB drives retrieved from friends</h3>
555
-<div class="outline-text-3" id="text-org873fe08">
546
+<div id="outline-container-org17a4ad3" class="outline-3">
547
+<h3 id="org17a4ad3">You have a number of key fragments on USB drives retrieved from friends</h3>
548
+<div class="outline-text-3" id="text-org17a4ad3">
556
 <p>
549
 <p>
557
-If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more <a href="#org31ec356">Keydrives</a>.
550
+If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more <a href="#orge4309c7">Keydrives</a>.
558
 </p>
551
 </p>
559
 </div>
552
 </div>
560
 </div>
553
 </div>
561
-<div id="outline-container-org1562fd4" class="outline-3">
562
-<h3 id="org1562fd4">You can specify some ssh login details for friends servers containing key fragments</h3>
563
-<div class="outline-text-3" id="text-org1562fd4">
554
+<div id="outline-container-orgd982332" class="outline-3">
555
+<h3 id="orgd982332">You can specify some ssh login details for friends servers containing key fragments</h3>
556
+<div class="outline-text-3" id="text-orgd982332">
564
 <p>
557
 <p>
565
 Enter three or more sets of login details and the installer will try to retrieve key fragments and then assemble them into the full key. This only works if you previously were using remote backups and had social key management enabled.
558
 Enter three or more sets of login details and the installer will try to retrieve key fragments and then assemble them into the full key. This only works if you previously were using remote backups and had social key management enabled.
566
 </p>
559
 </p>
567
 </div>
560
 </div>
568
 </div>
561
 </div>
569
 </div>
562
 </div>
570
-<div id="outline-container-org75a19aa" class="outline-2">
571
-<h2 id="org75a19aa">Final Setup</h2>
572
-<div class="outline-text-2" id="text-org75a19aa">
563
+<div id="outline-container-org90d37f2" class="outline-2">
564
+<h2 id="org90d37f2">Final Setup</h2>
565
+<div class="outline-text-2" id="text-org90d37f2">
573
 <p>
566
 <p>
574
 Any manual post-installation setup instructions or passwords can be found in /home/username/README. You should remove any passwords from that file and store them within a password manager such as KeepassX.
567
 Any manual post-installation setup instructions or passwords can be found in /home/username/README. You should remove any passwords from that file and store them within a password manager such as KeepassX.
575
 </p>
568
 </p>
687
 </div>
680
 </div>
688
 </div>
681
 </div>
689
 
682
 
690
-<div id="outline-container-org31ec356" class="outline-2">
691
-<h2 id="org31ec356">Keydrives</h2>
692
-<div class="outline-text-2" id="text-org31ec356">
683
+<div id="outline-container-orge4309c7" class="outline-2">
684
+<h2 id="orge4309c7">Keydrives</h2>
685
+<div class="outline-text-2" id="text-orge4309c7">
693
 <p>
686
 <p>
694
 After installing for the first time it's a good idea to create some keydrives. These will store your gpg key so that if all else fails you will still be able to restore from backup. There are two ways to do this:
687
 After installing for the first time it's a good idea to create some keydrives. These will store your gpg key so that if all else fails you will still be able to restore from backup. There are two ways to do this:
695
 </p>
688
 </p>
696
 </div>
689
 </div>
697
-<div id="outline-container-org712e9bf" class="outline-3">
698
-<h3 id="org712e9bf">Master Keydrive</h3>
699
-<div class="outline-text-3" id="text-org712e9bf">
690
+<div id="outline-container-org3f9bab9" class="outline-3">
691
+<h3 id="org3f9bab9">Master Keydrive</h3>
692
+<div class="outline-text-3" id="text-org3f9bab9">
700
 <p>
693
 <p>
701
 This is the traditional security model in which you carry your full keyring on an encrypted USB drive. To make a master keydrive first format a USB drive as a LUKS encrypted drive. In Ubuntu this can be <a href="https://help.ubuntu.com/community/EncryptedFilesystemsOnRemovableStorage">done from the <i>Disk Utility</i> application</a>. Then plug it into the Freedombone system, then from your local machine run:
694
 This is the traditional security model in which you carry your full keyring on an encrypted USB drive. To make a master keydrive first format a USB drive as a LUKS encrypted drive. In Ubuntu this can be <a href="https://help.ubuntu.com/community/EncryptedFilesystemsOnRemovableStorage">done from the <i>Disk Utility</i> application</a>. Then plug it into the Freedombone system, then from your local machine run:
702
 </p>
695
 </p>
703
 
696
 
704
 <div class="org-src-container">
697
 <div class="org-src-container">
705
-
706
 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
698
 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
707
 </pre>
699
 </pre>
708
 </div>
700
 </div>
712
 </p>
704
 </p>
713
 </div>
705
 </div>
714
 </div>
706
 </div>
715
-<div id="outline-container-org0d7ec4e" class="outline-3">
716
-<h3 id="org0d7ec4e">Fragment keydrives</h3>
717
-<div class="outline-text-3" id="text-org0d7ec4e">
707
+<div id="outline-container-orgad83839" class="outline-3">
708
+<h3 id="orgad83839">Fragment keydrives</h3>
709
+<div class="outline-text-3" id="text-orgad83839">
718
 <p>
710
 <p>
719
 This breaks your GPG key into a number of fragments and randomly selects one to add to the USB drive. First format a USB drive as a LUKS encrypted drive. In Ubuntu this <a href="https://help.ubuntu.com/community/EncryptedFilesystemsOnRemovableStorage">can be done from the <i>Disk Utility</i> application</a>. Plug it into the Freedombone system then from your local machine run the following commands:
711
 This breaks your GPG key into a number of fragments and randomly selects one to add to the USB drive. First format a USB drive as a LUKS encrypted drive. In Ubuntu this <a href="https://help.ubuntu.com/community/EncryptedFilesystemsOnRemovableStorage">can be done from the <i>Disk Utility</i> application</a>. Plug it into the Freedombone system then from your local machine run the following commands:
720
 </p>
712
 </p>
721
 
713
 
722
 <div class="org-src-container">
714
 <div class="org-src-container">
723
-
724
 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
715
 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
725
 </pre>
716
 </pre>
726
 </div>
717
 </div>
735
 </div>
726
 </div>
736
 </div>
727
 </div>
737
 </div>
728
 </div>
738
-<div id="outline-container-org098f31b" class="outline-2">
739
-<h2 id="org098f31b">On Client Machines</h2>
740
-<div class="outline-text-2" id="text-org098f31b">
729
+<div id="outline-container-org0b60a26" class="outline-2">
730
+<h2 id="org0b60a26">On Client Machines</h2>
731
+<div class="outline-text-2" id="text-org0b60a26">
741
 <p>
732
 <p>
742
 You can configure laptops or desktop machines which connect to the Freedombone server in the following way. This alters encryption settings to improve overall security.
733
 You can configure laptops or desktop machines which connect to the Freedombone server in the following way. This alters encryption settings to improve overall security.
743
 </p>
734
 </p>
744
 
735
 
745
 <div class="org-src-container">
736
 <div class="org-src-container">
746
-
747
 <pre class="src src-bash">sudo apt-get update
737
 <pre class="src src-bash">sudo apt-get update
748
 sudo apt-get install git dialog haveged build-essential
738
 sudo apt-get install git dialog haveged build-essential
749
 git clone https://github.com/bashrc/freedombone
739
 git clone https://github.com/bashrc/freedombone
755
 </div>
745
 </div>
756
 </div>
746
 </div>
757
 
747
 
758
-<div id="outline-container-org77ebb5b" class="outline-2">
759
-<h2 id="org77ebb5b">Administering the system</h2>
760
-<div class="outline-text-2" id="text-org77ebb5b">
748
+<div id="outline-container-org9c63345" class="outline-2">
749
+<h2 id="org9c63345">Administering the system</h2>
750
+<div class="outline-text-2" id="text-org9c63345">
761
 <p>
751
 <p>
762
 To administer the system after installation log in via ssh, become the root user and then launch the control panel.
752
 To administer the system after installation log in via ssh, become the root user and then launch the control panel.
763
 </p>
753
 </p>
764
 
754
 
765
 <div class="org-src-container">
755
 <div class="org-src-container">
766
-
767
 <pre class="src src-bash">ssh myusername@freedombone.local -p 2222
756
 <pre class="src src-bash">ssh myusername@freedombone.local -p 2222
768
 </pre>
757
 </pre>
769
 </div>
758
 </div>