소스 검색

Simplify installing packages for image building

Bob Mottram 8 년 전
부모
커밋
a9de4c96c5
5개의 변경된 파일160개의 추가작업 그리고 88개의 파일을 삭제
  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 파일 보기

@@ -29,13 +29,13 @@ Install the freedombone commands onto your laptop/desktop:
29 29
     cd freedombone
30 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 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 파일 보기

@@ -41,9 +41,13 @@ sudo make install
41 41
 Then install packages needed for building images:
42 42
 
43 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 51
 #+END_SRC
48 52
 
49 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 파일 보기


+ 80
- 1
src/freedombone-image 파일 보기

@@ -118,7 +118,81 @@ INSECURE='no'
118 118
 # a new identity at every shutdown/boot
119 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 196
     # create a setup script for a mesh router
123 197
     mesh_script_filename=$1
124 198
     echo "MY_USERNAME=${USERNAME}" > $mesh_script_filename
@@ -273,6 +347,11 @@ do
273 347
             shift
274 348
             INSECURE="$1"
275 349
             ;;
350
+        --setup)
351
+            shift
352
+            image_setup "$1"
353
+            exit 0
354
+            ;;
276 355
         *)
277 356
             # unknown option
278 357
             ;;

+ 68
- 79
website/EN/installation.html 파일 보기

@@ -3,7 +3,7 @@
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
-<!-- 2016-08-08 Mon 17:50 -->
6
+<!-- 2016-09-22 Thu 16:51 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title></title>
@@ -77,6 +77,7 @@
77 77
   pre.src-ledger:before { content: 'Ledger'; }
78 78
   pre.src-lisp:before { content: 'Lisp'; }
79 79
   pre.src-lilypond:before { content: 'Lilypond'; }
80
+  pre.src-lua:before { content: 'Lua'; }
80 81
   pre.src-matlab:before { content: 'MATLAB'; }
81 82
   pre.src-mscgen:before { content: 'Mscgen'; }
82 83
   pre.src-ocaml:before { content: 'Objective Caml'; }
@@ -254,11 +255,11 @@ for the JavaScript code in this tag.
254 255
 </colgroup>
255 256
 <tbody>
256 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 259
 </tr>
259 260
 
260 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 263
 </tr>
263 264
 
264 265
 <tr>
@@ -266,34 +267,34 @@ for the JavaScript code in this tag.
266 267
 </tr>
267 268
 
268 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 271
 </tr>
271 272
 
272 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 275
 </tr>
275 276
 
276 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 279
 </tr>
279 280
 
280 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 283
 </tr>
283 284
 
284 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 287
 </tr>
287 288
 
288 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 291
 </tr>
291 292
 </tbody>
292 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 298
 <p>
298 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 300
 </p>
@@ -303,7 +304,6 @@ Install the freedombone commands onto your laptop/desktop:
303 304
 </p>
304 305
 
305 306
 <div class="org-src-container">
306
-
307 307
 <pre class="src src-bash">sudo apt-get install git build-essential dialog
308 308
 git clone https://github.com/bashrc/freedombone
309 309
 <span class="org-builtin">cd</span> freedombone
@@ -316,10 +316,16 @@ Then install packages needed for building images:
316 316
 </p>
317 317
 
318 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 329
 </pre>
324 330
 </div>
325 331
 
@@ -328,7 +334,6 @@ A typical use case to build an 8GB image for a Beaglebone Black is as follows. Y
328 334
 </p>
329 335
 
330 336
 <div class="org-src-container">
331
-
332 337
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G
333 338
 </pre>
334 339
 </div>
@@ -338,7 +343,6 @@ If you prefer an advanced installation with all of the options available then us
338 343
 </p>
339 344
 
340 345
 <div class="org-src-container">
341
-
342 346
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G --minimal no
343 347
 </pre>
344 348
 </div>
@@ -348,7 +352,6 @@ To build a 64bit Virtualbox image:
348 352
 </p>
349 353
 
350 354
 <div class="org-src-container">
351
-
352 355
 <pre class="src src-bash">freedombone-image -t virtualbox-amd64 -s 8G
353 356
 </pre>
354 357
 </div>
@@ -358,7 +361,6 @@ To build a 64bit Qemu image:
358 361
 </p>
359 362
 
360 363
 <div class="org-src-container">
361
-
362 364
 <pre class="src src-bash">freedombone-image -t qemu-x86_64 -s 8G
363 365
 </pre>
364 366
 </div>
@@ -372,16 +374,15 @@ If the image build fails with an error such as "<i>Error reading from server. Re
372 374
 </p>
373 375
 
374 376
 <div class="org-src-container">
375
-
376 377
 <pre class="src src-bash">freedombone-image -t beaglebone -s 8G -m http://ftp.de.debian.org/debian
377 378
 </pre>
378 379
 </div>
379 380
 </div>
380 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 386
 <p>
386 387
 Before installing Freedombone you will need a few things.
387 388
 </p>
@@ -395,23 +396,22 @@ Before installing Freedombone you will need a few things.
395 396
 </ul>
396 397
 </div>
397 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 402
 <p>
402 403
 There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.
403 404
 </p>
404 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 410
 <p>
410 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 412
 </p>
412 413
 
413 414
 <div class="org-src-container">
414
-
415 415
 <pre class="src src-bash">su
416 416
 apt-get update
417 417
 apt-get -y install git dialog build-essential
@@ -424,9 +424,9 @@ freedombone menuconfig
424 424
 </div>
425 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 430
 <p>
431 431
 Currently the following boards are supported:
432 432
 </p>
@@ -445,7 +445,6 @@ If there is no existing image available then you can build one from scratch. See
445 445
 </p>
446 446
 
447 447
 <div class="org-src-container">
448
-
449 448
 <pre class="src src-bash">gpg --verify filename.img.asc
450 449
 </pre>
451 450
 </div>
@@ -455,7 +454,6 @@ And the hash with:
455 454
 </p>
456 455
 
457 456
 <div class="org-src-container">
458
-
459 457
 <pre class="src src-bash">sha256sum filename.img
460 458
 </pre>
461 459
 </div>
@@ -465,7 +463,6 @@ If the image is compressed then decompress it with:
465 463
 </p>
466 464
 
467 465
 <div class="org-src-container">
468
-
469 466
 <pre class="src src-bash">unxz filename.img.xz
470 467
 </pre>
471 468
 </div>
@@ -475,7 +472,6 @@ Then copy it to a microSD card. Depending on your system you may need an adaptor
475 472
 </p>
476 473
 
477 474
 <div class="org-src-container">
478
-
479 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 476
 </pre>
481 477
 </div>
@@ -485,7 +481,6 @@ Where <b>sdX</b> is the microSD drive. You can check which drive is the microSD
485 481
 </p>
486 482
 
487 483
 <div class="org-src-container">
488
-
489 484
 <pre class="src src-bash">ls /dev/sd*
490 485
 </pre>
491 486
 </div>
@@ -499,7 +494,6 @@ With the board connected and running you can ssh into the system with:
499 494
 </p>
500 495
 
501 496
 <div class="org-src-container">
502
-
503 497
 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
504 498
 </pre>
505 499
 </div>
@@ -510,15 +504,14 @@ Using the password 'freedombone'. Take a note of the new login password and then
510 504
 </div>
511 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 510
 <p>
517 511
 Virtualbox and Qemu are supported. You can run a 64 bit Qemu image with:
518 512
 </p>
519 513
 
520 514
 <div class="org-src-container">
521
-
522 515
 <pre class="src src-bash">qemu-system-x86_64 -m 1G filename.img
523 516
 </pre>
524 517
 </div>
@@ -534,42 +527,42 @@ The default login will be username 'fbone' and password 'freedombone'. Take a no
534 527
 </div>
535 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 533
 <p>
541 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 535
 </p>
543 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 541
 <p>
549 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 543
 </p>
551 544
 </div>
552 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 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 551
 </p>
559 552
 </div>
560 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 557
 <p>
565 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 559
 </p>
567 560
 </div>
568 561
 </div>
569 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 566
 <p>
574 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 568
 </p>
@@ -687,22 +680,21 @@ On your internet router, typically under firewall settings, open the following p
687 680
 </div>
688 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 686
 <p>
694 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 688
 </p>
696 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 693
 <p>
701 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 695
 </p>
703 696
 
704 697
 <div class="org-src-container">
705
-
706 698
 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
707 699
 </pre>
708 700
 </div>
@@ -712,15 +704,14 @@ Select <i>Administrator controls</i> then <i>Backup and Restore</i> then <i>Back
712 704
 </p>
713 705
 </div>
714 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 710
 <p>
719 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 712
 </p>
721 713
 
722 714
 <div class="org-src-container">
723
-
724 715
 <pre class="src src-bash">ssh myusername@mydomainname -p 2222
725 716
 </pre>
726 717
 </div>
@@ -735,15 +726,14 @@ Fragments are randomly assigned and so you will need at least three or four keyd
735 726
 </div>
736 727
 </div>
737 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 732
 <p>
742 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 734
 </p>
744 735
 
745 736
 <div class="org-src-container">
746
-
747 737
 <pre class="src src-bash">sudo apt-get update
748 738
 sudo apt-get install git dialog haveged build-essential
749 739
 git clone https://github.com/bashrc/freedombone
@@ -755,15 +745,14 @@ freedombone-client
755 745
 </div>
756 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 751
 <p>
762 752
 To administer the system after installation log in via ssh, become the root user and then launch the control panel.
763 753
 </p>
764 754
 
765 755
 <div class="org-src-container">
766
-
767 756
 <pre class="src src-bash">ssh myusername@freedombone.local -p 2222
768 757
 </pre>
769 758
 </div>