I have a couple of Buffalos AG108 available for playing here.... The serial console is already attached and I have flashed <censored firmware>. It boots properly...
Now I'm trying to compile openwrt for it (buildroot-ng).
Basic support for the Buffalo WHR-HP-AG108 works. You have to change HAL from ap51 to ap30 in package/madwifi/Makefile, then wifi works as well.
One thing that's still untested is booting from flash, but theoretically that should work as well.
I'm at a loss here... how am I supposed to load the firmware ? Using redboot and load from a tftp server?
I also have an error building revision 6626 for atheros (make menuconfig, then select atheros and all defaults). It fails with the following error during kernel config/compile:
#
# configuration written to .config
#
scripts/kconfig/conf -s arch/mips/Kconfig
CHK include/linux/version.h
/bin/sh: -c: line 1: syntax error near unexpected token `('
/bin/sh: -c: line 1: `set -e; echo ' CHK include/linux/utsrelease.h'; mkdir -p include/linux/; if [ `echo -n "2.6.19.2 .file 1null .section.mdebug.abi32 .previous .ident GCC:(GNU)4.1.2" | wc -c ` -gt 64 ]; then echo '"2.6.19.2 .file 1null .section.mdebug.abi32 .previous .ident GCC:(GNU)4.1.2" exceeds 64 characters' >&2; exit 1; fi; (echo \#define UTS_RELEASE \"2.6.19.2 .file 1null .section.mdebug.abi32 .previous .ident GCC:(GNU)4.1.2\";) < include/config/kernel.release > include/linux/utsrelease.h.tmp; if [ -r include/linux/utsrelease.h ] && cmp -s include/linux/utsrelease.h include/linux/utsrelease.h.tmp; then rm -f include/linux/utsrelease.h.tmp; else echo ' UPD include/linux/utsrelease.h'; mv -f include/linux/utsrelease.h.tmp include/linux/utsrelease.h; fi'
make[6]: *** [include/linux/utsrelease.h] Error 2
make[5]: *** [prepare] Error 2
make[5]: Leaving directory `/home/pg/openwrt/trunk/build_mips/linux-2.6-atheros/linux-2.6.19.2'
make[4]: *** [/home/pg/openwrt/trunk/build_mips/linux-2.6-atheros/linux-2.6.19.2/.configured] Error 2
make[4]: Leaving directory `/home/pg/openwrt/trunk/target/linux/atheros-2.6'
make[3]: *** [prepare] Error 2
make[3]: Leaving directory `/home/pg/openwrt/trunk/target/linux'
make[2]: *** [linux-prepare] Error 2
make[2]: Leaving directory `/home/pg/openwrt/trunk/target'
make[1]: *** [target/compile] Error 2
make[1]: Leaving directory `/home/pg/openwrt/trunk'
make: *** [world] Error 2
I found the cause in ./build_mips/linux-2.6-atheros/linux-2.6.19.2/Makefile
# KERNELRELEASE can change from a few different places, meaning version.h
# needs to be updated, so this check is forced on all builds
uts_len := 64
define filechk_utsrelease.h
if [ `echo -n "$(KERNELRELEASE)" | wc -c ` -gt $(uts_len) ]; then \
echo '"$(KERNELRELEASE)" exceeds $(uts_len) characters' >&2; \
exit 1; \
fi; \
(echo \#define UTS_RELEASE \"$(KERNELRELEASE)\";)
endef
And this is actually correct as "2.6.19.2 .file 1null .section.mdebug.abi32 .previous .ident GCC:(GNU)4.1.2" has 74 characters.... Now KERNELRELEASE is defined in ./build_mips/linux-2.6-atheros/linux-2.6.19.2/include/config/kernel.release and it contains the above string.... I tried to change it by hand but it obviously gets overwritten by the kernel Makefile.
This leads me to believe that I'm not using the correct "make" utility. Under debian there're many different make flavours. (nmake, pmake, cmake, tmake etc etc). I have installed the normal make which is used to compile everything. Shall I change it?
The problem code is the one dealing with the "localver" variable:
___localver = $(objtree)/localversion* $(srctree)/localversion*
__localver = $(sort $(wildcard $(___localver)))
# skip backup files (containing '~')
_localver = $(foreach f, $(__localver), $(if $(findstring ~, $(f)),,$(f)))
localver = $(subst $(space),, \
$(shell cat /dev/null $(_localver)) \
$(patsubst "%",%,$(CONFIG_LOCALVERSION)))
At the end it contains junk (to my eyes at least). I have commented it out and compilation continues, but did I do right?
mesher
(Last edited by mesher on 21 Mar 2007, 11:03)