• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Dringendes Problem mit make bei Belkin F5D8235 -4 V1 Wlan Ro

theman

Newbie
Hallo,
_
ich habe vor kurzen für einen Kunden den Belkin Wlan Router F5D8235 ed4 Version 1 bestellt!
_
Ich muss allerdings in der Firmware eine HTML Datei für den Wlan Gast Access im Design anpassen, vor dem Kauf versicherte mir der Support dass dies kein Problem sei, da alle Firmeware Versionen als open source Download auf http://www.belkin.com/support/opensource/Default.aspx verfügbar sind! Mittlerweile vertröstet man mich damit, dass open source keine Unterstützung durch den Support erfährt!
_
Unter diesem Link befinden sich auch 3 Versionen passend zu meinem Router F5D82351xxx 1.01.19, 1.01.21 und 1.01.24! (alle Versionen ab 2.x.x passen nicht für mein Modell)
_
Als ich nun aber die Dateien heruntergeladen und wie in der mitgelieferten README.TXT alle Schritte genau so ausgeführt hatte, schlägt make, sobald es auf die „busybox“ trifft wegen 2 Fehlern fehl. Dabei habe ich die Dateien noch nicht bearbeitet, also so belassen wie von Belkin freigegeben.
_
Das selbe Problem mit make tritt bei jeder für meinen Router passenden Firmware Version auf, ebenfalls bei denen ab 2.x.x. Mittlerweile habe ich es auf Ubuntu karmic koala 64 Bit und auf Ubuntu Jaunty 32 Bit getestet, wobei ja das System keinen Unterschied machen dürfte, da ja der vorkonfigurierte build-root mitgeliefert wird!
_
Es tritt immer der folgende Fehler auf, siehe:

Code:
.depend.tmp
mv .depend.tmp .depend
/opt/buildroot-gdb/bin/mipsel-linux-uclibc-gcc -I/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include -I/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include -I/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/libbb -funsigned-char -Wall -Wstrict-prototypes -Wshadow -Os -fomit-frame-pointer -D_GNU_SOURCE -DNDEBUG     -c -o /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/applets/applets.o /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/applets/applets.c
In file included from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/busybox.h:27,
                 from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/applets/applets.c:33:
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/bb_config.h:1: error: syntax error before '-' token
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/bb_config.h:1: error: syntax error at '#' token
In file included from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/busybox.h:27,
                 from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/applets/applets.c:33:
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/bb_config.h:729:2: #endif without #if
In file included from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:39,
                 from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/busybox.h:50,
                 from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/applets/applets.c:33:
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/bb_config.h:1: error: syntax error before '-' token
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/bb_config.h:1: error: syntax error at '#' token
In file included from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:39,
                 from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/busybox.h:50,
                 from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/applets/applets.c:33:
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/bb_config.h:729:2: #endif without #if
In file included from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/pwd_.h:24,
                 from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:44,
                 from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/busybox.h:50,
                 from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/applets/applets.c:33:
/opt/buildroot-gdb/mipsel-linux-uclibc/sys-include/pwd.h:59: error: syntax error before '}' token
In file included from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/busybox.h:50,
                 from /home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/applets/applets.c:33:
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:94: error: syntax error before "va_list"
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:94: warning: function declaration isn't a prototype
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:102: error: syntax error before "va_list"
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:102: warning: function declaration isn't a prototype
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:103: error: syntax error before "va_list"
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:103: warning: function declaration isn't a prototype
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:158: error: syntax error before "va_list"
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:158: warning: function declaration isn't a prototype
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:159: error: syntax error before "va_list"
/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/include/libbb.h:160: warning: function declaration isn't a prototype
make[3]: *** [/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT/applets/applets.o] Fehler 1
make[3]: Verlasse Verzeichnis '/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT'
make[2]: *** [_all] Fehler 2
make[2]: Verlasse Verzeichnis '/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user/busybox-1.1.0.5VT'
make[1]: *** [all] Fehler 2
make[1]: Verlasse Verzeichnis '/home/skynet/workspace/GPL_BELKIN_F5D8235-4_v1000/v1.01.24/user'
make: *** [user_gemtek] Fehler 2
make: *** [all] Fehler 2
skynet@Druckerfreigabe:~/workspace/GPL_BELKIN_F5D8235-4_v1000$
_
_
Kann mir wer bitte bei diesem make Problem helfen, oder eine Alternative Lösung vorschlagen um die Dateien zu ändern. SSH Access habe ich leider keinen zum Router herstellen können!
_
Bin Dankbar für jede Hilfe, wäre recht dringend!!!

_
 

whois

Ultimate Guru
theman schrieb:
Bin Dankbar für jede Hilfe, wäre recht dringend!!![/b]
Dann solltest du wenigstens die verschiedenen Foren untereinander verlinken, das die sich nicht gegenseitig auf die Füsse treten.
http://www.linux-club.de/viewtopic.php?f=38&t=76935

moved to WLAN
 
OP
T

theman

Newbie
Ich hoffe dass mit den verschiedenen Foren ist nun nicht der Grund warum mir niemand Antwortet?

Unter folgendem Link hat sich schon etwas ergeben bezüglich GCC, ist aber soweit fest gefroren, vielleicht kann hier wer weiter helfen?
http://www.wintotal-forum.de/index.php/topic,157411.new.html#new

Danke
 

whois

Ultimate Guru
Du lieferst auch ziemlich wenig Informationen.

Welche GCC Version,Kernel,Kernelsource usw. usw.
 
OP
T

theman

Newbie
whois schrieb:
Du lieferst auch ziemlich wenig Informationen.

Welche GCC Version,Kernel,Kernelsource usw. usw.


Mein System
Ich habe Ubuntu 9.10 Karmic Koala 64Bit oder Ubuntu 8.4 Jaunty 32Bit oder Ubuntu 8.4 Jaunty Server 32Bit oder was immer nötig wäre...
Somit arbeite ich momentan meist mit einem Kernel 2.6.x

GCC habe ich schon getestet 4.4, 4.2, 3.4, 3.3, funktioniert hat keine, abgesehen dass sich von 4.x der Fehler bei der busybox Kompilierung mit der Version 3.x auf einen früheren Punkt verschoben hat (alle GCC Versionen hab ich über das Ubuntu Repository bezogen)

Unklarheiten
Im Download http://www.belkin.com/support/opensource/files/F5D8235v1-1.01.24-GPL.tar.gz Archiv ist ja ein Crosscompiler und der benötigte Linux Kernel 2.4.x schon dabei, hier verstehe ich den Zusammenhang mit meinem System, Kernel und GCC nicht! Es darf ja sowieso nichts von meinem System übernehmen, ansonsten würde es dem Router nicht bekommen?

Wichtigste Make und Config Dateien
Ich zeig mal was ich habe Moment...

README
Code:
F5D8235 Firmware 1.00.24 - GPL Source Code

Unpack the tool chain to /. It will unpack to /opt/buildroot-gdb 
and to /opt/surfmilo.

Unpack the source code archive

Add /opt/surfmilo/cross-dev/usr/bin to the search path

Run make in the GPL_BELKIN_F5D8235-4_v1000 directory. Run it as
super user or a user that can use sudo to become one.

The Firmware image will be located in the v1.01.24/images subdirectory
The Boot image will be located in the v1.01.24/uboot subdirectory.

Startmakefile
Code:
all:
	cd v1.01.24 && make dep && sudo make
	export PATH=$PATH:/opt/surfmilo/cross-dev/usr/bin
	cd v1.01.24/uboot && make

Hauptmakefile
Code:
############################################################################
#
# Makefile -- Top level uClinux makefile.
#
# Copyright (c) 2001-2004, SnapGear (www.snapgear.com)
# Copyright (c) 2001, Lineo
#

VERSIONPKG = 3.2.0
VERSIONSTR = $(CONFIG_VENDOR)/$(CONFIG_PRODUCT) Version $(VERSIONPKG)

############################################################################
#
# Lets work out what the user wants, and if they have configured us yet
#

export PROJECT=RALINK
export WL_DOMAIN=FCC
export COUNTRY=WW
export DEVMODE=RT
export MODEL=BELKIN
export VENDOR=WL
export BOARD=5VT
#export PHY=ICPLUS
export PHY=RTL8366
#export WIFI = 1
FW_VERSION = 1.01.24
KERNELZ = $(IMAGEDIR)/zImage
KERNEL_IMAGE = $(IMAGEDIR)/linux_uImage
ROMFS_IMAGE = $(IMAGEDIR)/romfs.sqsh
FIRMWARE_IMAGE = $(IMAGEDIR)/firmware.bin
COMP = gzip

ifeq (.config,$(wildcard .config))
include .config

#changed by Steven Liu
#all: ucfront cksum subdirs romfs image
#all: lib_only user_only modules romfs linux image
all: predo linux user_gemtek image_gemtek modules modules_install firmware
#	export PATH=$PATH:/opt/surfmilo/cross-dev/usr/bin
#	$(MAKE) -C $(ROOTDIR)/uboot
#	cd $(ROOTDIR)/uboot && make
else
all: config_error
endif

predo:
	cp $(ROOTDIR)/bin/raeth/* $(ROOTDIR)/linux/drivers/net/raeth

firmware:
	#Create linux uimage
	$(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S $(ROOTDIR)/$(LINUXDIR)/vmlinux  $(KERNELZ)
	cd $(IMAGEDIR) ; rm -f $(KERNELZ).*; $(COMP) -9 -f -S .$(COMP) $(KERNELZ)
	cd $(IMAGEDIR) ; ../bin/mkimage-uboot/mkimage -A mips -O linux -T kernel -C $(COMP) -a 8a000000 -e $(shell readelf -h $(ROOTDIR)/$(LINUXDIR)/vmlinux | grep "Entry" | awk '{print $$4}') -n "Linux Kernel Image"  -d $(KERNELZ).$(COMP) $(KERNEL_IMAGE)

	#Create firmware
#	bin/mksquashfs romfs $(ROMFS_IMAGE) -le -all-root
	bin/mksquashfs-lzma romfs $(ROMFS_IMAGE).lzma -le -all-root
#	bin/mksquashfs_lzma-3.2 romfs $(ROMFS_IMAGE).lzma
#	bin/mkimage-firmware/mkimage $(KERNEL_IMAGE) $(ROMFS_IMAGE) $(FIRMWARE_IMAGE)
	bin/mkimage-firmware/mkimage $(KERNEL_IMAGE) $(ROMFS_IMAGE).lzma $(FIRMWARE_IMAGE)
#	bin/fw_crc_hdr $(FIRMWARE_IMAGE) $(IMAGEDIR)/firmware_$(MODEL)_$(COUNTRY)_crc_hdr.bin
	bin/fw_crc_hdr $(FIRMWARE_IMAGE) $(IMAGEDIR)/F5D8235v1_$(COUNTRY)_$(FW_VERSION).bin
	
image_gemtek:
	rm -rf images/*
	sudo rm -rf romfs
	mkdir -p $(ROOTDIR)/images
	mkdir -p $(ROMFSDIR)/bin
	mkdir -p $(ROMFSDIR)/dev
	mkdir -p $(ROMFSDIR)/etc
	mkdir -p $(ROMFSDIR)/lib
	mkdir -p $(ROMFSDIR)/proc
	mkdir -p $(ROMFSDIR)/tmp
	mkdir -p $(ROMFSDIR)/sbin
	mkdir -p $(ROMFSDIR)/usr/bin
	mkdir -p $(ROMFSDIR)/usr/sbin
	echo `date` > $(ROMFSDIR)/etc/compile_date	
	ln -sf /tmp $(ROMFSDIR)/var
	cp -rf $(ROOTDIR)/bin/lib/* $(ROMFSDIR)/lib/
#	cp -f -R $(LIBDIR) $(ROMFSDIR)/
#	cp -f -R $(ROOTDIR)/uClibc/lib $(ROMFSDIR)/
#	rm -f $(ROMFSDIR)/lib/*.a
#	rm -f $(ROMFSDIR)/lib/*.la
#	rm -f $(ROMFSDIR)/lib/*.o
#	rm -f $(ROMFSDIR)/lib/libstdc++*
#	rm -rf $(ROMFSDIR)/lib/.svn
#	make -C linux modules
#	make -C linux modules_install
	make -C user romfs
	mkdir -p /tmp
	mkdir -p /tmp/log
	touch /tmp/belkin_n+_router.cfg
	touch /tmp/log/security.log
	touch /tmp/log/dhcpc.log
	touch /tmp/log/outgoing.log
	touch /tmp/log/incoming.log
	touch /tmp/log_web.txt
	touch /tmp/version.html
	ln -sf /tmp/belkin_n+_router.cfg $(ROMFSDIR)/www/belkin_n+_router.cfg
	ln -sf /tmp/log/security.log $(ROMFSDIR)/www/security.log
	ln -sf /tmp/log/dhcpc.log $(ROMFSDIR)/www/dhcpc.log
	ln -sf /tmp/log/outgoing.log $(ROMFSDIR)/www/outgoing.log
	ln -sf /tmp/log/incoming.log $(ROMFSDIR)/www/incoming.log
	ln -sf /tmp/log_web.txt $(ROMFSDIR)/www/log_web.txt
	ln -sf /tmp/version.html $(ROMFSDIR)/www/version.htm
	find $(ROMFSDIR) -name .svn | xargs rm -rf
	for i in `find romfs/bin -type f -print | file -f - | grep ELF | cut -d':' -f1`; do \
		$(STRIP) $$i; \
	done 
	for i in `find romfs/usr/sbin -type f -print | file -f - | grep ELF | cut -d':' -f1`; do \
		$(STRIP) $$i; \
	done	
	
libiconv_configure:
	cd $(ROOTDIR)/lib/libiconv-1.12 && \
        ./configure CC=/opt/buildroot-gdb/bin/mipsel-linux-uclibc-gcc CPP=/opt/buildroot-gdb/bin/mipsel-linux-uclibc-c++ --host=mipsel-linux-uclibc --prefix=$(ROOTDIR)/lib/libiconv-1.12/lib/.lib

libiconv:
	$(MAKE) -C $(ROOTDIR)/lib/libiconv-1.12
	$(MAKE) -C $(ROOTDIR)/lib/libiconv-1.12 install

user_gemtek:
	$(MAKE) -C user all	
#	$(MAKE) -C user romfs
#	$(MAKE) -C user image
	
uboot:
	$(MAKE) -C $(ROOTDIR)/uboot

############################################################################
#
# Get the core stuff worked out
#

LINUXDIR = $(CONFIG_LINUXDIR)
LIBCDIR  = $(CONFIG_LIBCDIR)
ROOTDIR  = $(shell pwd)
PATH	 := $(PATH):$(ROOTDIR)/tools
HOSTCC   = cc
IMAGEDIR = $(ROOTDIR)/images
ROMFSDIR = $(ROOTDIR)/romfs

PATH 		:= $(PATH):/opt/buildroot-gdb/bin
export KERNEL_DIR = $(ROOTDIR)/linux
export KERNELDIR = $(ROOTDIR)/linux
export USERDIR	= $(ROOTDIR)/user


ifeq ($(SWITCH),ICPLUS175C)
	CFLAGS          += -DSWITCH_ICPLUS175C
endif

ifeq ($(SWITCH),ICPLUS175D)
CFLAGS          += -DSWITCH_ICPLUS175D
endif

ifeq ($(PHY),ICPLUS)
CFLAGS          += -DPHY_ICPLUS
endif

ifeq ($(PHY),RTL8366)
CFLAGS          += -DPHY_RTL8366
endif

ifeq ($(BOARD),5VT)
CFLAGS          += -DBOARD_5VT -DITNL
endif

ifeq ($(WIFI),1)
CFLAGS          += -DWIFI
endif

ifeq ($(MODEL),BELKIN)
CFLAGS          += -DIPTBL_NORMAL_DMZ
CFLAGS          += -DIPTBL_PORTFW_WITH_PRI_PORT
CFLAGS          += -DIPTBL_FILTER_IP_RANGE
CFLAGS          += -DMULTIPLE_STATIC_IP_ADDRESS
CFLAGS          += -DMULTIPPPOE
CFLAGS          += -DNTP_WITH_DEFAULT_SERVER
CFLAGS          += -DWITH_CWF -DWITH_AP
CFLAGS          += -DIPTBL_MAC_FILTER
#CFLAGS          += -DCTY_JP
CFLAGS          += -DITNL
endif

export CFLAGS += -D$(PROJECT) -D$(VENDOR) -D__VENDOR_$(VENDOR) -D$(MODEL) -DGMTK_WL_$(WL_DOMAIN) -DCOUNTRY_$(COUNTRY)

export PATHUSER 					:= -I$(ROOTDIR)/include
export PATHNVRAM 					:= -I$(USERDIR)/nvram/include
export PATHSHARED				:= -I$(USERDIR)/shared
export LIBNVRAM 					:= -L$(USERDIR)/nvram/nvram -lnvram
export LIBDIR							:= $(ROOTDIR)/lib/

ROMFSINST= romfs-inst.sh
SCRIPTSDIR = $(ROOTDIR)/config/scripts
TFTPDIR    = /tftpboot
BUILD_START_STRING ?= $(shell date "+%a, %d %b %Y %T %z")
ifndef NON_SMP_BUILD
HOST_NCPU := $(shell if [ -f /proc/cpuinfo ]; then n=`grep -c processor /proc/cpuinfo`; if [ $$n -gt 1 ];then expr $$n \* 2; else echo $$n; fi; else echo 1; fi)
else
HOST_NCPU := 1
endif

LINUX_CONFIG  = $(ROOTDIR)/$(LINUXDIR)/.config
CONFIG_CONFIG = $(ROOTDIR)/config/.config
MODULES_CONFIG = $(ROOTDIR)/modules/.config


CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
	  else if [ -x /bin/bash ]; then echo /bin/bash; \
	  else echo sh; fi ; fi)

ifeq (config.arch,$(wildcard config.arch))
ifeq ($(filter %_default, $(MAKECMDGOALS)),)
include config.arch
ARCH_CONFIG = $(ROOTDIR)/config.arch
export ARCH_CONFIG
endif
endif

# May use a different compiler for the kernel
KERNEL_CROSS_COMPILE ?= $(CROSS_COMPILE)
ifneq ($(SUBARCH),)
# Using UML, so make the kernel and non-kernel with different ARCHs
MAKEARCH = $(MAKE) ARCH=$(SUBARCH) CROSS_COMPILE=$(CROSS_COMPILE)
MAKEARCH_KERNEL = $(MAKE) ARCH=$(ARCH) SUBARCH=$(SUBARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE)
else
MAKEARCH = $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE)
MAKEARCH_KERNEL = $(MAKEARCH)  ARCH=$(ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE)
endif
DIRS    =  $(ROOTDIR)/vendors include lib user

export VENDOR PRODUCT ROOTDIR LINUXDIR HOSTCC CONFIG_SHELL
export CONFIG_CONFIG LINUX_CONFIG MODULES_CONFIG ROMFSDIR SCRIPTSDIR
export VERSIONPKG VERSIONSTR ROMFSINST PATH IMAGEDIR RELFILES TFTPDIR
export BUILD_START_STRING
export HOST_NCPU

.PHONY: ucfront
ucfront: tools/ucfront/*.c
	$(MAKE) -C tools/ucfront
	ln -sf $(ROOTDIR)/tools/ucfront/ucfront tools/ucfront-gcc
	ln -sf $(ROOTDIR)/tools/ucfront/ucfront tools/ucfront-g++
	ln -sf $(ROOTDIR)/tools/ucfront/ucfront-ld tools/ucfront-ld

.PHONY: cksum
cksum: tools/sg-cksum/*.c
	$(MAKE) -C tools/sg-cksum
	ln -sf $(ROOTDIR)/tools/sg-cksum/cksum tools/cksum

############################################################################

#
# Config stuff,  we recall ourselves to load the new config.arch before
# running the kernel and other config scripts
#

.PHONY: config.tk config.in

config.in:
	@chmod u+x config/mkconfig
	config/mkconfig > config.in

config.tk: config.in
	$(MAKE) -C $(SCRIPTSDIR) tkparse
	ARCH=dummy $(SCRIPTSDIR)/tkparse < config.in > config.tmp
	@if [ -f /usr/local/bin/wish ];	then \
		echo '#!'"/usr/local/bin/wish -f" > config.tk; \
	else \
		echo '#!'"/usr/bin/wish -f" > config.tk; \
	fi
	cat $(SCRIPTSDIR)/header.tk >> ./config.tk
	cat config.tmp >> config.tk
	rm -f config.tmp
	echo "set defaults \"/dev/null\"" >> config.tk
	echo "set help_file \"config/Configure.help\"" >> config.tk
	cat $(SCRIPTSDIR)/tail.tk >> config.tk
	chmod 755 config.tk

.PHONY: xconfig
xconfig: config.tk
	@wish -f config.tk
	@if [ ! -f .config ]; then \
		echo; \
		echo "You have not saved your config, please re-run make config"; \
		echo; \
		exit 1; \
	 fi
	@chmod u+x config/setconfig
	@config/setconfig defaults
	@if egrep "^CONFIG_DEFAULTS_KERNEL=y" .config > /dev/null; then \
		$(MAKE) linux_xconfig; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_MODULES=y" .config > /dev/null; then \
		$(MAKE) modules_xconfig; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_VENDOR=y" .config > /dev/null; then \
		$(MAKE) config_xconfig; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_BUSYBOX=y" .config > /dev/null; then \
		$(MAKE) -C user/busybox menuconfig; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_UCLIBC=y" .config > /dev/null; then \
		$(MAKE) -C lib menuconfig; \
	 fi
	@config/setconfig final

.PHONY: config
config: config.in
	@HELP_FILE=config/Configure.help \
		$(CONFIG_SHELL) $(SCRIPTSDIR)/Configure config.in
	@chmod u+x config/setconfig
	@config/setconfig defaults
	@if egrep "^CONFIG_DEFAULTS_KERNEL=y" .config > /dev/null; then \
		$(MAKE) linux_config; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_MODULES=y" .config > /dev/null; then \
		$(MAKE) modules_config; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_VENDOR=y" .config > /dev/null; then \
		$(MAKE) config_config; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_BUSYBOX=y" .config > /dev/null; then \
		$(MAKE) -C user/busybox menuconfig; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_UCLIBC=y" .config > /dev/null; then \
		$(MAKE) -C lib menuconfig; \
	 fi
	@config/setconfig final

.PHONY: menuconfig
menuconfig: config.in
	$(MAKE) -C $(SCRIPTSDIR)/lxdialog all
	@HELP_FILE=config/Configure.help \
		$(CONFIG_SHELL) $(SCRIPTSDIR)/Menuconfig config.in
	@if [ ! -f .config ]; then \
		echo; \
		echo "You have not saved your config, please re-run make config"; \
		echo; \
		exit 1; \
	 fi
	@chmod u+x config/setconfig
	@config/setconfig defaults
	@if egrep "^CONFIG_DEFAULTS_KERNEL=y" .config > /dev/null; then \
		$(MAKE) linux_menuconfig; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_MODULES=y" .config > /dev/null; then \
		$(MAKE) modules_menuconfig; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_VENDOR=y" .config > /dev/null; then \
		$(MAKE) config_menuconfig; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_BUSYBOX=y" .config > /dev/null; then \
		$(MAKE) -C user/busybox menuconfig; \
	 fi
	@if egrep "^CONFIG_DEFAULTS_UCLIBC=y" .config > /dev/null; then \
		$(MAKE) -C lib menuconfig; \
	 fi
	@config/setconfig final

.PHONY: oldconfig
oldconfig: config.in
	@HELP_FILE=config/Configure.help \
		$(CONFIG_SHELL) $(SCRIPTSDIR)/Configure -d config.in
	@$(MAKE) oldconfig_linux
	@$(MAKE) oldconfig_modules
	@$(MAKE) oldconfig_config
	@chmod u+x config/setconfig
	@config/setconfig final

.PHONY: modules
modules:
	. $(LINUXDIR)/.config; if [ "$$CONFIG_MODULES" = "y" ]; then \
		[ -d $(LINUXDIR)/modules ] || mkdir $(LINUXDIR)/modules; \
		$(MAKEARCH_KERNEL) -C $(LINUXDIR) modules; \
	fi
	cp $(ROOTDIR)/bin/rtl.o $(ROOTDIR)/linux/drivers/net/rtl8366
	cp $(ROOTDIR)/bin/rt2860v2_ap.o $(ROOTDIR)/linux/drivers/net/wireless/rt2860v2_ap

.PHONY: modules_install
modules_install:
	. $(LINUXDIR)/.config; if [ "$$CONFIG_MODULES" = "y" ]; then \
		[ -d $(ROMFSDIR)/lib/modules ] || mkdir -p $(ROMFSDIR)/lib/modules; \
		$(MAKEARCH_KERNEL) -C $(LINUXDIR) INSTALL_MOD_PATH=$(ROMFSDIR) DEPMOD="../user/busybox/examples/depmod.pl -k vmlinux" modules_install; \
		rm -f $(ROMFSDIR)/lib/modules/*/build; \
		rm -f $(ROMFSDIR)/lib/modules/*/source; \
		find $(ROMFSDIR)/lib/modules -type f -name "*o" | xargs -r $(STRIP) -R .comment -R .note -g --strip-unneeded; \
	fi

linux_xconfig:
	KCONFIG_NOTIMESTAMP=1 $(MAKEARCH_KERNEL) -C $(LINUXDIR) xconfig
linux_menuconfig:
	KCONFIG_NOTIMESTAMP=1 $(MAKEARCH_KERNEL) -C $(LINUXDIR) menuconfig
linux_config:
	KCONFIG_NOTIMESTAMP=1 $(MAKEARCH_KERNEL) -C $(LINUXDIR) config
modules_xconfig:
	[ ! -d modules ] || $(MAKEARCH) -C modules xconfig
modules_menuconfig:
	[ ! -d modules ] || $(MAKEARCH) -C modules menuconfig
modules_config:
	[ ! -d modules ] || $(MAKEARCH) -C modules config
modules_clean:
	-[ ! -d modules ] || $(MAKEARCH) -C modules clean
config_xconfig:
	$(MAKEARCH) -C config xconfig
config_menuconfig:
	$(MAKEARCH) -C config menuconfig
config_config:
	$(MAKEARCH) -C config config
oldconfig_config:
	$(MAKEARCH) -C config oldconfig
oldconfig_modules:
	[ ! -d modules ] || $(MAKEARCH) -C modules oldconfig
oldconfig_linux:
	KCONFIG_NOTIMESTAMP=1 $(MAKEARCH_KERNEL) -C $(LINUXDIR) oldconfig

############################################################################
#
# normal make targets
#

.PHONY: romfs
romfs: romfs.subdirs modules_install romfs.post

.PHONY: romfs.subdirs
romfs.subdirs:
	for dir in vendors $(DIRS) ; do [ ! -d $$dir ] || $(MAKEARCH) -C $$dir romfs || exit 1 ; done

.PHONY: romfs.post
romfs.post:
	$(MAKEARCH) -C vendors romfs.post
	-find $(ROMFSDIR)/. -name CVS | xargs -r rm -rf

.PHONY: image
image:
	[ -d $(IMAGEDIR) ] || mkdir $(IMAGEDIR)
	$(MAKEARCH) -C vendors image
#	cp $(IMAGEDIR)/$(USER)_uImage $(TFTPDIR)

.PHONY: release
release:
	make -C release release

%_fullrelease:
	@echo "This target no longer works"
	@echo "Do a make -C release $@"
	exit 1
#
# fancy target that allows a vendor to have other top level
# make targets,  for example "make vendor_flash" will run the
# vendor_flash target in the vendors directory
#

vendor_%:
	$(MAKEARCH) -C vendors $@

.PHONY: linux
linux linux%_only:
	@if [ $(LINUXDIR) = linux-2.4.x -a ! -f $(LINUXDIR)/.depend ] ; then \
		echo "ERROR: you need to do a 'make dep' first" ; \
		exit 1 ; \
	fi
	$(MAKEARCH_KERNEL) -j$(HOST_NCPU) -C $(LINUXDIR) $(LINUXTARGET) || exit 1
	if [ -f $(LINUXDIR)/vmlinux ]; then \
		ln -f $(LINUXDIR)/vmlinux $(LINUXDIR)/linux ; \
	fi

.PHONY: sparse
sparse:
	$(MAKEARCH_KERNEL) -C $(LINUXDIR) C=1 $(LINUXTARGET) || exit 1

.PHONY: sparseall
sparseall:
	$(MAKEARCH_KERNEL) -C $(LINUXDIR) C=2 $(LINUXTARGET) || exit 1

.PHONY: subdirs
subdirs: lib linux modules
	for dir in $(DIRS) ; do [ ! -d $$dir ] || $(MAKEARCH) -C $$dir || exit 1 ; done

dep:
	@if [ ! -f $(LINUXDIR)/.config ] ; then \
		echo "ERROR: you need to do a 'make config' first" ; \
		exit 1 ; \
	fi
	$(MAKEARCH_KERNEL) -C $(LINUXDIR) dep

# This one removes all executables from the tree and forces their relinking
.PHONY: relink
relink:
	find user prop vendors -type f -name '*.gdb' | sed 's/^\(.*\)\.gdb/\1 \1.gdb/' | xargs rm -f

clean: modules_clean
	for dir in $(LINUXDIR) $(DIRS); do [ ! -d $$dir ] || $(MAKEARCH) -C $$dir clean ; done
	sudo rm -rf $(ROMFSDIR)/*
	rm -f $(IMAGEDIR)/*
	rm -f config.tk
	rm -f $(LINUXDIR)/linux
	rm -rf $(LINUXDIR)/net/ipsec/alg/libaes $(LINUXDIR)/net/ipsec/alg/perlasm
	rm -f $(LINUXDIR)/arch/mips/ramdisk/*.gz

real_clean mrproper: clean
	-$(MAKEARCH_KERNEL) -C $(LINUXDIR) mrproper
	-$(MAKEARCH) -C config clean
	rm -rf romfs config.in config.arch config.tk images
	rm -f modules/config.tk
	rm -rf .config .config.old .oldconfig autoconf.h

distclean: mrproper
	-$(MAKEARCH_KERNEL) -C $(LINUXDIR) distclean
	-rm -f user/tinylogin/applet_source_list user/tinylogin/config.h

%_only:
	@case "$(@)" in \
	*/*) d=`expr $(@) : '\([^/]*\)/.*'`; \
	     t=`expr $(@) : '[^/]*/\(.*\)'`; \
	     $(MAKEARCH) -C $$d $$t;; \
	*)   $(MAKEARCH) -C $(@:_only=);; \
	esac

%_clean:
	@case "$(@)" in \
	*/*) d=`expr $(@) : '\([^/]*\)/.*'`; \
	     t=`expr $(@) : '[^/]*/\(.*\)'`; \
	     $(MAKEARCH) -C $$d $$t;; \
	*)   $(MAKEARCH) -C $(@:_clean=) clean;; \
	esac

%_default:
	@if [ ! -f "vendors/$(@:_default=)/config.device" ]; then \
		echo "vendors/$(@:_default=)/config.device must exist first"; \
		exit 1; \
	 fi
	-make clean > /dev/null 2>&1
	cp vendors/$(@:_default=)/config.device .config
	chmod u+x config/setconfig
	yes "" | config/setconfig defaults
	config/setconfig final
	make dep
	make

config_error:
	@echo "*************************************************"
	@echo "You have not run make config."
	@echo "The build sequence for this source tree is:"
	@echo "1. 'make config' or 'make xconfig'"
	@echo "2. 'make dep'"
	@echo "3. 'make'"
	@echo "*************************************************"
	@exit 1

prune: ucfront
	@for i in `ls -d linux-* | grep -v $(LINUXDIR)`; do \
		rm -fr $$i; \
	done
#$(MAKE) -C lib prune
	$(MAKE) -C uClib prune
	$(MAKE) -C user prune
	$(MAKE) -C vendors prune

dist-prep:
	-find $(ROOTDIR) -name 'Makefile*.bin' | while read t; do \
		$(MAKEARCH) -C `dirname $$t` -f `basename $$t` $@; \
	 done

############################################################################

.config
Code:
#
# Automatically generated by make menuconfig: don't edit
#
CONFIG_DEFAULTS_RALINK=y

#
# Select the Product you wish to target
#
CONFIG_DEFAULTS_RALINK_RT2880=y
# CONFIG_DEFSETTING_2M16M is not set
CONFIG_DEFSETTING_4M16M=y

#
# Kernel/Library/Defaults Selection
#
CONFIG_DEFAULTS_KERNEL_2_4=y
# CONFIG_DEFAULTS_KERNEL_2_6_21 is not set
CONFIG_CROSS_COMPILER_PATH="/opt/buildroot-gdb/bin"
# CONFIG_DEFAULTS_OVERRIDE is not set
# CONFIG_DEFAULTS_KERNEL is not set
# CONFIG_DEFAULTS_VENDOR is not set
# CONFIG_DEFAULTS_BUSYBOX is not set
# CONFIG_DEFAULTS_UCLIBC is not set
# CONFIG_DEFAULTS_VENDOR_UPDATE is not set
CONFIG_VENDOR=Ralink
CONFIG_PRODUCT=RT2880
CONFIG_LINUXDIR=linux-2.4.x
CONFIG_LIBCDIR=
CONFIG_LANGUAGE=


Danke
 

lOtz1009

Moderator
Teammitglied
Ergebnis unter openSUSE 11.2 nach erfolgreichem make:
Code:
lotz@webgine:~/Download/GPL_BELKIN_F5D8235-4_v1000> rpm -qa | egrep "make|gcc"
make-3.81-130.2.i586
libstlport_gcc4-4.6.2-7.1.i586
gcc44-4.4.1_20090817-2.3.4.i586
libgcc44-4.4.1_20090817-2.3.4.i586
gcc-4.4-4.2.i586

lotz@webgine:~/Download/GPL_BELKIN_F5D8235-4_v1000> ls -la v1.01.24/images/
insgesamt 17444
drwxr-xr-x  2 lotz users    4096  8. Dez 18:41 .
drwxr-xr-x 11 lotz users    4096  8. Dez 18:39 ..
-rw-r--r--  1 root root  5570579  8. Dez 18:41 F5D8235v1_WW_1.01.24.bin
-rw-r--r--  1 root root  5570560  8. Dez 18:41 firmware.bin
-rw-r--r--  1 root root  1189646  8. Dez 18:40 linux_uImage
-rwx------  1 root root  4325376  8. Dez 18:41 romfs.sqsh.lzma
-rwxr-xr-x  1 root root  1189582  8. Dez 18:40 zImage.gzip

lotz@webgine:~/Download/GPL_BELKIN_F5D8235-4_v1000> ls -la v1.01.24/uboot/ | grep boot
-rwxr-xr-x  1 root root  534009  8. Dez 18:42 u-boot
-rwxr-xr-x  1 root root  150788  8. Dez 18:42 uboot.bin
-rw-r--r--  1 root root   69540  8. Dez 18:42 u-boot.map
-rwxr-xr-x  1 root root  452442  8. Dez 18:42 u-boot.srec
lotz@webgine:~/Download/GPL_BELKIN_F5D8235-4_v1000>
Ich bin dabei strikt alle 4 Schritte der Anleitung durchgegangen.
 
OP
T

theman

Newbie
lOtz1009 schrieb:
Ergebnis unter openSUSE 11.2 nach erfolgreichem make:
Code:
lotz@webgine:~/Download/GPL_BELKIN_F5D8235-4_v1000> rpm -qa | egrep "make|gcc"
make-3.81-130.2.i586
libstlport_gcc4-4.6.2-7.1.i586
gcc44-4.4.1_20090817-2.3.4.i586
libgcc44-4.4.1_20090817-2.3.4.i586
gcc-4.4-4.2.i586

lotz@webgine:~/Download/GPL_BELKIN_F5D8235-4_v1000> ls -la v1.01.24/images/
insgesamt 17444
drwxr-xr-x  2 lotz users    4096  8. Dez 18:41 .
drwxr-xr-x 11 lotz users    4096  8. Dez 18:39 ..
-rw-r--r--  1 root root  5570579  8. Dez 18:41 F5D8235v1_WW_1.01.24.bin
-rw-r--r--  1 root root  5570560  8. Dez 18:41 firmware.bin
-rw-r--r--  1 root root  1189646  8. Dez 18:40 linux_uImage
-rwx------  1 root root  4325376  8. Dez 18:41 romfs.sqsh.lzma
-rwxr-xr-x  1 root root  1189582  8. Dez 18:40 zImage.gzip

lotz@webgine:~/Download/GPL_BELKIN_F5D8235-4_v1000> ls -la v1.01.24/uboot/ | grep boot
-rwxr-xr-x  1 root root  534009  8. Dez 18:42 u-boot
-rwxr-xr-x  1 root root  150788  8. Dez 18:42 uboot.bin
-rw-r--r--  1 root root   69540  8. Dez 18:42 u-boot.map
-rwxr-xr-x  1 root root  452442  8. Dez 18:42 u-boot.srec
lotz@webgine:~/Download/GPL_BELKIN_F5D8235-4_v1000>
Ich bin dabei strikt alle 4 Schritte der Anleitung durchgegangen.

Versteh ich nicht, du hast im Grunde die selben Versionen wie ich, ich lade mir mal Suse runter, und teste es virtuell in dieser Umgebung...

aber danke, melde mich dann zurück
 

lOtz1009

Moderator
Teammitglied
Und hat sich das dringliche Problem nun gelöst? Woran lags im Endeffekt?
Oder gibts nun doch keine Rückmeldung?

//EDIT:
Letzte Anmeldung: Di 15. Dez 2009, 12:28
Danke auch für die Antwort.
Sehr gutes Beispiel dafür, warum man keine Multipostings mag.
Ich hoffe der "Kunde" hat gut bezahlt.
 
OP
T

theman

Newbie
-
Hallo,

hat etwas länger gebraucht für meine Antwort, muss aber leider sagen dass ich nicht herausgefunden habe warum es mit den GCC's welches bei Ubuntu im Paketmanager zu finden sind nicht klappte, hier kenne ich mich vermutlich zu schlecht aus um den Fehler zu finden...

Mit Suse (getestet mit 11.4) habe ich es nun erstellen und den Router flashen können, bislang problemlos, allerdings habe ich Suse zum Test nur in einer virtuellen Umgebung installiert. Was mich etwas gestört hatte, dass ich bei Suse nur einen 4,7 GB Download fand und keine kleinere Version, weshalb ich es nicht schon vorab selbst versucht habe, aber das ist ein anderes Thema.

Deswegen noch einmal ein Danke für Eure Hilfe :)



------
lOtz1009 schrieb:
Ich hoffe der "Kunde" hat gut bezahlt.

Nein davon kann man nicht wirklich sprechen, ich mache auch kein Geheimnis daraus, für die Installation einer Wlan Kamera und eines Routers (Installation ist Montage bis Inbetriebnahme und Konfiguration) plus der Installation der Zugangssoftware auf seinen Heimrechner und der Anpassung einer Capitve Portal Seite plus Support bekomme ich abzüglich der Kosten der Geräte genau 100 bis 120 Euro, ich denke man kann es schon mehr als Arbeit interessehalber betrachten als wirklich korrekt oder gut bezahlt. Lustig ist dass der jene für den ich es mache es immer noch sehr teuer findet...

na gut also Danke nochmals, und sorry dass ich nicht weiß warum es bei Ubuntu nicht klappte, wie gesagt mein Workaround war virtualbox mit dem vorgeschlagenen Suse ;)
 
Oben