freifunkh / site

Freifunk Hannover specific Gluon site configuration for Firmware building.
https://hannover.freifunk.net
5 stars 5 forks source link

Release of Gluon 2017.1: Switch to LEDE #12

Closed lemoer closed 7 years ago

lemoer commented 7 years ago

Blocked by #9

lemoer commented 7 years ago

Hi, I've just pushed a large commit, finally moving from OpenWrt CC to LEDE (which will soon see its first release 17.01). This is the largest build system rework in the history of Gluon.

Most of the changes have already been worked into the documentation on ReadTheDocs, this mail will highlight a few important points to consider when updating to the new version:

Repository cleanup

The build directory layout has changed; if no new clone is made after the update to the latest Gluon master, the directories "build" and "openwrt" should be removed completely.

Build

The Gluon Makefile has been rewritten to remove a lot of old hacks. This, together with bugfixes in LEDE, should make uses of the make clean command unnecessary in most cases, and a usual build will just consist of the commands:

git pull make update make GLUON_TARGET=...

This should significantly speed up incremental builds.

Site changes

Only minor changes to the site configuration are necessary.

Note that we no longer omit device-specific packages defined by LEDE's defaults, so devices with USB will now usually include the drivers for the USB controller.

Targets

Due to further size increase of the kernel between 3.18 and 4.4, we were not able to keep support for devices with 4MB flash in the ar71xx-generic target. For this reason, we've introduced the slimmed-down ar71xx-tiny target, which does not contain opkg, so no installation of new packages is possible without rebuilding the image. This is probably not a significant degradation, as the overlay was already too small for useful package installations on these devices before.

The x86-kvm_guest target has been dropped from LEDE; x86-64 should be used instead. 32-bit KVM images are not supported anymore.

Other changes

LEDE does not contain Telnet anymore; instead it is using password-less SSH by default. The config mode has been adjusted.

Development

Many make targets like "prepare" and "image/*" have been retired. Instead, commands like the following can be used to build individual images during development:

make GLUON_TARGET=ar71xx-tiny DEVICES='tp-link-tl-wr841n-nd-v11'

Multiple devices may be passed separated by spaces.

The build system has been improved not to break anymore when commands are executed in the "lede" (previously "openwrt") subdirectory. This is now officially supported, the following command can be used to prepare the LEDE tree for a specific Gluon target:

make GLUON_TARGET=... prepare-target

This will create the .config in the LEDE tree that would also be used for normal Gluon builds. Afterwards, any LEDE make target (things like make package/.../prepare etc.) can be used directly in the lede subdirectory, instead of providing a limited subset of commands available through the Gluon Makefile.

Known issues

WLAN issues on the TL-WR1043ND v1 and similar devices with old AR91xx chips seem to have become even more severe lately. Due to another issue (that we're working on) the devices will quickly OOM after the WLAN adapter hangs (probably due to filling send buffers), leading to a reboot.

Please test the new version thoroughly and report issues you find on Github

-- NeoRaider

lemoer commented 7 years ago

Only minor changes to the site configuration are necessary.

site.conf

The opkg.openwrt key has been replaced by opkg.lede. If your network has IPv6 internet connectivity, it may be dropped altogether as the new default server downloads.lede-project.org does support IPv6.

This is already done in b80255d573f8acc411801773a9efff3240b61ee9

site.mk

Profile names have changed and now refer to individual images, so device-specific site package definitions need to be adjusted, for example:

GLUON_tp-link-tl-wr841n-nd-v11_SITE_PACKAGES := ...

Note that we no longer omit device-specific packages defined by LEDE's defaults, so devices with USB will now usually include the drivers for the USB controller.

@1977er Could you update the site.mk on the lede branch? You built all those conditional things in the site.mk. I'm not really sure, what's still needed with lede. I'll assign you for this task :wink: