Do I really need caktin on the target ?

48 views
Skip to first unread message

lars.at.visi...@gmail.com

unread,
Mar 2, 2016, 10:55:48 AM3/2/16
to Mailing List of ROS Layer for OpenEmbedded Linux
Hi 

At long last I succeed in building an poky image, based on packagegroup-ros-comm, that works for me -  but the rootfs is way to large 200Mb ++, I need to be max 50-70.

I tried to build a 'poky-tiny' distro, without ROS - it is nice and small, but it wouldn't build ROS, so back on 'poky'...

And as I've learned I will try to hunt down the top 90%  - the image is bloated with gcc, binutils, cmake, make... and libraries cc1 & cc1plus, taking up 30-50Mb

I have no intentions of building or installing anything on a running target. So all this seems like a good candidate to get rid of - I dont need it.

An examination using bitbake -u depexp -g  <image-name> , reveals that only caktin depends on gcc.

So can I get rid of catkin ? (and how  ? )
I haven't got sufficient ROS experience, to figure out whether catkin is needed in some magical way behind the curtains.

If it's possible to get rid of catkin recipe, what is the best way to go about it then: 
* a .bbappend to packagegroup_ros_comm that _removes the catkin string ?
* or an entirely new recipe that copy ros_comm and just ommit catkin (I would like to avoid copying)

Or do any of you know a  fix,  that could build me a poky-tiny distro  with ROS

-Lars Larsen

Lukas Bulwahn

unread,
Mar 4, 2016, 4:13:41 AM3/4/16
to Mailing List of ROS Layer for OpenEmbedded Linux
Dear Lars,


Hi 

At long last I succeed in building an poky image, based on packagegroup-ros-comm, that works for me -  but the rootfs is way to large 200Mb ++, I need to be max 50-70.

I tried to build a 'poky-tiny' distro, without ROS - it is nice and small, but it wouldn't build ROS, so back on 'poky'...

And as I've learned I will try to hunt down the top 90%  - the image is bloated with gcc, binutils, cmake, make... and libraries cc1 & cc1plus, taking up 30-50Mb

I have no intentions of building or installing anything on a running target. So all this seems like a good candidate to get rid of - I dont need it.

An examination using bitbake -u depexp -g  <image-name> , reveals that only caktin depends on gcc.

So can I get rid of catkin ? (and how  ? )

At runtime of the ROS system, you will need the python packages and the catkin_find python script. This is packaged in the catkin-runtime. So if you replace catkin with catkin-runtime, you will a smaller image with which you can still start roscore.

 
I haven't got sufficient ROS experience, to figure out whether catkin is needed in some magical way behind the curtains.

If it's possible to get rid of catkin recipe, what is the best way to go about it then: 
* a .bbappend to packagegroup_ros_comm that _removes the catkin string ?
* or an entirely new recipe that copy ros_comm and just ommit catkin (I would like to avoid copying)


The packagegroup-ros-comm is by no means minimal. So I would suggest to create an own packagegroup recipe for your needs, and simply add those packages that you need, e.g., you might not need rosbag on your target if you do not record data on the target.

Or do any of you know a  fix,  that could build me a poky-tiny distro  with ROS


I unfortunately do not know enough about the poky-tiny distro. Maybe you can provide more information which build step fails?

Lukas
Reply all
Reply to author
Forward
0 new messages