gajdipajti / openwrt-build-configs

Just a storage openwrt build config files, for small devices. Just to keep track.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

openwrt-build-configs

A storage for my custom openwrt build config files, for small devices. Just to keep track of the changes. You can reuse them, change them, end even make suggestions how to lower the footprint and add more functionality. The main idea is that each build should have Luci, wireguard, muninlite for ease of configuration, access and monitoring.

I recommend using the Cyrus-19.07.10 build, or for better ssh the Cyrus-19.07.11 build from my github repository. The Avitus-21.02.3 is also good, but I personally recommend stopping the uhttpd webserver service from Luci (or disabling it completely).

0. Personal notes about the openwrt-19.07 branch

I wasn't able to ssh into some of my old 19.07.10 devices after switching to Ubuntu 22.04 because the rsa host keys were not supported anymore. I tried cherry-picking some fixes however at that time I did not realize that the openwrt-19.07 branch is end-of-life and closed.

At the end I decided to cherry-pick 5 dropbear commits and create my own tagged release. And again, just to emphasize:

This is NOT and official OpenWRT release. I am just a user, who wants to keep some of his devices usable.

0.1. Errata

  • Due to a change in openssh you cannot connect to this version of dropbear. The error message is: no matching host key type found. Their offer: ssh-rsa To fix this add HostKeyAlgorithms +ssh-rsa to the /etc/ssh/ssh_config on your client (Ubuntu, Fedora, ...)
    • FIX: Cherry pick 5 dropbear changes and tag is as v19.07.11
    • changes

0.2. How to access old configs

1. How to build

On my build computer I use zfs snapshots between each steps, so that I can rollback whenever I want to start from a previous state. This defeats the git version control system, but makes tests easier. References 1, 2

Steps in general:

  1. git clone https://git.openwrt.org/openwrt/openwrt.git
  2. cd openwrt
  3. git checkout -b v19.07.10 # Or any other tagged release. I usually rebuild only tagged versions: v18.06.1, v19.07.6, ...
  4. Make adjustments to the feeds.conf.default.
  5. ./scripts/feeds update -a
  6. ./scripts/feeds install -a
  7. Copy the build config file to the repository as .config
  8. make menuconfig
  9. Make your changes.
  10. make or make -j5 # Depending on the number of cores (cores+1).

Or 1&3 in one step from GitHub:

  • git clone --branch openwrt-19.07 git@github.com:openwrt/openwrt.git

1.1. For v19.07.11 see the readme in subfolders

This is NOT and official OpenWRT release.

  1. git clone git@github.com:gajdipajti/openwrt.git --branch v19.07.11 --single-branch
  2. cd openwrt
  3. not needed
  4. not needed
  5. ...

1.2. Build systems

Reference: 3

Ubuntu 22.04:

sudo apt install build-essential gawk gcc-multilib flex git gettext libncurses5-dev libssl-dev python3-distutils zlib1g-dev

Ubuntu 20.04.4:

sudo apt install build-essential ccache ecj fastjar file g++ gawk \
gettext git java-propose-classpath libelf-dev libncurses5-dev \
libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \
python-distutils-extra python3-setuptools python3-dev rsync subversion \
swig time xsltproc zlib1g-dev 

2. Available configurations

  • Avitus testing: the previous Avitus config won't fit. I don't recommend using this.
  • Avitus build configuration: ath79/tiny, -IPv6, -PPP, -opkg, -wolfssl, -ca-bundles, +Luci, +uhttp, +wireguard, +muninlite, +w1.
  • Cyrus build configuration: ar7xxx/tiny, -IPv6, -PPP, -opkg, +Luci, +uhttp, +wireguard, +muninlite, +w1.

Note: Cyrus builds can be considered end-of-life, as no new release will happen from OpenWRT. I recommend using the device images built on the 19.07.11 tag as they are the most stable and up-to-date.

*Note: Switching between builds: link

3. External resources

These are the repositories that I am using for the build. If there is an errata which is not fixed in the openwrt/openwrt repository (eol), then possible fixs are cherry-picked into my branches. No other change. In case of packages, I cherry-picked the muninlite changes.

About

Just a storage openwrt build config files, for small devices. Just to keep track.

License:GNU General Public License v2.0