Install ROS on Linaro (gumstix, pandaboard)

5,965 views
Skip to first unread message

Kai Franke

unread,
Feb 6, 2013, 4:50:28 PM2/6/13
to ros-sig-...@googlegroups.com
All,

I set up a new wiki page on how to install ROS for a Linaro image. It also contains a nice way to cross-compile on your multicore workstation. This way you do not even need the hardware itself. This setup will also work on the raspberry pi.
You can find the wiki page here
I will also upload a SD image with a desktop installation soon. 

Kai

Erwin José Lopez Pulgarin

unread,
Feb 6, 2013, 5:33:33 PM2/6/13
to ros-sig-...@googlegroups.com
Excelent work!

2013/2/6 Kai Franke <k...@kaifranke.com>

Kai

--
You received this message because you are subscribed to the Google Groups "ros-sig-embedded" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-embedd...@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-embedded?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Gracias

Erwin José López Pulgarín
Ingeniero Mecatrónico
Universidad Nacional de Colombia

Kai Franke

unread,
Feb 8, 2013, 11:53:42 AM2/8/13
to ros-sig-...@googlegroups.com
I uploaded an image, so get started everyone ;)
http://goo.gl/ypK85
It would be great if anybody could verify that it works.

Kai

Tommy Persson

unread,
Feb 8, 2013, 1:38:03 PM2/8/13
to ros-sig-...@googlegroups.com
I tried to follow these instructions but I have a problem. I use linaro-media-create to create an SD card directly. I then boot this card on my Gumstix and it boots. But dpkg and apt-get are not in the path. opkg is in the path which is strange since I thought I would get a standard Ubuntu. And if I look at info about the system it says it is an Ångström distribution.

So how do I get a bootable SD which have dpkg and apt-get in the path? The programs are on the card but in /media/...p2/usr/bin and they do not seems to me fused into the root file system.

/Tommy Persson

Kai Franke

unread,
Feb 8, 2013, 2:21:31 PM2/8/13
to ros-sig-...@googlegroups.com
You most likely did not boot from SD card, but from the internal memory.
That happened to me as well in the beginning. I found this solution to work:
when it boots up, you need to interrupt the 5 second timer and write

nand erase 240000 20000 
reset

this will delete some environment variables which then cannot be found by the gumstix anymore and it will reset them to default. I know it is neither a safe, nor a nice solution, but it works. If you find a different way to make gumstix boot from SD card, feel free to post it. I did not want to put those instructions on the wiki because they are only gumstix and not linaro related.

Kai
 

Tommy Persson

unread,
Feb 8, 2013, 3:10:14 PM2/8/13
to ros-sig-...@googlegroups.com
You were right. I did not know that it could fail that way. Have to wait until Monday to test things then since I do not have a serial connection to the development board at home.

When I a while ago followed the instructions at:


I got a card that booted for me on the same hardware. So I expected it to work. But googling a bit I get the impression that this is a new problem so the procedure in the link above might not work.

Kai Franke

unread,
Feb 8, 2013, 4:40:38 PM2/8/13
to ros-sig-...@googlegroups.com
If you set up your chroot environment, you can start right away ;)

Tommy Persson

unread,
Feb 11, 2013, 5:31:11 AM2/11/13
to ros-sig-...@googlegroups.com
Have just started to test the image. The image booted. There is some issue with duplicate entries when you do "apt-get update". And every apt-get install tales a long time to read the package file. Will give more feedback after having tested if our application compiles and works.

I also tested to just build an SD-card with the linaro-script. I then just took your root file system in the image and copied that to a 16G card. But that did not work so good. I god some error messages when booting about reading from the card. Is that method supposed to work?

Kai Franke

unread,
Feb 11, 2013, 12:16:54 PM2/11/13
to ros-sig-...@googlegroups.com
I also received those warnings about duplicate entries but I did not care to resolve them ;)
I never tried only copying the root partition but I do not see why it should not work

Kai

Tommy Persson

unread,
Feb 11, 2013, 1:02:20 PM2/11/13
to ros-sig-...@googlegroups.com
I booted the wrong SD card. The one that worked without problems was my clean Linaro SD card.

Now I am testing your image and had problem during boot that some processes terminated. And when something timed out and I got a prompt the network did not work properly. Have you done something with network drivers? With the clean Linaro kernel I get eth0 and it connects to the network, With your image I do not see any eth0 but have an eth1 but cannot configure that with ifup.

I also get some, message about task crda blocked for more than 120 second.

Well, time to test some more stuff.

Tommy Persson

unread,
Feb 11, 2013, 1:29:50 PM2/11/13
to ros-sig-...@googlegroups.com
I managed to get the network working with dhclient eth1. So with the SD card were I copied the root file system I get the following when booting:


[    9.282714] kjournald starting.  Commit interval 5 seconds
[    9.305969] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
[   10.251251] init: ureadahead main process (849) terminated with status 5
[   10.657379] end_request: I/O error, dev mtdblock0, sector 0
[   10.669860] Buffer I/O error on device mtdblock0, logical block 0
[   10.819610] end_request: I/O error, dev mtdblock0, sector 0
[   10.832122] Buffer I/O error on device mtdblock0, logical block 0
[   10.941833] init: resolvconf pre-start process (859) terminated with status 127
[   11.030456] end_request: I/O error, dev mtdblock0, sector 0
[   11.043182] Buffer I/O error on device mtdblock0, logical block 0
[   11.172607] init: resolvconf post-stop process (875) terminated with status 127
[   11.200775] end_request: I/O error, dev mtdblock0, sector 0
[   11.213562] Buffer I/O error on device mtdblock0, logical block 0
[   11.334014] end_request: I/O error, dev mtdblock0, sector 0
.
.
.

---

The error messages from init was what happened with the SD card were I just dd:ed the image.

/Tommy

Kai Franke

unread,
Feb 11, 2013, 1:35:47 PM2/11/13
to ros-sig-...@googlegroups.com
I guess a simple plug and play will not work on the pandaboard. I will create an image with a groovy installation in a chroot environment. This will take a few days, so try to beat me ;)

Kai

Tommy Persson

unread,
Feb 11, 2013, 2:30:26 PM2/11/13
to ros-sig-...@googlegroups.com
Just to be clear, I am trying the image on a Gumstix Overo.

/Tommy

Tommy Persson

unread,
Feb 11, 2013, 4:12:47 PM2/11/13
to ros-sig-...@googlegroups.com
Removing all entries in /etc/apt/sources.list seems to solve the problem with duplicate entries. It probably speedup installation of packages also to fix this problem.

Kai Franke

unread,
Feb 11, 2013, 6:17:43 PM2/11/13
to ros-sig-...@googlegroups.com
I tried it out on my gumstix and I get the same timeout warning. They do not really do anything but if you find a way to remove them, speak up :)
On my gumstix, I got an internet connection right after the first boot on eth0

Kai

Tommy Persson

unread,
Feb 12, 2013, 3:39:00 PM2/12/13
to ros-sig-...@googlegroups.com
I have tested some more. It worked well to just dd the image to a card and use gparted to increase the partition size. The eth0, eth1 order is because of a persistent rule generated when booting the first time. In the finished distribution image this file should probably be cleared.

But the problem I have now is to get a Point Grey Research Firefly MV FMVU-03MTC camera to work with gscam. The camera is detected but no firewire-core modules are loaded and modprobe does not find this module. And no devices /dev/fw* appear. On my desktop Ubuntu 12.04 the firewire-core module is loaded and I have got it to work at my work machine. So any ideas or anybody that uses this camera and know how to get it to work with ROS on Gumstix (Linaro)?

/Tommy
 

On Friday, February 8, 2013 5:53:42 PM UTC+1, Kai Franke wrote:

Tommy Persson

unread,
Feb 15, 2013, 2:42:40 PM2/15/13
to ros-sig-...@googlegroups.com
What about opencv2? Was there a reason that this was not included in the image?

If I want to compile it myself, how do I check out the correct version?

/Tommy


On Friday, February 8, 2013 5:53:42 PM UTC+1, Kai Franke wrote:

Kai Franke

unread,
Feb 15, 2013, 2:47:15 PM2/15/13
to ros-sig-...@googlegroups.com
It is included and works. You will not be able to find it inside the ROS src folder because I installed it as an external library. The simple reason is that catkin tries to build the documentation using latex and I did not want to do that. So I downloaded the source files and installed it separately.

Kai

Tommy Persson

unread,
Feb 15, 2013, 6:07:23 PM2/15/13
to ros-sig-...@googlegroups.com
I tried to build a rosbuild package and that failed because it could not find opencv2. But I converted the package to catkin and it worked.

Are there any risk with conflicts between standard opencv in Ubuntu and ROS opencv? 

Things are really working very well with the image.  One of the remaining problem is probably the thing with cdra timeout. If I configure wlan0 statically in /etc/network/interfaces I get timeout during booting in network configuring. The problem is that the timeout increases the booting time a lot. But we need to have the wlan0 up after boot.

Another thing I wondered about is what is the correct way to source setup.bash? Now I do:

source /opt/ros/groovy/catkin_ws/install_isolated/setup.bash

but that takes a very long time. And therefore I cannot put it into a login file.

/Tommy

Kai Franke

unread,
Feb 15, 2013, 9:05:29 PM2/15/13
to ros-sig-...@googlegroups.com
I did not experience any difficulties yet, I tried feature detection and that works. The idea behind catkin is anyways to take the libraries out of ROS, so it will be only a matter of time I guess.
Your source looks correct and it will take a while. I guess that is what we have to live with when using embedded devices. I just finished compiling another ROS install with some modified compiler flags for OpenCV and PCL because I found it to be slower than the raspberry pi. If those flags show any improvement, I will upload it.

Kai

Tommy Persson

unread,
Feb 19, 2013, 3:47:17 PM2/19/13
to ros-sig-...@googlegroups.com
It seems that the image_transport_plugins are not in the image. Did you exclude then for a good reason or is it worth it to try and compile them?

/Tommy

Kai Franke

unread,
Feb 19, 2013, 5:13:55 PM2/19/13
to ros-sig-...@googlegroups.com
I produced so many images the last month, I lost track of what is included where. I usually build groovy in /opt/ros/groovy and overlayed it with a workspace in the home folder. So check if you find catkin_ws in /home/gumstix or /root. I think I always excluded the theora compression because it did not build and I did not need it, but the rest of the image_transport_plugins should be there

Kai

Neel Doshi

unread,
Feb 25, 2013, 1:03:50 PM2/25/13
to ros-sig-...@googlegroups.com
Hey Kai, 

I was trying to follow your instructions here, and I ran into this error when I tried to run: 

# wstool set swig-wx https://github.com/ros/swig-wx.git --git -y 

Traceback (most recent call last):
  File "/usr/local/bin/wstool", line 5, in <module>
    pkg_resources.run_script('wstool==0.0.2', 'wstool')
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 499, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1235, in run_script
    execfile(script_filename, namespace, namespace)
  File "/usr/local/lib/python2.7/dist-packages/wstool-0.0.2-py2.7.egg/EGG-INFO/scripts/wstool", line 64, in <module>
    sys.exit(wstool.wstool_cli.wstool_main(sys.argv))
  File "/usr/local/lib/python2.7/dist-packages/wstool-0.0.2-py2.7.egg/wstool/wstool_cli.py", line 304, in wstool_main
    return ws_commands[command](workspace, args)
  File "/usr/local/lib/python2.7/dist-packages/rosinstall-0.6.24-py2.7.egg/rosinstall/multiproject_cli.py", line 722, in cmd_set
    if options.detach:
AttributeError: Values instance has no attribute 'detach'

Any ideas/suggestions? 

Thanks, 
- Neel 

Anup Kini

unread,
Feb 25, 2013, 1:06:37 PM2/25/13
to ros-sig-...@googlegroups.com
HI Neel,

I bumped into a similar error and i added this entry in .rosinstall. There are other packages picked from GIT and u can have a look at them for the format of the entry.
then ran wstool update.
This is a temporary fix, but it works :)


--
You received this message because you are subscribed to the Google Groups "ros-sig-embedded" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-embedd...@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-embedded?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
regards,
Anup.

Kai Franke

unread,
Feb 25, 2013, 1:45:51 PM2/25/13
to ros-sig-...@googlegroups.com
Try skipping this step. I think swig is not needed anymore. If it works without it, please remove it from the wiki :)
Thanks

Marcus Liebhardt

unread,
Mar 13, 2013, 6:55:54 AM3/13/13
to ros-sig-...@googlegroups.com
Hi everyone!

I'd like to join the club of people trying to get ROS working on Linaro.
I have followed the source installation instructions as well and got quite far (152/157 packages building), but finally received this error when building collada_urdf:

/media/pendrive/ros/groovy/catkin_workspace/devel_isolated/collada_urdf/lib/libcollada_urdf.so: undefined reference to `vtable for Assimp::IOSystem'
/media/pendrive/ros/groovy/catkin_workspace/devel_isolated/collada_urdf/lib/libcollada_urdf.so: undefined reference to `typeinfo for Assimp::IOSystem'
collect2: ld returned 1 exit status

However, I found out that on my system (using a preconfigured Ubtunu-Linaro installation) assimp2 is installed.

Does anyone know a solution to this problem? Should I follow the instructions in the above answer? Would it work with assimp2? Are there other ways to solve this problem?

Any help is appreciated!

Thanks,
Marcus


On Tuesday, February 26, 2013 3:45:51 AM UTC+9, Kai Franke wrote:
Try skipping this step. I think swig is not needed anymore. If it works without it, please remove it from the wiki :)
Thanks

I agree. However, since I am not sure that's true for everyone, I only added a comment.

Paul Mathieu

unread,
Mar 13, 2013, 12:48:02 PM3/13/13
to ros-sig-...@googlegroups.com
Hi Marcus,

I had an identical problem with libassimp3 on Raspbian last week.
I solved it by duplicating some of libassimp code in collada_urdf.

The problem seems to be related to vague linkage. Normally, a vtable is emitted for the compilation unit that defines the first non-inline virtual method. For a reason that still eludes me, the vtable is actually generated for Assimp::IOSystem in the libassimp object files, but are stripped away during the debian packaging process. This is not a problem on PC platforms (amd64, i386), because gcc uses vague linkage and creates weak symbols for these vtables, that can be linked against without producing errors on the linker side.
Apparently, these weak symbols are not generated on ARM, unless we define the first non-inline virtual function in collada_urdf.

It is a dirty trick, but it does the job for me.
Attached is a patch.

The patch might not work for your case since you are using libassimp2, but you should give it a try.

Cheers,

Paul

0001-fixed-arm-build.patch

Chris Csikszentmihalyi

unread,
Apr 27, 2014, 1:16:53 PM4/27/14
to ros-sig-...@googlegroups.com
Thanks, Paul!  Worked for me...

George Kiritsis

unread,
Jul 8, 2014, 10:11:56 AM7/8/14
to ros-sig-...@googlegroups.com
All,

I set up a new wiki page on how to install ROS for a Linaro image. It also contains a nice way to cross-compile on your multicore workstation. This way you do not even need the hardware itself. This setup will also work on the raspberry pi.
You can find the wiki page here
I will also upload a SD image with a desktop installation soon. 

Kai

 Hello Mr. Franke 

Thank you very much for this tutorial. I tried it for my gumstix overo fire and I see the following error:  
--------------------------------------------------------------------------------------------------------------------------------------------
george@UbuntuPC:~$ parted gumstix.img
WARNING: You are not superuser.  Watch out for permissions.
GNU Parted 2.3
Using /home/george/gumstix.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
                                                                        (parted) unit
                                                                        Unit?  [compact]? B
                                                                        (parted) print
Model:  (file)
Disk /home/george/gumstix.img: 13958643712B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start      End           Size          Type     File system  Flags
 1      32256B     54525439B     54493184B     primary  fat32        boot, lba
 2      54525952B  13958643711B  13904117760B  primary  ext3

                                                                        (parted) quit
george@UbuntuPC:~$ sudo mount -o loop,offset=54525952 gumstix.img /mnt
george@UbuntuPC:~$ sudo mount -o bind /proc /mnt/proc
george@UbuntuPC:~$ sudo mount -o bind /dev /mnt/dev
george@UbuntuPC:~$ sudo mount -o bind /dev/pts /mnt/dev/pts
george@UbuntuPC:~$ sudo mount -o bind /sys /mnt/sys
george@UbuntuPC:~$ sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin/
george@UbuntuPC:~$ sudo chroot /mnt
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
--------------------------------------------------------------------------------------------------------------------------------------------

How should i proceed ? 

Thank you very much in advance.
George

Дмитрий Захаров

unread,
Jan 29, 2015, 3:00:04 AM1/29/15
to ros-sig-...@googlegroups.com
How to apply collada_urdf patch. Not all know how to do it.
cd ~/ros_catkin_ws/src/robot_model/collada_urdf/src
download patch file and rename it to fix.patch
patch < fix.patch

среда, 13 марта 2013 г., 19:48:02 UTC+3 пользователь Paul Mathieu написал:
Reply all
Reply to author
Forward
0 new messages