[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: More problems with Ubuntu (was Re: Emsandbox in arm board)

hi williams,

On Fri, Nov 21, 2008 at 2:19 AM, Neil Williams <codehelp@debian.org> wrote:
On Thu, 20 Nov 2008 10:10:16 +0530
Sivakumar.R.J <rj.sivakumar@gmail.com> wrote:

>    after running emsetup successfully, it finishes like saying "Setup
> appears OK for Emdebian. Nothing to do". But i dont know where the
> toolchain have been installed and how i will make use of it to build
> our own filesystem.

Use --verbose and/or --report to see the packages. The toolchain has
been installed in the normal packaging places, as normal Debian
packages. Use dpkg -l 'gcc*'

   yes, i got the toolchain installed in our machine, but when i gave 'dpkg -l gcc'  its showing many gcc packages, i dont know which toolchain for armel.Anyway i got arm-linux-gnu-* binaries.

You can use the cross-compiler using emdedian-tools (emsource and

    Can you tell me which are basic packages to cross compile for create a minimal root filesystem for our armel platform.Anyway i started with busybox from emsource ,but when i try to run #emdebuild --build-dep  its giving me a error

Checking for debian/control
Checking for buildtime cross dependencies in 'debian/xcontrol'.
No xcontrol file. Nothing to do.

How can i get this xcontrol file inside the debian.

You can also use it in any package build using:
$ dpkg-buildpackage -aarm
which in turn calls
$ ./configure --host=arm-linux-gnu --build=
(where build is either the full i386 or full amd64 triplet)
  I have to try this one after emdebuild work.

> > What error? Be precise.
> >
> > Why are you trying to run emsandbox from a local directory?
> > Ensure that the emdebian-rootfs package is installed inside the
> > Debian chroot and run emsandbox from there.
> >
> > emsandbox does not run ./emsecondstage itself, it prepares the root
> > filesystem tarball and copies emsecondstage into it. You are using a
> > chroot inside a chroot to create a chroot inside a different
> > chroot. ;-) (It's probably easier to have a box that runs Debian
> > natively - Ubuntu complicates things unnecessarily, which is why I
> > asked for emdebian-tools to be removed from Ubuntu.)
> >
> > The Debian chroot runs emsandbox to create the root filesystem. You
> > copy that root filesystem out of the Debian chroot and onto the
> > storage of the target board. Then you run ./emsecondstage to
> > configure the installed root filesystem.
> >
>     you totally misunderstood here, we have created that root
> filesystem (emdebian.tar.gz) in our chroot debian and then while we
> ran it in our arm target only we getting that error

Well, the reason comes directly from your original email:
"But when i try to run the ./emsanbox
in target its giving me some error"

emsandbox does not run in the target.

 sorry i ran emsecondstage only not emsandbox.

emsandbox runs in the Debian chroot to create the root filesystem which
is then decompressed to the target device.

> 1# ./emsecondstage
> ./emsecondstage: line 97:  1676 Illegal instruction     chroot

Disagreement between the root filesystem and the system / kernel
architecture. Sounds like you are using an armel system to execute ARM
binaries - whatever system you booted in order to run ./emsecondstage
was an armel system and the binaries being executed by emsecondstage
are ARM.

   yes, mine is armel sytem.so i trying to cross compile armel root filesystem.

>    We are trying to install armel toolchain to  build our own
> packages.Anyway after long struggle we forced to try the emsandbox
> rootfilessytem for our customized debian base file system. is this
> possible in emsandbox?

Yes, it is possible to build armel packages.

>    As i seen so far we didnt face any issue in chroot debian in
> ubuntu, only the emchain has given me the error of missing armel deb
> packages.But as you said emsetup only update the source.list and i
> dont know how to install the armel toolchain with emsetup.Can you
> show some light in this ?

If emsetup says everything is OK, it has found the toolchain.

> > 3. run the emdebian-rootfs scripts directly, not using some local
> > directory - emsandbox not ./emsandbox

emdebian-rootfs is a package - sorry, didn't mean to confuse.

> > 4. run emsandbox to create an ARM root filesystem tarball:
> > # emsandbox -a arm create
> >
> > 5. Back outside the Debian chroot, from Ubuntu, copy the root
> > filesystem tarball onto the target board storage.
> >
>  I cant find anything like emdebian-rootfs executable in the machine
> after installing emsandbox.

emsandbox is a script in the emdebian-rootfs package.

> > 6. From ubuntu, boot the board and connect.
>    how we will boot the board from ubuntu...we already running a
> minimal kernel and rootfilesystem which has been given by the board
> vendor.so, we are booting with their image and then trying the
> emdebian stuffs in that.

You have to connect a keyboard and monitor somehow, generally that is
via a serial connection to the bootloader and the Ubuntu system then
connects to the serial port and provides the interface, the connection.
I use screen, others would use minicom.

     yes, we are also using minicom.

> Do you have any documentation showing how to build our own filesystem
> using emdebian armel toolchain or to cross compile a package .that
> will be helpful to proceed my work hopefully.


Cache files for armel are the same as for ARM and dpkg-cross already
provides the required values.

Another problem with your Ubuntu setup is how to manage clean chroot
builds - using a disposable chroot inside a static chroot can require
some fiddling, equally using a static chroot for all builds is going to
cause problems with dependencies and cross-dependencies being left

To use a disposable chroot inside your Debian chroot, use empdebuild to
create it, update it and build packages inside it.

Once you've built a few packages using emsource, emdebuild and
empdebuild, you can look at the autobuilder, em_autobuild.

You'll need to create a local repository using reprepro to contain the
packages and make that available to the machine running emsandbox.
Use the machine:variant support to set the mirror in



Neil Williams


Reply to: