openwrt-mirror/scripts/gen_netgear_rootfs_node.sh
Jascha Sundaresan 46ab9f3f1c filogic: add support for Netgear EAX17
Hardware
--------

SOC:   MediaTek MT7981
RAM:   512MB DDR4
FLASH: 128MB SPI-NAND
WIFI:  Mediatek MT7915 (integrated) 2x2 802.11ax 2.4 / 5 GHz
ETH:   Mediatek MT7981 internal 1 GbE PHY
UART:  3V3 115200 8N1 (Pinout silkscreened / Do not connect VCC)

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

1. Download the OpenWrt initramfs image. Copy the image to a TFTP server
2. Connect the TFTP server to the EAX17. Conect to the serial console,
   interrupt the autoboot process by pressing '0' when prompted.
3. Download & Boot the OpenWrt initramfs image.

   $ tftpboot openwrt.bin
   $ bootm

4. Wait for OpenWrt to boot. Transfer the sysupgrade image to the device
   using scp and install using sysupgrade.

   $ sysupgrade -n <path-to-sysupgrade.bin>

Signed-off-by: Jascha Sundaresan <flizarthanon@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20354
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-11-24 00:57:19 +01:00

40 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
# Author: Jascha Sundaresan <flizarthanon@gmail.com>
#
# This helper script generates a top-level 'rootfs' node for inclusion
# in a Flattened Image Tree (FIT) source (.its) file. The node includes
# the size and SHA1 hash of a given root filesystem image and is used by
# certain Netgear devices which expect this metadata at the top level of
# the FIT structure.
#
# The resulting block is written to standard output and can be appended
# or inserted into an existing .its file by the OpenWrt build system.
# Example:
# scripts/gen_netgear_rootfs_node.sh build_dir/.../root.squashfs > node.txt
#
# See also: scripts/mkits.sh, which generates the main FIT .its source.
ROOTFS_FILE="$1"
ROOTFS_SIZE=$(stat -c %s "${ROOTFS_FILE}")
ROOTFS_SHA1=$(
sha1sum "${ROOTFS_FILE}" | awk '{ print "<0x" substr($0, 1, 8) \
" 0x" substr($0, 9, 8) \
" 0x" substr($0, 17, 8) \
" 0x" substr($0, 25, 8) \
" 0x" substr($0, 33, 8) ">" }'
)
cat <<EOF | sed 's/^/\t/'
rootfs {
size = <${ROOTFS_SIZE}>;
hash-1 {
value = ${ROOTFS_SHA1};
algo = "sha1";
};
};
EOF