I am trying to use openwrt-imagebuilder to create an image but how do I change options that I could change in the "make menuconfig" in snapshot way of building the image?
should I touch the .config file?
I need this to for example disable some busybox builtin functions and use coreutils instead.
btw can I completely remove busybox or is it needed for base of image?can I replace it with something more powerful? my flash size is 32 MB so I have some space for that.
Is there a guide for creating a new profile that I can give to imagebuilder or maybe on top of the linksys wrt1200ac profile?
You need a minimal busybox for sysupgrade to work, so be careful with what you remove. More details on this at
I regularly add diff, tar, and a few other things with the "real" packages and disable specific features of busybox only when the build logs indicate that it can't install two packages to the same file location.
yes exactly that.
so how do I tell it to disable those features so I can use the coreutils equivalents and not get errors?
check_data_file_clashes: Package busybox wants to install file /home/me/projects/openwrt/openwrt-imagebuilder-18.06.1-mvebu-cortexa9.Linux-x86_64/build_dir/target-arm_cortex-a9+vfpv3_musl_eabi/root-mvebu/usr/bin/uptime
But that file is already provided by package * coreutils-uptime
I need to do that with release image builder, but I dont know how.
I don't know that you can do it with the image builder, as it assembles images from pre-built packages. I use the full build system, which you can likely get going without much more configuration that what you've got for the image builder. https://openwrt.org/docs/guide-developer/build-system/start
The first build is slow, as you need to build the cross-compilation tools, but after that it was taking me ~20 minutes on a modest i37100T machine for a "clean" build, a lot faster if you're not rebuilding everything on every build.
I forgot to add that until yesterday I used the build environment to create custom images but I wanted a more stable one cause I couldn't add nfs package to the image (many errors about libraries).
maybe I should try to report those errors?
I tried the build environment with 18.06.1 tag but the glibc on my rolling system is updated to a higher version that the required one. so I have to use the 18.06 branch.
I just hope I don't get burned and brick the device.
You use make menuconfig to disable them from Busybox. If you search for uptime in make menuconfig you'll find Symbol: BUSYBOX_CONFIG_UPTIME, which shows that the option is under Base system / busybox / Process Utilities. Make sure you start with a clean system after changing branches/tags, or you'll get all kinds of errors.
I may have been vague.
I HAVE created that image with build environment for a year now for linksys router and before that for tplink one.
I wanted to add nfs and I got error, so I tried image buidlder and I didn't notice that it actually doesnt build anything just downloads pre-build packages. so no config change it seems.
so I am back to build-env and I will try to build nfs package and report the errors in this forum.
btw what was the package build command (I remember being able to build a package without building entire image again.
Use the SDK to rebuild a package with a custom configuration. Don't forget to increment the version number in the package's makefile. Now find the directory under bin/ where the result is located. Add it to the imagebuilder's repositories.conf, and imagebuilder will pick up your custom package.
so I should use SDK for a single package and add that to the image builder repo?
can I use SDK for image building?
is the SDK is what I was actually looking for to create image for, say 18.06.1, but with my own complete optimization and also near stability of release image?
because ,for example, when I use 18.06.1 tag (not branch) for building image from build environment I get library error cause I have archlinux and some library and toolchain are not compatible with 18.06.1 and only with trunk .
You are looking for the full build toolchain if you want to make optimisations to the core Linux.
It makes no sense to build the already old 18.06.1. You should build the HEAD of the stable 18.60 branch. The whole 18.06 branch is stable, not just the release made from an semi-arbitrary commit in the branch.