Browse Source

Support for pcduino3 board

Bob Mottram 7 years ago
parent
commit
09e8c010e4

+ 1
- 0
doc/EN/installation.org View File

108
  * [[https://beagleboard.org/BLACK][Beaglebone Black]]
108
  * [[https://beagleboard.org/BLACK][Beaglebone Black]]
109
  * [[https://linux-sunxi.org/Cubietech_Cubieboard2][Cubieboard 2]]
109
  * [[https://linux-sunxi.org/Cubietech_Cubieboard2][Cubieboard 2]]
110
  * [[https://linux-sunxi.org/Cubietruck][Cubietruck (Cubieboard 3)]]
110
  * [[https://linux-sunxi.org/Cubietruck][Cubietruck (Cubieboard 3)]]
111
+ * [[https://www.sparkfun.com/products/retired/12856][PCDuino3]]
111
  * [[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME/open-source-hardware][olinuxino Lime]]
112
  * [[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME/open-source-hardware][olinuxino Lime]]
112
  * [[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware][olinuxino Lime2]]
113
  * [[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware][olinuxino Lime2]]
113
  * [[https://www.olimex.com/Products/OlinuXino/A20/A20-OlinuXino-MICRO/open-source-hardware][olinuxino Micro]]
114
  * [[https://www.olimex.com/Products/OlinuXino/A20/A20-OlinuXino-MICRO/open-source-hardware][olinuxino Micro]]

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


BIN
man/freedombone.1.gz View File


+ 23
- 0
src/freedombone-image-hardware-setup View File

224
     echo "rtc_sunxi" >> /etc/initramfs-tools/modules
224
     echo "rtc_sunxi" >> /etc/initramfs-tools/modules
225
 }
225
 }
226
 
226
 
227
+
228
+setup_flash_kernel() {
229
+    if [ ! -d /etc/flash-kernel ] ; then
230
+       mkdir /etc/flash-kernel
231
+    fi
232
+    echo -n "$1" > /etc/flash-kernel/machine
233
+
234
+    command_line=""
235
+    if [ -n "$2" ] ; then
236
+        command_line="console=$2"
237
+    fi
238
+
239
+    if [ -n "$command_line" ] ; then
240
+        echo flash-kernel flash-kernel/linux_cmdline string "$command_line" | debconf-set-selections
241
+    fi
242
+
243
+    apt-get install -y flash-kernel
244
+}
245
+
227
 case "$MACHINE" in
246
 case "$MACHINE" in
228
     beaglebone)
247
     beaglebone)
229
         beaglebone_setup_boot
248
         beaglebone_setup_boot
257
         a20_setup_boot sun7i-a20-cubieboard2.dtb
276
         a20_setup_boot sun7i-a20-cubieboard2.dtb
258
         enable_serial_console ttyS0
277
         enable_serial_console ttyS0
259
         ;;
278
         ;;
279
+    pcduino3)
280
+        a20_setup_boot sun7i-a20-pcduino3.dtb
281
+        enable_serial_console ttyS0
282
+        ;;
260
 esac
283
 esac

+ 1
- 1
src/freedombone-image-make View File

132
  --roottype btrfs \
132
  --roottype btrfs \
133
 "
133
 "
134
         ;;
134
         ;;
135
-    cubietruck | a20-olinuxino-lime | a20-olinuxino-lime2 | a20-olinuxino-micro | cubieboard2)
135
+    cubietruck | a20-olinuxino-lime | a20-olinuxino-lime2 | a20-olinuxino-micro | cubieboard2 | pcduino3)
136
         extra_pkgs="$a20_pkgs"
136
         extra_pkgs="$a20_pkgs"
137
         extra_opts="\
137
         extra_opts="\
138
  --variant minbase \
138
  --variant minbase \

+ 11
- 0
src/freedombone-image-makefile View File

119
 	$(SIGN)
119
 	$(SIGN)
120
 	@echo "Build complete."
120
 	@echo "Build complete."
121
 
121
 
122
+# build PCDuino3 SD card image
123
+pcduino3: prep
124
+	$(eval ARCHITECTURE = armhf)
125
+	$(eval MACHINE = pcduino3)
126
+	$(MAKE_IMAGE)
127
+	@rm -f $(ARCHIVE)
128
+	$(XZ) $(IMAGE)
129
+	@echo ""
130
+	$(SIGN)
131
+	@echo "Build complete."
132
+
122
 # build CubieTruck SD card image
133
 # build CubieTruck SD card image
123
 cubietruck: prep
134
 cubietruck: prep
124
 	$(eval ARCHITECTURE = armhf)
135
 	$(eval ARCHITECTURE = armhf)

+ 59
- 58
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
-<!-- 2017-07-03 Mon 12:29 -->
6
+<!-- 2017-08-27 Sun 19:44 -->
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>
256
 </colgroup>
256
 </colgroup>
257
 <tbody>
257
 <tbody>
258
 <tr>
258
 <tr>
259
-<td class="org-left"><a href="#org9ae206a">Building an image for a Single Board Computer or Virtual Machine</a></td>
259
+<td class="org-left"><a href="#orgf33fa48">Building an image for a Single Board Computer or Virtual Machine</a></td>
260
 </tr>
260
 </tr>
261
 
261
 
262
 <tr>
262
 <tr>
263
-<td class="org-left"><a href="#org31945c3">Checklist</a></td>
263
+<td class="org-left"><a href="#org5e8535e">Checklist</a></td>
264
 </tr>
264
 </tr>
265
 
265
 
266
 <tr>
266
 <tr>
268
 </tr>
268
 </tr>
269
 
269
 
270
 <tr>
270
 <tr>
271
-<td class="org-left"><a href="#org0f2759f">Installation</a></td>
271
+<td class="org-left"><a href="#org66f5148">Installation</a></td>
272
 </tr>
272
 </tr>
273
 
273
 
274
 <tr>
274
 <tr>
275
-<td class="org-left"><a href="#orgbdecc1e">Social Key Management - the 'Unforgettable Key'</a></td>
275
+<td class="org-left"><a href="#org60cbf3c">Social Key Management - the 'Unforgettable Key'</a></td>
276
 </tr>
276
 </tr>
277
 
277
 
278
 <tr>
278
 <tr>
279
-<td class="org-left"><a href="#org75caec3">Final Setup</a></td>
279
+<td class="org-left"><a href="#org07d21e3">Final Setup</a></td>
280
 </tr>
280
 </tr>
281
 
281
 
282
 <tr>
282
 <tr>
283
-<td class="org-left"><a href="#org4ec5353">Keydrives</a></td>
283
+<td class="org-left"><a href="#org214cad8">Keydrives</a></td>
284
 </tr>
284
 </tr>
285
 
285
 
286
 <tr>
286
 <tr>
287
-<td class="org-left"><a href="#org125e66b">On Client Machines</a></td>
287
+<td class="org-left"><a href="#org91e37f6">On Client Machines</a></td>
288
 </tr>
288
 </tr>
289
 
289
 
290
 <tr>
290
 <tr>
291
-<td class="org-left"><a href="#orgf76a31b">Administering the system</a></td>
291
+<td class="org-left"><a href="#org9748f8d">Administering the system</a></td>
292
 </tr>
292
 </tr>
293
 </tbody>
293
 </tbody>
294
 </table>
294
 </table>
295
 
295
 
296
-<div id="outline-container-org9ae206a" class="outline-2">
297
-<h2 id="org9ae206a">Building an image for a Single Board Computer or Virtual Machine</h2>
298
-<div class="outline-text-2" id="text-org9ae206a">
296
+<div id="outline-container-orgf33fa48" class="outline-2">
297
+<h2 id="orgf33fa48">Building an image for a Single Board Computer or Virtual Machine</h2>
298
+<div class="outline-text-2" id="text-orgf33fa48">
299
 <p>
299
 <p>
300
 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.
300
 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.
301
 </p>
301
 </p>
373
 </div>
373
 </div>
374
 </div>
374
 </div>
375
 
375
 
376
-<div id="outline-container-org31945c3" class="outline-2">
377
-<h2 id="org31945c3">Checklist</h2>
378
-<div class="outline-text-2" id="text-org31945c3">
376
+<div id="outline-container-org5e8535e" class="outline-2">
377
+<h2 id="org5e8535e">Checklist</h2>
378
+<div class="outline-text-2" id="text-org5e8535e">
379
 <p>
379
 <p>
380
 Before installing Freedombone you will need a few things.
380
 Before installing Freedombone you will need a few things.
381
 </p>
381
 </p>
389
 </ul>
389
 </ul>
390
 </div>
390
 </div>
391
 </div>
391
 </div>
392
-<div id="outline-container-org0f2759f" class="outline-2">
393
-<h2 id="org0f2759f">Installation</h2>
394
-<div class="outline-text-2" id="text-org0f2759f">
392
+<div id="outline-container-org66f5148" class="outline-2">
393
+<h2 id="org66f5148">Installation</h2>
394
+<div class="outline-text-2" id="text-org66f5148">
395
 <p>
395
 <p>
396
 There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.
396
 There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.
397
 </p>
397
 </p>
398
 </div>
398
 </div>
399
 
399
 
400
-<div id="outline-container-org7ab5896" class="outline-3">
401
-<h3 id="org7ab5896">On a Laptop, Netbook or Desktop machine</h3>
402
-<div class="outline-text-3" id="text-org7ab5896">
400
+<div id="outline-container-org38af249" class="outline-3">
401
+<h3 id="org38af249">On a Laptop, Netbook or Desktop machine</h3>
402
+<div class="outline-text-3" id="text-org38af249">
403
 <p>
403
 <p>
404
 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 Stretch 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:
404
 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 Stretch 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:
405
 </p>
405
 </p>
418
 </div>
418
 </div>
419
 </div>
419
 </div>
420
 
420
 
421
-<div id="outline-container-org71fafdc" class="outline-3">
422
-<h3 id="org71fafdc">On a single board computer (SBC)</h3>
423
-<div class="outline-text-3" id="text-org71fafdc">
421
+<div id="outline-container-orgcb99559" class="outline-3">
422
+<h3 id="orgcb99559">On a single board computer (SBC)</h3>
423
+<div class="outline-text-3" id="text-orgcb99559">
424
 <p>
424
 <p>
425
 Currently the following boards are supported:
425
 Currently the following boards are supported:
426
 </p>
426
 </p>
429
 <li><a href="https://beagleboard.org/BLACK">Beaglebone Black</a></li>
429
 <li><a href="https://beagleboard.org/BLACK">Beaglebone Black</a></li>
430
 <li><a href="https://linux-sunxi.org/Cubietech_Cubieboard2">Cubieboard 2</a></li>
430
 <li><a href="https://linux-sunxi.org/Cubietech_Cubieboard2">Cubieboard 2</a></li>
431
 <li><a href="https://linux-sunxi.org/Cubietruck">Cubietruck (Cubieboard 3)</a></li>
431
 <li><a href="https://linux-sunxi.org/Cubietruck">Cubietruck (Cubieboard 3)</a></li>
432
+<li><a href="https://www.sparkfun.com/products/retired/12856">PCDuino3</a></li>
432
 <li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME/open-source-hardware">olinuxino Lime</a></li>
433
 <li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME/open-source-hardware">olinuxino Lime</a></li>
433
 <li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware">olinuxino Lime2</a></li>
434
 <li><a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware">olinuxino Lime2</a></li>
434
 <li><a href="https://www.olimex.com/Products/OlinuXino/A20/A20-OlinuXino-MICRO/open-source-hardware">olinuxino Micro</a></li>
435
 <li><a href="https://www.olimex.com/Products/OlinuXino/A20/A20-OlinuXino-MICRO/open-source-hardware">olinuxino Micro</a></li>
498
 </div>
499
 </div>
499
 </div>
500
 </div>
500
 
501
 
501
-<div id="outline-container-org49acf4b" class="outline-3">
502
-<h3 id="org49acf4b">As a Virtual Machine</h3>
503
-<div class="outline-text-3" id="text-org49acf4b">
502
+<div id="outline-container-org513a1c0" class="outline-3">
503
+<h3 id="org513a1c0">As a Virtual Machine</h3>
504
+<div class="outline-text-3" id="text-org513a1c0">
504
 <p>
505
 <p>
505
 Qemu is currently supported, since it's s fully free software system. You can run a 64 bit Qemu image with:
506
 Qemu is currently supported, since it's s fully free software system. You can run a 64 bit Qemu image with:
506
 </p>
507
 </p>
517
 </div>
518
 </div>
518
 </div>
519
 </div>
519
 
520
 
520
-<div id="outline-container-orgbdecc1e" class="outline-2">
521
-<h2 id="orgbdecc1e">Social Key Management - the 'Unforgettable Key'</h2>
522
-<div class="outline-text-2" id="text-orgbdecc1e">
521
+<div id="outline-container-org60cbf3c" class="outline-2">
522
+<h2 id="org60cbf3c">Social Key Management - the 'Unforgettable Key'</h2>
523
+<div class="outline-text-2" id="text-org60cbf3c">
523
 <p>
524
 <p>
524
 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
525
 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
525
 </p>
526
 </p>
526
 </div>
527
 </div>
527
 
528
 
528
-<div id="outline-container-orgcf6835e" class="outline-3">
529
-<h3 id="orgcf6835e">You have the gnupg keyring on an encrypted USB drive</h3>
530
-<div class="outline-text-3" id="text-orgcf6835e">
529
+<div id="outline-container-org89d4331" class="outline-3">
530
+<h3 id="org89d4331">You have the gnupg keyring on an encrypted USB drive</h3>
531
+<div class="outline-text-3" id="text-org89d4331">
531
 <p>
532
 <p>
532
 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.
533
 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.
533
 </p>
534
 </p>
534
 </div>
535
 </div>
535
 </div>
536
 </div>
536
-<div id="outline-container-org954990d" class="outline-3">
537
-<h3 id="org954990d">You have a number of key fragments on USB drives retrieved from friends</h3>
538
-<div class="outline-text-3" id="text-org954990d">
537
+<div id="outline-container-org573fd89" class="outline-3">
538
+<h3 id="org573fd89">You have a number of key fragments on USB drives retrieved from friends</h3>
539
+<div class="outline-text-3" id="text-org573fd89">
539
 <p>
540
 <p>
540
-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="#org4ec5353">Keydrives</a>.
541
+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="#org214cad8">Keydrives</a>.
541
 </p>
542
 </p>
542
 </div>
543
 </div>
543
 </div>
544
 </div>
544
-<div id="outline-container-org8493049" class="outline-3">
545
-<h3 id="org8493049">You can specify some ssh login details for friends servers containing key fragments</h3>
546
-<div class="outline-text-3" id="text-org8493049">
545
+<div id="outline-container-org7815393" class="outline-3">
546
+<h3 id="org7815393">You can specify some ssh login details for friends servers containing key fragments</h3>
547
+<div class="outline-text-3" id="text-org7815393">
547
 <p>
548
 <p>
548
 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.
549
 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.
549
 </p>
550
 </p>
550
 </div>
551
 </div>
551
 </div>
552
 </div>
552
 </div>
553
 </div>
553
-<div id="outline-container-org75caec3" class="outline-2">
554
-<h2 id="org75caec3">Final Setup</h2>
555
-<div class="outline-text-2" id="text-org75caec3">
554
+<div id="outline-container-org07d21e3" class="outline-2">
555
+<h2 id="org07d21e3">Final Setup</h2>
556
+<div class="outline-text-2" id="text-org07d21e3">
556
 <p>
557
 <p>
557
 Any manual post-installation setup instructions or passwords can be found in /home/username/README.
558
 Any manual post-installation setup instructions or passwords can be found in /home/username/README.
558
 </p>
559
 </p>
670
 </div>
671
 </div>
671
 </div>
672
 </div>
672
 
673
 
673
-<div id="outline-container-org4ec5353" class="outline-2">
674
-<h2 id="org4ec5353">Keydrives</h2>
675
-<div class="outline-text-2" id="text-org4ec5353">
674
+<div id="outline-container-org214cad8" class="outline-2">
675
+<h2 id="org214cad8">Keydrives</h2>
676
+<div class="outline-text-2" id="text-org214cad8">
676
 <p>
677
 <p>
677
 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:
678
 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:
678
 </p>
679
 </p>
679
 </div>
680
 </div>
680
-<div id="outline-container-org8e2343a" class="outline-3">
681
-<h3 id="org8e2343a">Master Keydrive</h3>
682
-<div class="outline-text-3" id="text-org8e2343a">
681
+<div id="outline-container-orge92aaa8" class="outline-3">
682
+<h3 id="orge92aaa8">Master Keydrive</h3>
683
+<div class="outline-text-3" id="text-orge92aaa8">
683
 <p>
684
 <p>
684
 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:
685
 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:
685
 </p>
686
 </p>
694
 </p>
695
 </p>
695
 </div>
696
 </div>
696
 </div>
697
 </div>
697
-<div id="outline-container-orgd192484" class="outline-3">
698
-<h3 id="orgd192484">Fragment keydrives</h3>
699
-<div class="outline-text-3" id="text-orgd192484">
698
+<div id="outline-container-org0e3ed8a" class="outline-3">
699
+<h3 id="org0e3ed8a">Fragment keydrives</h3>
700
+<div class="outline-text-3" id="text-org0e3ed8a">
700
 <p>
701
 <p>
701
 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:
702
 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:
702
 </p>
703
 </p>
716
 </div>
717
 </div>
717
 </div>
718
 </div>
718
 </div>
719
 </div>
719
-<div id="outline-container-org125e66b" class="outline-2">
720
-<h2 id="org125e66b">On Client Machines</h2>
721
-<div class="outline-text-2" id="text-org125e66b">
720
+<div id="outline-container-org91e37f6" class="outline-2">
721
+<h2 id="org91e37f6">On Client Machines</h2>
722
+<div class="outline-text-2" id="text-org91e37f6">
722
 <p>
723
 <p>
723
 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.
724
 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.
724
 </p>
725
 </p>
736
 </div>
737
 </div>
737
 </div>
738
 </div>
738
 
739
 
739
-<div id="outline-container-orgf76a31b" class="outline-2">
740
-<h2 id="orgf76a31b">Administering the system</h2>
741
-<div class="outline-text-2" id="text-orgf76a31b">
740
+<div id="outline-container-org9748f8d" class="outline-2">
741
+<h2 id="org9748f8d">Administering the system</h2>
742
+<div class="outline-text-2" id="text-org9748f8d">
742
 <p>
743
 <p>
743
 To administer the system after installation log in via ssh, become the root user and then launch the control panel.
744
 To administer the system after installation log in via ssh, become the root user and then launch the control panel.
744
 </p>
745
 </p>