Commit Graph

136 Commits

Author SHA1 Message Date
AmadeusGhost
f2a32978d6 Merge Mainline 2020-11-01 12:05:03 +08:00
Jo-Philipp Wich
110399441a fakeroot: make fakeroot script relocatable
Patch the fakeroot script template to discover faked and libfakeroot.so
relative to the STAGING_DIR_HOST environment variable, similar to how it
is done for automake, libtool, quilt and autoconf already.

This avoids the need for passing the paths to faked and libfakeroot.so
manually every time we invoke fakeroot and subsequently allows us to
drop OS X specific logic.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-10-31 10:26:28 +08:00
Richard Fröhning
3fb6eb7f17 ramips: add support for TP-Link RE200 v4
TP-Link RE200 v4 is a wireless range extender with Ethernet and 2.4G and 5G
WiFi with internal antennas.
It's based on MediaTek MT7628AN+MT7610EN like the v2/v3.

Specifications
--------------

- MediaTek MT7628AN (580 Mhz)
- 64 MB of RAM
- 8 MB of FLASH
- 2T2R 2.4 GHz and 1T1R 5 GHz
- 1x 10/100 Mbps Ethernet
- 8x LED (GPIO-controlled), 2x button
- UART connection holes on PCB (57600 8n1)

There are 2.4G and 5G LEDs in red and green which are controlled
separately.

MAC addresses
-------------

The MAC address assignment matches stock firmware, i.e.:

LAN : *:8E
2.4G: *:8D
5G  : *:8C

MAC address assignment has been done according to the RE200 v2.

The label MAC address matches the OpenWrt ethernet address.

Installation
------------

Web Interface
-------------

It is possible to upgrade to OpenWrt via the web interface. Simply flash
the -factory.bin from OEM. In contrast to a stock firmware, this will not
overwrite U-Boot.

Recovery
--------

Unfortunately, this devices does not offer a recovery mode or a tftp
installation method. If the web interface upgrade fails, you have to open
your device and attach serial console.

Instructions for serial console and recovery may be checked out in
commit 6d6f36ae78 ("ramips: add support for TP-Link RE200 v2") or on
the device's Wiki page.

Signed-off-by: Richard Fröhning <misanthropos@gmx.de>
[removed empty line, fix commit message formatting]
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-10-20 11:30:49 +08:00
Adrian Schmutzler
e79eb1d339
ath79: rename TP-Link TL-WPA8630P v2 (EU) to v2.0 (EU)
Since we have a v2.1 (EU) with different partitioning now, rename
the v2.0 to make the difference visible to the user more directly.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-04 22:27:19 +08:00
Joe Mullally
a827c73d58
ath79: add support for TP-Link TL-WPA8630P (EU) v2.1
This adds support for the TP-Link TL-WPA8630P (EU) in its v2.1
version. The only unique aspect for the firmware compared to v2
layout is the partition layout.

Note that while the EU version has different partitioning for
v2.0 and v2.1, the v2.1 (AU) is supported by the v2-int image.

If you plan to use this device, make sure you have a look at
the Wiki page to check whether the device is supported and
which image needs to be taken.

Specifications
--------------

  - QCA9563 750MHz, 2.4GHz WiFi
  - QCA9888 5GHz WiFi
  - 8MiB SPI Flash
  - 128MiB RAM
  - 3 GBit Ports (QCA8337)
  - PLC (QCA7550)

Installation
------------

Installation is possible from the OEM web interface. Make sure to
install the latest OEM firmware first, so that the PLC firmware is
at the latest version. However, please also check the Wiki page
for hints according to altered partitioning between OEM firmware
revisions.

Notes
-----

The OEM firmware has 0x620000 to 0x680000 unassigned, so we leave
this empty as well. It is complicated enough already ...

Signed-off-by: Joe Mullally <jwmullally@gmail.com>
[improve partitions, use v2 DTSI, add entry in 02_network, rewrite
and extend commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-10-04 22:27:13 +08:00
CN_SZTL
5470cceaed
Merge Mainline 2020-09-19 19:01:48 +08:00
Sander Vanheule
5d13d4c40a
ath79: support for TP-Link EAP225-Wall v2
TP-Link EAP225-Wall v2 is an AC1200 (802.11ac Wave-2) wall plate access
point. UART access and debricking require fine soldering.

The device was kindly provided for porting by Stijn Segers.

Device specifications:
* SoC: QCA9561 @ 775MHz
* RAM: 128MiB DDR2
* Flash: 16MiB SPI-NOR (GD25Q127CSIG)
* Wireless 2.4GHz (SoC): b/g/n, 2x2
* Wireless 5Ghz (QCA9886): a/n/ac, 2x2 MU-MIMO
* Ethernet (SoC): 4× 100Mbps
  * Eth0 (back): 802.3af/at PoE in
  * Eth1, Eth2 (bottom)
  * Eth3 (bottom): PoE out (can be toggled by GPIO)
* One status LED
* Two buttons (both work as failsafe)
  * LED button, implemented as KEY_BRIGHTNESS_TOGGLE
  * Reset button

Flashing instructions, requires recent firmware (tested on 1.20.0):
* ssh into target device and run `cliclientd stopcs`
* Upgrade with factory image via web interface

Debricking:
* Serial port can be soldered on PCB J4 (1: TXD, 2: RXD, 3: GND, 4: VCC)
    * Bridge unpopulated resistors R162 (TXD) and R165 (RXD)
      Do NOT bridge R164
    * Use 3.3V, 115200 baud, 8n1
* Interrupt bootloader by holding CTRL+B during boot
* tftp initramfs to flash via sysupgrade or LuCI web interface

MAC addresses:
MAC address (as on device label) is stored in device info partition at
an offset of 8 bytes. ath9k device has same address as ethernet, ath10k
uses address incremented by 1.
From OEM ifconfig:
    br0       Link encap:Ethernet  HWaddr 50:...:04
    eth0      Link encap:Ethernet  HWaddr 50:...:04
    wifi0     Link encap:UNSPEC  HWaddr 50-...-04-...
    wifi1     Link encap:UNSPEC  HWaddr 50-...-05-...

Signed-off-by: Sander Vanheule <sander@svanheule.net>
[fix IMAGE_SIZE]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-19 18:35:32 +08:00
Yuan Tao
081ecc73c6 tools/libressl: update to 3.2.1
libressl update to 3.2.1
Delete 001-dont-build-tests-man.patch
Add configure args :
--enable-static
--disable-tests

The patch (001-dont-build-tests-man.patch) no longer works with the current version.
Follow the patch notes:
Adding the --enable-static and --disable-tests parameters should replace the patch.

Signed-off-by: Yuan Tao <ty@wevs.org>
2020-09-19 11:25:22 +08:00
CN_SZTL
db2b8b9ca0
Merge Mainline 2020-09-19 00:33:44 +08:00
Adrian Schmutzler
7709df69e9 treewide: remove empty default cases
There is no apparent reason to have an empty default case.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-18 16:37:37 +08:00
CN_SZTL
c75f41d557
Merge Mainline 2020-09-11 18:08:47 +08:00
Sander Vanheule
75f21773f3 firmware-utils/tplink-safeloader: add compat level
TP-Link has introduced a compatibility level to prevent certain
downgrades. This information is stored in the soft-version partition,
changing the data length from 0xc to 0x10.

To remain compatible with existing devices and not produce different
images, the image builder doesn't store a compatibility level if it is
zero.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-09-10 17:30:01 +08:00
Sander Vanheule
e201f383d6 firmware-utils/tplink-safeloader: soft-version magic is data length
The soft-version partition actually contains a header and trailing data:
* header: {data length, [zero]}
* data: {version, bcd encoded date, revision}

The data length is currently treated as a magic number, but should
contain the length of the partition data.

This header is also present the following partitions (non-exhaustive):
* string-based soft-version
* support-list

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-09-10 17:28:38 +08:00
Jo-Philipp Wich
9177ebb79d tools: fakeroot: use TCP as IPC transport
Some environments, e.g. first gen WSL, do not support SysV IPC.
Enforce the use of TCP transport instead which should be universally
available.

Fixes: FS#3317
Ref: https://github.com/microsoft/WSL/issues/4067
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-09-10 17:14:48 +08:00
Daniel Golle
5548d0c13e fakeroot: add license information
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2020-09-09 17:30:09 +08:00
Adrian Schmutzler
c882874fc6
tools: drop unused upslug2 and wrt350nv2-builder
These tools have been used by the orion target which has been
removed in Jan 2020 [1].

Both were specifically meant for the WRT350Nv2, which is not
supported anymore.

So, let's remove them as well.

[1] 89f2deb372 ("orion: remove unmaintained target")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-06 18:05:24 +08:00
CN_SZTL
b06b6f405c
tools: drop ar71xx target 2020-09-06 18:04:37 +08:00
CN_SZTL
a7bba40e46
Merge Mainline 2020-09-05 06:53:57 +08:00
CN_SZTL
0ca4621ca8
tools: add missing ar71xx utils 2020-09-04 17:46:09 +08:00
Adrian Schmutzler
44e96327e1
tools: sort alphabetically
This sorts the added tools and builddir dependencies alphabetically
to make it easier to find something in the Makefile.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-04 16:25:03 +08:00
CN_SZTL
4afad7690d
Merge Mainline 2020-09-04 15:53:54 +08:00
Felix Fietkau
c1ec2a267b tools/squashfskit4: fix build on non-linux systems
The xattr related function calls are linux specific

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-02 11:32:04 +08:00
AmadeusGhost
f04c82b5bd Merge Mainline 2020-09-01 19:06:02 +08:00
Paul Spooren
49e05ee279 treewide: https for downloads.openwrt.org sources
Instead of using http and https for source downloads from
downloads.openwrt.org, always use https for it's better security.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-01 17:32:38 +08:00
AmadeusGhost
fb8ad74ba4 Merge Mainline 2020-08-31 12:00:01 +08:00
Thomas Petazzoni
ece94cbdce tools/squashfskit4: add xattr support to mksquashfs for SELinux
SELinux uses extended attributes to store SELinux security contexts.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[rebase, add commit message]
Signed-off-by: W. Michael Petullo <mike@flyn.org>
2020-08-31 11:13:28 +08:00
Hannu Nyman
d8130b3886 tools/coreutils: update to 8.32
Update coreutils to version 8.32.
Remove upstreamed patch.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2020-08-31 11:10:51 +08:00
Adrian Schmutzler
4cfabd2167 ath79: increase kernel partition for ar9344 TP-Link CPE/WBS
The kernel has become too big again for the ar9344-based TP-Link
CPE/WBS devices which still have no firmware-partition splitter.

Current buildbots produce a kernel size of about 2469 kiB, while
the partition is only 2048 kiB (0x200000). Therefore, increase it
to 0x300000 to provide enough room for this and, hopefully, the
next kernel.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-31 11:07:57 +08:00
Hannu Nyman
b2296ec034 tools/mpc: update to 1.2.0
Update mpc to version 1.2.0.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2020-08-28 09:26:04 +08:00
Hauke Mehrtens
beb6e94095 tools: mtd-utils: Update to version 2.1.2
The release notes says this:
As already said, the changes since 2.1.1 are primarily bug fixes, addressing
compiler warnings and issues reported by diagnostic tools, but also build
failures for some configurations.
https://lists.infradead.org/pipermail/linux-mtd/2020-July/081299.html

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-27 12:02:57 +08:00
Hannu Nyman
5cf60d65b8 tools/ccache: update to 3.7.11
Update ccache to 3.7.11

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2020-08-24 11:34:47 +08:00
Hannu Nyman
7884be9b74 tools/cmake: update to 3.18.2
Update cmake to version 3.18.2.
Refresh patches.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2020-08-24 11:34:26 +08:00
Hannu Nyman
c513121ee4 tools/mpfr: update to 4.1.0
Update mpfr to version 4.1.0.
Refresh patches.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2020-08-24 11:34:03 +08:00
Hannu Nyman
cf5d37dbbe
tools/bison: update to 3.7.1
Update GNU bison to version 3.7.1.
Refresh patches.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2020-08-23 23:38:07 +08:00
Alexander Couzens
e39ef7c42d
tools/tplink-safeloader: use soft_ver 1.9.1 for archer c6 v2
TP-LINK published a firmware update for the archer c6 v2.
This updates also reached the factory devices. Newer software version
rejects downgrading to 1.2.x. Use 1.9.x to allow installing the factory images
and have a little bit time to change it again.

Tested on archer c6 v2 with firmware 1.3.1

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2020-08-20 20:26:48 +08:00
Felix Fietkau
74ac8dd89f
tools/coreutils: install ln
It is needed for libsepol on non-GNU systems

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-08-14 02:29:13 +08:00
Thomas Petazzoni
be9155455e tools: add fakeroot
SELinux support requires setting the appropriate SELinux security context
to files and directories, which needs to happen at build time in order
to support read-only root filesystem scenarios. In order to create these
security contexts, we will have to run some SELinux-specific tools on
the host machine, but that requires root access. This adds support for
fakeroot, which the build process will use to run the SELinux security
context creation and the image creation.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Apply to current master, and adjust commit message

Thomas' original work is available at
http://lists.infradead.org/pipermail/openwrt-devel/2019-November/025976.html.

Signed-off-by: W. Michael Petullo <mike@flyn.org>
[add rules.mk FAKEROOT variable]
Signed-off-by: Paul Spooren <mail@aparcar.org>
[update, fix macos build]
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-08-10 21:14:32 +08:00
Piotr Stefaniak
58b8441627 tools/cmake: fix typo in parallel make patch
The variable in the case argument was mistyped, so the case always
checked against an empty string and never matched.

Fix the variable name. Add a PKG_RELEASE to Makefile so we can bump it.

Fixes: d6de31310c ("cmake: restore parallel build support for bootstrap")

Signed-off-by: Piotr Stefaniak <pstef@freebsd.org>
[add commit message, add PKG_RELEASE, fix commit title, add Fixes:]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-10 21:10:59 +08:00
Sander Vanheule
208fd5d90a
tools/firmware-utils: use UTC for image timestamps
By using localtime() to determine the timestamp that goes into factory
images, the resulting image depends on the timezone of the build system.
Use gmtime() instead, which results in more reproducible images.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-08-07 17:46:36 +08:00
Adrian Schmutzler
8aff25ad16
ramips: fix/tidy up 4M tplink-v2-image flash layouts
For the TP-Link 4M devices with tplink-v2-image recipe
(mktplinkfw2.c), there are two different flash layouts based
on the size of the (u)boot partition:

device         uboot    OEM firmware  OpenWrt (incl. config)
tl-wr840n-v5   0x20000  0x3c0000      0x3d0000
tl-wr841n-v14  0x10000  0x3d0000      0x3e0000

In both cases, the 0x10000 config partition is used for the firmware
partition as well due to the limited space available and since it's
recreated by the OEM firmware anyway.

However, the TFTP flashing process will only copy data up to the
size of the initial (OEM) firmware size. Therefore, while we can
use the bigger partition to have additional erase blocks on the
device, we have to limit the image sizes to the TFTP limits.

So far, only one layout definition has been set up in mktplinkfw2.c
for 4M mediatek devices. This adds a second one and assigns them
to the devices so the image sizes are correctly restrained.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-03 21:00:46 +08:00
Ted Hess
db1e590f6e
tools/mkimage: create .itb file with read-access for group,other not just owner.
This patch will fix the source of 403 errors on these files
from downloads.openwrt.org.

Signed-off-by: Ted Hess <thess@kitschensync.net>
2020-07-24 20:01:12 +08:00
Paul Spooren
cef6808d80
tools/flock: add PKG_{VERSION,RELEASE}
The stored source code of flock contains the version string of version
2.18, reflect that in the Makefile.

Motivation is the tracking of changes in the buildsystem, which requires
versioning of packages.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-07-23 22:45:21 +08:00
Paul Spooren
cfe8c10798
tools/sstrip: add PKG_{VERSION,RELEASE}
Comparing the in tree stored source file of sstrip suggests it's version
2.0[0], reflect that in the Makefile.

Motivation is the tracking of changes in the buildsystem, which requires
versioning of packages.

[0]: df4426a0f0 (diff-d3ba694d91432a068d5d3b36abf8cd0f)

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-07-23 22:45:02 +08:00
Paul Spooren
6430074631
tools/firmware-utils: add PKG_RELEASE
There is no versioning information in the firmware-utils code nor the
Makefile. Consider it as first release by adding PKG_RELEASE.

Motivation is the tracking of changes in the buildsystem, which requires
versioning of packages.

Also update copyright.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-07-23 22:44:43 +08:00
Paul Spooren
5242ffe822
tools/patch-image: add PKG_RELEASE
There is no versioning information in the patch-image code nor the
Makefile. Consider it as first release by adding PKG_RELEASE.

Motivation is the tracking of changes in the buildsystem, which requires
versioning of packages.

Also update copyright.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-07-23 22:44:24 +08:00
Adrian Schmutzler
bc64ff56c5
tools: drop PKG_VERSION for purely local packages
This applies to tools directory what has been done for package/ in
commit 9c170cb92f ("package: drop PKG_VERSION for purely local
packages"):

In the package guidelines, PKG_VERSION is supposed to be used as
"The upstream version number that we're downloading", while
PKG_RELEASE is referred to as "The version of this package Makefile".
Thus, the variables in a strict interpretation provide a clear
distinction between "their" (upstream) version in PKG_VERSION and
"our" (local OpenWrt trunk) version in PKG_RELEASE.

For local (OpenWrt-only) packages, this implies that those will only
need PKG_RELEASE defined, while PKG_VERSION does not apply following
a strict interpretation. While the majority of "our" packages actually
follow that scheme, there are also some that mix both variables or
have one of them defined but keep them at "1".

This is misleading and confusing, which can be observed by the fact
that there typically either one of the variables is never bumped or
the choice of the variable to increase depends on the person doing the
change.

Consequently, this patch aims at clarifying the situation by
consistently using only PKG_RELEASE for "our" packages. For tools/,
only three packages were affected. This fixes two of them, and
leaves the remaining wrt350nv2-builder untouched, as the code there
seems to have some versioning of its own that is treated as upstream
version in PKG_VERSION.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-07-23 22:44:05 +08:00
CN_SZTL
fe5e355670
firmware-utils: sync with upstream source 2020-07-23 01:14:02 +08:00
Petr Štetiar
958e6c4ebf firmware-utils: mkfwimage: fix memcpy and strncpy usage
Firmware is binary blob, so there are barely any NULL terminated strings
expected, so we should probably convert all chars into u8 types, and
after that it's clear, that using strcpy doesn't make sense anymore.

This is rather theoretical stuff, but `uint8_t name[PART_NAME_LENGTH]`
means, that you can supply PART_NAME_LENGTH sized name, not
PART_NAME_LENGTH-1 name when NULL terminated.

Ref: https://github.com/openwrt/openwrt/pull/2274
Fixes: 04cb651376 ("firmware-utils: mkfwimage: fix more errors reported by gcc-6/7/9")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-07-12 11:57:40 +08:00
Andrea Dalla Costa
fa881e1c30 firmware-utils/hcsmakeimage: fix possible memory leak and resource leaks
Add missing calls to `free` for variable `filebuffer`.
Add missing calls to `fclose` for variables `fd` and `fd_out`.

Signed-off-by: Andrea Dalla Costa <andrea@dallacosta.me>
2020-07-09 12:04:37 +08:00
CN_SZTL
dc2d0d9491
squashfskit4: add PKG_RELEASE 2020-06-24 18:27:10 +08:00