You can accomplish the upgrade with an Intel Mini Breakout Board (without the need for the Arduino board).
Since I have not played with the sparkfun console board, I have to ask when you connect it to a windows computer, does it give you an additional drive letter (like a flash drive).
If so, you can download the latest firmware, unzip to that drive, login to Edison, and issue reboot ota. If not, you will either have to check with sparkfun on their procedures or purchase at minimum the Mini Breakout Board -- mouser.com carries them, as well as others.
I also am not sure of the proper way to update this board, either. As far as I can tell it only has one USB connector which is connected up to UART2 (with Arduino IDE this would be Serial2).
There is no connection for the actual USB port of the Edison. For that you would probably need a different sparkfun module, like: DEV-13045 which looks like it is not released yet.
Again as deium mentioned, maybe someone at Sparkfun has an idea.
The only Ideas I have could leave you in a very bad state. Something like, what is mentioned in:
But again I have no idea what state this would leave you in...
On the mini breakout board, the USB connector on J16 provides a point for both power and access to the OTA drive with the supplied driver installed.
I need to connect to the USB on J3 if I want to access console over serial, ie with putty.
Without the sparkfun documentation, and that description of "console board", leads me to believe that it is the serial putty connection (and hopefully ota access)
My recommendation on the mini breakout board vs arduino is purely a lower cost consideration.
Not sure what support sparkfun is providing, I liked their minimalist block design, but they still haven't released their battery layer, so I chose Intel.
Looking at the schematic for the board, the Sparkfun board has the FTDI chip connected to Edison pins 134/135, which I believe is the console connector (/dev/ttyMFD2) Using Serialx on Edison
It also looks like it takes the +5v from the USB connection and feeds the edison. I could be wrong, but I don't believe anything here connects to the USB pins for /dev/ttyGS0
Another approach I wonder about, is. I assume there is some mount command you could do on the Edison through the PuTTY (or equivalent on other platforms), to mount the OTA drive. Would be nice to know what the connection point is... If so you could use something like: winscp (or other on other platforms) to download the current firmware to the OTA drive, (Assuming wifi is working?) and once the files are there you could issue the
reboot ota command.
Edit (Update) - I believe this thread shows at least one way to mount the OTA drive Access Edison mass-storage from within Edison
deium - The only real docs I saw up on Sparkfun was the PDF with Schematic. Also I believe their was a zip file with design files.
SmallLetters - again I don't have your setup but:
Here is what I would do, I have tried some of these steps, but can not say for sure...
1) Install PuTTY and WinSCP on your windows system (Or do Linux stuff)
2) Connect to debug terminal and setup to wifi: configure_edison --setup
(--setup may not be needed depending on what version of configure_edison...). Once you have wifi up and working - may have to do hacks or like if your system uses 192.168.2.x mentioned in threads.
3) Setup SCP and Putty to use wifi connection.
4) Use Putty to connect to device (could use debug terminal one as well)
5) Do commands mentioned in the Access Edison mass Storage posting above:
losetup -o 8192 /dev/loop0 /dev/disk/by-partlabel/update
mount /dev/loop0 /update
6) use WinSCP to connect up to your PC. Browse to the /update directory, open zip file with latest build and unzip the files into /update using winscp (I tried drag and drop)...
7?) Not sure if reboot ota needs back to old state if so use commands from other post:
8) reboot ota
Again don't know if this will work or not, but my guess is that it stands a chance.
So - here is progress...
I was able to get the wifi up and working - then I was able to SFTP to a point where I could drop files on the device via Wi-Fi. The problem, I can't mount the mmcbkl0p9, and it doesn't look like it is mounted as /mnt via mount -l command output.
The rmmod g_multi fails- locks up device ?
My goal would be to just push the files via wifi to the correct Do I have something wrong with my concept?
root@edison1:~# mount -l
/dev/mmcblk0p8 on / type ext4 (rw,nodev,noatime,discard,noauto_da_alloc,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=491740k,nr_inodes=122935,mode=755)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
tmpfs on /etc/machine-id type tmpfs (ro,relatime,mode=755)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
systemd-1 on /boot type autofs (rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
systemd-1 on /home type autofs (rw,relatime,fd=24,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
systemd-1 on /factory type autofs (rw,relatime,fd=34,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
tmpfs on /tmp type tmpfs (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
tmpfs on /var/volatile type tmpfs (rw,relatime)
/dev/mmcblk0p5 on /factory type ext4 (ro,nosuid,nodev,noatime,discard,noauto_da_alloc)
/dev/mmcblk0p10 on /home type ext4 (rw,nosuid,nodev,noatime,discard,noauto_da_alloc,data=ordered)
Ok - so I think I found how to mount the drive - from edison:
mount -o offset=8192 -t vfat /dev/mmcblk0p9 /upgrade
from linux box:
put -r ./*
Success - Thank you all!
It took me a little while to figure this out, but the:
put -r ./*
is important, as it seems the bootloader won't find ota_update.scr unless it's listed first in the directory.
I didn't have access to a command line sftp client, but doing this after uploading the files:
mv * foo
# error about being unable to mv foo to foo is harmless
mv foo/ota_update.scr .
mv foo/* .
did the trick.
Also, I think it's probably simpler to just wget the zip file and unzip it on Edison.