Differences between revisions 1 and 15 (spanning 14 versions)
Revision 1 as of 2005-11-20 07:33:47
Size: 3953
Editor: ?CharlesStevenson
Comment: Added the old TWiki FAQ (converted with some perl sed... hopefully it's not bad)
Revision 15 as of 2006-09-21 09:21:47
Size: 3663
Editor: NeilWilliams
Comment: fix typo
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
=== Q: Sweet, there is a new build, how do I update my NFS system === === Where do I download the Emdebian distribution? ===
Line 4: Line 4:
Assuming that `target-2.0.1.11.tar.bz2` is your target tarball: The project is still working on tools, mechanisms and infrastructure to build a distro, but we do now have a couple of minimal working distributions you can try.
Line 6: Line 6:
{{{
$ mkdir ~/targets/target.2.0.1.11/; cd ~/targets/target.2.0.1.11/
$ tar xvfj /home/services/tftpboot/v2.0.1.11/target-2.0.1.11.tar.bz2
$ cp ~/targets/my.old.nfs.build/root/ppcstream/stream.cfg root/ppcstream/stream.cfg
}}}
EmdebianSlind is a pure dpkg-cross based system, where the built filesystem is NFS-mounted on the target to complete installation.
Line 12: Line 8:
The `stream.cfg` is a file that contains the contents of the Flash configuration (to avoid writing to flash for debugging).
Add the following line in `/etc/exports`
The other is a distro which uses scratchbox for the cross-building: [http://stage.maemo.org/pool/ Ed Bartosh's work]. Emdebian is in the process of deciding which of these approaches to use, or combining their good bits if possible.
Line 15: Line 10:
{{{
/users/firmware/`whoami`/targets/target.2.0.1.11/ *(rw,no_root_squash,no_all_squash,async)
}}}
=== what do I need to build a uclibc toolchain in debian? ===
http://www.emdebian.org/docs/slind-toolchain.html
You need to patch your binutils
http://www.emdebian.org/slind/patches/binutils-slind.diff
and you need slinds version of dpkg-cross. slind dpkg-dev isn't absolutely necessary. you can change /usr/share/dpkg/ files instead to support uclibc.
Also you need to use the uclibc source from slind. gcc is just fine.
(I don't know if all this is correct, I'll fix this later together with detailed instructions for dpkg-dev)
Line 19: Line 18:
and edit the dhcp.conf file in /etc/ so that your board (MAC address) points to this new directory: === ...and a glibc toolchain? ===
Just follow the same instructions as in http://www.emdebian.org/docs/slind-toolchain.html - but use normal debian sources. at least in Sid that should work.
Line 21: Line 21:
{{{
group {
  host svc.01{
  hardware ethernet 00:04:a5:04:05:53;
  fixed-address 10.0.0.51;
  option root-path "/users/firmware/mleeman/targets/target.3.0.0.4";
  }
# More boards
}
}}}
Finally, restart the appropriate servers
=== What changes do I have to do to the linux-kernel-headers source package so I can build them for a uclibc-* architecture? ===
Line 33: Line 23:
{{{
# /etc/init.d/nfs-kernel-server restart
# /etc/init.d/dchp restart
}}}
sorry, all this doesn't work,yet. all of it should work with the next version of lkh, though.
when bootstrapping in the phase where you have no target compiler you have to disable the tests: setting DEB_BUILD_OPTIONS=nocheck will do that.
uclibc support should be in it very soon now.
Line 38: Line 27:
The command which are executed during the build can be found in the file debug_command.log located in the build directory. Check this file for more information. The system is explained in more explained in ["NFSSystem"]. === Should I build my own cross toolchain - or use a prebuilt one? ===
That depends on what you want to do. If you want to build for a existing set of applications and libraries it is a good idea to use the toolchain they used. If you are starting from scratch you can build your own. it's not that hard. the toolchain howto on the emdebian site helps. also have a look at the README.cross in binutils and gccs debian dir.
Line 40: Line 30:
=== Q: Why does it not work? === === I was just wondering what the policy in on keeping the sid/etch packages install-able? ===
Line 42: Line 32:
Information saying "it does not work" is no information at all. In any case, you should try to be as precise in your information as you can. In order to have a timely fix for your problem, the following
When reporting bugs, the following needs to be checked
The idea has been (for a while) to have the common toolchains available and
up to date for stable, testing and unstable, but this has proved difficult
to actualy do, and whilst most of the infrastructure is now there, there is
still some work needed to make the system build new compilers each time
debian uploads a new one, and to fix the patches when they get stale.
Line 45: Line 38:
 * See if the PPC is dead. This can be done by performing a ping
{{{
$ ping 10.0.0.52
c:\windows> ping -n 1000 10.0.0.52
}}}
 * If you do not get a reply, this does not mean that your board is dead, the board might just be configured with the wrong network settings. Check this by attaching a cross cable and connecting to the default (hardwired) `10.0.0.2` address. Note that you can also have a configuration fetched from the Flash: check the history of the board.
 * If the ping is fine, check if you can login to the board. When you are a using a CRAMFS system, the one should be related to the other, but this is not the case when using an NFS system.
After the recent Emdebian work session we have decided to start using the
SLind patches rather than the bare Nikita patches, as they provide uclibc
functionality and fix some bugs/are still maintained.
Line 53: Line 42:
 * You might also have a problem that you initially get replies from the system and after a while none. This is useful since this might indicate that the network is reconfigured or the crash occurs in some application. Try to estimate as close as possible the time before crash. === Are there currently any plans for cross tools in debian proper? ===
Line 55: Line 44:
We have got preliminary agreement for Debian main to provide a set of
cross-compilers as part of the normal packages which will cover most needs.
Doing this will mean that we don't need to maintain our own parallel set.
Line 56: Line 48:
{{{
$ telnet 10.0.0.52
}}}
=== Would help working these be useful, or should I just be more parient ? ===
Line 60: Line 50:
 * If you keep on getting ping replies, try to log in.
  * If you fail to log in, and you have an NFS system: this indicates that your kernel is running but your `telnetd` has not been started. Check your configuration (and that of `inetd`).
  * You can log in, but your connection gets stuck or reset: this indicates that the board got started; the network was configured but some application crashed the system or had the system rebooted. Have a look at the kernel buffer or use a NFSSystem and load the modules one by one and start the applications one by one.

 * When the error is not that grave, but only the functionality is impaired; you should provide the final log entries of the applications. These are found in the Administration Login section of the web interface, or in the logfiles under
{{{
/var/log/
}}}

Finally, submit this information to a Bug Tracking System if available.

=== Q: Where do I get the kernel source for platform X ===

[http://www.kernel.org]

You just make and configure as you used to, just add the correct `CROSS_COMPILATION` prefix if you are not developing on the same architecutre as your target:

{{{
$ make ARCH=ppc CROSS_COMPILE=powerpc-linux-uclibc- oldconfig
$ make ARCH=ppc CROSS_COMPILE=powerpc-linux-uclibc- dep
$ make ARCH=ppc CROSS_COMPILE=powerpc-linux-uclibc-
}}}
Help would be very useful. Developer time is the only thing stopping the
situation improve (faster). I am also waiting on latest SLIND patches being
posted (<prod>). There is likely to be some action on either getting the SLIND
patches into debian main or updating the emdebian.org infrastructure this
week as we are at debconf, working on stuff like this.
----
CategoryEmdebian

Frequently Asked Questions

Where do I download the Emdebian distribution?

The project is still working on tools, mechanisms and infrastructure to build a distro, but we do now have a couple of minimal working distributions you can try.

EmdebianSlind is a pure dpkg-cross based system, where the built filesystem is NFS-mounted on the target to complete installation.

The other is a distro which uses scratchbox for the cross-building: [http://stage.maemo.org/pool/ Ed Bartosh's work]. Emdebian is in the process of deciding which of these approaches to use, or combining their good bits if possible.

what do I need to build a uclibc toolchain in debian?

http://www.emdebian.org/docs/slind-toolchain.html You need to patch your binutils http://www.emdebian.org/slind/patches/binutils-slind.diff and you need slinds version of dpkg-cross. slind dpkg-dev isn't absolutely necessary. you can change /usr/share/dpkg/ files instead to support uclibc. Also you need to use the uclibc source from slind. gcc is just fine. (I don't know if all this is correct, I'll fix this later together with detailed instructions for dpkg-dev)

...and a glibc toolchain?

Just follow the same instructions as in http://www.emdebian.org/docs/slind-toolchain.html - but use normal debian sources. at least in Sid that should work.

What changes do I have to do to the linux-kernel-headers source package so I can build them for a uclibc-* architecture?

sorry, all this doesn't work,yet. all of it should work with the next version of lkh, though. when bootstrapping in the phase where you have no target compiler you have to disable the tests: setting DEB_BUILD_OPTIONS=nocheck will do that. uclibc support should be in it very soon now.

Should I build my own cross toolchain - or use a prebuilt one?

That depends on what you want to do. If you want to build for a existing set of applications and libraries it is a good idea to use the toolchain they used. If you are starting from scratch you can build your own. it's not that hard. the toolchain howto on the emdebian site helps. also have a look at the README.cross in binutils and gccs debian dir.

I was just wondering what the policy in on keeping the sid/etch packages install-able?

The idea has been (for a while) to have the common toolchains available and up to date for stable, testing and unstable, but this has proved difficult to actualy do, and whilst most of the infrastructure is now there, there is still some work needed to make the system build new compilers each time debian uploads a new one, and to fix the patches when they get stale.

After the recent Emdebian work session we have decided to start using the SLind patches rather than the bare Nikita patches, as they provide uclibc functionality and fix some bugs/are still maintained.

Are there currently any plans for cross tools in debian proper?

We have got preliminary agreement for Debian main to provide a set of cross-compilers as part of the normal packages which will cover most needs. Doing this will mean that we don't need to maintain our own parallel set.

Would help working these be useful, or should I just be more parient ?

Help would be very useful. Developer time is the only thing stopping the situation improve (faster). I am also waiting on latest SLIND patches being posted (<prod>). There is likely to be some action on either getting the SLIND patches into debian main or updating the emdebian.org infrastructure this week as we are at debconf, working on stuff like this.


CategoryEmdebian