Commit Graph

1327 Commits

Author SHA1 Message Date
Roman Yeryomin
d0b8cc7732
build: improve ccache support
Set CCACHE_DIR to $(TOPDIR)/.ccache and CCACHE_BASEDIR to $(TOPDIR).
This allows to do clean and dirclean. Cache hit rate for test build
after dirclean is ~65%.
If CCACHE is enabled stats are printed out at the end of building process.
CCACHE_DIR config variable allows to override default, which could be useful
when sharing cache with many builds.
cacheclean make target allows to clean the cache.

Changes from v1:
- remove ccache directory using CCACHE_DIR variable
- remove ccache leftovers from sdk and toolchain make files
- introduce CONFIG_CCACHE_DIR variable
- introduce cacheclean make target

Signed-off-by: Roman Yeryomin <roman@advem.lv>
2021-01-02 12:08:17 +08:00
CN_SZTL
74969cab15
kernel: bump to 4.9.249, 4.14.213, 4.19.164
Remove upstreamed:
 - generic/pending-4.14/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch
 - generic/pending-4.9/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch
 - ipq806x/patches-4.14/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch
 - ipq806x/patches-4.19/0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch

Resolve conflicted:
 - generic/pending-4.19/611-netfilter_match_bypass_default_table.patch
 - ipq40xx/patches-4.19/995-ipq40xx-unlock-cpu-frequency.patch

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-12-31 20:59:32 +08:00
Felix Fietkau
03976eed5e
sdk: keep the linux package in the same subdir as in the main build system
Fixes: 953435795d ("build: always build package/kernel/linux")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-12-31 17:46:50 +08:00
Jo-Philipp Wich
ca37a118f0
sdk: invoke bundle-libraries.sh w/o buildroot dirs in $PATH
Invoke bundle-libraries.sh with any buildroot related directory entries
removed from $PATH to avoid picking up cross versions of utilities like
ldd which will not properly work when used against host executables.

This should fix executable bundling for glibc-target SDKs.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-12-31 17:46:28 +08:00
Jo-Philipp Wich
66a70616ed
imagebuilder: invoke bundle-libraries.sh w/o buildroot dirs in $PATH
Invoke bundle-libraries.sh with any buildroot related directory entries
removed from $PATH to avoid picking up cross versions of utilities like
ldd which will not properly work when used against host executables.

This should fix executable bundling for glibc-target imagebuilders.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-12-31 17:44:24 +08:00
LGA1150
5c6eeab752
ramips: mt7621 OC 1000 MHz 2020-12-27 12:19:18 +08:00
AmadeusGhost
38ff89a52e ipq40xx: wr142ac: refresh device config 2020-12-24 11:35:35 +08:00
AmadeusGhost
150e4f81a5 ipq40xx: r619ac: enable pcie power supply 2020-12-24 11:31:39 +08:00
CN_SZTL
07c5ef44a4
kernel: bump to 4.9.248, 4.14.212, 4.19.163
Remove upstreamed:
 - target/linux/generic/backport-4.14/315-v5.10-usbnet-ipeth-fix-connectivity-with-ios-14.patch
 - target/linux/generic/backport-4.19/315-v5.10-usbnet-ipeth-fix-connectivity-with-ios-14.patch
 - target/linux/generic/backport-4.9/315-v5.10-usbnet-ipeth-fix-connectivity-with-ios-14.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-12-19 21:11:50 +08:00
gw826943555
36f27036e3
ipq40xx: improve cpu operating points and overclock to 896Mz
This patch will match the clock-latency-ns values in the device tree
for those found inside the OEM device tree and kernel source code and
unlock 896Mhz CPU operating points.
2020-12-19 20:59:00 +08:00
CN_SZTL
53a6f89ea3 ipq40xx/ip806x: refresh default packages 2020-12-19 00:08:07 +08:00
AmadeusGhost
f047d3ea9f ipq40xx/ipq806x: remove some unimportant default packages
Not all devices under these targets have a large storage, so remove
some unimportant or duplicate packages.
2020-12-18 21:41:48 +08:00
AmadeusGhost
46c6f33400 ramips: add support for JCG Y2
Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
(cherry picked from commit 74cda5b01b)
2020-12-18 20:24:12 +08:00
Chen Minqiang
a63b20150d ramips: xiaomi ac2100 build breed-factory 2020-12-18 20:05:51 +08:00
Josef Schlehofer
f09a9eefc0 armvirt: README: rename it from LEDE to OpenWrt
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2020-12-15 11:39:07 +08:00
Yushi Nishida
6a942705f0 ipq40xx: fix 5Ghz tx/rx power on the ASUS MAP-AC2200
The ASUS MAP-AC2200 suffers from a lower transmit/receive
signal power as compared to the stock firmware.

Upon investigation, it was discovered that stock firmware from
the GPL_MAP-AC2200_3.0.0.4.384.46249-g97d05bb.tar archive.
set the following GPIOs in "release/src/router/rc/init.c".

GPIO 44 and 46 have to be set to output high
GPIO 45 and 47 have to be set to output low

THX @ slh

Fixes: 9ad3967f14 ("ipq40xx: add support for ASUS Lyra")
Signed-off-by: Yushi Nishida <kyro2man@gmx.net>
[slightly rewritten commit, added missing <>)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2020-12-15 11:30:43 +08:00
ElonH
23eca47a34 kernel 4.9: compatible with shortcut-fe 2020-12-06 00:58:05 +08:00
CN_SZTL
6c69b7539e
kernel: bump to kernel 4.9.247, 4.14.210, 4.19.161
Resolve conflicted:
 - generic/pending-4.14/607-tcp_bbr-adapt-cwnd-based-on-ack-aggregation-estimation.patch
 - layerscape/patches-4.14/804-i2c-support-layerscape.patch
 - ramips/patches-4.14/0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-12-06 00:24:09 +08:00
Kuan-Yi Li
01483ac70a
kernel: backport GD25Q256 support from 4.15
Backport below changes for GigaDevice GD25Q256 support from v4.15:

  e27072851bf7 mtd: spi-nor: add a quad_enable callback in struct flash_info
  65153846b18c mtd: spi-nor: add support for GD25Q256

This chip is used on newer Quad-E4G boards.

Before:

[    2.366493] m25p80 spi0.0: unrecognized JEDEC id bytes: c8, 40, 19
[    2.372853] m25p80: probe of spi0.0 failed with error -2

After:

[    2.371722] m25p80 spi0.0: gd25q256 (32768 Kbytes)
[    2.376694] 5 fixed-partitions partitions found on MTD device spi0.0
[    2.383043] Creating 5 MTD partitions on "spi0.0":
[    2.387824] 0x000000000000-0x000000030000 : "u-boot"
[    2.394138] 0x000000030000-0x000000031000 : "u-boot-env"
[    2.400608] 0x000000031000-0x000000040000 : "config"
[    2.406830] 0x000000040000-0x000000050000 : "factory"
[    2.413169] 0x000000050000-0x000002000000 : "firmware"

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2020-12-06 00:23:36 +08:00
David Bauer
a6b2db864f
generic: ipeth: fix iOS 14 tethering
This fixes tethering with devices using iOS 14. Prior to this patch,
connections to remote endpoints were not possible while data transfers
between the OpenWrt device and the iOS endpoints worked fine.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-12-06 00:23:24 +08:00
CN_SZTL
ec08c462cf
Revert "linux: rework shortcut-fe on kernel 4.9"
This reverts commit dadef1694d.
2020-11-28 21:06:36 +08:00
CN_SZTL
dadef1694d
linux: rework shortcut-fe on kernel 4.9
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-11-28 20:59:28 +08:00
Daniel Golle
c17f52d320
initramfs: switch to tmpfs to fix ujail
Hauke wrote:
> We want to run some processes in the procd-ujail, this works when we
> use a SquashFS image and an overlay file system, but when we use an
> initramfs it does not work.
> [...]
> When we switch from initramfs to tmpfs, it is working, we added this
> code to target/linux/generic/other-files/init to make [it] work.

Move files to newly mounted tmpfs and then use switch_root to chroot
into new rootfs and free initramfs.

Suggested-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-11-28 19:05:38 +08:00
Matthew Gyurgyik
540d07fc1f
imagebuilder: fix partition signature
When building images with the imagebuilder, the partition signature
never changes. The signature is generated by hashing SOURCE_DATE_EPOCH
and LINUX_VERMAGIC which are undefined. Prepopulate these variables, as
done by the SDK.

Signed-off-by: Matthew Gyurgyik <matthew@gyurgyik.io>
2020-11-28 18:26:21 +08:00
Petr Štetiar
ea82207480
ar71xx,ath79: refresh 910-unaligned_access_hacks.patch
Commit c9c7b4b394 ("kernel: add netfilter-actual-sk patch") has
touched net/ipv6/netfilter/ip6table_mangle.c which in turn has affected
910-unaligned_access_hacks.patch so the patch needs to be refreshed.

Fixes: c9c7b4b394 ("kernel: add netfilter-actual-sk patch")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-24 23:33:05 +08:00
Aaron Goodman
68ebbf5d83
kernel: add netfilter-actual-sk patch
Backport of linux kernel commit 46d6c5a to 4.14 kernel.

netfilter: use actual socket sk rather than skb sk when routing harder

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
2020-11-24 23:32:54 +08:00
Sven Eckelmann
6d597695c7
kernel: mtd: parser: cmdline: Fix parsing of part-names with colons
Some devices (especially QCA ones) are already using hardcoded partition
names with colons in it. The OpenMesh A62 for example provides following
mtd relevant information via cmdline:

  root=31:11 mtdparts=spi0.0:256k(0:SBL1),128k(0:MIBIB),384k(0:QSEE),64k(0:CDT),64k(0:DDRPARAMS),64k(0:APPSBLENV),512k(0:APPSBL),64k(0:ART),64k(custom),64k(0:KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive) rootfsname=rootfs rootwait

The change to split only on the last colon between mtd-id and partitions
will cause newpart to see following string for the first partition:

  KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive)

Such a partition list cannot be parsed and thus the device fails to boot.

Avoid this behavior by making sure that the start of the first part-name
("(") will also be the last byte the mtd-id split algorithm is using for
its colon search.

Fixes: 5d01d0560893 ("kernel: Update kernel 4.14 to version 4.14.202")
Fixes: edda06c7b41d ("kernel: Update kernel 4.9 to version 4.9.240")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
(backported from commit 223eec7e81)
2020-11-24 23:29:38 +08:00
Paulo Machado
408e629a98
imagebuilder: fix main entry makefile
Remove a syntax error from ImageBuider Makefile

Acked-by: Paul Spooren <mail@aparcar.org>
Signed-off-by: Paulo Machado <pffmachado@yahoo.com>
2020-11-24 23:21:23 +08:00
CN_SZTL
fa802da558
kernel: bump to 4.9.244, 4.14.207, 4.19.158
Resolve conflicted:
 - ath79/patches-4.19/910-unaligned_access_hacks.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-11-21 21:15:35 +08:00
Paul Spooren
e0b91dde06
imagebuilder: add package signature verification
The ImageBuilder downloads pre-built packages and adds them to images.
This process uses `opkg` which has the capability to verify package list
signatures via `usign`, as enabled per default on running OpenWrt
devices.

Until now this was disabled for ImageBuilders because neither the `opkg`
keys nor the `opkg-add` script was present during first packagelist
update.

To harden the ImageBuilder against *drive-by-download-attacks* both keys
and verification script are added to the ImageBuilder allowing `opkg` to
verify downloaded package indices.

This commit adds `opkg-add` to the ImageBuilder scripts folder. The keys
folder is added to ImageBuilder $TOPDIR to have an obvious place for users to
store their own keys. The `option check_signature` is appended to the
repositories.conf file. All of the above only happens if the Buildbot
runs with the SIGNATURE_CHECK option.

The keys stored in the ImageBuilder keys/ are the same as included in
the openwrt-keyring package. To avoid the chicken-egg problem of
downloading and verifying a package, containing signing keys, the keys
are added during the ImageBuilder generation. They are same as in
shipped images (stored at `/etc/opkg/keys/`).

To allow a local package feed in which the user can add additional
packages, a local set of `usign` and `ucert` keys is generated, same as
building OpenWrt from source. The private key signs the local repository
inside the packages/ folder. The local public key is added to the keys/
folder to be considered by `opkg` when updating repositories. This way a
local package feed can be modified while requiring `opkg` to check
signatures for remote feed, making HTTPS optional.

The new option `ADD_LOCAL_KEY` allows to add the local key inside the
created images, adding the advantage that sysupgrades can validate the
ImageBuilders local key.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-11-21 18:02:07 +08:00
Paul Spooren
98e05d40bd
bcm27xx: add bit variant to redundant RaspberryPi
Both bcm2709 and bcm2710 firmware can run on the same RaspberryPi
models, varying however in 32 and 64 Bit architectures. The model name
alone does not include the architecture information, which becomes
problematic if looking at a overview that only contains the names. By
adding a variant it is possible to tell the architecture.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-11-21 17:43:42 +08:00
Paul Spooren
f20e414b79
build: refactor JSON info files to profiles.json
JSON info files contain machine readable information of built profiles
and resulting images. These files were added in commit 881ed09ee6
("build: create JSON files containing image info").

They are useful for firmware wizards and script checking for
reproducibility.

Currently all JSON files are stored next to the built images, resulting
in up to 168 individual files for the ath79/generic target.

This patch refactors the JSON creation to store individual per image
(not per profile) files in $(BUILD_DIR)/json_info_files and create an
single overview file called `profiles.json` in the target directory.

Storing per image files and not per profile solves the problem of
parallel file writes. If a profiles sysupgrade and factory image are
finished at the same time both processes would write to the same JSON
file, resulting in randomly broken outputs.

Some target like x86/64 do not use the image code yet, resulting in
missing JSON files. If no JSON info files were created, no
`profiles.json` files is created as it would be empty anyway.

As before, this creation is enabled by default only if `BUILDBOT` is set.

Tested via buildroot & ImageBuilder on ath79/generic, imx6 and x86/64.

Signed-off-by: Paul Spooren <mail@aparcar.org>
[json_info_files dir handling in Make, if case refactoring]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-14 23:29:53 +08:00
CN_SZTL
5184fe54e8
kernel: bump to 4.9.243, 4.14.206, 4.19.157
Resolve conflicted:
 - generic/backport-4.19/714-v5.3-net-sfp-Stop-SFP-polling-and-interrupt-handling-duri.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-11-14 17:43:10 +08:00
Felix Fietkau
68f5817924
build: filter out more autogenerated kernel config options
Define wildcard patterns for filtering in target/linux/generic/config-filter
Preparation for supporting newer kernels

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-11-14 13:52:03 +08:00
Thibaut VARÈNE
341983f234
generic: platform/mikrotik: implement multi caldata
MikroTik recently changed again the way they store wlan calibration data
on devices. Prior to this change, ERD calibration data for all available
radios was stored within a single identifier node ("tag" in RouterBoot
parlance).

Recent devices have been seen with calibration (and BDF) data stored in
separate identifiers within LZOR packing for each radio: this patch
addresses this by:
1) ensuring that both variants are properly supported,
2) preserving backward compatibility with existing data consumers,
3) allowing for more than 2 calibration blobs to be exposed via sysfs.

Specifically, before this patch, the driver would provide a single sysfs
file named /sys/firmware/mikrotik/hard_config/wlan_data that contained
whatever calibration data found on the device's flash. After this patch,
when executed on a device that uses the old style storage, this behavior
is unchanged, but when executed on a device that uses new style storage
(for either traditional "ERD" packing or "LZOR" packing), the driver
replaces that single file with a folder containing one or more files
each containing the data encoded within individual identifiers.

As far as OpenWRT is concerned, this means that for devices which are
known to exist with both styles of data storage, a suitable hotplug stub
could look like this for e.g. the second radio:

wdata="/sys/firmware/mikrotik/hard_config/wlan_data"
( [ -f "$wdata" ] && caldata_sysfsload_from_file "$wdata" 0x8000 0x2f20 ) || \
( [ -d "$wdata" ] && caldata_sysfsload_from_file "$wdata/data_2" 0x0 0x2f20 )

This patch has been tested with LZOR old and new style packing on ipq4019,
and with old style on ath79.

Tested-by: John Thomson <git@johnthomson.fastmail.com.au>
Tested-by: Шебанов Алексей <admin@ublaze.ru>
Tested-by: Alen Opačić <subixonfire@gmail.com>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Tested-by: Robert Marko <robimarko@gmail.com>
2020-11-14 13:47:42 +08:00
Alberto Bursi
612919afca
x86: generic: disable CONFIG_EFI_VARS
CONFIG_EFI_VARS has been disabled in
64bit x86 target in 2018 by the following commit
b0a51dab8c
the same reasons apply to Generic target, so
now it's disabled here too.
Leaving it enabled is also blocking compile as
a new symbol was added
EFI_CUSTOM_SSDT_OVERLAYS
that depends from CONFIG_EFI_VARS
and the build system stops and waits for
user input on what to do about it.

The Legacy and Geode targets never
had any EFI_xxx configs enabled so they
don't have this issue

Signed-off-by: Alberto Bursi <bobafetthotmail@gmail.com>
2020-11-14 13:45:12 +08:00
CN_SZTL
6e6805917e
linux: refresh shortcut-fe patches 2020-11-14 01:54:33 +08:00
quarkysg
77a15e9d59
shortcut-fe: rework netfilter conntrack notification
The original patch from QCA over rode the nf_conntrack_un/register_notifier API, which
will break other modules relying on the API.  Reworked the notification APIs to play nice
with others.
2020-11-14 01:39:39 +08:00
AmadeusGhost
df12850680
ipq807x: remove yet supported platforms 2020-11-14 01:26:47 +08:00
CN_SZTL
633f8c6e59
autocore-arm: add support for mvebu 2020-11-13 19:46:58 +08:00
Paul Spooren
883dba35b5
imagebuilder: fix sstrip
Without an absolute path to staging_dir/host/bin/sstrip the Makefile
tries to run a host installed version of sstrip, which is likely not
available.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-11-12 11:12:14 +08:00
David Bauer
edd4928df2
ramips: fix logic level for DIR-645 buttons
The D-Link DIR-645 currently uses an incorrect logic level for its
buttons.

Correct them in order to prevent unintentional activation of failsafe
mode.

Reported-by: Perry Melange <isprotejesvalkata@gmail.com>
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 929e8f0f55)
2020-11-12 10:54:56 +08:00
Adrian Schmutzler
7bbeeba265
ath79: fix LED labels for PowerCloud CAP324
The order of function and color in the labels in inverted for the
LAN LEDs. Fix it.

Fixes: 915966d861 ("ath79: Port PowerCloud Systems CAP324 support")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 96023cd4ba)
2020-11-12 10:54:22 +08:00
CN_SZTL
488fa50d9f
kernel: bump 4.19 to 4.19.155
Resolve conflicted:
 - bcm27xx/950-0609-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch
 - bcm53xx/180-usb-xhci-add-support-for-performing-fake-doorbell.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-11-08 03:24:12 +08:00
CN_SZTL
013dae6201
kernel: bump 4.14 to 4.14.204
Resovle conflicted:
 - layerscape/708-mc-bus-support-layerscape.patch

Refreshed all patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2020-11-08 02:26:20 +08:00
CN_SZTL
75ea28ec81
treewide: enable openssh-sftp-server for some targets 2020-11-08 01:51:42 +08:00
Petr Štetiar
c1eef0d8f4 sdk: fix missing include directories
It's not possible to compile some applications which are using
`-Werror=missing-include-dirs` compiler flags with the SDK as some
target directories are missing in the SDK tarball:

 cc1: error: staging_dir/target/usr/include: No such file or directory [-Werror=missing-include-dirs]
 cc1: error: staging_dir/target/include: No such file or directory [-Werror=missing-include-dirs]

Fix this by adding the missing directories in the SDK.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-03 11:54:13 +08:00
AmadeusGhost
f39e4b370b ar71xx: add support for Lute ZK400
Hardware Highlights:
- SoC: Qualcomm Atheros AR9531 (650MHz)
- RAM: 128 MB
- Flash: 16 MB SPI NOR
- Ethernet: 10/100: 1x WAN, 4x LAN
- Wireless: QCA9531 2.4GHz (bgn)
- Button: 1x reset button
- LED: SYS, WAN, Wireless, LAN 1~4

Installation:
 Configure PC with static IP 192.168.1.x, connect PC with one of RJ45
 ports, press the reset button and power up device. Open 192.168.1.1
 address in your browser and upload sysupgrade image.

Signed-off-by: AmadeusGhost <amadeus@jmu.edu.cn>
2020-11-01 11:50:37 +08:00
AmadeusGhost
22490ac69c ar71xx: build error fixes
Fixes: 207049c82f "kernel: bump 4.9 to 4.9.211"
2020-11-01 11:39:19 +08:00
Paul Spooren
5af7ce9b0b build,IB: reload packages/ only if existing
With the fix of external kmod feeds it is possible to ship the
ImageBuilder without any packages except the pseudo packages kernel and
libc. Therefore the local package feeds becomes optional.

This commit adds a check to the package_reload function to only run if
the local feed is existing.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-10-31 10:26:05 +08:00