NSLU2-Linux
view · edit · print · history

FAQ.OptwareWl500gBuild History

Hide minor edits - Show changes to markup

June 20, 2008, at 08:02 AM by Holger -- Build your own ipk (for instance oww for the wl500g)
Changed lines 37-38 from:
to:

Added line 47:
Added line 50:
Added line 52:
Added line 54:
Added line 60:
June 20, 2008, at 08:01 AM by Holger -- Build your own ipk (for instance oww for the wl500g)
Changed lines 35-58 from:

Using autoconf_2.59a solves this issue.

to:

Using autoconf_2.59a solves this issue.

Build your own ipk (for instance oww for the wl500g):

For ipkg build, it is usually recommended to use a non-root user and a non-user accessible subdirectory, often /home/slug/optware.

The steps for optware/wl500g development are:

1) download wl500g toolchain from http://www.wlan-sat.com/boleo/optware/ to /opt/brcm and untar it with:

   tar -C / -xjf hndtools-mipsel-uclibc-3.2.3-uClibc++-0.1.12.tar.bz2

2) mkdir -p $HOME/slug && cd $HOME/slug

   svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware

3) cd $HOME/slug/optware && make wl500g-target 4) cd $HOME/slug/optware/wl500g 5) make directories ipkg-utils

The above only needs to be done once, and should only take a couple of minutes below, assume you're in $HOME/slug/optware/wl500g directory.

6) make hello-ipk (or hello-dirclean hello-check, this is for testing toolchain)... 7) make oww-ipk

The build result are in builds/

March 18, 2007, at 09:26 AM by oleo --
Changed lines 3-4 from:

Support for this package feed has been superseeded by [Optware-uClibcBuild]

to:

Support for this package feed has been superseeded by Optware-uClibcBuild

March 18, 2007, at 09:26 AM by oleo --
Changed lines 3-4 from:

Support for this package feed has been superseeded by Optware-uClibcBuild

to:

Support for this package feed has been superseeded by [Optware-uClibcBuild]

March 18, 2007, at 09:25 AM by oleo -- deprecated
Added lines 3-4:

Support for this package feed has been superseeded by Optware-uClibcBuild

November 05, 2006, at 12:20 PM by Thomas -- Link for Mastermakefile added
Changed lines 17-18 from:

Follow wiki.wl500g.info one step instructions to build custom firmware and its toolchain.

to:

Follow [http://wiki.wl500g.info/index.php/compilingcustomfirmware | wiki.wl500g.info] one step instructions to build custom firmware and its toolchain.

November 05, 2006, at 12:20 PM by Thomas -- Link for Mastermakefile added
Changed lines 20-21 from:
 put the nslu2_master_Makefile in Mywl500g/ directory. To build the optware :
to:
 put the [http://www.nslu2-linux.org/Makefile|nslu2_master_Makefile] in Mywl500g/ directory. To build the optware :
June 16, 2006, at 11:08 PM by rwhitby --
Deleted lines 23-24:

(it in fact cvs check out "cvsroot/nslu co -d optware unslung" )

May 26, 2006, at 08:55 AM by oleo -- Add autoconf build notes
Changed lines 32-35 from:

And make 3.80 when building Oleg firmware

to:

And make 3.80 when building Oleg firmware.

MySQL? and possibly others packages using autoreconf fails to build if autoconf from 2.59.cvs.2006.05.13 is used. Using autoconf_2.59a solves this issue.

March 05, 2006, at 02:59 AM by oleo --
Changed lines 8-9 from:

Optionally you can use the same toolchain which is used to build the wl500g firmware and then issue

to:

Alternatively you can use the same toolchain which is used to build the wl500g firmware and then issue

March 05, 2006, at 01:54 AM by oleo --
Changed lines 17-18 from:

Follow [[http://wiki.wl500g.info/index.php/compilingcustomfirmware | wiki.wl500g.info] one step instructions to build custom firmware and its toolchain.

to:

Follow wiki.wl500g.info one step instructions to build custom firmware and its toolchain.

March 05, 2006, at 01:04 AM by oleo -- uClibc++ toolchain upgrade for wl500g
Changed lines 1-2 from:

Note that the official builds for wl500g optware use the toolchain from wl500g.dyndns.org

|

to:

Note that the official builds for wl500g optware use the toolchain from wl500g.dyndns.org with uClibc++ upgrade for C++ compilation

Changed lines 4-5 from:

http://wl500g.dyndns.org - you must use the same toolchain which is used to build the wl500g firmware.

to:

Toolchain from http://wl500g.dyndns.org was updated to accomodate uClibc++ library for C++ compilation. You can grab the whole toolchain from http://www.wlan-sat.com/boleo/optware/ and install it with

tar -C / -xjf hndtools-mipsel-uclibc-3.2.3-uClibc++-0.1.12.tar.bz2

Optionally you can use the same toolchain which is used to build the wl500g firmware and then issue

   make libuclibc++
   make libuclibc++-install

in optware directory to upgrade toolchain with libuclibc++. This upgrade will affect all C++ include headers, install uClibc++ library and wrapper for g++. Note that gcc compiler remains untouched with this upgrade.

For running C++ programs like groff, python, mysql, ctorrent, ..., ipkg package libuclibc++_0.1.x.y-x.ipk is also required and built automaticaly as dummy dependence of libstdc++ (empty package) on libuclibc++ (real package).

Follow [[http://wiki.wl500g.info/index.php/compilingcustomfirmware | wiki.wl500g.info] one step instructions to build custom firmware and its toolchain.

Changed lines 20-21 from:
 put the nslu2_master_Makefile in Mywl500g/ directory.To build the optware :

$make setup-optware

to:
 put the nslu2_master_Makefile in Mywl500g/ directory. To build the optware :

$make setup-optware

Changed lines 26-27 from:

$make optware-wl500g

to:

$make optware-wl500g

Changed lines 31-32 from:

automake1.4 and 1.9 : it helps a lot :-)

to:

automake1.4 and 1.9 : it helps a lot :-) And make 3.80 when building Oleg firmware

January 04, 2006, at 11:42 PM by rwhitby --
Changed lines 4-12 from:

http://downloads.openwrt.org/docs/buildroot-documentation.html $cvs -d:pserver:anonymous@openwrt.org:/openwrt co openwrt once the compilation succeeded, copy /openwrt/staging_dir_mipsel to /opt/brcm/hndtools-mipsel-uclibc .

In the bin/ mipsel-linux-uclibc-gcc is referred to ,while in the master Makefile mipsel-uclibc-gcc is used ;so either make the necessary symlinks in the bin/ or modify in the master Makefile to reflect this.

to:

http://wl500g.dyndns.org - you must use the same toolchain which is used to build the wl500g firmware.

Changed lines 15-61 from:
  • C needed Hacks:

I describe just two as examples to follow;you need more to get the full blown packages compiled ! Once "adduser" successfully built,it just stops at "adns " with the following error: -- make[3]: Entering directory `/home/wangji/hslug/optware/wl500g/builds/adns/src'

/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc -g -O2 -Wall -Wmissing-prototypes -Wwrite-strings -Wstrict-prototypes -Wcast-qual -Wpointer-arith -c -o parse.o parse.c

parse.c:118: error: conflicting types for 'adns__parse_domain'

internal.h:579: error: previous declaration of 'adns__parse_domain' was here --

  • 2 ways to solve :
    • a dirty_solution:
    just replace in optware/wl500g/builds/adns/src/parse.c line 117 :
       adns_queryflags  by  parsedomain_flags 
  redo '$make optware-wl500g' to resume the build
  • b pseudogood_solution : create 2 trees adns-1.1/ and adns-1.1-patch/ from adns-1.1.tar.gz
    modify parse.c as in a) then create the patch with diff -Naur adns-1.1 adns-1.1-patch > optware/sources/adns/adns-1.1.patch
  modify optware/make/adns.mk to reflect this ;2 lines are concerned
  • line 41 : ADNS_PATCHES=$(ADNS_SOURCE_DIR)/adns-1.1.patch
  • line 96 : cat $(ADNS_PATCHES) | patch -d $(BUILD_DIR)/$(ADNS_DIR) -p1

-- again,redo make optware-wl500g to resume;

  • you will be stopped at "bash" with error:

make[3]: Entering directory `/home/wangji/hslug/optware/wl500g/builds/bash/lib/malloc'

/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc -I. -I../.. -I../.. -I../../include -I../../lib -DHAVE_CONFIG_H -DSHELL -g -O2 -DRCHECK -Dbotch=programming_error -O2 -pipe -I/home/wangji/hslug/optware/wl500g/staging/opt/include -c malloc.c

malloc.c:239: warning: integer constant is too large for "unsigned long" type

malloc.c: In function `internal_free':

malloc.c:904: error: label at end of compound statement make[3]: *** [malloc.o] Error 1 --

  • dirty solution "label at end of compound statement":
 add a "return;"  to line 904 of optware/wl500g/builds/bash/lib/malloc/malloc.c

resume with make optware-wl500g !

  • D poor Noobs might not know : you better install in your host machine both
to:
  • C poor Noobs might not know : you better install in your host machine both
November 20, 2005, at 02:05 PM by rwhitby --
Added line 1:

Note that the official builds for wl500g optware use the toolchain from wl500g.dyndns.org

November 18, 2005, at 08:31 AM by nnhoan -- OptwareWl500gBuild
Added lines 1-68:

|

  • A toolchain:

http://downloads.openwrt.org/docs/buildroot-documentation.html $cvs -d:pserver:anonymous@openwrt.org:/openwrt co openwrt once the compilation succeeded, copy /openwrt/staging_dir_mipsel to /opt/brcm/hndtools-mipsel-uclibc .

In the bin/ mipsel-linux-uclibc-gcc is referred to ,while in the master Makefile mipsel-uclibc-gcc is used ;so either make the necessary symlinks in the bin/ or modify in the master Makefile to reflect this.

  • B wl500g_optware:
 put the nslu2_master_Makefile in Mywl500g/ directory.To build the optware :

$make setup-optware (it in fact cvs check out "cvsroot/nslu co -d optware unslung" )

$make optware-wl500g

will normally build all the wl500g packages described in the Makefile.

  • C needed Hacks:

I describe just two as examples to follow;you need more to get the full blown packages compiled ! Once "adduser" successfully built,it just stops at "adns " with the following error: -- make[3]: Entering directory `/home/wangji/hslug/optware/wl500g/builds/adns/src'

/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc -g -O2 -Wall -Wmissing-prototypes -Wwrite-strings -Wstrict-prototypes -Wcast-qual -Wpointer-arith -c -o parse.o parse.c

parse.c:118: error: conflicting types for 'adns__parse_domain'

internal.h:579: error: previous declaration of 'adns__parse_domain' was here --

  • 2 ways to solve :
    • a dirty_solution:
    just replace in optware/wl500g/builds/adns/src/parse.c line 117 :
       adns_queryflags  by  parsedomain_flags 
  redo '$make optware-wl500g' to resume the build
  • b pseudogood_solution : create 2 trees adns-1.1/ and adns-1.1-patch/ from adns-1.1.tar.gz
    modify parse.c as in a) then create the patch with diff -Naur adns-1.1 adns-1.1-patch > optware/sources/adns/adns-1.1.patch
  modify optware/make/adns.mk to reflect this ;2 lines are concerned
  • line 41 : ADNS_PATCHES=$(ADNS_SOURCE_DIR)/adns-1.1.patch
  • line 96 : cat $(ADNS_PATCHES) | patch -d $(BUILD_DIR)/$(ADNS_DIR) -p1

-- again,redo make optware-wl500g to resume;

  • you will be stopped at "bash" with error:

make[3]: Entering directory `/home/wangji/hslug/optware/wl500g/builds/bash/lib/malloc'

/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc -I. -I../.. -I../.. -I../../include -I../../lib -DHAVE_CONFIG_H -DSHELL -g -O2 -DRCHECK -Dbotch=programming_error -O2 -pipe -I/home/wangji/hslug/optware/wl500g/staging/opt/include -c malloc.c

malloc.c:239: warning: integer constant is too large for "unsigned long" type

malloc.c: In function `internal_free':

malloc.c:904: error: label at end of compound statement make[3]: *** [malloc.o] Error 1 --

  • dirty solution "label at end of compound statement":
 add a "return;"  to line 904 of optware/wl500g/builds/bash/lib/malloc/malloc.c

resume with make optware-wl500g !

  • D poor Noobs might not know : you better install in your host machine both

automake1.4 and 1.9 : it helps a lot :-)

view · edit · print · history · Last edited by Holger.
Based on work by Holger, oleo, Thomas, and rwhitby.
Originally by nnhoan.
Page last modified on June 20, 2008, at 08:02 AM