------------------------------------------------------------------------------ What is uclibc? uClibc is a C library for developing embedded Linux systems. It is much smaller than the GNU C Library, but nearly all applications supported by glibc also work perfectly with uClibc ------------------------------------------------------------------------------ Why Gentoo when other smaller embedded more targeted distro's exist? - Gentoo is source based. - Gentoo also serves as your desktop. - Fast moving. - Begin process of adopting uclibc/cross compiler changes for entire build system. ------------------------------------------------------------------------------ What are the two types of systems? * native-uclibc native-uclibc is fully functional system using uclibc as it's primary libc. This has an advantage over cross compiling as everything can be built taking advantage of the target CPU. native-uclibc has an advantage that you can use PXE booting and NFS mounting or another network file system to mount from and use emerge/python etc without all of the hassle of cross compiling. This is also ideal for developers devloping for a product such as a wifi routers, surveillance systems, robots on parade. No need to test after developing since the environments are the same. * cross-uclibc cross-uclibc is unlike native. This is where your build host and target system differ. An example of this would be using an amd64 host to build an arm uclibc-busybox setup. Cross compiling can be very time consuming. ------------------------------------------------------------------------------ Do native-uclibc stages exist for (m68k/other arch) Not at this time. Our developers can only building for hardware they have direct access to. If you would like to get your arch support please donate a piece of hardware that our developers can use. (No, vmware or another emulator is NOT the answer) ------------------------------------------------------------------------------ I've downloaded and installed crossdev but there is no target for uClibc. How am I supposed to build a cross-toolchain for gentoo? For now you can utilize the toolchain / buildroot scripts found at uclibc.org. ------------------------------------------------------------------------------ How can I make stages for an arch that you guys don't have native stages for yet? Generating uclibc stages from thin air takes a few steps. 1) First thing you need to do is compile a prebase system using uclibc-buildroot grab it from http://uclibc.org/downloads/snapshots/ 2) Run `make menuconfig` and make sure to select 'python' and 'portage' in the package list. It'd be a good idea to select many of the other development related packages, but make sure you do NOT select busybox since it will conflict with the target toolchain (you did select to install a toolchain in the target right?). 3) Build & deploy the buildroot image 4) Emerge packages until you can run `emerge system -p` and not have anything left to emerge you will need to tweak the make.conf before emerging anything: CHOST="-linux-uclibc" CFLAGS="-Os -pipe" ACCEPT_KEYWORDS="~" you will also have to set the make.profile link in /etc: cd /etc rm -f make.profile ln -s ../usr/portage/profiles/uclibc/ make.profile 5) Generate a 'seed' tarball from the new buildroot: tar jpcf seed.tar.bz2 -C . 6) Run catalyst with the seed to produce stage{1,2,3} tarballs you will have to use catalyst newer than 1.0.8.1 or cvs you will have to set variables via the environment CHOST="-pc-linux-uclibc" CFLAGS="-Os -pipe" CXXFLAGS="${CFLAGS}" ACCEPT_KEYWORDS="~" 7) HAVE FUN !#@ ------------------------------------------------------------------------------ If python has 100M+ of support files how can it fit on my 8M compact flash. Gentoo's portage system was never intended to be deployed on an embedded device per say. It's therefore suggested to only use your Gentoo system as your staging host to build your flash images. This can be done in a number of ways, the most widely adopted is to use ROOT=/some/dir/ ------------------------------------------------------------------------------ I'm using a native build system to stage my embedded images and XYZ still wont compile. We don't have resources to develop and debug at the same time just yet due to the limited size of our team. If you find bugs and have patches, by all means send them to gentoo-embedded@gentoo.org. ------------------------------------------------------------------------------ I have more questions. - See the uClibc FAQ at http://uclibc.org/FAQ.html - e-mail gentoo-embedded@gentoo.org ------------------------------------------------------------------------------ Who's behind the uClibc efforts at Gentoo? * Ned Ludd - Coordinator * Mike Frysinger - native x86/arm/mips/ppc stage building with catalyst. * Peter S. Mazinger - Major Contributor. ------------------------------------------------------------------------------