aboutsummaryrefslogtreecommitdiffstats
path: root/package
Commit message (Collapse)AuthorAgeFilesLines
* openvpn: fix shell compare operator in openvpn.initMartin Schiller2020-09-092-2/+2
| | | | | | | | Don't use bash syntax, because /bin/sh is used here. Signed-off-by: Martin Schiller <ms@dev.tdt.de> [bump PKG_RELEASE] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mac80211: update encap offload patches to the latest versionFelix Fietkau2020-09-0917-149/+1199
| | | | | | | Minor cleanup and code reorganization, along with a change to not disable offload anymore when a tkip or sw crypto key is added Signed-off-by: Felix Fietkau <nbd@nbd.name>
* wireguard: bump to 1.0.20200908Jason A. Donenfeld2020-09-091-2/+2
| | | | | | | | | | | | | | | * compat: backport kfree_sensitive and switch to it * netlink: consistently use NLA_POLICY_EXACT_LEN() * netlink: consistently use NLA_POLICY_MIN_LEN() * compat: backport NLA policy macros Backports from upstream changes. * peerlookup: take lock before checking hash in replace operation A fix for a race condition caught by syzkaller. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* hostapd: add UCI support for Hotspot 2.0Daniel Golle2020-09-083-3/+107
| | | | Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* netifd: update to git HEADDaniel Golle2020-09-081-3/+3
| | | | | | | | | | | | | | | | | 3d9bd73 utils: fix check_pid_path to work with deleted file as well 330f403 vlan: initialize device ifname earlier at creation time c057e71 device: do not check state from within device_init cb0c07b system-dummy: fix resolving ifindex ccd9ddc bridge: add support for turning on vlan_filtering 82bcb64 bridge: add support for adding vlans to a bridge 0e8cea0 bridge: add support for VLAN filtering 6086b63 config: enable bridge vlan filtering by default for bridges that define VLANs ac0710b device: look up full device name before traversing vlan chain e32e21e bridge: flush vlan list on bridge free 645ceed interface-ip: clear host bits of the device prefix d7b614a netifd-wireless: parse 'osen' encryption Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* dropbear: Enable Ed25519 for normal devicesPaul Spooren2020-09-062-3/+4
| | | | | | | | | | | | | | | | | | | | The Ed25519 key pairs are much shorter than RSA pairs and are supported by default in OpenSSH. Looking at websites explaining how to create new SSH keys, many suggest using Ed25519 rather than RSA, however consider the former as not yet widely established. OpenWrt likely has a positive influence on that development. As enabling Ed25519 is a compile time option, it is currently not possible to install the feature via `opkg` nor select that option in an ImageBuilder. Due to the size impact of **12kB** the option should only be enabled for devices with `!SMALL_FLASH`. This approach seems cleaner than splitting `dropbear` into two packages like `dropbear` and `dropbear-ed25519`. Signed-off-by: Paul Spooren <mail@aparcar.org>
* util-linux: Fix build when libmagic is presentRosen Penev2020-09-061-1/+2
| | | | | | | | | | | | | | | | When the libmagic from the file package in the packages feed was also compiled and provided its libmagic.so file, util-linux tried to link against it. Avoid this by explicitly disable libmagic support. This fixes the following build error: Package more is missing dependencies for the following libraries: libmagic.so.1 Fixes: 36d9ed360a34 ("util-linux: update to 2.36") Acked-by: Sebastian Kemper <sebastian_ml@gmx.net> Signed-off-by: Rosen Penev <rosenp@gmail.com> [Add commit description] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* wolfssl: Activate link time optimization (LTO)Hauke Mehrtens2020-09-061-2/+3
| | | | | | | | | | | The ipk sizes for mips_24Kc change like this: old: libwolfssl24_4.5.0-stable-1_mips_24kc.ipk 391.545 new: libwolfssl24_4.5.0-stable-2_mips_24kc.ipk 387.439 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* iw: Update to version 5.8Hauke Mehrtens2020-09-063-723/+53
| | | | | | | | | | | | | The ipk sizes for mips_24Kc change like this: old: iw_5.4-1_mips_24kc.ipk 35.767 iw-full_5.4-1_mips_24kc.ipk 68.423 new: iw_5.8-1_mips_24kc.ipk 36.883 iw-full_5.8-1_mips_24kc.ipk 71.992 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* nftables: Activate link time optimization (LTO)Hauke Mehrtens2020-09-061-1/+4
| | | | | | | | | | | | | The ipk sizes for mips_24Kc change like this: old: nftables-json_0.9.6-1_mips_24kc.ipk 231.968 nftables-nojson_0.9.6-1_mips_24kc.ipk 204.731 new: nftables-json_0.9.6-2_mips_24kc.ipk 221.894 nftables-nojson_0.9.6-2_mips_24kc.ipk 193.932 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* libnftnl: Activate link time optimization (LTO)Hauke Mehrtens2020-09-061-2/+3
| | | | | | | | | | | The ipk sizes for mips_24Kc change like this: old: libnftnl12_1.1.7-1_mips_24kc.ipk 47.459 new: libnftnl12_1.1.7-2_mips_24kc.ipk 45.742 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* jansson: Activate link time optimization (LTO)Hauke Mehrtens2020-09-061-1/+4
| | | | | | | | | | | The ipk sizes for mips_24Kc change like this: old: jansson4_2.13.1-1_mips_24kc.ipk 19.171 new: jansson4_2.13.1-2_mips_24kc.ipk 18.936 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* nftables: Update to version 0.9.6Hauke Mehrtens2020-09-061-2/+2
| | | | | | | | | | | | | The ipk sizes for mips_24Kc change like this: old: nftables-json_0.9.3-1_mips_24kc.ipk 220.262 nftables-nojson_0.9.3-1_mips_24kc.ipk 192.937 new: nftables-json_0.9.6-1_mips_24kc.ipk 231.968 nftables-nojson_0.9.6-1_mips_24kc.ipk 204.731 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* libnftnl: Update to version 1.1.7Hauke Mehrtens2020-09-061-2/+2
| | | | | | | | | | | The ipk sizes for mips_24Kc change like this: old: libnftnl12_1.1.5-1_mips_24kc.ipk 46.252 new: libnftnl12_1.1.7-1_mips_24kc.ipk 47.459 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* jansson: Update to version 2.13.1Hauke Mehrtens2020-09-061-2/+3
| | | | | | | | | | | | | This also sets the ABI_VERSION as this is a versioned shared library. The ipk sizes for mips_24Kc change like this: old: jansson_2.12-1_mips_24kc.ipk 18.692 new: jansson4_2.13.1-1_mips_24kc.ipk 19.171 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ath25: add back target supportAdrian Schmutzler2020-09-061-3/+7
| | | | | | | | | | | | Discussion on the mailing list reveals that this target has active users. As we are finally able to upgrade this target to kernel 5.4, add it back to master. This reverts commit 7d29a5571403 ("ath25: drop target") and immediately moves the relevant files to 5.4, without touching the content. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* base-files: support label-property-less in get_dt_ledsChristian Lamparter2020-09-052-2/+3
| | | | | | | | | | | | | | | | | | | | | | | The LED's "label" property has been deprecated in upstream by: |commit c5d18dd6b64e09dd6984bda9bdd55160af537a8c |Author: Jacek Anaszewski <jacek.anaszewski@gmail.com> |Date: Sun Jun 9 20:19:04 2019 +0200 | | dt-bindings: leds: Add properties for LED name construction | | Introduce dedicated properties for conveying information about | LED function and color. Mark old "label" property as deprecated. | | Additionally function-enumerator property is being provided | for the cases when neither function nor color can be used | for LED differentiation. in order to be somewhat prepared, this patch adds a fallback as a last resort to make the current led code work by falling back to the node-name as the "label". Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ppp: update to latest git HEADHans Dedecker2020-09-051-3/+3
| | | | | | | af30be0 Fix setting prefix for IPv6 link-local addresss 0314df4 Disable asking password again when prompt program returns 128 Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* firewall: bump to latest HEADDavid Bauer2020-09-051-3/+3
| | | | | | | 8c2f9fa fw3: zones: limit zone names to 11 bytes 78d52a2 options: fix parsing of boolean attributes Signed-off-by: David Bauer <mail@david-bauer.net>
* mac80211: add preliminary support for enabling 802.11ax in configFelix Fietkau2020-09-041-12/+37
| | | | | | No advanced features are configurable yet, just basic enabling of HE modes Signed-off-by: Felix Fietkau <nbd@nbd.name>
* libselinux: package executables into -utilsDaniel Golle2020-09-041-0/+13
| | | | | | | Add new package libselinux-utils containing the executable utilities included with libselinux. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ramips: add support for HooToo HT-TM05Russell Morris2020-09-032-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The HooToo HT-TM05 is a battery powered router, with an Ethernet and USB port. Vendor U-Boot limited to 1.5 MB kernel size, so use lzma loader (loader-okli). Specifications: SOC: MediaTek MT7620N BATTERY: 10400mAh WLAN: 802.11bgn LAN: 1x 10/100 Mbps Ethernet USB: 1x USB 2.0 (Type-A) RAM: 64 MB FLASH: GigaDevice GD25Q64, Serial 8 MB Flash, clocked at 50 MHz Flash itself specified to 80 MHz, but speed limited by mt7620 SPI fast-read enabled (m25p) LED: Status LED (blue after boot, green with WiFi traffic 4 leds to indicate power level of the battery (unable to control) INPUT: Power, reset button MAC assignment based on vendor firmware: 2.4 GHz *:b4 (factory 0x04) LAN/label *:b4 (factory 0x28) WAN *:b5 (factory 0x2e) Tested and working: - Ethernet - 2.4 GHz WiFi (Correct MAC-address) - Installation from TFTP (recovery) - OpenWRT sysupgrade (Preserving and non-preserving), through the usual ways: command line and LuCI - LEDs (except as noted above) - Button (reset) - I2C, which is needed for reading battery charge status and level - U-Boot environment / variables (from U-Boot, and OpenWrt) Installation: - Download the needed OpenWrt install files, place them in the root of a clean TFTP server running on your computer. Rename the files as, - ramips-mt7620-hootoo_tm05-squashfs-kernel.bin => kernel - ramips-mt7620-hootoo_tm05-squashfs-rootfs.bin => rootfs - Plug the router into your computer via Ethernet - Set your computer to use 10.10.10.254 as its IP address - With your router shut down, hold down the power button until the first white LED lights up. - Push and hold the reset button and release the power button. Continue holding the reset button for 30 seconds or until it begins searching for files on your TFTP server, whichever comes first. - The router (10.10.10.128) will look for your computer at 10.10.10.254 and install the two files. Once it has finished installation, it will automatically reboot and start up OpenWrt. - Set your computer to use DHCP for its IP address Notes: - U-Boot environment can be modified, u-boot-env is preserved on initial install or sysupgrade - mtd-concat functionality is included, to leave a "hole" for u-boot-env, combining the OEM kernel and rootfs partitions I would like to thank @mpratt14 and @xabolcs for their help getting the lzma loader to work! Signed-off-by: Russell Morris <rmorris@rkmorris.us> [drop changes in image/Makefile, fix indent and PKG_RELEASE in uboot-envtools, fix LOADER_FLASH_OFFS, minor commit message facelift, add COMPILE to Device/Default] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* policycoreutils: add nls.mkRosen Penev2020-09-031-1/+2
| | | | | | Fixes compilation under uClibc-ng. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* kernel: remove obsolete kernel version switches for 4.14Adrian Schmutzler2020-09-0223-1083/+34
| | | | | | | | | | This removes switches dependent on kernel version 4.14 as well as several packages/modules selected only for that version. This also removes sched-cake-virtual, which is not required anymore now that we have only one variant of cake. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* samsung: drop targetAdrian Schmutzler2020-09-021-2/+2
| | | | | | | | | This target is still on kernel 4.14, and no attempt has been made to update it to a newer kernel. Since we already are two LTS versions ahead of that the target is dropped, as the chance of somebody bumping it will only decrease with time. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath25: drop targetAdrian Schmutzler2020-09-021-7/+3
| | | | | | | | | | | | | This target still only works with kernel 4.14, and not so recent attempts of getting newer kernel versions supported did not lead to success. Therefore, drop the target, as we are already two LTS kernel versions ahead and it does not seem like anybody will pick up the work. Patchwork series: https://patchwork.ozlabs.org/project/openwrt/list/?series=169991&state=* Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mbedtls: update to 2.16.8Magnus Kroken2020-09-022-25/+25
| | | | | | | | | | | | | | | | | This release of Mbed TLS provides bug fixes and minor enhancements. This release includes fixes for security issues and the most notable of them are described in more detail in the security advisories. * Local side channel attack on RSA and static Diffie-Hellman * Local side channel attack on classical CBC decryption in (D)TLS * When checking X.509 CRLs, a certificate was only considered as revoked if its revocationDate was in the past according to the local clock if available. Full release announcement: https://github.com/ARMmbed/mbedtls/releases/tag/v2.16.8 Signed-off-by: Magnus Kroken <mkroken@gmail.com>
* base-files: fix comment typo in lib/functions/network.shWalter Sonius2020-09-021-1/+1
| | | | | | | | Fix typo in comment. Signed-off-by: Walter Sonius <walterav1984@gmail.com> [commit title/message facelift] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* hostapd: add hs20 variantDaniel Golle2020-09-011-1/+21
| | | | | | Add hostapd variant compiled with support for Hotspot 2.0 AP features. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mac80211: remove an obsolete patch that is no longer doing anything usefulFelix Fietkau2020-09-018-32/+17
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: add more AQL fixes/improvementsFelix Fietkau2020-09-012-0/+72
| | | | | | Fix aggregation length estimation, add HE and VHT160 support Signed-off-by: Felix Fietkau <nbd@nbd.name>
* refpolicy: skip building docsDaniel Golle2020-09-012-1/+13
| | | | | | | Building docs requires xmllint and other bulky things being present on the host. Skip that. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* libaudit: add host-build required by policycoreutils/hostDaniel Golle2020-09-011-9/+25
| | | | Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* libsemanage: host-build depends on renamed libaudit packageDaniel Golle2020-09-011-1/+1
| | | | | Fixes: efdf619f21 ("audit: build only libaudit") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ugps: update to the latest versionHauke Mehrtens2020-09-011-3/+3
| | | | | | 511a5b3 ugps: fix 64-bit time_t Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* fstools: update to the latest versionHauke Mehrtens2020-09-011-3/+3
| | | | | | 5345343 fstoools: add define for GLOB_ONLYDIR Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* uboot-mediatek: update to latest versionJohn Crispin2020-09-014-1083/+5
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* libaudit: drop unused fileDaniel Golle2020-09-011-16/+0
| | | | | | | | Drop init script from libaudit package. It will be added to the 'audit' package in the packages feed. Fixes: efdf619f21 ("audit: build only libaudit") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* build: opkg-key variable key folderPaul Spooren2020-08-311-4/+6
| | | | | | | | | | | | | | The key folder is used by `opkg` and `usign` to store and retrieve trusted public keys. Using `opkg-key` outside a running device is unfeasible as the key folder is hard coded to `/etc/opkg/keys`. This commit adds a variable OPKG_KEYS which defaults to `/etc/opkg/keys` if unset, however allows set arbitrary key folder locations. Arbitrary key folder locations are useful to add signature verification to the ImageBuilders. Signed-off-by: Paul Spooren <mail@aparcar.org>
* px5g-wolfssl: cleanup Makefile and SPDX licensePaul Spooren2020-08-312-10/+8
| | | | | | | Minor cosmetic cleanups of the Makefile and add a SPDX compatible license headers. Signed-off-by: Paul Spooren <mail@aparcar.org>
* libsemanage: add missing package metadataDaniel Golle2020-08-311-1/+6
| | | | | | License and CPE-ID were missing, add them. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* audit: build only libauditDaniel Golle2020-08-314-56/+22
| | | | | | Turns out auditd depends on libev. Lets have that in packages.git. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* strace: Update to version 5.8Hauke Mehrtens2020-08-311-7/+4
| | | | | | | | | | | | Deactivate multiple personalities support, because this causes compile problems at least on the x86/64 target. As OpenWrt compiles all binaries itself all binaries will use the native personality which is also used by strace. This change will make it impossible to debug i386 binaries on x86_64 OpenWrt targets for example. Just deactivate it for ARM64 too. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* util-linux: update to 2.36Rosen Penev2020-08-313-5/+32
| | | | | | | | | hwclock was fixed to work with musl. Unfortunately, the fix breaks under musl 1.2.x. Backported patch to fix that. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* libcxx: update to 10.0.0Rosen Penev2020-08-315-60/+24
| | | | | | | | | | | | | | | | | | | Switched to upstream tarballs. Switched to libcxxabi as using libsupc++ is quite wonky. Fixed description. Removed patches. The fixes are cosmetic. Added ssp patch. This one is needed for i386 and powerpc under musl. Compile tested every C++ package in the tree with the exception of several boost packages. There's something broken with boost. Ran tested with gerbera. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* libcxxabi: addRosen Penev2020-08-312-0/+98
| | | | | | | | | | | | | | | This will be used for libcxx. libcxxabi is needed as libsupc++ is not good enough for libcxx. It uses GCC specific stuff which causes failed compilation for some packages. There are also runtime issues, most notably with cxxopts where the program just crashes. Reference: https://github.com/gerbera/gerbera/issues/795 Added patch to fix ARM compilation. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* checkpolicy: build-depend on libselinuxDaniel Golle2020-08-311-0/+1
| | | | | | | | | | | | Static libraries and headers of libselinux and libsepol are required for checkpolicy to build. Fixes error: policy_parse.y:45:10: fatal error: sepol/policydb/expand.h: No such file or directory #include <sepol/policydb/expand.h> ^~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* policycoreutils: fix i18n dependsDaniel Golle2020-08-311-1/+1
| | | | | | | | | | Fixes build error: load_policy.c:11:10: fatal error: libintl.h: No such file or directory #include <libintl.h> /* for gettext() */ ^~~~~~~~~~~ compilation terminated. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ath79: add support for Senao Engenius ENH202 v1Michael Pratt2020-08-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FCC ID: U2M-ENH200 Engenius ENH202 is an outdoor wireless access point with 2 10/100 ports, built-in ethernet switch, internal antenna plates and proprietery PoE. Specification: - Qualcomm/Atheros AR7240 rev 2 - 40 MHz reference clock - 8 MB FLASH ST25P64V6P (aka ST M25P64) - 32 MB RAM - UART at J3 (populated) - 2x 10/100 Mbps Ethernet (built-in switch at gmac1) - 2.4 GHz, 2x2, 29dBm (Atheros AR9280 rev 2) - internal antenna plates (10 dbi, semi-directional) - 5 LEDs, 1 button (LAN, WAN, RSSI) (Reset) Known Issues: - Sysupgrade from ar71xx no longer possible - Power LED not controllable, or unknown gpio MAC addresses: eth0/eth1 *:11 art 0x0/0x6 wlan *:10 art 0x120c The device label lists both addresses, WLAN MAC and ETH MAC, in that order. Since 0x0 and 0x6 have the same content, it cannot be determined which is eth0 and eth1, so we chose 0x0 for both. Installation: 2 ways to flash factory.bin from OEM: - Connect ethernet directly to board (the non POE port) this is LAN for all images - if you get Failsafe Mode from failed flash: only use it to flash Original firmware from Engenius or risk kernel loop or halt which requires serial cable Method 1: Firmware upgrade page: OEM webpage at 192.168.1.1 username and password "admin" In upper right select Reset "Restore to factory default settings" Wait for reboot and login again Navigate to "Firmware Upgrade" page from left pane Click Browse and select the factory.bin image Upload and verify checksum Click Continue to confirm and wait 3 minutes Method 2: Serial to load Failsafe webpage: After connecting to serial console and rebooting... Interrupt boot with any key pressed rapidly execute `run failsafe_boot` OR `bootm 0x9f670000` wait a minute connect to ethernet and navigate to "192.168.1.1/index.htm" Select the factory.bin image and upload wait about 3 minutes Return to OEM: If you have a serial cable, see Serial Failsafe instructions *DISCLAIMER* The Failsafe image is unique to Engenius boards. If the failsafe image is missing or damaged this will not work DO NOT downgrade to ar71xx this way, can cause kernel loop or halt The easiest way to return to the OEM software is the Failsafe image If you dont have a serial cable, you can ssh into openwrt and run `mtd -r erase fakeroot` Wait 3 minutes connect to ethernet and navigate to 192.168.1.1/index.htm select OEM firmware image from Engenius and click upgrade Format of OEM firmware image: The OEM software of ENH202 is a heavily modified version of Openwrt Kamikaze bleeding-edge. One of the many modifications is to the sysupgrade program. Image verification is performed simply by the successful ungzip and untar of the supplied file and name check and header verification of the resulting contents. To form a factory.bin that is accepted by OEM Openwrt build, the kernel and rootfs must have specific names... openwrt-senao-enh202-uImage-lzma.bin openwrt-senao-enh202-root.squashfs and begin with the respective headers (uImage, squashfs). Then the files must be tarballed and gzipped. The resulting binary is actually a tar.gz file in disguise. This can be verified by using binwalk on the OEM firmware images, ungzipping then untaring, and by swapping headers to see what the OEM upgrade utility accepts and rejects. OKLI kernel loader is required because the OEM firmware expects the kernel to be no greater than 1024k and the factory.bin upgrade procedure would otherwise overwrite part of the kernel when writing rootfs. Note on built-in switch: ENH202 is originally configured to be an access point, but with two ethernet ports, both WAN and LAN is possible. the POE port is gmac0 which is preferred to be the port for WAN because it gives link status where swconfig does not. Signed-off-by: Michael Pratt <mpratt51@gmail.com> [assign label_mac in 02_network, use ucidef_set_interface_wan, use common device definition, some reordering] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ath79: add support for Senao Engenius ENS202EXT v1Michael Pratt2020-08-311-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Engenius ENS202EXT v1 is an outdoor wireless access point with 2 10/100 ports, with built-in ethernet switch, detachable antennas and proprietery PoE. FCC ID: A8J-ENS202 Specification: - Qualcomm/Atheros AR9341 v1 - 535/400/200/40 MHz (CPU/DDR/AHB/REF) - 64 MB of RAM - 16 MB of FLASH MX25L12835F(MI-10G) - UART (J1) header on PCB (unpopulated) - 2x 10/100 Mbps Ethernet (built-in switch Atheros AR8229) - 2.4 GHz, up to 27dBm (Atheros AR9340) - 2x external, detachable antennas - 7x LED (5 programmable in ath79), 1x GPIO button (Reset) Known Issues: - Sysupgrade from ar71xx no longer possible - Ethernet LEDs stay on solid when connected, not programmable MAC addresses: eth0/eth1 *:7b art 0x0/0x6 wlan *:7a art 0x1002 The device label lists both addresses, WLAN MAC and ETH MAC, in that order. Since 0x0 and 0x6 have the same content, it cannot be determined which is eth0 and eth1, so we chose 0x0 for both. Installation: 2 ways to flash factory.bin from OEM: - Connect ethernet directly to board (the non POE port) this is LAN for all images - if you get Failsafe Mode from failed flash: only use it to flash Original firmware from Engenius or risk kernel loop which requires serial cable Method 1: Firmware upgrade page: OEM webpage at 192.168.1.1 username and password "admin" In upper right select Reset "Restore to factory default settings" Wait for reboot and login again Navigate to "Firmware Upgrade" page from left pane Click Browse and select the factory.bin image Upload and verify checksum Click Continue to confirm and wait 3 minutes Method 2: Serial to load Failsafe webpage: After connecting to serial console and rebooting... Interrupt boot with any key pressed rapidly execute `run failsafe_boot` OR `bootm 0x9fdf0000` wait a minute connect to ethernet and navigate to "192.168.1.1/index.htm" Select the factory.bin image and upload wait about 3 minutes *If you are unable to get network/LuCI after flashing* You must perform another factory reset: After waiting 3 minutes or when Power LED stop blinking: Hold Reset button for 15 seconds while powered on or until Power LED blinks very fast release and wait 2 minutes Return to OEM: If you have a serial cable, see Serial Failsafe instructions *DISCLAIMER* The Failsafe image is unique to this model. The following directions are unique to this model. DO NOT downgrade to ar71xx this way, can cause kernel loop The easiest way to return to the OEM software is the Failsafe image If you dont have a serial cable, you can ssh into openwrt and run `mtd -r erase fakeroot` Wait 3 minutes connect to ethernet and navigate to 192.168.1.1/index.htm select OEM firmware image from Engenius and click upgrade TFTP Recovery: For some reason, TFTP is not reliable on this board. Takes many attempts, many timeouts before it fully transfers. Starting with an initramfs.bin: Connect to ethernet set IP address and TFTP server to 192.168.1.101 set up infinite ping to 192.168.1.1 rename the initramfs.bin to "vmlinux-art-ramdisk" and host on TFTP server disconnect power to the board hold reset button while powering on board for 8 seconds Wait a minute, power LED should blink eventually if successful and a minute after that the pings should get replies You have now loaded a temporary Openwrt with default settings temporarily. You can use that image to sysupgrade another image to overwrite flash. Format of OEM firmware image: The OEM software of ENS202EXT is a heavily modified version of Openwrt Kamikaze bleeding-edge. One of the many modifications is to the sysupgrade program. Image verification is performed simply by the successful ungzip and untar of the supplied file and name check and header verification of the resulting contents. To form a factory.bin that is accepted by OEM Openwrt build, the kernel and rootfs must have specific names... openwrt-senao-ens202ext-uImage-lzma.bin openwrt-senao-ens202ext-root.squashfs and begin with the respective headers (uImage, squashfs). Then the files must be tarballed and gzipped. The resulting binary is actually a tar.gz file in disguise. This can be verified by using binwalk on the OEM firmware images, ungzipping then untaring, and by swapping headers to see what the OEM upgrade utility accepts and rejects. Note on the factory.bin: The newest kernel is too large to be in the kernel partition the new ath79 kernel is beyond 1592k Even ath79-tiny is 1580k Checksum fails at boot because the bootloader (modified uboot) expects kernel to be 1536k. If the kernel is larger, it gets overwritten when rootfs is flashed, causing a broken image. The mtdparts variable is part of the build and saving a new uboot environment will not persist after flashing. OEM version might interact with uboot or with the custom OEM partition at 0x9f050000. Failed checksums at boot cause failsafe image to launch, allowing any image to be flashed again. HOWEVER: one should not install older Openwrt from failsafe because it can cause rootfs to be unmountable, causing kernel loop after successful checksum. The only way to rescue after that is with a serial cable. For these reasons, a fake kernel (OKLI kernel loader) and fake squashfs rootfs is implemented to take care of the OEM firmware image verification and checksums at boot. The OEM only verifies the checksum of the first image of each partition respectively, which is the loader and the fake squashfs. This completely frees the "firmware" partition from all checks. virtual_flash is implemented to make use of the wasted space. this leaves only 2 erase blocks actually wasted. The loader and fakeroot partitions must remain intact, otherwise the next boot will fail, redirecting to the Failsafe image. Because the partition table required is so different than the OEM partition table and ar71xx partition table, sysupgrades are not possible until one switches to ath79 kernel. Note on sysupgrade.tgz: To make things even more complicated, another change is needed to fix an issue where network does not work after flashing from either OEM software or Failsafe image, which implants the OEM (Openwrt Kamikaze) configuration into the jffs2 /overlay when writing rootfs from factory.bin. The upgrade script has this: mtd -j "/tmp/_sys/sysupgrade.tgz" write "${rootfs}" "rootfs" However, it also accepts scripts before and after: before_local="/etc/before-upgradelocal.sh" after_local="/etc/after-upgradelocal.sh" before="before-upgrade.sh" after="after-upgrade.sh" Thus, we can solve the issue by making the .tgz an empty file by making a before-upgrade.sh in the factory.bin Note on built-in switch: There is two ports on the board, POE through the power supply brick, the other is on the board. For whatever reason, in the ar71xx target, both ports were on the built-in switch on eth1. In order to make use of a port for WAN or a different LAN, one has to set up VLANs. In ath79, eth0 and eth1 is defined in the DTS so that the built-in switch is seen as eth0, but only for 1 port the other port is on eth1 without a built-in switch. eth0: switch0 CPU is port 0 board port is port 1 eth1: POE port on the power brick Since there is two physical ports, it can be configured as a full router, with LAN for both wired and wireless. According to the Datasheet, the port that is not on the switch is connected to gmac0. It is preferred that gmac0 is chosen as WAN over a port on an internal switch, so that link status can pass to the kernel immediately which is more important for WAN connections. Signed-off-by: Michael Pratt <mpratt51@gmail.com> [apply sorting in 01_leds, make factory recipe more generic, create common device node, move label-mac to 02_network, add MAC addresses to commit message, remove kmod-leds-gpio, use gzip directly] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>