2018-04-11 13:13:17 +02:00
|
|
|
|
= render "pages/arm/menu"
|
|
|
|
|
|
|
|
|
|
%h1= title "How to use a remote pi"
|
|
|
|
|
|
2018-04-28 17:32:42 +02:00
|
|
|
|
%h3 Headless
|
2018-04-10 18:50:07 +02:00
|
|
|
|
%p The pi is a strange mix, development board and full pc in one. Some people use it as a pc, but not me.
|
|
|
|
|
%p I use the pi because it is the same price as an Arduino, but much more powerful.
|
|
|
|
|
%p As such i don’t use the keyboard or display and that is called headless mode, logging in with ssh.
|
|
|
|
|
%pre
|
|
|
|
|
%code
|
|
|
|
|
:preserve
|
|
|
|
|
ssh -p 2222 -l pi localhost
|
|
|
|
|
%p the -p 2222 is only needed for the qemu version, not the real pi.
|
2018-04-28 17:32:42 +02:00
|
|
|
|
%h3 Authorise yourself
|
2018-04-10 18:50:07 +02:00
|
|
|
|
%p
|
|
|
|
|
Over ssh one can use many other tools, but the password soon gets to be a pain.
|
|
|
|
|
So the first thing i do is copy my public key over to the pi. This will allow login without password.
|
|
|
|
|
%pre
|
|
|
|
|
%code
|
|
|
|
|
:preserve
|
|
|
|
|
scp -P 2222 .ssh/id_rsa.pub pi@localhost:.ssh/authorized_keys
|
|
|
|
|
%p
|
|
|
|
|
This assumes a fresh pi, otherwise you have to append your key to the authorized ones. Also if it complains about no
|
|
|
|
|
id_rsa.pub then you have to generate a key pair (public/private) using ssh-keygen (no password, otherwise you’ll be typing that)
|
2018-04-28 17:32:42 +02:00
|
|
|
|
|
|
|
|
|
%h3 Sync the working tree
|
|
|
|
|
%p
|
|
|
|
|
Off course I do all that to be able to actually work on my machine.
|
|
|
|
|
On the Pi my keyboard doesn’t even work and i’d have to use emacs or nano instead
|
|
|
|
|
of Atom. So i need to get the files across.
|
|
|
|
|
%br
|
|
|
|
|
For this there is a million ways, but since i just go one way (mac to pi)
|
|
|
|
|
i use rsync (over ssh).
|
2018-04-10 18:50:07 +02:00
|
|
|
|
%p
|
2018-04-28 17:32:42 +02:00
|
|
|
|
I set up a directory (home) in my pi directory (on the mac),
|
|
|
|
|
that i copy to the home directory on the pi using:
|
2018-04-10 18:50:07 +02:00
|
|
|
|
%pre
|
|
|
|
|
%code
|
|
|
|
|
:preserve
|
|
|
|
|
rsync -r -a -v -e "ssh -l pi -p 2222" ~/pi/home/ localhost:/home/pi
|
2018-04-28 17:32:42 +02:00
|
|
|
|
|
2018-04-10 18:50:07 +02:00
|
|
|
|
%p The pi/home is on my laptop and the command transfers all files to /home/pi , the default directory of the pi user.
|
2018-04-28 17:32:42 +02:00
|
|
|
|
|
|
|
|
|
%h3 Automatic sync
|
|
|
|
|
|
|
|
|
|
%p
|
|
|
|
|
Transferring files is off course nice, but having to do it by hand after
|
|
|
|
|
saving quickly becomes tedious.
|
|
|
|
|
%p
|
|
|
|
|
Fswatch to the rescue. It will watch the filesystem (fs) for changes.
|
|
|
|
|
Install with 'brew install fswatch'
|
2018-04-10 18:50:07 +02:00
|
|
|
|
%p
|
|
|
|
|
Then you can store the above rsync command in a shell script, say sync.sh.
|
|
|
|
|
Add afplay “/System/Library/Sounds/Morse.aiff” if you like to know it worked.
|
|
|
|
|
%p Then just run
|
|
|
|
|
%pre
|
|
|
|
|
%code
|
|
|
|
|
:preserve
|
2018-04-28 17:32:42 +02:00
|
|
|
|
fswatch -o ~/pi/home | xargs -n1 -I{} ~/sync.sh
|
|
|
|
|
%p
|
|
|
|
|
And hear the ping each time you save. (btw -I{} makes it so the file name that changed
|
|
|
|
|
does not get passed on. Rsync figures that out)
|
|
|
|
|
|
|
|
|
|
%h2 Conclusion
|
2018-04-10 18:50:07 +02:00
|
|
|
|
%p So the total setup involves the qemu set up as described. To work i
|
|
|
|
|
%ul
|
|
|
|
|
%li start the terminal (iterm)
|
|
|
|
|
%li start the pi, with my alias “pi” *
|
|
|
|
|
%li log in to the pi in it’s window
|
2018-04-28 17:32:42 +02:00
|
|
|
|
%li open atom with the directory i work (within the home)
|
|
|
|
|
%li edit, save, wait for ping, alt-tab to pi window, run my whatever and repeat until it’s time for tea
|
|
|
|
|
|
|
|
|
|
PS: (i don’t log into the prompt it gives in item so as not to accidentally quit the qemu session with ctr-c )
|