Following 5264296, Mirotik NAND devices now use yafut to flash the
kernel on devices. This method is incompatible with the old-style
"kernel2minor" flash mechanism.
Even though NAND images were disabled in default build since 21.02, a
user flashing a new-style image onto an old-style image would result in
in a soft-brick[1]. In order to prevent such accidental mishap,
especially as these device images will be reenabled in the upcoming
release, bump the compat version.
After the new image is flashed, the compat version can be updated:
uci set system.@system[0].compat_version='1.1'
uci commit
[1] https://github.com/openwrt/openwrt/pull/12225#issuecomment-1517529262
Cc: Michał Kępień <openwrt@kempniu.pl>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Reviewed-by: Robert Marko <robimarko@gmail.com>
Instead of erasing the entire NAND partition holding the kernel during
every system upgrade and then flashing a Yaffs file system image
prepared using kernel2minor (not accounting for bad blocks in the
process), use the Yafut utility to replace the kernel executable on
MikroTik NAND devices, preserving the existing Yaffs file system
(including bad block information) on the partition holding the kernel.
Add Yafut to DEFAULT_PACKAGES for the ath79/mikrotik target, so that the
tool is included in the initramfs images created when building for
multiple profiles. However, exclude Yafut from the images built for
MikroTik devices with NOR flash as the tool is currently only meant to
be used on devices with NAND flash.
As this addresses the concerns for MikroTik NAND devices discussed in
commit 9d96b6fb72 ("ath79/mikrotik: disable building NAND images"),
re-enable building images for these devices.
Signed-off-by: Michał Kępień <openwrt@kempniu.pl>
Return to using the OpenWrt kernel loader to decompress and load kernel
initram image.
Continue to use the vmlinuz kernel for squashfs.
Mikrotik's bootloader RouterBOOT on some ath79 devices is
failing to boot the current initram, due to the size of the initram image.
On the ath79 wAP-ac:
a 5.7MiB initram image would fail to boot
After this change:
a 6.6MiB initram image successfully loads
This partially reverts commit e91344776b.
An alternative of using RouterBOOT's capability of loading an initrd ELF
section was investigated, but the OpenWrt kernel loader allows larger image.
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
sysupgrade metadata is not flashed to the device, so check-size
should be called _before_ adding metadata to the image.
While at it, do some obvious wrapping improvements.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Paul Spooren <mail@aparcar.org>
The current support for MikroTik NAND-based devices relies on a
gross hack that packs the kernel into a static YAFFS stub, as the
stock bootloader only supports booting a YAFFS-encapsulated kernel.
The problem with this approach is that since the kernel partition is
blindly overwritten without any kind of wear or badblock management
(due to lack of proper support for YAFFS in OpenWRT), the NAND flash
is not worn uniformly and eventually badblocks appear, leading to
unbootable devices.
This issue has been reported here [1] and discussed in more detail
here [2].
[1] https://forum.openwrt.org/t/rb433-bad-sector-cannot-start-openwrt/71519
[2] https://github.com/openwrt/openwrt/pull/3026#issuecomment-673597461
Until a proper fix is found (or the stock bootloader supports other
filesystems), we disable building these images to prevent unknowing
users from risking their devices.
Thanks to Thibaut Varène for summarizing the details above.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
- minimal built initramfs: 10MB vmlinux ELF -> 6MB vmlinuz
- ~5 seconds for kernel decompression, which was equivalent to the
additional time to load the uncompressed ELF from SPI NOR.
- Removes requirement for lzma-loader, which may have been causing some
image builds to fail to boot on Mikrotik mt7621.
Suggested-by: Thibaut VARÈNE <hacks@slashdirt.org>
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
Move the image preparation and nand-utils package selection into
common device definitions for NOR/NAND devices.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
With the implementation of a sysfs interface to access WLAN data, this
target no longer needs a special wrapper to extract caldata.
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
This commit adds support for the MikroTik RouterBOARD wAP G-5HacT2HnD
(wAP AC), a small weatherproof dual band, dual-radio 802.11ac
wireless AP with integrated omnidirectional anntennae and one
10/100/1000 Mbps Ethernet port.
See https://mikrotik.com/product/RBwAPG-5HacT2HnD for more info.
Specifications:
- SoC: Qualcomm Atheros QCA9556
- RAM: 64 MB
- Storage: 16 MB NOR
- Wireless:
· Atheros AR9550 (SoC) 802.11b/g/n 2x2:2, 2 dBi antennae
· Qualcomm QCA9880 802.11a/n/ac 3x3:3, 2 dBi antennae
- Ethernet: Atheros AG71xx (SoC, AR8033), 1x 1000/100/10 port,
passive PoE in
Working:
- Board/system detection
- Sysupgrade
- Serial console
- Ethernet
- 2.4 GHz radio
- 5 GHz radio and LED
- Reset button
Not working/Unsupported:
- 2.4 GHz LED
- AP/CAP LED
- ZT2046Q SPI temperature and voltage sensor
This adds the basic features for supporting MikroTik devices:
- a common recipe for mikrotik images in common-mikrotik.mk
- support for minor (MikroTik NOR) split firmware (only for
generic subtarget so far)
Acknowledgments: Robert Marko <robimarko@gmail.com>
Andrew Cameron <apcameron@softhome.net>
Koen Vandeputte <koen.vandeputte@ncentric.com>
Chuanhong Guo <gch981213@gmail.com>
Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Co-developed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>