NSLU2-Linux
view · edit · print · history

Cross build environment

Get MasterMakefile by following MasterMakefile

 cd ~/slug
 make setup-optware  (or make setup-optware-developer)
 make update-optware
 make setup-slugos-4.8-beta
 make update-openembedded

Build the slugosbe toolchain, easiest to do (might be overkill)

 make slugosbe-image

Or, do the following for

Building the minimum required toolchain

 cd ~/slug/slugosbe
 . ./setup-env
 bb virtual/armeb-linux-gcc virtual/libc

The above step will take quite a while to finish, also allow at least 2.2GB disk space for ~/slug/slugosbe/tmp. The resulting toolchain is under ~/slug/slugosbe/tmp/cross and takes less than 100MB. You'll be able to safely remove the directories 'work' (~1.7GB) and 'deploy' (~14MB) from within '~/slug/slugosbe/tmp/' after the toolchain build if you need the space. These directories will be re-created and populated as needed by subsequent package builds.

You may find the command '. ./setup-env' causes your shell to close. This is due to a dependency satisfied in the beginning of the make process for the slugosbe-image target. The specific dependency appears to be a file 'tempdir.conf' but this has not been confirmed. It has been demonstrated that to satisfy this dependency, you can 'make slugosbe-image' then Ctrl-C out of it as soon as the bitbake files start being processed. Use the following two commands to work around the shell-closing problem.

sed -i -e 's/^MACHINE[[:space:]]*=[[:space:]]*\".*\"/MACHINE = \"nslu2be\"/' conf/auto.conf
echo "TOPDIR='`pwd`'" >conf/topdir.conf. conf/topdir.conf && test "`pwd`" = "$TOPDIR" || \
echo "TOPDIR='`pwd`'" > conf/topdir.conf

Building release-specific minimum required toolchains

You may also want to be able to get a toolchain suitable for building packages compatible with a specific release such as 'slugos-4.8-beta'. This can be accomplished using the MasterMakefile target 'setup-slugos-4.8-beta' in place of 'setup-slugosbe' used at the top of this file, so, in order to create a toolchain suitable bor building release 3.10 compatible packages, you would do the following:

 cd ~/slug
 make setup-slugos-4.8-beta
 cd ~slug/releases/slugos-4.8-beta
 . ./setup-env
 bb virtual/armeb-linux-gcc virtual/libc

This procedure should also be effective for any OE based slugos release for which you know the setup target in the MasterMakefile. In the case of slugos 3.10-beta, the created temp directory is 'openslug-nslu2.tmp'. The same guidelines as above apply for deleting the 'work' and 'deploy' directories in order to save space after the toolchain build.

Now optware slugosbe specific setup

 cd ~/slug
 make optware/slugosbe/.configured
 cd ~/slug/optware/slugosbe
 make directories ipkg-utils

Now you're ready to make some package, e.g.

 make which-dirclean which-check
 make unrar-dirclean unrar-check

Native build environment

Precondition: slugosbe installed; slugosbe bootstrapped

To be refined... (Need to specify what slugosbe packages and what optware packages are needed)

 mkdir -p ~/slug/downloads
 cd ~/slug
 svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware
 make -C optware slugosbe-target
 cd optware; ln -s ../downloads .
 cd ~/slug/optware/slugosbe
 make directories ipkg-utils

Now you're ready to make some package (optionally setup Distcc to speed up compilation).

 make which-dirclean which-check
 make unrar-dirclean unrar-check
view · edit · print · history · Last edited by hillct.
Based on work by BrianZhou, drif, Quantum-, and hillct.
Originally by BrianZhou.
Page last modified on March 22, 2008, at 08:36 AM