Notes about getting Accessors running on the Intel Edison.
Summary
The Signposts Platform uses the Intel Edison. We would like to run accessors on this.
One idea is to get a better idea of the memory size issues.
Hardware
Initial Setup
- Attach the brass post bases to the Edison
- Connect it to the the Base Kit
- Put the screens in to the brass post bases connected to the Edison
- Put the brass post bases on to the Base Kit
- Go to https://software.intel.com/en-us/get-started-edison-osx
- Plug in to the OTG micro-usb connector and in to the host
- Mac: If you have problems with the serial port, see Mac OS Missing TTY Port
- Download the Signpost image from https://github.com/lab11/signpost/tree/master/software/edison
- Install git-lfs:
sudo port install git-lfs
- Clone the repository:
git clone https://github.com/lab11/signpost.git
- Track the image (see git-lfs for details about tracking):
bash-3.2$ cd signpost/software/edison
bash-3.2$ ls
README.md toFlash.tar.gz
bash-3.2$ git lfs track toFlash.tar.gz
Tracking toFlash.tar.gz
bash-3.2$ git checkout toFlash.tar.gz
Downloading software/edison/toFlash.tar.gz (151.00 MB)
- We don't use the Intel Edison Setup App, see Edison Signpost Firmware Failed To Update
- Untar
toFlash.tar.gz
and run ./flashall.sh:
#Assuming brew is already installed
brew install dfu-util coreutils gnu-getopt
tar -zxf toFlash.tar.gz
cd toFlash
./flashall.sh
- In the Finder, unmount the Edison partition
- Be sure to be plugged in to the otg port, not the console port of the SparkFun Base Kit for Intel® Edison KIT-14105
Signpost Edison Image
After installing the Signpost Edison Image, the Intel Edison Setup Application was not able to set the name or change the password or adjust the Wi-Fi.
I was not able to use wpa_cli
to setup Wi-Fi with the Signpost Edison Image, but I was able to do so with the default latest image.
However, using nmcli
works with Signpost Edison Image:
- Connect the Edison's screen port to the host
- Use
ls -ltr /dev/ | tail
to find the tty. For example:
bash-3.2$ ls -ltr /dev/ | tail
crw------- 1 root wheel 23, 2 Feb 23 14:27 bpf2
crw-rw-rw- 1 root wheel 14, 0 Feb 23 14:44 random
crw-rw-rw- 1 root wheel 3, 2 Feb 23 14:51 null
crw-rw-rw- 1 root wheel 18, 17 Feb 23 14:51 io8logtemp
crw-rw-rw- 1 root wheel 20, 10 Feb 23 14:52 tty.usbserial-DN02BIYU
crw-rw-rw- 1 root wheel 20, 11 Feb 23 14:52 cu.usbserial-DN02BIYU
crw--w---- 1 cxh tty 16, 1 Feb 23 14:52 ttys001
crw-rw-rw- 1 root wheel 2, 0 Feb 23 14:52 tty
crw-rw-rw- 1 root tty 15, 4 Feb 23 14:52 ptmx
crw--w---- 1 cxh tty 16, 0 Feb 23 14:52 ttys000
bash-3.2$
- On the host, run screen /dev/tty.usbserial-DN02BIYU 115200
- Become root:
sudo -i
- Run
nmcli dev wifi con "EECS-PSK" password "xxxx"
Update Node
Node is installed on the default image but not on the Signpost image.
On the default image, even thought it is an older version, it seems to work OK with accessors:
root@edison:/etc/opkg# node --version
v4.4.3
- Edison Node Notes - how to install Node (Also: how to fix certificate problems by setting the date)
Cape Code SSH Deployment
Below, we use Cape Code to generate a composite accessor and then deploy it to the Edison.
Set up the sbuser account on the Edison
- Get access to the
swarmboxadmin
git repo
- If you have not yet done so, add your public key to
sbuser_authorized_keys
:
- Check to see if your key is present:
bash-3.2$ cd swarmboxadmin/ansible/keys
bash-3.2$ cat ~/.ssh/id_rsa.pub
cat ~/.ssh/id_rsa.pub
ssh-rsa xxxxxxx cxh@carson.EECS.Berkeley.EDU
bash-3.2$ grep cxh@carson sbuser_authorized_keys
grep cxh@carson sbuser_authorized_keys
ssh-rsa xxxxxxx cxh@carson.EECS.Berkeley.EDU
bash-3.2$
- If your key is not present, try
cat ~/.ssh/id_rsa.pub >> sbuser_authorized_keys
git commit -a -m "Added my public key." sbuser_authorized_keys
git push
- Create a tar file of the keys:
tar -cf /tmp/keys.tar sbuser_*
scp /tmp/keys.tar user@128.32.39.207:/tmp
rm /tmp/keys.tar
In the above, 128.32.39.207
is the IP address of the Edison box.
- On the edison, as root
adduser sbuser
cd ~sbuser
mkdir .ssh
chmod 0700 .ssh
cd .ssh
tar -xf /tmp/keys.tar
rm /tmp/keys.tar
mv sbuser_authorized_keys authorized_keys
mv sbuser_id_rsa id_rsa
mv sbuser_id_rsa.pub id_rsa.pub
chmod 0600 id_rsa
cd ..
chown -R sbuser .ssh
- On the machine where you will be running Cape Code, test ssh:
bash-3.2$ ssh sbuser@128.32.39.207 date
Thu Feb 16 23:23:05 UTC 2017
bash-3.2$
- If necessary, Install Ptolemy II on your machine (Ptolemy II is installed on a machine with a graphical display not on the Edison)
- Start up Cape Code
$PTII/bin/vergil $PTII//ptolemy/cg/kernel/generic/accessor/test/auto/RampJSTestDisplay.xml
- Double click on the AccessorSSHCodeGenerator and change the userHost to
sbuser@hostNameOrIP
. For example sbuser@128.32.39.207
- Click Generate. The first run will take a few minutes because various Node Package Manager (npm) modules are downloaded.
System Update
- System Update (Yocto Wiki) - outlines a number of possibilities
- Ansible Pull - this is what we use for the SwarmBoxes. We might want to use a different system that will survive power outages etc.
However, as the Signpost-specifc Edison image is available via GitHub, maybe this does not make sense.
See Also