OpenWRT from LUCI to Gargoyle

General discussion about Gargoyle, OpenWrt or anything else even remotely related to the project

Moderator: Moderators

patpat
Posts: 16
Joined: Sun May 03, 2009 1:28 pm

OpenWRT from LUCI to Gargoyle

Post by patpat »

I'm building my own OpenWRT images from the 8.09 branch for my Nanostation2. I'd like to replace the default Luci GUI and give to Gargoyle a try.
I do not want to add it as a package after the image is built, I'm short of memory then I have to build my image replacing Luci with Gargoyle at building time.

Could you please provide an step by step guide for doing this
thanks for your job
Pat

Eric
Site Admin
Posts: 1443
Joined: Sat Jun 14, 2008 1:14 pm

Re: OpenWRT from LUCI to Gargoyle

Post by Eric »

First checkout the gargoyle source code from the svn as described on the download page.

Code: Select all

svn checkout https://svn.assembla.com/svn/gargoyle-router/trunk 
cd into the directory, and eliminate all the .svn files, which can screw up the build:

Code: Select all

cd trunk
find . -name ".svn" | xargs rm -rf
Next, copy any non-standard packages you wish to add into the package subdirectory.

Code: Select all

cp -r ~/my-package package
Then run the build script with the "custom" option, which allows you to customise the image you build by selecting/deselecting packages. This script checks out the latest version of kamikaze 8.09 automatically.

Code: Select all

sh full-build-809.sh custom
It will download the 8.09 source (which may take a bit of time) and then will bring up a configuration screen (exactly like what you see when you run make menuconfig), to configure what packages you want to build.

Be sure to select your new packages at this stage. Also, there are a few packages that are architecture-dependent and won't be selected automatically, but should be selected manually for gargoyle to work. If you are building for brcm-2.4 select the wl (broadcom proprietary wireless) and bin2trx (under utilities) packages. For atheros and other 2.6 kernels install wpa-supplicant, hostapd (full version), and ebtables.

Save your configuration, and the build script should finish building your firmware. The final firmware images will be in the images/custom directory when it finishes.

patpat
Posts: 16
Joined: Sun May 03, 2009 1:28 pm

Re: OpenWRT from LUCI to Gargoyle

Post by patpat »

I'm in trouble with the non-standard packages step
I'm doing from trunk

Code: Select all

svn co svn://svn.openwrt.org/openwrt/packages/
cd packages
svn up			
cd ..
but when I call

Code: Select all

sh full-build-809.sh custom
the packages are finally not available for selection...
how can solve this?

thanks
Pat

Eric
Site Admin
Posts: 1443
Joined: Sat Jun 14, 2008 1:14 pm

Re: OpenWRT from LUCI to Gargoyle

Post by Eric »

Ah, there was a typo in my last message, it's the package subdirectory of the gargoyle trunk, not packages. (Fixed now in the above post too)

Put all non-standard packages in that directory. By default it contains a bunch of gargoyle-specific packages, but everything in that directory gets copied into the package directory of the build system, so everything you put in there should be available to be built.

One thing you can do is cd into that directory and then checkout all of the openwrt packages to give you everything possible.

patpat
Posts: 16
Joined: Sun May 03, 2009 1:28 pm

Re: OpenWRT from LUCI to Gargoyle

Post by patpat »

1)I've been able to add the packages, thanks..

2) I've found the command

Code: Select all

sh full-build-809.sh custom
ends up on the configuration screen but when I leave it the configuration is never saved.. and every time I run the command I have to start configuring from scratch... how can I solve this

3) I think having the configuration and the build process separated on 2 commands as openwrt does is more flexible.

4)I've selected from the default config the following options

Target System/ Atheros 231x/5312[2.6]
Target Image/ SquashFS
[x]Image Configuration/Lan IP address 192.168.20.1
kernel Modules/Filesystems/kmod-fs-cif
Administration/Gargoyle
Network/hostapd
Network/ ebtables
Network/ wpa-supplicant
Utilities/filemanager/Deco
Utilities/Editor/nano



but the image build process ends with
make: *** [world] Error 2and the img is not built

can I use the V=99 option? where ?

thanks
Pat
Last edited by patpat on Tue May 05, 2009 4:11 am, edited 2 times in total.

Eric
Site Admin
Posts: 1443
Joined: Sat Jun 14, 2008 1:14 pm

Re: OpenWRT from LUCI to Gargoyle

Post by Eric »

The build environment will be set up in the custom-src directory. You can cd into that directory and run make V=99. However....the V=99 option is used by default by the build script. You don't see the output about what's going on?

patpat
Posts: 16
Joined: Sun May 03, 2009 1:28 pm

Re: OpenWRT from LUCI to Gargoyle

Post by patpat »

I've been editing my previous post just before you posted

unfortunately I cannot see what's going on, the building process takes ages and produces a huge amount of info, when the process finishes I cannot see the error on putty's buffer, I'll try to redirect STDERROR just to see if I can catch the error

what about memory, how big gargoyle footprint is?

thanks for your help

patpat
Posts: 16
Joined: Sun May 03, 2009 1:28 pm

Re: OpenWRT from LUCI to Gargoyle

Post by patpat »

I run make V=99
and I've got
make[3]: Entering directory `/home/user/gargoyle/trunk/custom-src/package/packages/net/miniupnpd'
ln -sf /home/user/gargoyle/trunk/custom-src/build_dir/mips/miniupnpd-1.3/config.h.openwrt /home/user/gargoyle/trunk/c ustom-src/build_dir/mips/miniupnpd-1.3/config.h
make -C /home/user/gargoyle/trunk/custom-src/build_dir/mips/miniupnpd-1.3 -f Makefile.openwrt AR=mips-linux-uclibc-ar AS="mips-linux-uclibc-gcc -c -Os -pipe -mips32 -mtune=mips32 -funit-at-a-time -fhonour-copts" LD=mips-linux-uclibc-l d NM=mips-linux-uclibc-nm CC="mips-linux-uclibc-gcc" GCC="mips-linux-uclibc-gcc" CXX="mips-linux-uclibc-g++" RANLIB=m ips-linux-uclibc-ranlib STRIP=mips-linux-uclibc-strip OBJCOPY=mips-linux-uclibc-objcopy OBJDUMP=mips-linux-uclibc-obj dump SIZE=mips-linux-uclibc-size STAGING_DIR="/home/user/gargoyle/trunk/custom-src/staging_dir/mips" CFLAGS="-Os -pip e -mips32 -mtune=mips32 -funit-at-a-time -fhonour-copts -I /home/user/gargoyle/trunk/custom-src/staging_dir/mips/usr/ include -DIPTABLES_143" LIBS="/home/user/gargoyle/trunk/custom-src/staging_dir/mips/usr/lib/libiptc.so"
make[4]: Entering directory `/home/user/gargoyle/trunk/custom-src/build_dir/mips/miniupnpd-1.3'
mips-linux-uclibc-gcc -Os -pipe -mips32 -mtune=mips32 -funit-at-a-time -fhonour-copts -I /home/user/gargoyle/trunk/cu stom-src/staging_dir/mips/usr/include -DIPTABLES_143 -I/home/user/gargoyle/trunk/custom-src/staging_dir/mips/usr/incl ude -c -o netfilter/iptcrdr.o netfilter/iptcrdr.c
netfilter/iptcrdr.c:23:34: error: net/netfilter/nf_nat.h: No such file or directory
netfilter/iptcrdr.c: In function 'get_redirect_rule':
netfilter/iptcrdr.c:182: warning: passing argument 2 of 'iptc_first_rule' from incompatible pointer type
netfilter/iptcrdr.c:184: warning: passing argument 2 of 'iptc_next_rule' from incompatible pointer type
netfilter/iptcrdr.c:211: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:212: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:226: warning: passing argument 1 of 'iptc_free' from incompatible pointer type
netfilter/iptcrdr.c: In function 'get_redirect_rule_by_index':
netfilter/iptcrdr.c:265: warning: passing argument 2 of 'iptc_first_rule' from incompatible pointer type
netfilter/iptcrdr.c:267: warning: passing argument 2 of 'iptc_next_rule' from incompatible pointer type
netfilter/iptcrdr.c:292: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:293: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:308: warning: passing argument 1 of 'iptc_free' from incompatible pointer type
netfilter/iptcrdr.c: In function 'delete_rule_and_commit':
netfilter/iptcrdr.c:324: warning: passing argument 3 of 'iptc_delete_num_entry' from incompatible pointer type
netfilter/iptcrdr.c:334: warning: passing argument 1 of 'iptc_commit' from incompatible pointer type
netfilter/iptcrdr.c: In function 'delete_redirect_and_filter_rules':
netfilter/iptcrdr.c:373: warning: passing argument 2 of 'iptc_first_rule' from incompatible pointer type
netfilter/iptcrdr.c:375: warning: passing argument 2 of 'iptc_next_rule' from incompatible pointer type
netfilter/iptcrdr.c:406: warning: passing argument 1 of 'iptc_free' from incompatible pointer type
netfilter/iptcrdr.c: In function 'get_dnat_target':
netfilter/iptcrdr.c:479: error: invalid application of 'sizeof' to incomplete type 'struct nf_nat_multi_range'
netfilter/iptcrdr.c:485: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:486: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:487: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:487: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:488: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:488: error: 'IP_NAT_RANGE_MAP_IPS' undeclared (first use in this function)
netfilter/iptcrdr.c:488: error: (Each undeclared identifier is reported only once
netfilter/iptcrdr.c:488: error: for each function it appears in.)
netfilter/iptcrdr.c:489: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:489: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:490: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:490: error: 'IP_NAT_RANGE_PROTO_SPECIFIED' undeclared (first use in this function)
netfilter/iptcrdr.c: In function 'iptc_init_verify_and_append':
netfilter/iptcrdr.c:515: warning: passing argument 3 of 'iptc_append_entry' from incompatible pointer type
netfilter/iptcrdr.c:525: warning: passing argument 1 of 'iptc_commit' from incompatible pointer type
netfilter/iptcrdr.c: In function 'list_redirect_rule':
netfilter/iptcrdr.c:714: warning: passing argument 2 of 'iptc_first_rule' from incompatible pointer type
netfilter/iptcrdr.c:716: warning: passing argument 2 of 'iptc_next_rule' from incompatible pointer type
netfilter/iptcrdr.c:718: warning: passing argument 2 of 'iptc_get_target' from incompatible pointer type
netfilter/iptcrdr.c:751: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:753: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:754: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:755: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:756: error: dereferencing pointer to incomplete type
netfilter/iptcrdr.c:759: warning: passing argument 1 of 'iptc_free' from incompatible pointer type
make[4]: *** [netfilter/iptcrdr.o] Error 1
make[4]: Leaving directory `/home/user/gargoyle/trunk/custom-src/build_dir/mips/miniupnpd-1.3'
make[3]: *** [/home/user/gargoyle/trunk/custom-src/build_dir/mips/miniupnpd-1.3/.built] Error 2
make[3]: Leaving directory `/home/user/gargoyle/trunk/custom-src/package/packages/net/miniupnpd'
make[2]: *** [package/packages/net/miniupnpd/compile] Error 2
make[2]: Leaving directory `/home/user/gargoyle/trunk/custom-src'
make[1]: *** [/home/user/gargoyle/trunk/custom-src/staging_dir/mips/stamp/.package_compile] Error 2
make[1]: Leaving directory `/home/user/gargoyle/trunk/custom-src'
make: *** [world] Error 2
some missing package??

Eric
Site Admin
Posts: 1443
Joined: Sat Jun 14, 2008 1:14 pm

Re: OpenWRT from LUCI to Gargoyle

Post by Eric »

No, it looks like miniupnpd isn't compiling properly. You're using the very latest version instead of the gargoyle version of that package, since you updated all the packages (the gargoyle version is a little older but still seems to compile). However, I note that just 16 hours ago some fix was applied to that package to fix compilation (see here ).... maybe try it again?

patpat
Posts: 16
Joined: Sun May 03, 2009 1:28 pm

Re: OpenWRT from LUCI to Gargoyle

Post by patpat »

1) I see, then doing a

Code: Select all

svn up
again should work ok with the new fix; isn't it?
I'l try that


2) Please see why the gargoyle configure+build command does not save the configuration file, or is not invoking the existent conf file when ever is called forcing to start configuring everything again...

thanks

Post Reply