NSLU2-Linux
view · edit · print · history

OpenSlug.BuildingTheTarball History

Hide minor edits - Show changes to markup

July 31, 2008, at 08:00 PM by Dan Grunberg -- added unset CDPATH suggestion for 4.8-Beta build error
Changed lines 113-116 from:
to:

On SlugOS-4.8-beta, you may encounter an error at the libltdl library due to your cd command echoing a successful directory change. To fix this, remove your CDPATH variable before building:

unset CDPATH

\\

August 31, 2007, at 07:09 PM by Christophe Démaret -- Tar version on debian
Added lines 112-116:

Tar version on debian

If using debian stable a.k.a. debian etch, you will have problem due to the version of GNU Tar that is being provided. Download the package of the version used in sarge on http://packages.debian.org and install it with dpkg -i.

August 22, 2007, at 04:52 PM by fcarolo -- removed false wikilinks
Changed line 13 from:
  • You'll also need access to the Intel ixp400 library files, which the make scripts will not be able to fetch for you (due to separate licensing issues). Instructions for finding these 2 library files can be found on the MasterMakefile page in the section called "Standard Steps." You'll need to execute two Intel licenses, and download the files, one of which you'll need to rename. After renaming that one file, you'll need to create MD5? signatures for both files. I would recommend setting these four files aside until you run the make the first time. When that build fails, you'll have an explicit path for where to put these four files, but it will look something like: <path to build sources>/slugos-3.10-beta/downloads/.
to:
  • You'll also need access to the Intel ixp400 library files, which the make scripts will not be able to fetch for you (due to separate licensing issues). Instructions for finding these 2 library files can be found on the MasterMakefile page in the section called "Standard Steps." You'll need to execute two Intel licenses, and download the files, one of which you'll need to rename. After renaming that one file, you'll need to create MD5 signatures for both files. I would recommend setting these four files aside until you run the make the first time. When that build fails, you'll have an explicit path for where to put these four files, but it will look something like: <path to build sources>/slugos-3.10-beta/downloads/.
Changed line 31 from:

Some packages seem to demand root permissions to build successfully(at least with SuSE? 9.3 Pro). I used NFS and had to change the line /mnt/openslug 192.168.xxx.xxx(rw) to /mnt/openslug 192.168.xxx.xxx(rw,no_squash_root) in /etc/exports on my NFS-server. (Where /mnt/openslug is the location you extracted the tarball to. Then against better knowledge (do a backup before you attempt this!) as root the packages which fail. The packages in questions are:

to:

Some packages seem to demand root permissions to build successfully(at least with SuSE 9.3 Pro). I used NFS and had to change the line /mnt/openslug 192.168.xxx.xxx(rw) to /mnt/openslug 192.168.xxx.xxx(rw,no_squash_root) in /etc/exports on my NFS-server. (Where /mnt/openslug is the location you extracted the tarball to. Then against better knowledge (do a backup before you attempt this!) as root the packages which fail. The packages in questions are:

Changed line 62 from:

On Openslug 3.10-Beta there seems to be a problem with building the ncurses package on newer versions of the SuSE? and Fedora distributions. This is confirmed for at least Fedora 7.

to:

On Openslug 3.10-Beta there seems to be a problem with building the ncurses package on newer versions of the SuSE and Fedora distributions. This is confirmed for at least Fedora 7.

Changed line 77 from:
ERROR: TaskFailed? event exception, abortingn
to:
ERROR: TaskFailed event exception, abortingn
August 21, 2007, at 12:13 PM by Frank Banzhoff --
Deleted line 15:

[Note Frank: make DISTRO=openslug worked for me but the other two commands you suggested gave errors.]

August 21, 2007, at 12:07 PM by Frank Banzhoff --
Added line 16:

[Note Frank: make DISTRO=openslug worked for me but the other two commands you suggested gave errors.]

August 19, 2007, at 06:09 PM by Martin A Bøgelund -- Added missing quotation marks
Changed line 106 from:
export LD_LIBRARY_PATH=${TOPDIR}/openslug-nslu2.tmp/staging/i686-linux/lib
to:
export LD_LIBRARY_PATH="${TOPDIR}/openslug-nslu2.tmp/staging/i686-linux/lib"
August 12, 2007, at 07:33 PM by Martin A Bøgelund -- Corrected formatting of ncurses troubleshooting - preview doesn\\
Changed lines 62-63 from:

On Openslug 3.10-Beta there seems to be a problem with building the ncurses package on newer version of the SuSE? and Fedora distributions. This is confirmed for at least Fedora 7.

to:

On Openslug 3.10-Beta there seems to be a problem with building the ncurses package on newer versions of the SuSE? and Fedora distributions. This is confirmed for at least Fedora 7. \\

Added line 66:
Added line 84:
Changed line 94 from:

The solution is to set the LD_LIBRARY_PATH variable in the setup-env file to include the directory

to:

The solution is to set the LD_LIBRARY_PATH variable in the setup-env file to include the directory

Added line 96:

\\

Added line 99:
Deleted line 103:
export LD_LIBRARY_PATH=${TOPDIR}/openslug-nslu2.tmp/staging/i686-linux/lib
Added lines 106-108:
export LD_LIBRARY_PATH=${TOPDIR}/openslug-nslu2.tmp/staging/i686-linux/lib


August 12, 2007, at 07:25 PM by Martin A Bøgelund -- Troubleshooting for failed ncurses-build added
Added lines 61-104:



On Openslug 3.10-Beta there seems to be a problem with building the ncurses package on newer version of the SuSE? and Fedora distributions. This is confirmed for at least Fedora 7. Specifically, you may see an error like this:
-> NOTE: package ncurses-5.4: started

NOTE: package ncurses-5.4-r8: task do_fetch: started
NOTE: package ncurses-5.4-r8: task do_fetch: completed
NOTE: package ncurses-5.4-r8: task do_populate_staging: started
ERROR: function do_stage failed
ERROR: see log in
[TOPDIR]/openslug-nslu2.tmp/work/ncurses-5.4-r8/temp/log.do_stage.15023
NOTE: Task failed:n
[TOPDIR]/openslug-nslu2.tmp/work/ncurses-5.4-r8/temp/log.do_stage.15023n
NOTE: package ncurses-5.4-r8: task do_populate_staging: failedn
ERROR: TaskFailed? event exception, abortingn
NOTE: package ncurses-5.4: failedn
ERROR: Build of ncurses failedn


...and in the mentioned log-file:
-> tic: symbol lookup error: tic: undefined symbol: _nc_check_termtype

? tic could not build
[TOPDIR]/slugos-3.10-beta/openslug-nslu2.tmp/work/ncurses-5.4-r8/temp-staging/usr/share/terminfo
make[1]: *** [install.data] Error 1
make[1]: Leaving directory
`[TOPDIR]/openslug-nslu2.tmp/work/ncurses-5.4-r8/ncurses-5.4/misc'
make: *** [install] Error 2
FATAL: oe_runmake failed

The solution is to set the LD_LIBRARY_PATH variable in the setup-env file to include the directory containing the libncurses*.so.* shared libraries for i686: Find the line
-> export LD_LIBRARY_PATH=
and change it to

export LD_LIBRARY_PATH=${TOPDIR}/openslug-nslu2.tmp/staging/i686-linux/lib


or whatever value may fit your particular installation.

Thanks to Mike (mwester) for providing this solution in the nslu2-linux group.

August 11, 2007, at 06:21 PM by Martin A Bøgelund -- Corrected spelling
Changed line 17 from:
  • The packages that have been build can be found in tmp/deploy/ipk. These can be installed on a slug using ipkg.
to:
  • The packages that have been built can be found in tmp/deploy/ipk. These can be installed on a slug using ipkg.
January 31, 2007, at 09:29 PM by Omar Green -- messed up the link to the MakeMasterFile page
Changed line 13 from:
  • You'll also need access to the Intel ixp400 library files, which the make scripts will not be able to fetch for you (due to separate licensing issues). Instructions for finding these 2 library files can be found on the MasterMakeFile? page in the section called "Standard Steps." You'll need to execute two Intel licenses, and download the files, one of which you'll need to rename. After renaming that one file, you'll need to create MD5? signatures for both files. I would recommend setting these four files aside until you run the make the first time. When that build fails, you'll have an explicit path for where to put these four files, but it will look something like: <path to build sources>/slugos-3.10-beta/downloads/.
to:
  • You'll also need access to the Intel ixp400 library files, which the make scripts will not be able to fetch for you (due to separate licensing issues). Instructions for finding these 2 library files can be found on the MasterMakefile page in the section called "Standard Steps." You'll need to execute two Intel licenses, and download the files, one of which you'll need to rename. After renaming that one file, you'll need to create MD5? signatures for both files. I would recommend setting these four files aside until you run the make the first time. When that build fails, you'll have an explicit path for where to put these four files, but it will look something like: <path to build sources>/slugos-3.10-beta/downloads/.
January 31, 2007, at 09:27 PM by Omar Green -- added info for getting intel libraries
Added line 13:
  • You'll also need access to the Intel ixp400 library files, which the make scripts will not be able to fetch for you (due to separate licensing issues). Instructions for finding these 2 library files can be found on the MasterMakeFile? page in the section called "Standard Steps." You'll need to execute two Intel licenses, and download the files, one of which you'll need to rename. After renaming that one file, you'll need to create MD5? signatures for both files. I would recommend setting these four files aside until you run the make the first time. When that build fails, you'll have an explicit path for where to put these four files, but it will look something like: <path to build sources>/slugos-3.10-beta/downloads/.
November 16, 2006, at 01:57 AM by fcarolo -- reorganizing information about Optware packages
Changed line 23 from:
  • If you want to add a package probably the best way to start is to look at an existing package and see how things are done there (and copy/edit to make your own package). If you need more info on bitbake and its capabilities check out http://bitbake.berlios.de/manual/.You might also examine AddAPackageToUnslung to see how packages are handled over there.
to:
  • If you want to add a package probably the best way to start is to look at an existing package and see how things are done there (and copy/edit to make your own package). If you need more info on bitbake and its capabilities check out http://bitbake.berlios.de/manual/.You might also examine AddAPackageToOptware to see how packages are handled over there.
April 12, 2006, at 10:32 PM by ByronT -- Slug-Firmware.net related changes
Changed line 10 from:
  • First you'll need to get the tarball. You can get this from http://www.openslug.org.
to:
  • First you'll need to get the tarball. You can get this from http://www.slug-firmware.net.
March 13, 2006, at 09:45 AM by andrew --
Added lines 42-59:

[Andrew Robinson]To correct the corrupted glibc problem I had to this after make image fails



cd downloads
tar -xvvzf ports_sources.redhat.com__20050627.tar.gz
rm ports_sources.redhat.com__20050627.tar.gz
tar -cvvzf ports_sources.redhat.com__20050627.tar.gz ports/
md5sum ports_sources.redhat.com__20050627.tar.gz | while read checksum file
do
echo -n "$checksum" > "$file".md5
done
rmdir --ignore ports
cd ..
make image



Also package cpio failed to build because I didn't have texinfo installed on the machine I was building on.

March 12, 2006, at 11:52 AM by mathieu_xwave -- Adding the glibc corrupt problem
Added lines 35-41:

Troubleshooting

On Openslug 2.7, there is a corrupted file problem with glibc: (quoted from Øyvind Repvik on the nslu2-linux mailing list):

The glibc tarball is corrupt. Unpack it, then repack it. You might have to recreate the md5sum. Then you should be ok.

February 08, 2006, at 06:31 PM by gfk -- Changed make to make image, since make failed.
Changed line 13 from:
  • Type make in the directory where you extracted the sources. This will install the cross-build environment and build all packages. It will take several hours to actually do this (about 4hrs on my 3Ghz pentium). There does not seem to be an easy way to install only the cross-build environment.\\
to:
  • Type make image or make distro-safe in the directory where you extracted the sources, see the README file for infos. This will install the cross-build environment and build all packages. It will take several hours to actually do this (about 4hrs on my 3Ghz pentium). There does not seem to be an easy way to install only the cross-build environment.\\
October 29, 2005, at 09:08 AM by Zhyla -- adding notes about network builds failing
Added lines 33-34:

On 2.7beta I tried to build on an NFS-mounted directory and it failed when trying to compile the first package (quilt). Closer examination showed an empty makefile. Building in a local directory went much better. -Zhyla

October 28, 2005, at 09:09 AM by Zhyla -- adding python version requirement
Changed line 7 from:

It is assumed that you have a full-fledged linux system at hand to do the compilation on. You definitely require gcc, python and friends. If you use Fedora core and use the workstation selection while installing it you're fine. Also you need enough disk space (at least 10 GB free). Finally you need internet access as additonal software is downloaded from the web (and no, you don't want to do this with a dial-up connection).\\

to:

It is assumed that you have a full-fledged linux system at hand to do the compilation on. You definitely require gcc, python 2.3 or better, and friends. If you use Fedora core and use the workstation selection while installing it you're fine. Also you need enough disk space (at least 10 GB free). Finally you need internet access as additonal software is downloaded from the web (and no, you don't want to do this with a dial-up connection).\\

September 26, 2005, at 05:03 PM by uoams --
Changed lines 30-32 from:

Some packages seem to demand root permissions to build successfully. I used NFS and had to change the line /mnt/openslug 192.168.xxx.xxx(rw) to /mnt/openslug 192.168.xxx.xxx(rw,no_squash_root) in /etc/exports on my NFS-server. (Where /mnt/openslug is the location you extracted the tarball to. Then against better knowledge (do a backup before you attempt this!) as root everything compiled smoothly.

to:

Some packages seem to demand root permissions to build successfully(at least with SuSE? 9.3 Pro). I used NFS and had to change the line /mnt/openslug 192.168.xxx.xxx(rw) to /mnt/openslug 192.168.xxx.xxx(rw,no_squash_root) in /etc/exports on my NFS-server. (Where /mnt/openslug is the location you extracted the tarball to. Then against better knowledge (do a backup before you attempt this!) as root the packages which fail. The packages in questions are:

  • mgetty-1.1.30-r3 (cause: cp: cannot create regular file `/usr/local/info:/usr/share/info:/usr/info/_inst...)
September 25, 2005, at 05:34 PM by uoams --
Changed lines 26-30 from:

I hope this was useful. If you have additional info, corrections, whatever, you are strongly encouraged to update the page so others can benefit from it.

to:

I hope this was useful. If you have additional info, corrections, whatever, you are strongly encouraged to update the page so others can benefit from it.


Network build

Some packages seem to demand root permissions to build successfully. I used NFS and had to change the line /mnt/openslug 192.168.xxx.xxx(rw) to /mnt/openslug 192.168.xxx.xxx(rw,no_squash_root) in /etc/exports on my NFS-server. (Where /mnt/openslug is the location you extracted the tarball to. Then against better knowledge (do a backup before you attempt this!) as root everything compiled smoothly.

September 20, 2005, at 07:57 AM by Steinar Midtskogen -- Added a note on symlinks in the build path
Changed line 12 from:
  • Unzip and untar the tarball in this directory. If, despite the previous instruction you did not extract in a separate directory, make that directory now and move bitbake, conf, Makefile, openembedded, and setup-env to this directory. Do not move the tree or directories after building. There are some uncharted dependencies that cause things not to work any more after you done this (of course wizards can repair that by using symlinks, but that is not really a nice solution; better put the stuff directly in a good location).
to:
  • Unzip and untar the tarball in this directory. If, despite the previous instruction you did not extract in a separate directory, make that directory now and move bitbake, conf, Makefile, openembedded, and setup-env to this directory. Do not move the tree or directories after building. There are some uncharted dependencies that cause things not to work any more after you done this (of course wizards can repair that by using symlinks, but that is not really a nice solution; better put the stuff directly in a good location). There should be no symlinks in the build path. cd `pwd -P` should take you to the true path.
September 10, 2005, at 11:08 AM by eFfeM -- added some more info on dirs etc.
Changed lines 16-17 from:
  • <some more text on where images etc are will be here, need to wait until the build is finished to add it>
to:
  • The packages that have been build can be found in tmp/deploy/ipk. These can be installed on a slug using ipkg.
  • kernel and root filesystem can be found in tmp/deploy/images. UpSlug2 describes how to install the kernel.
September 10, 2005, at 09:39 AM by eFfeM -- changed text on adding a package
Changed line 22 from:
  • I am unaware of instructions on how to add a new package (and have never done that), so if you want to do that you're on your own. You might examine AddAPackageToUnslung to see how packages are handled over there. And if you have more info, please update this wiki page!
to:
  • If you want to add a package probably the best way to start is to look at an existing package and see how things are done there (and copy/edit to make your own package). If you need more info on bitbake and its capabilities check out http://bitbake.berlios.de/manual/.You might also examine AddAPackageToUnslung to see how packages are handled over there.
September 10, 2005, at 09:23 AM by eFfeM -- creation
Added lines 1-25:

Building the binaries from the tarball

This HowTo describes how to build the sources from the tarball. This was written with 2.5 in mind. For other versions your milage may vary.

Note that this is for a cross build. A native build is unbroken ground. Natively building everything will probably require an extended vacation to get things finished. However natively building selected packages or the kernel might be possible. You might want to look at OpenSlugNativeCompileEnvironment

It is assumed that you have a full-fledged linux system at hand to do the compilation on. You definitely require gcc, python and friends. If you use Fedora core and use the workstation selection while installing it you're fine. Also you need enough disk space (at least 10 GB free). Finally you need internet access as additonal software is downloaded from the web (and no, you don't want to do this with a dial-up connection).
Never work as root, so make sure you are logged in as a regular user (working under root is a bad habit and a recipe for accidents and disasters).

  • First you'll need to get the tarball. You can get this from http://www.openslug.org.
  • Next create a directory where you want to put all this. The tarball does not contain a top level directory, so be sure to do this first.
  • Unzip and untar the tarball in this directory. If, despite the previous instruction you did not extract in a separate directory, make that directory now and move bitbake, conf, Makefile, openembedded, and setup-env to this directory. Do not move the tree or directories after building. There are some uncharted dependencies that cause things not to work any more after you done this (of course wizards can repair that by using symlinks, but that is not really a nice solution; better put the stuff directly in a good location).
  • Type make in the directory where you extracted the sources. This will install the cross-build environment and build all packages. It will take several hours to actually do this (about 4hrs on my 3Ghz pentium). There does not seem to be an easy way to install only the cross-build environment.
    It might be that the build stops at a certain point because some stuff needed on the internet is not available. While play-testing this, this happened for xinetd. If that happens, the most important stuff is probably build already anyway. You can try again later or just move on (and build the remaining packages manually, see later)
  • After doing the build the directory tmp/cross/bin is going to contain the cross compiler and friends. You do not need to do anything here, but if things fail you can see here whether it got this far. This directory needs to contain a number of files starting with armeb-linux- (e.g. armeb-linux-gcc)
  • <some more text on where images etc are will be here, need to wait until the build is finished to add it>
  • Once you have gone through the initial process and want to build an individual package, execute the following steps:
    source setup-env
    bitbake <packagename>
    (e.g. bitbake zuc if you want to build the zuc package.
    The packages can be found in openembedded/packages and the name of the package is the name of the directory.
  • I am unaware of instructions on how to add a new package (and have never done that), so if you want to do that you're on your own. You might examine AddAPackageToUnslung to see how packages are handled over there. And if you have more info, please update this wiki page!
  • If you want to you can now make changes to the kernel or add/remove packages to the kernel. Be careful with this, and be sure to read CustomisingTheBuild first.

I hope this was useful. If you have additional info, corrections, whatever, you are strongly encouraged to update the page so others can benefit from it.

Page last modified on July 31, 2008, at 08:00 PM