On Fri, Nov 21, 2008 at 2:19 AM, Neil Williams
<codehelp@debian.org> wrote:
On Thu, 20 Nov 2008 10:10:16 +0530
> 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
emdebuild).
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.
http://www.emdebian.org/emdebian/tools.html
http://www.emdebian.org/docs/howto-2.html
http://wiki.debian.org/EmdebianQuickStart
http://wiki.debian.org/EmdebianQuickStart#head-5027867c39c4c2124918820fed116676e155dc9b
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
behind.
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.
http://www.emdebian.org/buildd/
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
packages.conf.
http://manpages.debian.net/cgi-bin/man.cgi?query=emsandbox
http://www.emdebian.org/emdebian/customisation.html
http://www.emdebian.org/emdebian/machinevariants.html
--