summaryrefslogtreecommitdiffstats
path: root/packaging/headless/HOWTO
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/headless/HOWTO')
-rw-r--r--packaging/headless/HOWTO110
1 files changed, 110 insertions, 0 deletions
diff --git a/packaging/headless/HOWTO b/packaging/headless/HOWTO
new file mode 100644
index 000000000..285e64142
--- /dev/null
+++ b/packaging/headless/HOWTO
@@ -0,0 +1,110 @@
+This is a protocoll of my (Robert's) attempts to come up with a headless version
+of Subsurface that runs on a small one chip computer like a RaspberryPi or C.H.I.P.
+
+The idea behind this is that that computer could do the talking to the dive computer
+and then provide the data (I thought the easiest way would be via being a wifi
+access point running a git server serving the user's divelog in git).
+
+This is still very far from working and a lot more needs to be done. As this task is
+mainly SysAdmin stuff on the small computer, it's hard to preserve this. So I decided
+to take a log of what I did. This is a dump of the corresponding wiki page on the old
+trac system.
+
+* Bought RPi3 with SD card.
+* Downloaded Raspian Jessie from https://www.raspberrypi.org/downloads/raspbian/ and decompress it
+* Downloaded PiFiller and run it, follow instructions there
+* Give up as RPi 3 wants a micro SD card, not an SD card.
+* Reinstalled on a micro SD
+* Connected network cable from Laptop (enabled Internet sharing in System Preferences)
+* ifconfig suggests RPi got IP address 192.168.2.2
+* logged in as user pi and pw raspberry
+* sudo apt-get update and upgrade
+* no space left on device. Hmm. Trying to reboot
+* ah running sudo rasps-config allows to extend the file system
+* sudo dpkg-reconfigure tzdata
+* mkdir src
+* cd src
+* git clone git://subsurface-divelog.org/subsurface.git
+* sudo apt-get install git g++ make autoconf automake libtool cmake pkg-config \
+ libxml2-dev libxslt1-dev libzip-dev libsqlite3-dev \
+ libusb-1.0-0-dev libgit2-dev \
+ qt5-default qt5-qmake qtchooser qttools5-dev-tools libqt5svg5-dev \
+ libqt5webkit5-dev libqt5qml5 libqt5quick5 libqt5declarative5 \
+ qtscript5-dev libssh2-1-dev libcurl4-openssl-dev qttools5-dev \
+ qtconnectivity5-dev qtpositioning5-dev (qtlocation5-dev was not found)
+* subsurface/scripts/build.sh
+* fails to find an include file, trying export QtDir=/usr/include/i386-linux-gnu/qt5
+* that did not help, now trying CPATH
+* Argh, of course, it's not i386-linux-gnu but arm...
+* Now, it complains about qt wanting fPIC for position independent code. Setting that in CMakeText
+* Ah, no, that is just for some test. The subsurface binary is already built. good.
+* And it starts (after I have installed XQuartz on my Macbook)
+* after initial problems (I don't know), it downloads dives from the Vytec.
+* I created a new directory and do git init there and then I can save in git format
+* From the laptop: git clone ssh://pi@192.168.2.2/home/pi/.subsurface/gitsave works
+
+==RPi as wifi access point==
+* sudo apt-get install hosted
+* Following https://www.elektronik-kompendium.de/sites/raspberry-pi/2002171.htm
+* sudo vi /etc/hostapd/hostapd.conf
+* sudo chmod 600 /etc/hostapd/hostapd.conf
+* sudo hostapd -dd /etc/hostapd/hostapd.conf
+* I see the AP but my passphrase is rejected. Now trying http://elinux.org/RPI-Wireless-Hotspot
+* sudo apt-get install udhcpd
+* sudo vi /etc/udhcpd.conf
+* sudo vi /etc/default/udhcpd
+* once more sudo vi /etc/hostapd/hostapd.conf
+* reboot
+* one day later: I have to do the sudo ifconfig wlan0 192.168.42.1 again, but then it works. The iPhone take the connection and sees 192.168.42.1
+
+* sudo apt-get install apache2
+
+== Installing the command line version of subsurface ==
+
+* cd ~/src/subsurface
+* mv build build.full
+* git remote add github https://github.com/atdotde/subsurface.git
+* git checkout github/command_line -b command_line
+* cd ~/src
+* subsurface/scripts/build.sh
+
+
+==BIND==
+* sudo apt-get install bind9 bind9utils dnsutils
+* sudo vim /etc/bind/named.conf.local
+* sudo vi /etc/bind/db.example.com
+
+==Git server on CHIP==
+So far, no significant difference to the Pi
+
+* run subsurface and save to local git repository (with [] syntax)
+* cd src/subsurface/build/
+* ./subsurface
+* cd cloud
+* git init
+* git checkout robert
+* sudo apt-get install apache2 apache2-utils
+* sudo /etc/init.d/apache2 start
+* git clone --bar cloud/ cloud.git
+* sudo adduser git
+* sudo mv cloud.git/ ~git
+* sudo chown git.git -R /home/git/cloud.git/
+* sudo Cash git (set it to /usr/bin/git-shell)
+* a2enmod cgi alias env rewrite
+* sudo mkdir /opt/git
+* sudo cp -r ~git/cloud.git/ /opt/git/
+* sudo chgrp -R www-data /opt/git
+* sudo vi /etc/apache2/sites-enabled/000-default.conf
+* sudo htpasswd -c /opt/git/.htpasswd subsurface
+* sudo chgrp www-data /opt/git/.htpasswd
+* sudo apt-get install gitweb
+* sudo a2enmod env alias fcgid auth_digest
+* sudo service apache2 restart
+* sudo vi /etc/gitweb.conf
+
+==a new attempt==
+* threw away the default site and roughly followed http://p0l0.binware.org/index.php/2011/08/26/git-over-http-git-http-backend/ (without SSL or authentication)
+* /etc/apache2/sites-enabled/001-git.conf
+* created /var/www/git/test.git as a repository and gave rights to www-data
+* git config http.receivepack true
+* this seems to work as in serves git repository clone and push