No space left during ROS Indigo installation on OpenNao 2.1.2

283 views
Skip to first unread message

Jon Dybeck

unread,
Apr 6, 2015, 9:49:42 AM4/6/15
to ros-sig-...@googlegroups.com
Hello everyone!

While attempting to install ROS Indigo on a factory reset Nao V5 (OpenNao 2.1.2) I encountered an unexpected problem.
The rootfs filesystem is mounted as / but no other filesystem is mounted to accommodate directories such as /usr.
Thus when more software is installed the rootfs filesystem quickly fills up and the installation fails.
So, my question is twofold:

+ Why is no other file system mounted as a replacement for rootfs when the system has been booted?
+ How can we reconfigure the system (repartitioning is not really an option) to not use the rootfs for all storage?
   (I naively tried to move /usr to /var/persistent using a symlink and "bricked" a robot. Had to reset it.)

Below is more verbose information to replicate and diagnose the problem.
The instructions used (works nicely with 1.14.x):
The following emerge invocation fails (skipped apr* packages):

sudo emerge log4cxx netifaces pyyaml poco

With this error:

>>> Installing (4 of 4) dev-libs/poco-1.3.6_p2
/sbin/ldconfig: Writing of cache data failed: No space left on device
Traceback (most recent call last):
  File "/usr/lib/portage/pym/portage/dbapi/_MergeProcess.py", line 188, in _spawn
    prev_mtimes=self.prev_mtimes, counter=counter)
  File "/usr/lib/portage/pym/portage/dbapi/vartree.py", line 4304, in merge
    counter=counter)
  File "/usr/lib/portage/pym/portage/dbapi/vartree.py", line 3835, in treewalk
    writemsg_level=self._display_merge, vardbapi=self.vartree.dbapi)
  File "/usr/lib/portage/pym/portage/proxy/objectproxy.py", line 31, in __call__
    return result(*args, **kwargs)
  File "/usr/lib/portage/pym/portage/util/env_update.py", line 72, in env_update
    env, writemsg_level)
  File "/usr/lib/portage/pym/portage/util/env_update.py", line 327, in _env_update
    outfile.close()
  File "/usr/lib/portage/pym/portage/util/__init__.py", line 1163, in close
    f.close()
IOError: [Errno 28] No space left on device

>>> Failed to install dev-libs/poco-1.3.6_p2, Log file:
>>  '/var/volatile/var/tmp/portage/dev-libs/poco-1.3.6_p2/temp/build.log'

A quick check using 'df -h' shows where the problem comes from:
Turns out emerge is installing the libraries to /usr (as expected) but /usr is _not_ mounted or linked
to the presistent sd card.

Filesystem            Size  Used Avail Use% Mounted on
rootfs                886M  886M     0 100% /
/dev/root             886M  886M     0 100% /
rc-svcdir             1.0M   92K  932K   9% /lib/rc/init.d
cgroup_root            10M     0   10M   0% /sys/fs/cgroup
udev                   10M  124K  9.9M   2% /dev
tmpfs                 502M  1.1M  501M   1% /dev/shm
tmpfs                 502M  1.7M  500M   1% /var/volatile
/dev/mmcblk0p1         15G  194M   14G   2% /var/persistent
/dev/sda1             124M  6.7M  111M   6% /var/persistent/media/internal

OpenNao 1.14.x (not factory reset, but no ROS installed):

Filesystem            Size  Used Avail Use% Mounted on
rootfs                886M  512M  330M  61% /
/dev/root             886M  512M  330M  61% /
rc-svcdir             1.0M   88K  936K   9% /lib/rc/init.d
cgroup_root            10M     0   10M   0% /sys/fs/cgroup
udev                   10M  160K  9.9M   2% /dev
tmpfs                 502M  680K  501M   1% /dev/shm
tmpfs                 502M  480K  502M   1% /var/volatile
/dev/mmcblk0p1        7.3G  603M  6.4G   9% /var/persistent
/dev/sda1             124M  9.0M  109M   8% /var/persistent/media/internal

OpenNao 2.1.x (factory reset):

Filesystem            Size  Used Avail Use% Mounted on
rootfs                886M  807M   34M  96% /
/dev/root             886M  807M   34M  96% /
rc-svcdir             1.0M   92K  932K   9% /lib/rc/init.d
cgroup_root            10M     0   10M   0% /sys/fs/cgroup
udev                   10M  124K  9.9M   2% /dev
tmpfs                 502M  1.2M  501M   1% /dev/shm
tmpfs                 502M  1.6M  500M   1% /var/volatile
/dev/mmcblk0p1         15G  212M   14G   2% /var/persistent
/dev/sda1             124M  6.7M  111M   6% /var/persistent/media/internal

Sorry for the long email.
Any ideas? :)

Best wishes,
Jon Dybeck

Tully Foote

unread,
Apr 6, 2015, 1:42:09 PM4/6/15
to ros-sig-...@googlegroups.com
Hi Jon,

For another system with limited storage we've been recommending using bind mounts to mount a directory on the SD card onto the machine.

The page describing how to do it is here: http://tfoote.gitbooks.io/a-guide-to-using-ros-on-the-ifc6410/content/configure_the_system/index.html

Tully

--
You received this message because you are subscribed to the Google Groups "ROS Sig Aldebaran" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-aldeba...@googlegroups.com.
To post to this group, send email to ros-sig-...@googlegroups.com.
Visit this group at http://groups.google.com/group/ros-sig-aldebaran.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-aldebaran/CA%2BQVQRYzUS-Ox8764e57XeHF43U-%2B6UkiBqzVr1mwfAWB%3D8oWQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

jond...@student.liu.se

unread,
Apr 7, 2015, 8:19:36 AM4/7/15
to ros-sig-...@googlegroups.com
Hello Tully,

Thanks, however the problem is not actually one of storage space.
The robot has plenty of free space on other partitions, what I am wondering is how one can reconfigure /usr to one of them.

(Also, my application has to be autonomous and independent of other systems.)

Best wishes,
Jon Dybeck
 

Tully Foote

unread,
Apr 7, 2015, 6:27:55 PM4/7/15
to ros-sig-...@googlegroups.com
Hi Jon,

The instructions I pointed to are how to mount partitions such as /var and /usr onto a different partition. (In the case of that board the other partition is an SD card, but you can use the same procedure.)

Tully

--
You received this message because you are subscribed to the Google Groups "ROS Sig Aldebaran" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-aldeba...@googlegroups.com.
To post to this group, send email to ros-sig-...@googlegroups.com.
Visit this group at http://groups.google.com/group/ros-sig-aldebaran.

christophe scazzi

unread,
Jun 27, 2015, 9:05:39 AM6/27/15
to ros-sig-...@googlegroups.com
Message has been deleted

James REN

unread,
Jul 16, 2016, 1:25:06 PM7/16/16
to ROS Sig Aldebaran
Have found a solution: create a symlink from SD card to /opt and then moving non-critical /usr subdirectories to /opt. After this, you would have at least 200MB free space.
Reply all
Reply to author
Forward
0 new messages