aboutsummaryrefslogtreecommitdiffstats
path: root/package
Commit message (Collapse)AuthorAgeFilesLines
* busybox: sysntpd: option to bind server to ifaceAlexey Dobrovolsky2021-06-271-2/+10
| | | | | | | | | | | | NTPD in busybox has option -I to bind server to IFACE. However, capabilities of the busybox are limited, the -I option cannot be repeated and only one interface can be effectively specified in it. This option is currently not configurable via UCI. The patch adds an interface option to the system config, ntp section. Also sort options for uci_load_validate alphabetically. Signed-off-by: Alexey Dobrovolsky <dobrovolskiy.alexey@gmail.com> (cherry picked from commit e12fcf0fe5597467f7cc21144e5f4da60500ebd2)
* iwinfo: update to latest Git HEADDavid Bauer2021-06-271-4/+4
| | | | | | | c45f0b5 iwinfo: add 802.11ax HE rate information Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit 5515c29029ce7c63b48d1af0cbb3fbdc14ca033b)
* iwinfo: update to latest Git HEADDavid Bauer2021-06-271-4/+4
| | | | | | | | | 50b64a6 iwinfo: add basic IEEE 802.11ax support 70d2136 iwinfo: nl80211: perform split wiphy dump cd23727 iwinfo: cli: fix hwmode formatting Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit 6f77ce77248d6458414efafd64c72d653fc70bb8)
* libusb: Fix parsing of descriptors for multi-configuration devicesGeorgi Valkov2021-06-263-1/+91
| | | | | | | | | | | | | | | | Prerequisite patch: Correct a typo in the Changelog and clean up a stray file Fix changes in libusb which introduced a regression: Commit e2be556bd2 ("linux_usbfs: Parse config descriptors during device initialization") introduced a regression for devices with multiple configurations. The logic that verifies the reported length of the configuration descriptors failed to count the length of the configuration descriptor itself and would truncate the actual length by 9 bytes, leading to a parsing error for subsequent descriptors. Signed-off-by: Georgi Valkov <gvalkov@abv.bg> (cherry picked from commit 4b37e3bc2b2a079c996b6d97b8d3dbbd4ba6eb62)
* base-files: fix /tmp/TZ when zoneinfo not installedPaul Spooren2021-06-251-7/+4
| | | | | | | | | | | | | The zoneinfo packages are not installed per default so neither /tmp/localtime nor /tmp/TZ is generated. This patch mostly reverts the previous fix and instead incooperates a solution suggested by Jo. Fixes "base-files: fix zoneinfo support " 8af62ed Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit 56bdb6bb9781f8a0bbec5fc3075b9d2b8d12f9a8)
* base-files: fix zoneinfo supportRosen Penev2021-06-231-7/+9
| | | | | | | | | | | | | | | | | The system init script currently sets /tmp/localinfo when zoneinfo is populated. However, zoneinfo has spaces in it whereas the actual files have _ instead of spaces. This made the if condition never return true. Example failure when removing the if condition: /tmp/localtime -> /usr/share/zoneinfo/America/Los Angeles This file does not exist. America/Los_Angeles does. Ran through shfmt -w -ci -bn -sr -s Signed-off-by: Rosen Penev <rosenp@gmail.com> (cherry picked from commit 8af62ede189aa504135db05474d34c9f8a1ed35d)
* exfat: update to 5.12.3Rosen Penev2021-06-221-3/+3
| | | | | | | | | | | | | Major changes are: Avoid page allocation failure from upcase table allocation. Add support for FITRIM. Improve write perofmrance on dirsync mount. Improve lookup perofmrance. Fix a bug on discard mount. Switch to AUTORELEASE to avoid having to bump it. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* base-files: failsafe: Remove the VLAN modifier from interface nameHauke Mehrtens2021-06-221-0/+2
| | | | | | | | Some interfaces have a VLAN modifier like :t in lan1:t, this modifier should be removed from the interface before calling preinit_ip_config(). Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 790561d5109ef81537fdb8ceb8eb183c0cab077c)
* base-files: failsafe: Fix IP configurationHauke Mehrtens2021-06-221-3/+9
| | | | | | | | | | | | | | Adapt the preinit_config_board() to the board.json network changes. It now looks for the device and the ports variables to configure the LAN network. This works with swconfig configurations. Fixes: FS#3866 Fixes: d42640e389a8 ("base-files: use "ports" array in board.json network for bridges") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Reviewed-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 467cd378db3359814866ec4121fdb4417783241e)
* hostapd: fix handling of the channel utilization optionsTimo Sigurdsson2021-06-221-0/+2
| | | | | | | | | | | | | Commit 0a7657c ("hostapd: add channel utilization as config option") added the two new uci options bss_load_update_period and chan_util_avg_period. However, the corresponding "config_add_int" calls for these options weren't added, so attempting to actually use these options and change their values is bound to fail - they always stay at their defaults. Add the missing code to actually make these options work. Fixes: 0a7657c ("hostapd: add channel utilization as config option") Signed-off-by: Timo Sigurdsson <public_timo.s@silentcreek.de> (cherry picked from commit 85ce590705072be78c3ef7dc6b64e3b1facc892b)
* base-files: fix typo in config_generate MAC checkRafał Miłecki2021-06-221-1/+1
| | | | | | Fixes: 125deb4d783e ("base-files: set MAC for bridge ports (devices) instead of bridge itself") Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 946019637ec9192450c685a61c589a9cbef7637b)
* base-files: set MAC for bridge ports (devices) instead of bridge itselfRafał Miłecki2021-06-221-1/+9
| | | | | | | | | | | | | | This restores the original config_generate behaviour. With MAC set for bridged devices the bridge automatically gets its MAC adjusted (it picks the lowest MAC of bridged devices). This fixes confusing interfaces setup (bridge ports not having custom MAC assigned). Reported-by: Koen Vandeputte <koen.vandeputte@citymesh.com> Fixes: c2139eef279e ("base-files: simplify setting device MAC") Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit c8d8eb9d13fc6fc8b394a620c27995ee71d29c4d)
* hostapd: wolfssl: add RNG to EC keyDavid Bauer2021-06-212-1/+49
| | | | | | | | | | | Since upstream commit 6467de5a8840 ("Randomize z ordinates in scalar mult when timing resistant") WolfSSL requires a RNG for the EC key when built hardened which is the default. Set the RNG for the EC key to fix connections for OWE clients. Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit ddcb970274c011d3db611ec39350ee4704ff0e02)
* wolfssl: always export wc_ecc_set_rngDavid Bauer2021-06-212-1/+51
| | | | | | | | | | | | | | | | Since commit 6467de5a8840 ("Randomize z ordinates in scalar mult when timing resistant") wolfssl requires a RNG for an EC key when the hardened built option is selected. wc_ecc_set_rng is only available when built hardened, so there is no safe way to install the RNG to the key regardless whether or not wolfssl is compiled hardened. Always export wc_ecc_set_rng so tools such as hostapd can install RNG regardless of the built settings for wolfssl. Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit ef9b103107aebd1a54f4360af3d9cf28d0544f13)
* qos-scripts: add ifbN device before setting the link upPerry Melange2021-06-212-2/+3
| | | | | | | | | | | | | commit 50413e1ec83dedaea44558d5f37af5454156a46a replaced ifconfig with ip. In order to set a link state to up, the interface needs to be added first. Fixes: FS#3754 Signed-off-by: Perry Melange <isprotejesvalkata@gmail.com> [Add Fixes tag] Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org> (cherry picked from commit 23c3bab9209f984692f8206c0d97758ee223a26f)
* mac80211: fix an issue with wds links on 802.11ax devicesFelix Fietkau2021-06-191-0/+51
| | | | | Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit 89c9ccc3b241d8f07c22a1c271211322c4703f7b)
* mac80211: fix minstrel sample time checkFelix Fietkau2021-06-171-0/+23
| | | | | | | | We need to skip sampling if the next sample time is after jiffies, not before. This patch fixes an issue where in some cases only very little sampling (or none at all) is performed, leading to really bad data rates Signed-off-by: Felix Fietkau <nbd@nbd.name>
* iw: update to 8fab0c9eAndre Heider2021-06-172-20/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | This fixes `iw dev wlan0-mesh station dump`. 8fab0c9 iw: fix ftm_request missing arguments segfault e816fbc iw: fix mgmt dump missing arguments segfault 5d9d1b8 iw: Fix timestamp output on 32-bit architectures 4b25ae3 iw: fix pointer arithmetic in __print_he_capa c3df363 iw: add option to print human readable event time cd64525 iw: print ctrl port tx status event 0ba98b9 iw: use correct type in policy check for mesh 9e38dee iw: scan: fixup HE caps whitespace 17e8564 iw: scan: parse HE capabilities 5735e58 iw: util: factor out HE capability parser 6d8d507 iw: scan: add extension tag parsing b4e1ec4 man: update wikipage URL, reformat SEE ALSO section c56036a iw: enable 80MHz support for 6GHz band 11s mesh fa72728 iw: handle positive error codes gracefully 7ba9093 iw: scan: add flag for scanning colocated ap 5ec60ed iw: Add 'coloc' and 'flush' options to sched_scan f8ade75 iw: update wikipage URL b6f2dac iw: Add support for specifying the 160MHz bandwidth when setting the channel/frequency Signed-off-by: Andre Heider <a.heider@gmail.com> (cherry-picked from commit b5420dd710aaad703f6f7a900840609d4d1176a1)
* mt76: update to the latest versionFelix Fietkau2021-06-171-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bddc1db76d0f mt76: mt7915: drop the use of repeater entries for station interfaces 3c90f35dddac mt76: mt7915: add thermal sensor device support afab0e8202ff mt76: mt7915: add thermal cooling device support 41cf02184699 mt76: mt7615: add thermal sensor device support 2ac6b8762565 mt76: connac: update BA win size in Rx direction ddb301127291 mt76: mt7921: fix reset under the deep sleep is enabled e4cbefd1d69a mt76: mt7921: avoid unnecessary consecutive WiFi resets 393eea2034d7 mt76: mt7921: fix invalid register access in wake_work a15d46407ffa mt76: mt7921: fix OMAC idx usage e4d267d8e900 mt76: mt7921: enable runtime pm by default 50fd8ce2412a mt76: connac: add bss color support for sta mode e29058c3c860 mt76: mt7921: return proper error value in mt7921_mac_init c89c8c347b1e mt76: mt7921: do not schedule hw reset if the device is not running 9f7bb428e587 mt76: mt7921: reset wfsys during hw probe 22ea365913b5 mt76: mt7915: add .offset_tsf callback ad91f8e8e494 mt76: mt7615: add .offset_tsf callback 6f871f35e3c1 mt76: mt7915: use mt7915_mcu_get_txpower_sku() to get per-rate txpower 597b68b7daa3 mt76: mt7615: remove useless if condition in mt7615_add_interface() 3945264468eb mt76: testmode: fix memory leak in mt76_testmode_alloc_skb bdcc57a11606 mt76: testmode: remove unnecessary function calls in mt76_testmode_free_skb a9763452601d mt76: testmode: remove undefined behaviour in mt76_testmode_alloc_skb 4aef2a2be464 mt76: mt7615: fix potential overflow on large shift d9dd7635b055 mt76: mt7915: use mt7915_mcu_get_mib_info() to get survey data d740e921758a mt76: mt7921: introduce mac tx done handling 259ddfc7cb73 mt76: mt7921: update statistic in active mode only 757b93f4b179 mt76: mt7921: remove leftover 80+80 HE capability 1fcff599b2e1 mt76: allow hw driver code to overwrite wiphy interface_modes c55c22e39b7d mt7915: update firmware to 2020110522 10548aef1f45 mt76: mt7915: improve error recovery reliability ed6b0c79820c mt76: mt7921: set MT76_RESET during mac reset 321443258bea mt76: move mt76_rates in mt76 module d1652e8af9e1 Revert "mt76: connac: do not schedule wake_work if the runtime-pm is disabled" 4f4cab39ed9f mt76: mt7915: read all eeprom fields from fw in efuse mode 71450535f164 mt76: mt7921: enable hw offloading for wep keys 833d577e430c mt76: mt7921: remove mt7921_get_wtbl_info routine 67b7a22d2b99 mt76: mt7921: enable random mac address during sched_scan cf1ff7bf4f1b mt76: mt7915: setup drr group for peers ef2f7aa8745f mt76: mt7615: update radar parameters b9f09f530223 mt76: mt7915: fix MT_EE_CAL_GROUP_SIZE 22b690334c0f mt76: mt7915: do not fail if the cooling device could not be registered Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit 3c46ba053d899df65dc07e373c64d1925d30f88e)
* mac80211: sync nl80211.h with upstream and backport a WPA3 related commitFelix Fietkau2021-06-175-33/+657
| | | | | | | Fixes compatibility issues with the latest hostapd update Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit 91abeebd3bd29a98de516e49260d61165096009a)
* ugps: start also in case device is absentDaniel Golle2021-06-151-4/+9
| | | | | | | | | | Don't bail out from init script in case the GPS device is missing. Some modems take time to come up, and some people may use things like 'kplex' to feed ugpsd. Hence it is better to always start ugpsd unconditionally and let procd's respawn take care of retrying. Signed-off-by: Daniel Golle <daniel@makrotopia.org> (cherry picked from commit 3d026d24257a0e2f3170538d8a54d520315699a1)
* ugps: update to git HEADDaniel Golle2021-06-151-4/+4
| | | | | | | | | 86ee86e nmea: parse $GPZDA sentences for date/time 8e12414 nmea: parse $GPGLL sentences for position 5e88403 ubus: display only available information Signed-off-by: Daniel Golle <daniel@makrotopia.org> (cherry picked from commit 3a8b75b56927d679dbf1a86827ceffef35207281)
* OpenWrt v21.02.0-rc3: revert to branch defaultsHauke Mehrtens2021-06-141-2/+2
| | | | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* OpenWrt v21.02.0-rc3: adjust config defaultsv21.02.0-rc3Hauke Mehrtens2021-06-141-2/+2
| | | | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* opkg: update to git HEADHauke Mehrtens2021-06-141-3/+3
| | | | | | | 1bf042d libopkg: pkg_hash: print unresolved dependencies Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit da86064611db657bce8c3c96b2e58eca8551c3d0)
* treewide: mark selected packages nonsharedHannu Nyman2021-06-146-6/+14
| | | | | | | | | | | | | | | | | | | | | Mark uci, ubus, libubox, lua, libnl-tiny and libjson-c as nonshared packages. This helps to keep coherent dependencies if these ABI versioned packages are later updated. Before this commit it is possible to get missing dependencies in target-specific nonshared packages (like iwinfo) that depend on these shared ABI versioned packages. If these are later updated and rebuilt, only the new ABI version will be available for download, while the target-specific packages in releases continue to depend on the old ABI version. After this commit the packages are built along the other nonshared packages by the phase1 images buildbot and will be available at the target/ download directories instead of packages/base dir. That will help to keep a coherent set available. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi> (cherry picked from commit 72cc44958ef4e0df1a152178514c92899d6a957a)
* ramips: add support for Linksys EA8100 v1Tee Hao Wei2021-06-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifications: - SoC: MT7621AT - RAM: 256MB - Flash: 128MB NAND - Ethernet: 5 Gigabit ports - WiFi: 2.4G/5G MT7615N - USB: 1 USB 3.0, 1 USB 2.0 This device is very similar to the EA7300 v1/v2 and EA7500 v2. Installation: Upload the generated factory image through the factory web interface. (following part taken from EA7300 v2 commit message:) This might fail due to the A/B nature of this device. When flashing, OEM firmware writes over the non-booted partition. If booted from 'A', flashing over 'B' won't work. To get around this, you should flash the OEM image over itself. This will then boot the router from 'B' and allow you to flash OpenWRT without problems. Reverting to factory firmware: Hard-reset the router three times to force it to boot from 'B.' This is where the stock firmware resides. To remove any traces of OpenWRT from your router simply flash the OEM image at this point. With thanks to Leon Poon (@LeonPoon) for the initial bringup. Signed-off-by: Tee Hao Wei <angelsl@in04.sg> [add missing entry in 10_fix_wifi_mac] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit b232680f847f4ea8d058849a51dedebb8e398a01)
* ramips: add support for Amped Wireless ALLY router and extenderJonathan Sturges2021-06-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amped Wireless ALLY is a whole-home WiFi kit, with a router (model ALLY-R1900K) and an Extender (model ALLY-00X19K). Both are devices are 11ac and based on MediaTek MT7621AT and MT7615N chips. The units are nearly identical, except the Extender lacks a USB port and has a single Ethernet port. Specification: - SoC: MediaTek MT7621AT (2C/4T) @ 880MHz - RAM: 128MB DDR3 (Nanya NT5CC64M16GP-DI) - FLASH: 128MB NAND (Winbond W29N01GVSIAA) - WiFi: 2.4/5 GHz 4T4R - 2.4GHz MediaTek MT7615N bgn - 5GHz MediaTek MT7615N nac - Switch: SoC integrated Gigabit Switch - USB: 1x USB3 (Router only) - BTN: Reset, WPS - LED: single RGB - UART: through-hole on PCB. J1: pin1 (square pad, towards rear)=3.3V, pin2=RX, pin3=GND, pin4=TX. Settings: 57600/8N1. Note regarding dual system partitions ------------------------------------- The vendor firmware and boot loader use a dual partition scheme. The boot partition is decided by the bootImage U-boot environment variable: 0 for the 1st partition, 1 for the 2nd. OpenWrt does not support this scheme and will always use the first OS partition. It will set bootImage to 0 during installation, making sure the first partition is selected by the boot loader. Also, because we can't be sure which partition is active to begin with, a 2-step flash process is used. We first flash an initramfs image, then follow with a regular sysupgrade. Installation: Router (ALLY-R1900K) 1) Install the flashable initramfs image via the OEM web-interface. (Alternatively, you can use the TFTP recovery method below.) You can use WiFi or Ethernet. The direct URL is: http://192.168.3.1/07_06_00_firmware.html a. No login is needed, and you'll be in their setup wizard. b. You might get a warning about not being connected to the Internet. c. Towards the bottom of the page will be a section entitled "Or Manually Upgrade Firmware from a File:" where you can manually choose and upload a firmware file. d: Click "Choose File", select the OpenWRT "initramfs" image and click "Upload." 2) The Router will flash the OpenWrt initramfs image and reboot. After booting, LuCI will be available on 192.168.1.1. 3) Log into LuCI as root; there is no password. 4) Optional (but recommended) is to backup the OEM firmware before continuing; see process below. 5) Complete the Installation by flashing a full OpenWRT image. Note: you may use the sysupgrade command line tool in lieu of the UI if you prefer. a. Choose System -> Backup/Flash Firmware. b. Click "Flash Image..." under "Flash new firmware image" c. Click "Browse..." and then select the sysupgrade file. d. Click Upload to upload the sysupgrade file. e. Important: uncheck "Keep settings and retain the current configuration" for this initial installation. f. Click "Continue" to flash the firmware. g. The device will reboot and OpenWRT is installed. Extender (ALLY-00X19K) 1) This device requires a TFTP recovery procedure to do an initial load of OpenWRT. Start by configuring a computer as a TFTP client: a. Install a TFTP client (server not necessary) b. Configure an Ethernet interface to 192.168.1.x/24; don't use .1 or .6 c. Connect the Ethernet to the sole Ethernet port on the X19K. 2) Put the ALLY Extender in TFTP recovery mode. a. Do this by pressing and holding the reset button on the bottom while connecting the power. b. As soon as the LED lights up green (roughly 2-3 seconds), release the button. 3) Start the TFTP transfer of the Initramfs image from your setup machine. For example, from Linux: tftp -v -m binary 192.168.1.6 69 -c put initramfs.bin 4) The Extender will flash the OpenWrt initramfs image and reboot. After booting, LuCI will be available on 192.168.1.1. 5) Log into LuCI as root; there is no password. 6) Optional (but recommended) is to backup the OEM firmware before continuing; see process below. 7) Complete the Installation by flashing a full OpenWRT image. Note: you may use the sysupgrade command line tool in lieu of the UI if you prefer. a. Choose System -> Backup/Flash Firmware. b. Click "Flash Image..." under "Flash new firmware image" c. Click "Browse..." and then select the sysupgrade file. d. Click Upload to upload the sysupgrade file. e. Important: uncheck "Keep settings and retain the current configuration" for this initial installation. f. Click "Continue" to flash the firmware. g. The device will reboot and OpenWRT is installed. Backup the OEM Firmware: ----------------------- There isn't any downloadable firmware for the ALLY devices on the Amped Wireless web site. Reverting back to the OEM firmware is not possible unless we have a backup of the original OEM firmware. The OEM firmware may be stored on either /dev/mtd3 ("firmware") or /dev/mtd6 ("oem"). We can't be sure which was overwritten with the initramfs image, so backup both partitions to be safe. 1) Once logged into LuCI, navigate to System -> Backup/Flash Firmware. 2) Under "Save mtdblock contents," first select "firmware" and click "Save mtdblock" to download the image. 3) Repeat the process, but select "oem" from the pull-down menu. Revert to the OEM Firmware: -------------------------- * U-boot TFTP: Follow the TFTP recovery steps for the Extender, and use the backup image. * OpenWrt "Flash Firmware" interface: Upload the backup image and select "Force update" before continuing. Signed-off-by: Jonathan Sturges <jsturges@redhat.com> (cherry picked from commit 6d23e474ad9d0eba935696c66db4fb6e2037bb72)
* ramips: add support for JCG Q20Chukun Pan2021-06-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | JCG Q20 is an AX 1800M router. Hardware specs: SoC: MediaTek MT7621AT Flash: Winbond W29N01HV 128 MiB RAM: Winbond W632GU6NB-11 256 MiB WiFi: MT7915 2.4/5 GHz 2T2R Ethernet: 10/100/1000 Mbps x3 LED: Status (red / blue) Button: Reset, WPS Power: DC 12V,1A Flash instructions: Upload factory.bin in stock firmware's upgrade page, do not preserve settings. MAC addresses map: 0x00004 *:3e wlan2g/wlan5g 0x3fff4 *:3c lan/label 0x3fffa *:3c wan Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn> (cherry picked from commit 57cb387cfeee2a07902a2f1383ca471ef47265f3)
* ramips: mt7621: Add support for ZyXEL NR7101Bjørn Mork2021-06-101-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ZyXEL NR7101 is an 802.3at PoE powered 5G outdoor (IP68) CPE with integrated directional 5G/LTE antennas. Specifications: - SoC: MediaTek MT7621AT - RAM: 256 MB - Flash: 128 MB MB NAND (MX30LF1G18AC) - WiFi: MediaTek MT7603E - Switch: 1 LAN port (Gigabiti) - 5G/LTE: Quectel RG502Q-EA connected by USB3 to SoC - SIM: 2 micro-SIM slots under transparent cover - Buttons: Reset, WLAN under same cover - LEDs: Multicolour green/red/yellow under same cover (visible) - Power: 802.3at PoE via LAN port The device is built as an outdoor ethernet to 5G/LTE bridge or router. The Wifi interface is intended for installation and/or temporary management purposes only. UART Serial: 57600N1 Located on populated 5 pin header J5: [o] GND [ ] key - no pin [o] RX [o] TX [o] 3.3V Vcc Remove the SIM/button/LED cover, the WLAN button and 12 screws holding the back plate and antenna cover together. The GPS antenna is fixed to the cover, so be careful with the cable. Remove 4 screws fixing the antenna board to the main board, again being careful with the cables. A bluetooth TTL adapter is recommended for permanent console access, to keep the router water and dustproof. The 3.3V pin is able to power such an adapter. MAC addresses: OpenWrt OEM Address Found as lan eth2 08:26:97:*:*:BC Factory 0xe000 (hex), label wlan0 ra0 08:26:97:*:*:BD Factory 0x4 (hex) wwan0 usb0 random WARNING!! ISP managed firmware might at any time update itself to a version where all known workarounds have been disabled. Never boot an ISP managed firmware with a SIM in any of the slots if you intend to use the router with OpenWrt. The bootloader lock can only be disabled with root access to running firmware. The flash chip is physically inaccessible without soldering. Installation from OEM web GUI: - Log in as "supervisor" on https://172.17.1.1/ - Upload OpenWrt initramfs-recovery.bin image on the Maintenance -> Firmware page - Wait for OpenWrt to boot and ssh to root@192.168.1.1 - (optional) Copy OpenWrt to the recovery partition. See below - Sysupgrade to the OpenWrt sysupgrade image and reboot Installation from OEM ssh: - Log in as "root" on 172.17.1.1 port 22022 - scp OpenWrt initramfs-recovery.bin image to 172.17.1.1:/tmp - Prepare bootloader config by running: nvram setro uboot DebugFlag 0x1 nvram setro uboot CheckBypass 0 nvram commit - Run "mtd_write -w write initramfs-recovery.bin Kernel" and reboot - Wait for OpenWrt to boot and ssh to root@192.168.1.1 - (optional) Copy OpenWrt to the recovery partition. See below - Sysupgrade to the OpenWrt sysupgrade image and reboot Copying OpenWrt to the recovery partition: - Verify that you are running a working OpenWrt recovery image from flash - ssh to root@192.168.1.1 and run: fw_setenv CheckBypass 0 mtd -r erase Kernel2 - Wait while the bootloader mirrors Image1 to Image2 NOTE: This should only be done after successfully booting the OpenWrt recovery image from the primary partition during installation. Do not do this after having sysupgraded OpenWrt! Reinstalling the recovery image on normal upgrades is not required or recommended. Installation from Z-Loader: - Halt boot by pressing Escape on console - Set up a tftp server to serve the OpenWrt initramfs-recovery.bin image at 10.10.10.3 - Type "ATNR 1,initramfs-recovery.bin" at the "ZLB>" prompt - Wait for OpenWrt to boot and ssh to root@192.168.1.1 - Sysupgrade to the OpenWrt sysupgrade image NOTE: ATNR will write the recovery image to both primary and recovery partitions in one go. Booting from RAM: - Halt boot by pressing Escape on console - Type "ATGU" at the "ZLB>" prompt to enter the U-Boot menu - Press "4" to select "4: Entr boot command line interface." - Set up a tftp server to serve the OpenWrt initramfs-recovery.bin image at 10.10.10.3 - Load it using "tftpboot 0x88000000 initramfs-recovery.bin" - Boot with "bootm 0x8800017C" to skip the 380 (0x17C) bytes ZyXEL header This method can also be used to RAM boot OEM firmware. The warning regarding OEM applies! Never boot an unknown OEM firmware, or any OEM firmware with a SIM in any slot. NOTE: U-Boot configuration is incomplete (on some devices?). You may have to configure a working mac address before running tftp using "setenv eth0addr <mac>" Unlocking the bootloader: If you are unebale to halt boot, then the bootloader is locked. The OEM firmware locks the bootloader on every boot by setting DebugFlag to 0. Setting it to 1 is therefore only temporary when OEM firmware is installed. - Run "nvram setro uboot DebugFlag 0x1; nvram commit" in OEM firmware - Run "fw_setenv DebugFlag 0x1" in OpenWrt NOTE: OpenWrt does this automatically on first boot if necessary NOTE2: Setting the flag to 0x1 avoids the reset to 0 in known OEM versions, but this might change. WARNING: Writing anything to flash while the bootloader is locked is considered extremely risky. Errors might cause a permanent brick! Enabling management access from LAN: Temporary workaround to allow installing OpenWrt if OEM firmware has disabled LAN management: - Connect to console - Log in as "root" - Run "iptables -I INPUT -i br0 -j ACCEPT" Notes on the OEM/bootloader dual partition scheme The dual partition scheme on this device uses Image2 as a recovery image only. The device will always boot from Image1, but the bootloader might copy Image2 to Image1 under specific conditions. This scheme prevents repurposing of the space occupied by Image2 in any useful way. Validation of primary and recovery images is controlled by the variables CheckBypass, Image1Stable, and Image1Try. The bootloader sets CheckBypass to 0 and reboots if Image1 fails validation. If CheckBypass is 0 and Image1 is invalid then Image2 is copied to Image1. If CheckBypass is 0 and Image2 is invalid, then Image1 is copied to Image2. If CheckBypass is 1 then all tests are skipped and Image1 is booted unconditionally. CheckBypass is set to 1 after each successful validation of Image1. Image1Try is incremented if Image1Stable is 0, and Image2 is copied to Image1 if Image1Try is 3 or larger. But the bootloader only tests Image1Try if CheckBypass is 0, which is impossible unless the booted image sets it to 0 before failing. The system is therefore not resilient against runtime errors like failure to mount the rootfs, unless the kernel image sets CheckBypass to 0 before failing. This is not yet implemented in OpenWrt. Setting Image1Stable to 1 prevents the bootloader from updating Image1Try on every boot, saving unnecessary writes to the environment partition. Keeping an OpenWrt initramfs recovery as Image2 is recommended primarily to avoid unwanted OEM firmware boots on failure. Ref the warning above. It enables console-less recovery in case of some failures to boot from Image1. Signed-off-by: Bjørn Mork <bjorn@mork.no> Tested-by: Bjørn Mork <bjorn@mork.no> (cherry picked from commit 2449a632084b29632605e5a79ce5d73028eb15dd)
* treewide: make AddDepends/usb-serial selectiveAdrian Schmutzler2021-06-081-1/+1
| | | | | | | | Make packages depending on usb-serial selective, so we do not have to add kmod-usb-serial manually for every device. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit 9397b22df1473f315552578b58322db7f7750361)
* wireless-regdb: update to version 2021.04.21Felix Fietkau2021-06-081-2/+2
| | | | | Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry picked from commit d76535c45e6e970b212744781431e152e90c1ce6)
* umbim: fix return value of proto_mbim_setup()Adrian Schmutzler2021-06-081-1/+1
| | | | | | | | The variable name appears to be mistyped. Suggested-by: Howard Chu <hyc@symas.com> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit 6bc4c0ae3eb3dff6e410b5b012ab0bec267adb5a)
* mac80211: Update to backports-5.10.42Hauke Mehrtens2021-06-0633-1532/+63
| | | | | | | | | | | | | The removed patches were integrated upstream. The brcmf_driver_work workqueue was removed in brcmfmac with kernel 5.10.42, the asynchronous call was covered to a synchronous call. There is no need to wait any more. This part was removed manually from this patch: brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 04a260911ca0f10a0e37c487c220e1aae3623dda)
* ubus: update to version 2021-06-03Petr Štetiar2021-06-031-3/+3
| | | | | | | | | | | | This update contains following changes: * ubusd: protect against too-short messages * ubusd: add per-client tx queue limit * ubusd: convert tx_queue to linked list Fixes: FS#1525 Signed-off-by: Petr Štetiar <ynezz@true.cz> (cherry picked from commit 4f2243d40a400aa1ce6ae5d06325f93b4d9463a5)
* ramips: add support for ZTE MF283+Lech Perczak2021-06-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ZTE MF283+ is a dual-antenna LTE category 4 router, based on Ralink RT3352 SoC, and built-in ZTE P685M PCIe MiniCard LTE modem. Hardware highlighs: - CPU: MIPS24KEc at 400MHz, - RAM: 64MB DDR2, - Flash: 16MB SPI, - Ethernet: 4 10/100M port switch with VLAN support, - Wireless: Dual-stream 802.11n (RT2860), with two internal antennas, - WWAN: Built-in ZTE P685M modem, with two internal antennas and two switching SMA connectors for external antennas, - FXS: Single ATA, with two connectors marked PHONE1 and PHONE2, internally wired in parallel by 0-Ohm resistors, handled entirely by internal WWAN modem. - USB: internal miniPCIe slot for modem, unpopulated USB A connector on PCB. - SIM slot for the WWAN modem. - UART connector for the console (unpopulated) at 3.3V, pinout: 1: VCC, 2: TXD, 3: RXD, 4: GND, settings: 57600-8-N-1. - LEDs: Power (fixed), WLAN, WWAN (RGB), phone (bicolor, controlled by modem), Signal, 4 link/act LEDs for LAN1-4. - Buttons: WPS, reset. Installation: As the modem is, for most of the time, provided by carriers, there is no possibility to flash through web interface, only built-in FOTA update and TFTP recovery are supported. There are two installation methods: (1) Using serial console and initramfs-kernel - recommended, as it allows you to back up original firmware, or (2) Using TFTP recovery - does not require disassembly. (1) Using serial console: To install OpenWrt, one needs to disassemble the router and flash it via TFTP by using serial console: - Locate unpopulated 4-pin header on the top of the board, near buttons. - Connect UART adapter to the connector. Use 3.3V voltage level only, omit VCC connection. Pin 1 (VCC) is marked by square pad. - Put your initramfs-kernel image in TFTP server directory. - Power-up the device. - Press "1" to load initramfs image to RAM. - Enter IP address chosen for the device (defaults to 192.168.0.1). - Enter TFTP server IP address (defaults to 192.168.0.22). - Enter image filename as put inside TFTP server - something short, like firmware.bin is recommended. - Hit enter to load the image. U-boot will store above values in persistent environment for next installation. - If you ever might want to return to vendor firmware, BACK UP CONTENTS OF YOUR FLASH NOW. For this router, commonly used by mobile networks, plain vendor images are not officially available. To do so, copy contents of each /dev/mtd[0-3], "firmware" - mtd3 being the most important, and copy them over network to your PC. But in case anything goes wrong, PLEASE do back up ALL OF THEM. - From under OpenWrt just booted, load the sysupgrade image to tmpfs, and execute sysupgrade. (2) Using TFTP recovery - Set your host IP to 192.168.0.22 - for example using: sudo ip addr add 192.168.0.22/24 dev <interface> - Set up a TFTP server on your machine - Put the sysupgrade image in TFTP server root named as 'root_uImage' (no quotes), for example using tftpd: cp openwrt-ramips-rt305x-zte_mf283plus-squashfs-sysupgrade.bin /srv/tftp/root_uImage - Power on the router holding BOTH Reset and WPS buttons held for around 5 seconds, until after WWAN and Signal LEDs blink. - Wait for OpenWrt to start booting up, this should take around a minute. Return to original firmware: Here, again there are two possibilities are possible, just like for installation: (1) Using initramfs-kernel image and serial console (2) Using TFTP recovery (1) Using initramfs-kernel image and serial console - Boot OpenWrt initramfs-kernel image via TFTP the same as for installation. - Copy over the backed up "firmware.bin" image of "mtd3" to /tmp/ - Use "mtd write /tmp/firmware.bin /dev/mtd3", where firmware.bin is your backup taken before OpenWrt installation, and /dev/mtd3 is the "firmware" partition. (2) Using TFTP recovery - Follow the same steps as for installation, but replacing 'root_uImage' with firmware backup you took during installation, or by vendor firmware obtained elsewhere. A few quirks of the device, noted from my instance: - Wired and wireless MAC addresses written in flash are the same, despite being in separate locations. - Power LED is hardwired to 3.3V, so there is no status LED per se, and WLAN LED is controlled by WLAN driver, so I had to hijack 3G/4G LED for status - original firmware also does this in bootup. - FXS subsystem and its LED is controlled by the modem, so it work independently of OpenWrt. Tested to work even before OpenWrt booted. I managed to open up modem's shell via ADB, and found from its kernel logs, that FXS and its LED is indeed controlled by modem. - While finding LEDs, I had no GPL source drop from ZTE, so I had to probe for each and every one of them manually, so this might not be complete - it looks like bicolor LED is used for FXS, possibly to support dual-ported variant in other device sharing the PCB. - Flash performance is very low, despite enabling 50MHz clock and fast read command, due to using 4k sectors throughout the target. I decided to keep it at the moment, to avoid breaking existing devices - I identified one potentially affected, should this be limited to under 4MB of Flash. The difference between sysupgrade durations is whopping 3min vs 8min, so this is worth pursuing. In vendor firmware, WWAN LED behaviour is as follows, citing the manual: - red - no registration, - green - 3G, - blue - 4G. Blinking indicates activity, so netdev trigger mapped from wwan0 to blue:wwan looks reasonable at the moment, for full replacement, a script similar to "rssileds" would need to be developed. Behaviour of "Signal LED" in vendor firmware is as follows: - Off - no signal, - Blinking - poor coverage - Solid - good coverage. A few more details on the built-in LTE modem: Modem is not fully supported upstream in Linux - only two CDC ports (DIAG and one for QMI) probe. I sent patches upstream to add required device IDs for full support. The mapping of USB functions is as follows: - CDC (QCDM) - dedicated to comunicating with proprietary Qualcomm tools. - CDC (PCUI) - not supported by upstream 'option' driver yet. Patch submitted upstream. - CDC (Modem) - Exactly the same as above - QMI - A patch is sent upstream to add device ID, with that in place, uqmi did connect successfully, once I selected correct PDP context type for my SIM (IPv4-only, not default IPv4v6). - ADB - self-explanatory, one can access the ADB shell with a device ID added to 51-android.rules like so: SUBSYSTEM!="usb", GOTO="android_usb_rules_end" LABEL="android_usb_rules_begin" SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", ATTR{idProduct}=="1275", ENV{adb_user}="yes" ENV{adb_user}=="yes", MODE="0660", GROUP="plugdev", TAG+="uaccess" LABEL="android_usb_rules_end" While not really needed in OpenWrt, it might come useful if one decides to move the modem to their PC to hack it further, insides seem to be pretty interesting. ADB also works well from within OpenWrt without that. O course it isn't needed for normal operation, so I left it out of DEVICE_PACKAGES. Signed-off-by: Lech Perczak <lech.perczak@gmail.com> [remove kmod-usb-ledtrig-usbport, take merged upstream patches] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> (cherry picked from commit 59d065c9f81c4d1a89464d071134a50529449f34) [Manually remove no longer needed patches for modem] Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* OpenWrt v21.02.0-rc2: revert to branch defaultsHauke Mehrtens2021-05-291-2/+2
| | | | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* OpenWrt v21.02.0-rc2: adjust config defaultsv21.02.0-rc2Hauke Mehrtens2021-05-291-2/+2
| | | | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* base-files: simplify setting device MACRafał Miłecki2021-05-281-11/+8
| | | | | | | | | | | | | | | 1. Move code above interface generation It results in more logical order. Device gets its config section above interface section. 2. Drop the loop We have separated code handling bridges now so $device should be guaranteed to contain a single device name. 3. Drop section name It's not required by netifd or LuCI & it's not needed by this script as $device contains a single device name now. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit e002179a6d2eea8640e262160030336bea54ec26)
* ubox: fix init script validation of log_ip optionJo-Philipp Wich2021-05-282-2/+2
| | | | | | | | | The underlying logread process uses usock() to handle remote connections which is able to handle both hostnames and IP addresses. Ref: https://github.com/openwrt/luci/issues/5077 Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit ec83fb9ced138b7945135adffb9ff0ba63b695ec)
* base-files: generate network config with "device" optionsRafał Miłecki2021-05-272-18/+18
| | | | | | | | Replace "ifname" with "device" as netifd has been recently patches to used the later one. It's more clear and accurate. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 4b9a67362d70c544b85078b8d5c661f43f7472d9)
* base-files: fix configuration generation of network if "bridge" existsINAGAKI Hiroshi2021-05-271-2/+3
| | | | | | | | | | | | | | | | | After the commit 43fc720657c6e3b30c6ed89d7227ee6e646c158b ("base-files: generate "device UCI type section for bridge"), the wrong network configuration is generated for the devices that already have the bridge device section for VLAN, such as the devices in realtek target. As a result, the bridge device by additional "device" section is specified to the "ports" option in the "bridge-vlan" section and netifd shuts down the switch and the ethernet when the network service started. Fixes: 43fc720657 ("base-files: generate "device" UCI type section for bridge") Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com> [rmilecki: use $ports for generate_bridge_vlan argument] Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 8cc4e87a2f81df02dbe481759ae6c36cf056c13b)
* base-files: support setting bridge MAC addressRafał Miłecki2021-05-271-0/+2
| | | | | | Fixes: 43fc720657c6 ("base-files: generate "device" UCI type section for bridge") Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 7a90ad3c431031191afe51b163bf97d3ec820d54)
* base-files: generate bridge device sections with br- name prefixRafał Miłecki2021-05-271-2/+2
| | | | | | | | | | | | Missing br- prefix could result in name conflict between DSA port interface and bridge interface. Some devices with just one LAN port use "lan" interface name for DSA port. Trying to create bridge with the same "lan" name was failing. Reported-by: David Bauer <mail@david-bauer.net> Fixes: 43fc720657c6 ("base-files: generate "device" UCI type section for bridge") Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 0e459668c5b3b158991803204f628b1b7dce9034)
* base-files: generate "device" UCI type section for bridgeRafał Miłecki2021-05-271-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This switches from the old way of defining bridges in an "interface" UCI section type (that should be used for layer 3 only). From now a defualt board switch will have its own "device" UCI section type. It's a new & preferred way of defining L2 devices. Before: config interface 'lan' option type 'bridge' option ifname 'lan1 lan2 lan3 lan4' option proto 'static' option ipaddr '192.168.1.1' option netmask '255.255.255.0' After: config device option name 'lan' option type 'bridge' list ports 'lan1' list ports 'lan2' list ports 'lan3' list ports 'lan4' config interface 'lan' option ifname 'lan' option proto 'static' option ipaddr '192.168.1.1' option netmask '255.255.255.0' Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 43fc720657c6e3b30c6ed89d7227ee6e646c158b)
* busybox: show reproducible timestampPaul Spooren2021-05-272-4/+80
| | | | | | | | | | | | | | | | | | | | | On login busybox shows a timestamp per default contianing the build date. Since the build date isn't reproducible per default this behaviour was disabled by default via 34df4d40 "busybox: disable timestamp in version". This commit modifies busybox so that the printed timestamp reproducible using SOURCE_DATE_EPOCH and therefore shouldn't be disabled anymore. Before: BusyBox v1.33.1 () built-in shell (ash) After: BusyBox v1.33.1 (2021-05-13 09:34:34 UTC) built-in shell (ash) Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit a725382978515abfb2eb7be3bafef735dca97dbd)
* busybox: use $(AUTORELEASE) and SPDXPaul Spooren2021-05-271-6/+3
| | | | | | | | | use AUTORELEASE since BusyBox is often updaten and PKG_RELEASE is not consistently bumped. Also use SPDX license headers to be machine readable and bump the copyright year to 2021. Signed-off-by: Paul Spooren <mail@aparcar.org> (cherry picked from commit 25fdb42249aef7b5eb53675f82f0091c532bf90c)
* netifd: update to the latest masterRafał Miłecki2021-05-261-3/+3
| | | | | | | | 899c2a4 interface: support "device" attribute and deprecate "ifname" 62e3cb5 scripts/netifd-wireless.sh: add support for specifying the operating band Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit 5fe549836fefea5ed656d73a0040dd0451f84705)
* netifd: update to the latest masterRafał Miłecki2021-05-261-3/+3
| | | | | | | | config: fix ifname->ports compat rename Fixes: 829b5c2ba32f ("netifd: update to the latest version") Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit cea6631cdf09c577ae87a21bc3b03273a233c17e)
* netifd: update to the latest versionFelix Fietkau2021-05-261-4/+4
| | | | | | | | | | | 02dd2f2df7cb fix unannotated fall-through warnings 3052f2f67686 extdev: remove unused function 2a97fd006c3b device: add support for configuring devices with external auth handler 87e469be0c08 wireless: fix memory corruption bug when using vlans/station entries in the config 7277764bf817 bridge: rename "ifname" attribute to "ports" Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry picked from commit 829b5c2ba32f5ec821eab6762deecdf3522470a9)