OpenWrt Forum Archive

Topic: Missing config for Busybox

The content of this topic has been archived on 28 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hello,

I tried to compile Barrier Breaker with an enhances Busybox. But the config is missing therefor 'make menuconfig" doesn't show the options. Where can I get it again?


Thanks,
acema

Changeset r39106 removed almost all Busybox config options
https://dev.openwrt.org/changeset/39106

Based on changeset 39107, you can include a new env/busybox-config file, where you manually set the busybox config options you need to change from defaults.

Alternative is to patch directly the new default config file "package/utils/busybox/config/default" and change the options there.

EDIT: apparently busybox itself provide a menuconfig. Haven't yet tested it.
https://lists.openwrt.org/pipermail/ope … 22984.html

(Last edited by hnyman on 17 Dec 2013, 16:33)

Who has done this crap?

from the commit:
"This will help with avoiding bogus bug reports caused by stale configs
and bad cases of user tinkering smile"

you can always fork and revert the patches

(Last edited by zloop on 2 Jan 2014, 23:04)

zloop wrote:

you can always fork and revert the patches

are there side effects?

As hnyman descriped above you can still configure busybox in build_dir -after the first built! I experienced a missing dependency with librpc. I can't compile with NFS.

There is a similar situation with uClib...

Also there is Revision 39125
busybox: add back support for top-level menuconfig based config overrides (can be used by custom packages to alter the config)

All not good :-(

written_direcon wrote:

Who has done this crap?

I believe one reason was this ticket (https://dev.openwrt.org/ticket/14010). Contrary to dev I would however not call it bogus report.

hnyman wrote:

Changeset r39106 removed almost all Busybox config options
https://dev.openwrt.org/changeset/39106

Based on changeset 39107, you can include a new env/busybox-config file, where you manually set the busybox config options you need to change from defaults.

I tried this approach to no avail. Perhaps, I did something wrong. Anyway, here is what I had done:

  1. Make sure to compile busybox once, i.e. make package/busybox/compile

  2. Change directory to build_dir/<target platform>/busybox-<version> source directory and run make menuconfig to reconfigure busybox for next builds.

  3. While still inside the busybox source directory, I copied the .config file to <OpenWRT root directory>/env/busybox-config

  4. Change back to <OpenWRT root directory>. Then, run make package/busybox/{clean,compile} and the binary busybox doesn't contain all new applets I added in the above step #2.

I think the idea was to include only the new/changed config lines in env/busybox-config, not the whole config.

My current approach:
I make by build available also for others, so I have wanted to maintain its config as clear as possible.

I patch the short Busybox Config.in left there ("package/utils/busybox/Config.in" with only the NFS option) and add the needed options to that. That make those options available for normal Openwrt menuconfig etc. just like earlier. Then I include the old config lines normally in my main .config.

This mirrors rather nearly the old system and the used Busybox options are visible and changeable via normal Openwrt menuconfig. The drawback is that I have had to manually recover the config definitions.

From .config

# Busybox tweaks: diff, less
CONFIG_BUSYBOX_CONFIG_DIFF=y
CONFIG_BUSYBOX_CONFIG_FEATURE_LESS_FLAGS=y
CONFIG_BUSYBOX_CONFIG_FEATURE_LESS_REGEXP=y
CONFIG_BUSYBOX_CONFIG_FEATURE_LESS_WINCH=y

Patch for Config.in

--- trunk/package/utils/busybox/Config.in   (revision 39320)
+++ trunk/package/utils/busybox/Config.in   (working copy)
@@ -3,4 +3,80 @@
 config BUSYBOX_CONFIG_FEATURE_MOUNT_NFS
    bool "Enable NFS mount support"
  
+config BUSYBOX_CONFIG_DIFF
+   bool "diff"
+   default n
+   help
+     diff compares two files or directories and outputs the
+     differences between them in a form that can be given to
+     the patch command.
+
+config BUSYBOX_CONFIG_FEATURE_DIFF_DIR
+   bool "Enable directory support"
+   default n
+   depends on BUSYBOX_CONFIG_DIFF
+   help
+     This option enables support for directory and subdirectory
+     comparison.
+
+config BUSYBOX_CONFIG_LESS
+   bool "less"
+   default y
+   help
+     'less' is a pager, meaning that it displays text files. It possesses
+     a wide array of features, and is an improvement over 'more'.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS
+   bool "Enable bracket searching"
+   default n
+   depends on BUSYBOX_CONFIG_LESS
+   help
+     This option adds the capability to search for matching left and right
+     brackets, facilitating programming.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS
+   bool "Enable extra flags"
+   default n
+   depends on BUSYBOX_CONFIG_LESS
+   help
+     The extra flags provided do the following:
+
+     The -M flag enables a more sophisticated status line.
+     The -m flag enables a simpler status line with a percentage.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_REGEXP
+   bool "Enable regular expressions"
+   default n
+   depends on BUSYBOX_CONFIG_LESS
+   help
+     Enable regular expressions, allowing complex file searches.
+
+config BUSYBOX_CONFIG_FEATURE_LESS_WINCH
+   bool "Enable automatic resizing on window size changes"
+   default n
+   depends on BUSYBOX_CONFIG_LESS
+   help
+     Makes less track window size changes.
+
+config BUSYBOX_CONFIG_FEATURE_IPV6
+   bool "Enable IPv6 support"
+   default IPV6
+   help
+     Enable IPv6 support in busybox.
+     This adds IPv6 support in the networking applets.
+
+config BUSYBOX_CONFIG_TRACEROUTE
+   bool "traceroute"
+   default y
+   select BUSYBOX_CONFIG_PLATFORM_LINUX
+   help
+     Utility to trace the route of IP packets.
+
+config BUSYBOX_CONFIG_TRACEROUTE6
+   bool "traceroute6"
+   default n
+   depends on BUSYBOX_CONFIG_FEATURE_IPV6 && BUSYBOX_CONFIG_TRACEROUTE
+   help
+     Utility to trace the route of IPv6 packets.
+
 endif

I haven't done any changes since my last post above. Then, I just did a make package/busybox/{clean,compile} and it works. In other words, it looks like all applets (added in <OpenWRT root directory>/env/busybox-config file) are built/compiled into busybox now.

The easiest way i found is download the trunk using svn, then you cd to the  package/utils/busybox directory and run 'svn up -r 39105' smile

colchaodemola wrote:

The easiest way i found is download the trunk using svn, then you cd to the  package/utils/busybox directory and run 'svn up -r 39105' smile

What you are suggesting above is not bad and the process must be done repeatedly whenever you perform an SVN update to the whole OpenWRT. What hnyman suggested above makes more sense. All you need is as follows:

  1. Update to the latest SVN trunk.

  2. Go to your buil-dir/<target platform>/<busybox source directory> .

  3. Execute make menuconfig to configure to your taste and then exit to save your configuration.

  4. Still in the same directory, copy the newly updated .config file to your env directory as busybox-config file, i.e. cp -a .config <OpenWRT root directory>/env/busybox-config, and that's good to last until you perform step #2 above again.

The only problem is all the settings will still not show on the make menuconfig when launched from the <OpenWRT root directory>. In other words, changing busybox configuration must be done as shown on the above step #2 and so on. Honestly, I prefer the older way than this new approach.

It looks like the menu has been restored in r39440.

mazilo wrote:

It looks like the menu has been restored in r39440.

LOL

written_direcon wrote:
mazilo wrote:

It looks like the menu has been restored in r39440.

LOL

Yes and let's hope it remains there for good.

The discussion might have continued from here.