Re: Crush cannot support building packages.
Thanks Neil for the detailed reply. I now understand what you mean. I have this situation: My major objective of installing Emdebian Crush on the ARM board was to run Qt for Embedded Linux on the board. Since Qt need to be configured and built after downloading .tar file, and in absence of g++ or gcc running on the board, I wont be able to do it. This is what I want to do - http://doc.qtsoftware.com/4.5/qt-embedded-install.html
Is there an alternative to having Qt installed on my board? Which of the follwoing two alternative you suggest or any other you have in your mind.
1. I dont mind a bigger (up to 70 - 80MB) filesystem but should have ability to compile and build packages. I was wondering if I can use
# debootstrap --arch arm lenny /RootFS
to create a filesystem and then create a jffs2 image from it and use it. I tried it and it loads the filesystem just fine on the baord but after that an error comes up - unable to open initial console. Also the file system created this way has no inittab under etc folder. I wonder if you can comment on what in addition i must do to do this file system work. Emdebian used Busybox initailly, I dont know what the filesystem created like this is using.
2. Second option is to keep using Emdebian Crush , configure and make Qt for arm on my Debian desktop, bring entire Qt folder to arm board and then just do a make install on the board. I am absolutely clueless, if it is a good (workable) option at all or it sounds very foolish.
I truly appreciate your comments on this.
On Thu, Jun 4, 2009 at 3:16 PM, Neil Williams <email@example.com>
On Thu, 4 Jun 2009 12:40:14 -0300
(best to keep the list in CC:)
You will be able to run the binaries built by running arm-linux-gnu-gcc
> Many thanks for the reply.
> 1. When you say I "need to cross-build for Crush on a standard Debian
> desktop using emdebian-tools", does that mean that fater doing so I will be
> able to run gcc,g++ on my target running Emdebian.
on your desktop, via emdebian-tools. There is no way that Crush will
support native compilation, it is a binary-only distribution.
However, this will only work if you can use the packages from Lenny
to provide the cross-dependencies.
Crush 1.0 is a proof-of-concept - a test case. What the proof showed
was that the system to generate Crush required extensive changes to
make it suitable for Crush 2.0. :-(
The changes are sufficiently complex that there is a chance Crush might
not make a 2.0 release at all.
No, you run the cross-compiler on your desktop - install the toolchains
> Can you provide a lead on
> how to cross-build gcc using emdebian-tools on my desktop and then being it
> on arm target.
that already exist. Then you use the cross compiler (arm-linux-gnu-gcc
from the gcc-4.3-arm-linux-gnu package) using emdebian-tools to
cross-build packages for Crush. Copy the built packages across, install
them with their dependencies (which you will also need to cross-compile
on the desktop) and those binaries will then run on Crush. What will
most likely *not* run on Crush is gcc itself - certainly there are no
support packages like automake or perl to actually build the packages
However, the problem will be that as Debian dropped the ARM port after
Lenny, you will only be able to obtain the cross dependencies for the
packages already released in Lenny which make things more difficult.
The patches used to build those packages are being updated to fit with
the versions of those packages in unstable, in preparation for building
armel packages for Crush, so most will no longer apply to the versions
At this time, there is little chance of cross-building anything new for
Crush 1.0. It is what it is and cannot easily bear expansion until a
lot more work is done to prepare for Crush 2.0 on armel. There will be
no further updates of Crush 1.0 on ARM, only as 2.0 on armel and
(hopefully) other architectures. There is also likely to be very little
compatibility between Crush 1.0 (ARM) and Crush 2.0 (armel) because
various functional changes need to be made in the packages. This isn't
a particular problem as you cannot easily convert an existing ARM
installation into armel without reinstalling.
That doesn't look like the apt source you quoted first time around,
but it is the right one for the device running Crush. There is no
difference between unstable and stable at the moment, but when packages
start being uploaded for Crush 2.0, all packages for ARM will be
removed from unstable. Only stable (lenny) will retain ARM packages.
Once Squeeze is released, Crush 2.0 can be released if it is ready. At
that point, ARM packages will disappear for good, only armel will be
supported. The changes being made are in order to support a wider range
of architectures in Crush but whether everything will be ready in time
for Squeeze is currently uncertain.
There are no usable packages for gcc in that repository and no
complete list of build dependencies either.
Because the packages do not exist for Crush and cannot exist until a
> Why wont it use the right ones for apt-update? :(
lot more work is done in Debian for cross-build support.