Making Firmware For the Linksys WRT Routers

Use

make -j4

For default build

It has come back with this error message:-

make -r world: build failed. Please re-run make with -j1 V=s to see what's going on
/home/will/openwrt/include/toplevel.mk:216: recipe for target 'world' failed
make: *** [world] Error 1

make -j1 V=s

worth a shot

What is this? Why?

To test building, you only need to

  • select the device (WRT1900AC). All other needed mandatory packages will get selected automatically.
  • optionally select "luci" collection from the LuCI menu.

And then just make with "make V=s" so that you see the actual error messages. "-j 5"

Skip all other selections until you can build at least the basic firmware without problems.

Often, multi-threaded build errors are due to the "download" portion not completing before it is required for another portion of the code to be compiled. My "mantra" to help avoid this is

make -jN clean download world

where N is typically the number of processors/cores +1 if you're willing to dedicate your whole machine to the build, less if you need to be doing something else on the machine at the same time.

1 Like

Okay I've done what you recommended and it has worked. I simply selected the router and then went to the LuCI menu and selected the apps I wanted to include. The image is now inside the build folder.

I take it if I wanted to add the extras to my build I would have to carefully go through each menu and re-compile till it fails so I know what the culprit is?

I'm off to swap to my other router partition and I will see if this works properly....

Now that you've confirmed that your build system functions for a "standard" build, if you make sure you either "manually" download first, or have make do it as described above, you're probably OK.

The reason for the -j1 V=s is so that the compile is single-threaded (so messages aren't intermingled and dependencies are "always" evaluated in the right order) and V=s sets verbose messages, so you can see the specific module/file/step that failed. I generally don't have to resort to that for a "from-the-tree" build (unless modifying/creating code).

What I meant by re-compiling is at the moment I have only included LuCI-app packages and nothing else. I would need to go through each of the other menus of the make menuconfig and compile till it fails?

You're probably OK with adding what you need, assuming you always make sure the download step completes before you start the build itself ("world"). The only big "gotcha" is if you add too many packages for the available flash on the target device, the final assembly of all the packages and other bits into an image may fail.

Believe or not I've found the culprit to my failing builds.

Under Network there is three 'iperf' listings as shown in the screenshot.
Screenshot%20from%202018-07-22%2020-25-05

Initially I had selected 'iperf3' and 'iperf3-ssl', but after trial and error it seems that I cannot install 'iperf3' and 'iperf-ssl' together. Do I simply have to have one or the other? Can the SSL version handle non-SSL connections?

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