mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	
		
			
	
	
		
			111 lines
		
	
	
	
		
			4.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			111 lines
		
	
	
	
		
			4.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
|  | 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 |