Difference between pre-build image, and images from imagebuilder, and buildroot

My apologies if this has been asked elsewhere. I have looked around and I cannot seem to find much info.
From my understanding, this is the main difference between using the pre-built images, using imagebuilder, and using buildroot:

  • Pre-Built images require no work.
  • Image builder uses pre-built kernel, packages, and config files to make a custom image.
  • Buildroot builds the kernel and all packages from source

That all makes sense to me, but what I cannot seem to figure out is what differences a default image built with each will provide.

That is,if I use the imagebuilder and run make image PROFILE="netgear_r7800", how will that differ from if I simply downloaded the pre-built image from the wiki, and how would it differ from a image built from source with buildroot?

image builder makes minimal image by default, so no Luci web interface.
It is designed to use the PACKAGES= command to add all the packages you need in the image so you don't need to install packages (or re-install packages) every time you do a firmware upgrade or factory reset. Also packages installed this way are integrated in the high-compression read-only partition so they occupy much less space (i.e. you can fit more packages on the same amount of storage space)

build from source lets you choose packages like Image Builder to make custom firmware and change compile-only options like some kernel compile options or other package compile options, that can only be selected BEFORE you compile so in the default builds (and ImageBuilder that is taking the same packages) you cannot change that.
You can also integrate custom source-only feeds from github or other sources to get special third party packages.

With both you can also choose a different release (older releases) or even to track master (the latest code added to the development branch that will go in next stable release)

4 Likes

@bobafetthotmail
That really helps clear things up. Thank you.

I do now have some follow-up questions.

  1. So if I added all of the same packages that are included with the pre-made builds, an imagebuilder build would be effectively identical to the pre-made build?
  2. Where would I find a list of the packages that are included with pre-made builds that are found on the openWRT website, so that I can create a build with all the same features?

Yes. Checksums may not match with the official images due to small differences in the build system vs your local VM/system where you built the image, but it's otherwise identical and works the same.

For example, if you want to get the list of packages included in the build of 21.02.1 of target x86 you need to look for a file called "openwrt-21.02.1-x86-64.manifest"
See that file from here https://downloads.openwrt.org/releases/21.02.1/targets/x86/64/
It's a plain text file, you can open it with notepad++ on Windows or whatever text editor that is aware of Linux/Unix text file standards.

Find the one of your target, and then you can copy the package names in its default build. It will be redundant (you are adding a bunch of packages that are already selected by default in the minimal image), but it will stil work fine.

Perfect! That's exactly what I was looking for! Thank you very much.

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