freifunk-berlin / falter-builter

build falter images using precompiled openwrt imagebuilders.
7 stars 6 forks source link
bash bash-script freifunk hacktoberfest shell-script

Overall Project Structure and Falter Repositories

The Falter project builds a modern OpenWrt-based firmware for Freifunk Berlin. We split our code on different repositories. For the beginning there are three main repositories you should know:

falter-builter

This script packages falter-firmware from openwrt-imagebuilder and falter-feed. In comparison to the old buildsystem, it is almost insanely fast.

Utilisation

The script takes five positional arguments.

./build_falter [-p packageset] [-v version] [-t target] [-s subtarget] [-r router]

The parameters for packageset, version and target are mandatory. The other ones optional

If you give packageset, release and no subtarget, it will generate all subtargets of that certain target and so on.

If you like to build only one specific router-profile, you must give all the arguments before.

version takes the falter-version you would like to build. This maps to the feed-directories avaiable at buildbot.

After the buildprocess finished, you will find the images in firmwares/.

Quickstart: build your own image

Lets assume you'd like to build a stable-release-tunneldigger-image for your GL-AR150 router. To achieve that, you should invoke the buildscript in that way:

./build_falter -p packageset/1.2.2/tunneldigger.txt -v 1.2.2 -t ath79 -s generic -r glinet_gl-ar150

Find your routers profile

If you don't know the profile name for your router, you should use -l to find it. That option will show you a list of all routers with there profiles. Pick the profile-name there and give it to the script with the -r parameter.

./build_falter -p packageset/1.2.2/tunneldigger.txt -v 1.2.2 -t ath79 -s generic -l

In the router list you will find something similar like that:

glinet_gl-ar150:
    GL.iNet GL-AR150
    SupportedDevices: glinet,gl-ar150 gl-ar150

The profile name is at the first line. Omit the colon:

./build_falter -p packageset/1.2.2/tunneldigger.txt -v 1.2.2 -t ath79 -s generic -r glinet_gl-ar150

Use custom imagebuilder

You can use your custom imagebuilder with falter too. This comes in handy for development and for using features, that are not in regular OpenWrt yet. To get that you should call builter like that:

./build_falter -v snapshot -p packageset/snapshot/tunneldigger.txt -i openwrt-imagebuilder-21.02.0-rc3-octeon.Linux-x86_64.tar.xz -r ubnt_edgerouter

NOTE: The imagebuilder must be in the root of builter-directory. It ist not supported to have it anywhere else.

Use builter with buildbot

For the image generation with buildbot, builter should be invoked like this:

./build_falter -p all -v <release> -t <target>

The argument all will signalise builter to generate all three flavours of images. In firmwares/ the images get sorted by package-list. Below the packagelist-directorys, the regular hirachy $TARGET/$SUBTARGET applies.

CAUTION: Argument all will only work if at least release and target are specified.