Wndr4300v2 compiling error in firmware (solved)

How do I compile this source code into a usable firmware image?

If I can figure that out I should be able to document a lot for the benefit of others who struggle with building firmware.

I have a fresh install of ubuntu10 on vbox. I have expanded the toolchain and sources and when I run make menuconfig I get a list of errors.

edit: maybe someone could have helped me if I had told them what I had typed as a command. This command syntax is incorrect.

GIT_HOME='pwd'/WNDR4300v2-V1.0.0.32_gpl_src/git_home make V=99

This command syntax is incorrect it is supposed to be:

GIT_HOME=/home/username/source_directory/WNDR4300v2-V1.0.0.32_gpl_src/git_home make V=99

Ignore the rest of these errors, they are misleading. They all went away after I corrected the command syntax.
end edit
error#1: I deleted the 'target/linux/x86/image/config.in. The bootloader for the wndr4300v2 is not grub and it is not an x86 platform. I don't understand why that stuff is even in this package. That error does not come up anymore when I run make menuconfig.

error#2 is the one I am working on now. Look down below the posting of the out put for more of my notes.

make menuconfig v=99
target/linux/x86/image/Config.in:5:warning: 'select' used by config symbol 'X86_GRUB_IMAGES' refer to undefined symbol 'PACKAGE_grub'

package/dnibusybox/target-config.in:1:warning: config symbol defined without type

package/dnibusybox/target-config.in:5:warning: config symbol defined without type

package/dnibusybox/target-config.in:9:warning: config symbol defined without type

tmp/.config-package.in:1608:warning: 'select' used by config symbol 'PACKAGE_dni-ip' refer to undefined symbol 'PACKAGE_libnl-tiny'
tmp/.config-package.in:1671:warning: 'select' used by config symbol 'PACKAGE_dnippp-mod-pppoa' refer to undefined symbol 'PACKAGE_linux-atm'
tmp/.config-package.in:1767:warning: 'select' used by config symbol 'PACKAGE_greendownload' refer to undefined symbol 'PACKAGE_'

Your configuration changes were NOT saved.

Here is the contents of the target-config.in

vreppeto@ubuntu10:~/src/WNDR4300v2-V1.0.0.32_gpl_src/package/dnibusybox$ cat target-config.in 
	default y if LINUX_2_4
	default n if LINUX_2_6

	default y if LINUX_2_4
	default n if LINUX_2_6

	default n if LINUX_2_4
	default y if LINUX_2_6

analyzing this syntax 'package/dnibusybox/target-config.in:1:warning: config symbol defined without type'

I see target-config.in ... it is the only target-config.in file in the entire source tree. I will try a comparison with other config.in files but first I will search google for target-config.in ... okay its talkking about cross compilation. Compiling for the wndr4300v2 (mips) on an Ubuntu (x86) system.

Three error messages all the same except 1 5 9..... line #s. The syntax of those lines are similar. "without type" seems to be asking 'how do I know which kernel this system is using' ..... The people that distributed this source probably assumed I would already know i needed the kernel source packages for my system installed for make to refer to (link?) when needed.

So lets install the source for the current kernel and see if that helps.

  • apt-get source linux-image-$(uname -r)

The source files are no longer available from the repositories so that command does not work anymore. I found my kernel and downloaded it. I may be able to expand it into the source tree. I am not sure if that is the right answer yet. I am going to step back and take a another look first. If you guys have some guidance here I would sure appreciate the help. If I can build some momentum here I will provide some documentation on this device and generate a current firmware image.

Would you help us by letting us know what sources you are trying to compile?

I'm guessing that is some OEM source. My experience in trying to build from an OEM's "GPL drop" have been abysmal, in general.

If you are trying to build OEM sources, see if it indicates what version of which OS they built it on. It may be in their notes. Some even recent drops I've tried to build require a 32-bit version of an old OS.

yes. It is a source tarball I downloaded from Netgear on their web site on this page ... https://kb.netgear.com/2649/NETGEAR-Open-Source-Code-for-Programmers-GPL

I found this github page https://github.com/coflery/WNDR4300v2 and I was trying to follow it's instructions to get this to build the first time. It refers specifically to the firmware so deleted my vbox vdi and started from scratch. The download includes the toolchain and the instructions say ubuntu 10.04 which uses kernel 2.6.32-38 #83.

At the very least I would like to provide some useful documentation for the openwrt community. If possible I will build a firmware image for wndr4300v2. It may be wishful thinking but it will be hella fun in the mean time.

If there is a different source and toolchain that would be easier to work with let me know. I will need to figure out how to customize it to get the factory update to accept the firmware image that I compile for it.

1 Like

It said 64 bit ubuntu 10.04. so That what I installed in virtualbox. I just finished another reply to you with some other details.

1 Like


It was a syntax error. The instructions said

GIT_HOME=`pwd`/git_home make V=99

eventually I realized I was supposed to replace 'pwd' with the absolute path to the parent working directory
The correct command is:

GIT_HOME=/home/username/src_directory/WNDR4300v2-V1.0.0.32_gpl_src/git_home make V=99

I have written practically no code at all but I have been using linux since '95'. I am having to relearn some of these commands. It is kind of embarrassing to make a mistake like this but it is important to document it so new users can find this answer.

Peace and respect

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.