From abd68e662c16e798caf51fb5ecd76d74ca100290 Mon Sep 17 00:00:00 2001 From: Steven Baltakatei Sandoval <baltakatei@gmail.com> Date: Tue, 30 Jun 2020 17:15:30 +0000 Subject: [PATCH 1/1] doc(location):Describe how to disable swap file --- doc/location/README.html | 166 ++++++++++++++++++++++++--------------- doc/location/README.odt | Bin 15691 -> 16124 bytes doc/location/README.org | 34 +++++++- 3 files changed, 131 insertions(+), 69 deletions(-) diff --git a/doc/location/README.html b/doc/location/README.html index 0fb1b6a..11a6516 100644 --- a/doc/location/README.html +++ b/doc/location/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> -<!-- 2020-06-29 Mon 22:27 --> +<!-- 2020-06-30 Tue 17:14 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Ninfacyzga-01 Manual</title> @@ -234,24 +234,24 @@ for the JavaScript code in this tag. <h2>Table of Contents</h2> <div id="text-table-of-contents"> <ul> -<li><a href="#orgb231d05">1. Location Logging</a> +<li><a href="#org9fe5754">1. Location Logging</a> <ul> -<li><a href="#orga7b5d26">1.1. Narrative</a></li> -<li><a href="#orgc6050dc">1.2. Description</a> +<li><a href="#org6b1a17d">1.1. Narrative</a></li> +<li><a href="#org57c152a">1.2. Description</a> <ul> -<li><a href="#org832c363">1.2.1. Hardware</a></li> -<li><a href="#orgbe37034">1.2.2. Software</a></li> -<li><a href="#org578c835">1.2.3. Output</a></li> +<li><a href="#orge971d48">1.2.1. Hardware</a></li> +<li><a href="#orgd6ea21a">1.2.2. Software</a></li> +<li><a href="#org2c5d288">1.2.3. Output</a></li> </ul> </li> -<li><a href="#org7bb3aad">1.3. Operating Procedures</a> +<li><a href="#org2c59433">1.3. Operating Procedures</a> <ul> -<li><a href="#orge393fe1">1.3.1. Initial Startup</a></li> -<li><a href="#orgcaf0980">1.3.2. Normal Startup</a></li> -<li><a href="#org73571fc">1.3.3. Normal Operation</a></li> -<li><a href="#orga82b5fb">1.3.4. Normal Shutdown</a></li> -<li><a href="#org5305842">1.3.5. Unscheduled Shutdown</a></li> -<li><a href="#org4a5c4af">1.3.6. End of Life Disposal</a></li> +<li><a href="#org6fcdbad">1.3.1. Initial Startup</a></li> +<li><a href="#org15d1661">1.3.2. Normal Startup</a></li> +<li><a href="#org989e70e">1.3.3. Normal Operation</a></li> +<li><a href="#orged87647">1.3.4. Normal Shutdown</a></li> +<li><a href="#org5d4c9cd">1.3.5. Unscheduled Shutdown</a></li> +<li><a href="#org00f1b85">1.3.6. End of Life Disposal</a></li> </ul> </li> </ul> @@ -259,17 +259,17 @@ for the JavaScript code in this tag. </ul> </div> </div> -<div id="outline-container-orgb231d05" class="outline-2"> -<h2 id="orgb231d05"><span class="section-number-2">1</span> Location Logging</h2> +<div id="outline-container-org9fe5754" class="outline-2"> +<h2 id="org9fe5754"><span class="section-number-2">1</span> Location Logging</h2> <div class="outline-text-2" id="text-1"> <p> This document was created by Steven Baltakatei Sandoval on -<span class="timestamp-wrapper"><span class="timestamp"><2020-06-29 Mon 12:14> </span></span> under a <a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons BY-SA 4.0 license</a>. It -was updated by Steven Baltakatei Sandoval on <span class="timestamp-wrapper"><span class="timestamp"><2020-06-29 Mon 22:06></span></span>. +<code>2020-06-29T12:14Z</code> under a <a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons BY-SA 4.0 license</a>. It +was updated by Steven Baltakatei Sandoval on <code>2020-06-30T17:13Z</code> </p> </div> -<div id="outline-container-orga7b5d26" class="outline-3"> -<h3 id="orga7b5d26"><span class="section-number-3">1.1</span> Narrative</h3> +<div id="outline-container-org6b1a17d" class="outline-3"> +<h3 id="org6b1a17d"><span class="section-number-3">1.1</span> Narrative</h3> <div class="outline-text-3" id="text-1-1"> <p> Ninfacyzga-01 records (logs) its position in time and space using a @@ -282,23 +282,23 @@ before being processed and written to disk. </p> </div> </div> -<div id="outline-container-orgc6050dc" class="outline-3"> -<h3 id="orgc6050dc"><span class="section-number-3">1.2</span> Description</h3> +<div id="outline-container-org57c152a" class="outline-3"> +<h3 id="org57c152a"><span class="section-number-3">1.2</span> Description</h3> <div class="outline-text-3" id="text-1-2"> </div> -<div id="outline-container-org832c363" class="outline-4"> -<h4 id="org832c363"><span class="section-number-4">1.2.1</span> Hardware</h4> +<div id="outline-container-orge971d48" class="outline-4"> +<h4 id="orge971d48"><span class="section-number-4">1.2.1</span> Hardware</h4> <div class="outline-text-4" id="text-1-2-1"> </div> <ol class="org-ol"> -<li><a id="orgb0e8ddc"></a>Raspberry Pi Zero W<br /> +<li><a id="org21a0c6c"></a>Raspberry Pi Zero W<br /> <div class="outline-text-5" id="text-1-2-1-1"> <p> See the <a href="https://www.raspberrypi.org/pi-zero-w/">OEM</a> webpage for this product. </p> </div> </li> -<li><a id="org7b37dcc"></a>PiZ UpTime 2.0<br /> +<li><a id="org002698e"></a>PiZ UpTime 2.0<br /> <div class="outline-text-5" id="text-1-2-1-2"> <p> See the <a href="https://alchemy-power.com/piz-uptime-2-0/">OEM</a> webpage for this product. @@ -307,8 +307,8 @@ See the <a href="https://alchemy-power.com/piz-uptime-2-0/">OEM</a> webpage for </li> </ol> </div> -<div id="outline-container-orgbe37034" class="outline-4"> -<h4 id="orgbe37034"><span class="section-number-4">1.2.2</span> Software</h4> +<div id="outline-container-orgd6ea21a" class="outline-4"> +<h4 id="orgd6ea21a"><span class="section-number-4">1.2.2</span> Software</h4> <div class="outline-text-4" id="text-1-2-2"> <p> <code>bkgpslog</code> : The bash script that performs the location data @@ -349,7 +349,7 @@ should be copied to <code>$HOME/.local/bin</code>. </div> <ol class="org-ol"> -<li><a id="org0c488b2"></a>Narrative<br /> +<li><a id="org3d64ae8"></a>Narrative<br /> <div class="outline-text-5" id="text-1-2-2-1"> <p> <code>bkgpslog</code> populates a 60-second buffer with NMEA data from <code>gpsd</code> via @@ -362,28 +362,28 @@ encrypted with <code>age</code>, and then written to disk. </ol> </div> -<div id="outline-container-org578c835" class="outline-4"> -<h4 id="org578c835"><span class="section-number-4">1.2.3</span> Output</h4> +<div id="outline-container-org2c5d288" class="outline-4"> +<h4 id="org2c5d288"><span class="section-number-4">1.2.3</span> Output</h4> <div class="outline-text-4" id="text-1-2-3"> </div> <ol class="org-ol"> -<li><a id="org72b99a5"></a>File Formats<br /> +<li><a id="orgaf12e62"></a>File Formats<br /> <ol class="org-ol"> -<li><a id="orgdb7241e"></a>NMEA<br /> +<li><a id="org8576f09"></a>NMEA<br /> <div class="outline-text-6" id="text-1-2-3-1-1"> <p> See the <a href="https://en.wikipedia.org/wiki/NMEA_0183">Wikipedia page</a> for this. </p> </div> </li> -<li><a id="orgeea00c8"></a>GPX<br /> +<li><a id="orge0c91b6"></a>GPX<br /> <div class="outline-text-6" id="text-1-2-3-1-2"> <p> See the <a href="https://en.wikipedia.org/wiki/GPS_Exchange_Format">Wikipedia page</a> for this. <a href="http://wiki.gis.com/wiki/index.php/WGS84">WGS84</a> is the datum used. </p> </div> </li> -<li><a id="orgc8b05e7"></a>KML<br /> +<li><a id="org25abef8"></a>KML<br /> <div class="outline-text-6" id="text-1-2-3-1-3"> <p> See the <a href="https://en.wikipedia.org/wiki/Keyhole_Markup_Language">Wikipedia page</a> for this. <a href="http://wiki.gis.com/wiki/index.php/WGS84">WGS84</a> is the datum used. @@ -392,7 +392,7 @@ See the <a href="https://en.wikipedia.org/wiki/Keyhole_Markup_Language">Wikipedi </li> </ol> </li> -<li><a id="org5c2a1ad"></a>Encryption Method<br /> +<li><a id="org67f375b"></a>Encryption Method<br /> <div class="outline-text-5" id="text-1-2-3-2"> <p> Files produced by the bkgpslog script are encrypted against a set of @@ -421,7 +421,7 @@ Help information for <code>age</code> is available by running <code>$ age --help </p> </div> <ol class="org-ol"> -<li><a id="org460d569"></a>Encryption Commands<br /> +<li><a id="org4ff51de"></a>Encryption Commands<br /> <div class="outline-text-6" id="text-1-2-3-2-1"> <p> Files may be encrypted to several recipients using a command similar to: @@ -442,7 +442,7 @@ bech32-formatted public key strings. </li> -<li><a id="org1a5268c"></a>Decryption Commands<br /> +<li><a id="org4a3cc4d"></a>Decryption Commands<br /> <div class="outline-text-6" id="text-1-2-3-2-2"> <p> Files may be decrypted using a command similar to: @@ -462,12 +462,12 @@ The version of <code>age</code> used to perform the encryption </ol> </div> </div> -<div id="outline-container-org7bb3aad" class="outline-3"> -<h3 id="org7bb3aad"><span class="section-number-3">1.3</span> Operating Procedures</h3> +<div id="outline-container-org2c59433" class="outline-3"> +<h3 id="org2c59433"><span class="section-number-3">1.3</span> Operating Procedures</h3> <div class="outline-text-3" id="text-1-3"> </div> -<div id="outline-container-orge393fe1" class="outline-4"> -<h4 id="orge393fe1"><span class="section-number-4">1.3.1</span> Initial Startup</h4> +<div id="outline-container-org6fcdbad" class="outline-4"> +<h4 id="org6fcdbad"><span class="section-number-4">1.3.1</span> Initial Startup</h4> <div class="outline-text-4" id="text-1-3-1"> <p> See OEM (Ozzmaker) <a href="https://ozzmaker.com/berrygps-berrygps-imu-quick-start-guide/">quickstart guide for the BerryGPS-IMU</a>. @@ -475,7 +475,7 @@ See OEM (Ozzmaker) <a href="https://ozzmaker.com/berrygps-berrygps-imu-quick-sta </div> <ol class="org-ol"> -<li><a id="org5d6581b"></a>Physical Setup<br /> +<li><a id="org407a2c4"></a>Physical Setup<br /> <div class="outline-text-5" id="text-1-3-1-1"> <p> BerryGPS-IMU must be electrically connected to the correct pins on the @@ -490,9 +490,9 @@ possible. </div> </li> -<li><a id="orgdf04559"></a>Software Setup<br /> +<li><a id="org5d08a29"></a>Software Setup<br /> <ol class="org-ol"> -<li><a id="org4804e32"></a>Install Executables<br /> +<li><a id="org444d2f8"></a>Install Executables<br /> <div class="outline-text-6" id="text-1-3-1-2-1"> <p> Install Raspbian 10 Buster onto an SD card image. See the Raspberry Pi @@ -523,9 +523,46 @@ Linux) in <code>$HOME/.local/bin</code>. </div> </li> -<li><a id="orgcf659dd"></a>Automatic Start Configuration<br /> +<li><a id="org629d57e"></a>Disable Swap File<br /> <div class="outline-text-6" id="text-1-3-1-2-2"> <p> +Since standard Raspbian 10 install involves copying unencrypted file +system image to SD card which is mounted by the Raspberry Pi, system +memory may be written to disk in the form of a Swap file as described +<a href="https://ideaheap.com/2013/07/stopping-sd-card-corruption-on-a-raspberry-pi/">here</a>. In order to reduce the chance that location log data is ever +written to disk, swap file functionality must be disabled. +</p> + +<p> +To view the status of the swap file in Raspbian 10, run <code>free -m</code>: +</p> + +<pre class="example"> +pi@ninfacyzga-01:~$ free -m + total used free shared buff/cache available +Mem: 432 86 36 21 309 268 +Swap: 99 0 99 +</pre> + +<p> +The swap file may be disabled by: +</p> + +<pre class="example"> +pi@ninfacyzga-01:~$ sudo dphys-swapfile swapoff +pi@ninfacyzga-01:~$ sudo dphys-swapfile uninstall +pi@ninfacyzga-01:~$ sudo update-rc.d dphys-swapfile remove +pi@ninfacyzga-01:~$ free -m + total used free shared buff/cache available +Mem: 432 96 33 22 302 258 +Swap: 0 0 0 +</pre> +</div> +</li> + +<li><a id="orgd9b9b30"></a>Automatic Start Configuration<br /> +<div class="outline-text-6" id="text-1-3-1-2-3"> +<p> Edit the user cron job list with <code>$ crontab -e</code> to add the following lines: </p> @@ -563,7 +600,7 @@ may resemble: <p> The <code>age1z2...qkv6p</code> is an <code>age</code> public key string. Please see the -<a href="#orgc8fd75d">Key Generation</a> section for an explanation. +<a href="#org82f0a69">Key Generation</a> section for an explanation. </p> <p> @@ -581,8 +618,8 @@ The options are: </div> </li> -<li><a id="org5275559"></a>Log Transfer Configuration<br /> -<div class="outline-text-6" id="text-1-3-1-2-3"> +<li><a id="orgce1df03"></a>Log Transfer Configuration<br /> +<div class="outline-text-6" id="text-1-3-1-2-4"> <p> Log files may be shared to other machines via <code>syncthing</code>. See <a href="https://docs.syncthing.net/">this</a> manual for how to set up a shared folder and add Ninfacyzga-01 as a @@ -598,8 +635,8 @@ of this document. </div> </li> -<li><a id="orgc8fd75d"></a>Key Generation<br /> -<div class="outline-text-6" id="text-1-3-1-2-4"> +<li><a id="org82f0a69"></a>Key Generation<br /> +<div class="outline-text-6" id="text-1-3-1-2-5"> <p> An <code>age</code> encryption key may be generated like so: </p> @@ -642,8 +679,8 @@ be readable, writeable, or executable to anyone except the owner </ol> </div> -<div id="outline-container-orgcaf0980" class="outline-4"> -<h4 id="orgcaf0980"><span class="section-number-4">1.3.2</span> Normal Startup</h4> +<div id="outline-container-org15d1661" class="outline-4"> +<h4 id="org15d1661"><span class="section-number-4">1.3.2</span> Normal Startup</h4> <div class="outline-text-4" id="text-1-3-2"> <p> Turn on Ninfacyzga-01 by supplying 5VDC power to the Raspberry Pi. No @@ -651,8 +688,8 @@ further interaction should be required. </p> </div> </div> -<div id="outline-container-org73571fc" class="outline-4"> -<h4 id="org73571fc"><span class="section-number-4">1.3.3</span> Normal Operation</h4> +<div id="outline-container-org989e70e" class="outline-4"> +<h4 id="org989e70e"><span class="section-number-4">1.3.3</span> Normal Operation</h4> <div class="outline-text-4" id="text-1-3-3"> <p> No interaction beyond continually supplying approximately 100mA of @@ -661,14 +698,14 @@ is required. </p> </div> <ol class="org-ol"> -<li><a id="org55738e2"></a>Log Transfer<br /> +<li><a id="org87c8f03"></a>Log Transfer<br /> <div class="outline-text-5" id="text-1-3-3-1"> <p> Log files may be transferred by use of <code>syncthing</code> shared folders. </p> </div> </li> -<li><a id="org16c5bdc"></a>Automatic Updates<br /> +<li><a id="org203d027"></a>Automatic Updates<br /> <div class="outline-text-5" id="text-1-3-3-2"> <p> The <code>automatic-upgrades</code> package, if installed, should automatically @@ -678,8 +715,8 @@ install security patches to packages installed via <code>apt</code>. </li> </ol> </div> -<div id="outline-container-orga82b5fb" class="outline-4"> -<h4 id="orga82b5fb"><span class="section-number-4">1.3.4</span> Normal Shutdown</h4> +<div id="outline-container-orged87647" class="outline-4"> +<h4 id="orged87647"><span class="section-number-4">1.3.4</span> Normal Shutdown</h4> <div class="outline-text-4" id="text-1-3-4"> <p> The system may be shutdown via SSH by running: @@ -692,8 +729,8 @@ $ sudo shutdown -r 0 </div> </div> -<div id="outline-container-org5305842" class="outline-4"> -<h4 id="org5305842"><span class="section-number-4">1.3.5</span> Unscheduled Shutdown</h4> +<div id="outline-container-org5d4c9cd" class="outline-4"> +<h4 id="org5d4c9cd"><span class="section-number-4">1.3.5</span> Unscheduled Shutdown</h4> <div class="outline-text-4" id="text-1-3-5"> <p> Ninfacyzga-01 as described and setup should tolerate unscheduled power @@ -702,8 +739,8 @@ seconds worth of location data may be lost. </p> </div> </div> -<div id="outline-container-org4a5c4af" class="outline-4"> -<h4 id="org4a5c4af"><span class="section-number-4">1.3.6</span> End of Life Disposal</h4> +<div id="outline-container-org00f1b85" class="outline-4"> +<h4 id="org00f1b85"><span class="section-number-4">1.3.6</span> End of Life Disposal</h4> <div class="outline-text-4" id="text-1-3-6"> <p> LiPo batteries used by the PiZ Uptime 2.0 module should be disposed of @@ -728,9 +765,8 @@ lead-free solder. </div> </div> <div id="postamble" class="status"> -<p class="date">Date: 2020-06-29T22:16Z</p> <p class="author">Author: Steven Baltakatei Sandoval</p> -<p class="date">Created: 2020-06-29 Mon 22:27</p> +<p class="date">Created: 2020-06-30 Tue 17:14</p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> </div> </body> diff --git a/doc/location/README.odt b/doc/location/README.odt index 7959c8b7320978b77de78af72aa0bb01a5486692..5bcd1246b0442191e8b9c176c870a49cbdc0e055 100644 GIT binary patch delta 9103 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 Ze;zdD2m3!f^k2s)1xcW>1^?atzW^Hqq!<7I delta 8667 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 J1^+q*{0BqZq#XbN diff --git a/doc/location/README.org b/doc/location/README.org index 7158a73..ebabe81 100644 --- a/doc/location/README.org +++ b/doc/location/README.org @@ -1,10 +1,9 @@ * Location Logging This document was created by Steven Baltakatei Sandoval on -<2020-06-29 Mon 12:14> under a [[https://creativecommons.org/licenses/by-sa/4.0/][Creative Commons BY-SA 4.0 license]]. It -was updated by Steven Baltakatei Sandoval on <2020-06-29 Mon 22:06>. +~2020-06-29T12:14Z~ under a [[https://creativecommons.org/licenses/by-sa/4.0/][Creative Commons BY-SA 4.0 license]]. It +was updated by Steven Baltakatei Sandoval on ~2020-06-30T17:13Z~ #+TITLE: Ninfacyzga-01 Manual #+AUTHOR: Steven Baltakatei Sandoval -#+DATE: 2020-06-29T22:16Z #+EMAIL: baltakatei@gmail.com ** Narrative Ninfacyzga-01 records (logs) its position in time and space using a @@ -112,7 +111,6 @@ conflict so a simple stacking and soldering with long header pins is possible. **** Software Setup - ***** Install Executables Install Raspbian 10 Buster onto an SD card image. See the Raspberry Pi @@ -132,6 +130,34 @@ Install ~syncthing~ for log file transfer capability. Place ~age~ binary (the one compiled for ARM CPU architecture for Linux) in ~$HOME/.local/bin~. +***** Disable Swap File +Since standard Raspbian 10 install involves copying unencrypted file +system image to SD card which is mounted by the Raspberry Pi, system +memory may be written to disk in the form of a Swap file as described +[[https://ideaheap.com/2013/07/stopping-sd-card-corruption-on-a-raspberry-pi/][here]]. In order to reduce the chance that location log data is ever +written to disk, swap file functionality must be disabled. + +To view the status of the swap file in Raspbian 10, run ~free -m~: + +#+BEGIN_EXAMPLE +pi@ninfacyzga-01:~$ free -m + total used free shared buff/cache available +Mem: 432 86 36 21 309 268 +Swap: 99 0 99 +#+END_EXAMPLE + +The swap file may be disabled by: + +#+BEGIN_EXAMPLE +pi@ninfacyzga-01:~$ sudo dphys-swapfile swapoff +pi@ninfacyzga-01:~$ sudo dphys-swapfile uninstall +pi@ninfacyzga-01:~$ sudo update-rc.d dphys-swapfile remove +pi@ninfacyzga-01:~$ free -m + total used free shared buff/cache available +Mem: 432 96 33 22 302 258 +Swap: 0 0 0 +#+END_EXAMPLE + ***** Automatic Start Configuration Edit the user cron job list with ~$ crontab -e~ to add the following -- 2.39.5