Zyxel GS1900-10HP System running in recovery (initramfs) mode

Hi, I can't seem to flash the 23.05.2 sysupgrade image on my GS1900-10HP V1. Ironically it worked fine for me on the not officially supported V2.
It's a first time installation and had the stock firmware on it before I flashed the kernel to the active partition.
I tried to install the sysupgrade several times but OpenWrt falls back to recovery mode every time after the required reboot.

What I've tried so far:
-verifying checksum of image
-reflashing sys upgrade via SSH and LUCI
-using Chromium and Firefox based browser for uploading the image
-skimming through the system logs in LUCI where I just found some errors regarding IPv6 and gateway configuration

Still getting the System running in recovery (initramfs) mode. message at the overview page.
What can I provide so you can help me troubleshoot my new switch?

Kernel log:

[    0.000000] Linux version 5.15.137 (builder@buildhost) (mips-openwrt-linux-musl-gcc (OpenWrt GCC 12.3.0 r23630-842932a63d) 12.3.0, GNU ld (GNU Binutils) 2.40.0) #0 Tue Nov 14 13:38:11 2023
[    0.000000] RTL838X model is 83806800
[    0.000000] SoC Type: RTL8380
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019070 (MIPS 4KEc)
[    0.000000] MIPS: machine is ZyXEL GS1900-10HP Switch
[    0.000000] earlycon: ns16550a0 at MMIO 0x18002000 (options '115200n8')
[    0.000000] printk: bootconsole [ns16550a0] enabled
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Using appended Device Tree.
[    0.000000] Primary instruction cache 16kB, VIPT, 4-way, linesize 16 bytes.
[    0.000000] Primary data cache 16kB, 2-way, VIPT, cache aliases, linesize 16 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32480
[    0.000000] Kernel command line: earlycon
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 109168K/131072K available (6215K kernel code, 616K rwdata, 780K rodata, 12732K init, 219K bss, 21904K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 256
[    0.000000] rtl83xx-clk: initialized, CPU 500 MHz, MEM 300 MHz (8 Bit DDR3), LXB 200 MHz
[    0.000000] clocksource: realtek_otto_timer: mask: 0xfffffff max_cycles: 0xfffffff, max_idle_ns: 38225208801 ns
[    0.000004] sched_clock: 28 bits at 3125kHz, resolution 320ns, wraps every 42949672800ns
[    0.009340] Calibrating delay loop... 498.89 BogoMIPS (lpj=2494464)
[    0.136024] pid_max: default: 32768 minimum: 301
[    0.143544] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.151812] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.183251] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.194293] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.202449] pinctrl core: initialized pinctrl subsystem
[    0.212130] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.253727] rtl83xx-clk clock-controller: rate setting enabled, CPU 300-625 MHz, MEM 300-300 MHz, LXB 200-200 MHz, OVERCLOCK AT OWN RISK
[    0.272936] clocksource: Switched to clocksource realtek_otto_timer
[    0.284292] NET: Registered PF_INET protocol family
[    0.290310] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.300789] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.310287] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.319033] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.327702] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.335694] TCP: Hash tables configured (established 1024 bind 1024)
[    0.343480] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.350834] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.359684] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.453663] workingset: timestamp_bits=14 max_order=15 bucket_order=1
[    0.481482] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.488142] jffs2: version 2.2 (NAND) (SUMMARY) (ZLIB) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.546798] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.576616] pinctrl-single 1b001000.pinmux: 32 pins, size 4
[    0.583824] pinctrl-single 1b00a000.pinmux: 32 pins, size 4
[    0.592820] Probing RTL8231 GPIOs
[    0.596667] rtl8231_init called, MDIO bus ID: 0
[    0.601947] gpio-464 (poe_enable): hogged as output/high
[    0.610403] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.626799] printk: console [ttyS0] disabled
[    0.631707] 18002000.uart: ttyS0 at MMIO 0x18002000 (irq = 31, base_baud = 12500000) is a 16550A
[    0.641663] printk: console [ttyS0] enabled
[    0.651123] printk: bootconsole [early0] disabled
[    0.661741] printk: bootconsole [ns16550a0] disabled
[    0.674554] 18002100.uart: ttyS1 at MMIO 0x18002100 (irq = 30, base_baud = 12500000) is a 16550A
[    0.913815] brd: module loaded
[    0.934746] spi-nor spi0.0: mx25l12805d (16384 Kbytes)
[    0.940726] 7 fixed-partitions partitions found on MTD device spi0.0
[    0.948082] OF: Bad cell count for /soc/spi@1200/flash@0/partitions
[    0.955297] OF: Bad cell count for /soc/spi@1200/flash@0/partitions
[    0.962825] Creating 7 MTD partitions on "spi0.0":
[    0.968346] 0x000000000000-0x000000040000 : "u-boot"
[    1.023762] 0x000000040000-0x000000050000 : "u-boot-env"
[    1.033147] 0x000000050000-0x000000060000 : "u-boot-env2"
[    1.054116] 0x000000060000-0x000000160000 : "jffs"
[    1.073981] 0x000000160000-0x000000260000 : "jffs2"
[    1.083071] 0x000000260000-0x000000930000 : "firmware"
[    1.105130] 2 uimage-fw partitions found on MTD device firmware
[    1.111801] Creating 2 MTD partitions on "firmware":
[    1.117586] 0x000000000000-0x000000320000 : "kernel"
[    1.143760] 0x000000320000-0x0000006d0000 : "rootfs"
[    1.163725] mtd: setting mtd7 (rootfs) as root device
[    1.169572] 1 squashfs-split partitions found on MTD device rootfs
[    1.176781] 0x0000005d0000-0x0000006d0000 : "rootfs_data"
[    1.203942] 0x000000930000-0x000001000000 : "runtime2"
[    1.252811] Probing RTL838X eth device pdev: 8209b600, dev: 8209b610
[    1.310623] Found SoC ID: 8380: RTL8380, family 8380
[    1.316439] rtl8380_init_mac
[    1.319721] Using MAC 0000000000010000
[    1.783769] Realtek RTL8218B (internal) mdio-bus:08: Detected internal RTL8218B
[    1.791995] Firmware loaded. Size 1184, magic: 83808380
[    4.623645] Realtek RTL8380 SERDES mdio-bus:18: Detected internal RTL8380 SERDES
[    4.631957] Firmware loaded. Size 1184, magic: 83808380
[    4.637957] SDS power down value: 3
[    4.666010] PLL control register: f
[    4.669968] SDS power down value now: 3f
[    4.674437] Configuration of SERDES done
[    4.721270] i2c_dev: i2c /dev entries driver
[    4.735871] NET: Registered PF_INET6 protocol family
[    4.775016] Segment Routing with IPv6
[    4.779354] In-situ OAM (IOAM) with IPv6
[    4.784278] NET: Registered PF_PACKET protocol family
[    4.790127] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    4.806035] 8021q: 802.1Q VLAN Support v1.8
[    4.813660] i2c-gpio i2c-gpio-0: Slow GPIO pins might wreak havoc into I2C/SMBus bus timing
[    4.823854] i2c-gpio i2c-gpio-0: using lines 475 (SDA) and 476 (SCL)
[    4.831699] i2c-gpio i2c-gpio-1: Slow GPIO pins might wreak havoc into I2C/SMBus bus timing
[    4.841739] i2c-gpio i2c-gpio-1: using lines 481 (SDA) and 482 (SCL)
[    4.851516] sfp sfp-p9: Host maximum power 1.0W
[    4.859580] sfp sfp-p10: Host maximum power 1.0W
[    5.241234] Realtek RTL8218B (internal) rtl838x slave mii-0:08: Detected internal RTL8218B
[    5.250615] Firmware loaded. Size 1184, magic: 83808380
[    8.086204] Realtek RTL8380 SERDES rtl838x slave mii-0:18: Detected internal RTL8380 SERDES
[    8.095709] Firmware loaded. Size 1184, magic: 83808380
[    8.101618] SDS power down value: 3
[    8.129710] PLL control register: f
[    8.133767] SDS power down value now: 3f
[    8.138176] Configuration of SERDES done
[    8.414667] rtl83xx-switch switch@1b000000: Port node 24 misses phy-handle
[    8.422396] rtl83xx-switch switch@1b000000: Port node 26 misses phy-handle
[    8.469100] In rtl83xx_vlan_setup
[    8.472865] UNKNOWN_MC_PMASK: 000000001fffffff
[    8.477950] VLAN profile 0: L2 learning: 1, UNKN L2MC FLD PMSK 511, 		UNKN IPMC FLD PMSK 511, UNKN IPv6MC FLD PMSK: 511
[    9.533008] rtl83xx_enable_phy_polling:             ff00
[   10.573666] rtl83xx-switch switch@1b000000: configuring for fixed/internal link mode
[   10.583401] rtl83xx-switch switch@1b000000: Link is Up - 1Gbps/Full - flow control off
[   10.593276] rtl83xx-switch switch@1b000000 lan1 (uninitialized): PHY [mdio-bus:08] driver [Realtek RTL8218B (internal)] (irq=POLL)
[   10.622380] rtl83xx-switch switch@1b000000 lan2 (uninitialized): PHY [mdio-bus:09] driver [Realtek RTL8218B (internal)] (irq=POLL)
[   10.651189] rtl83xx-switch switch@1b000000 lan3 (uninitialized): PHY [mdio-bus:0a] driver [Realtek RTL8218B (internal)] (irq=POLL)
[   10.680422] rtl83xx-switch switch@1b000000 lan4 (uninitialized): PHY [mdio-bus:0b] driver [Realtek RTL8218B (internal)] (irq=POLL)
[   10.709441] rtl83xx-switch switch@1b000000 lan5 (uninitialized): PHY [mdio-bus:0c] driver [Realtek RTL8218B (internal)] (irq=POLL)
[   10.738601] rtl83xx-switch switch@1b000000 lan6 (uninitialized): PHY [mdio-bus:0d] driver [Realtek RTL8218B (internal)] (irq=POLL)
[   10.767925] rtl83xx-switch switch@1b000000 lan7 (uninitialized): PHY [mdio-bus:0e] driver [Realtek RTL8218B (internal)] (irq=POLL)
[   10.797376] rtl83xx-switch switch@1b000000 lan8 (uninitialized): PHY [mdio-bus:0f] driver [Realtek RTL8218B (internal)] (irq=POLL)
[   10.818968] DSA: tree 0 setup
[   10.822440] LINK state irq: 20
[   10.826055] In rtl83xx_setup_qos
[   10.829684] Setting up RTL838X QoS
[   10.833575] RTL838X_PRI_SEL_TBL_CTRL(i): 00033112
[   10.838862] Current Intprio2queue setting: 00000000
[   10.844402] QM_PKT2CPU_INTPRI_MAP: 00fac688
[   10.849314] rtl838x_dbgfs_init called
[   10.853660] rtl83xx_fib_event_work_do: FIB4 default rule failed
[   10.860325] rtl83xx_fib_event_work_do: FIB4 default rule failed
[   11.022202] Freeing unused kernel image (initmem) memory: 12732K
[   11.029078] This architecture does not have kernel memory protection.
[   11.036408] Run /init as init process
[   11.040531]   with arguments:
[   11.043934]     /init
[   11.046505]   with environment:
[   11.050006]     HOME=/
[   11.052638]     TERM=linux
[   12.545646] init: Console is alive
[   12.550610] init: - watchdog -
[   12.593772] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[   12.618716] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[   12.638077] init: - preinit -
[   13.141181] random: jshn: uninitialized urandom read (4 bytes read)
[   13.307089] random: jshn: uninitialized urandom read (4 bytes read)
[   14.484718] random: jshn: uninitialized urandom read (4 bytes read)
[   14.587324] random: jshn: uninitialized urandom read (4 bytes read)
[   14.763316] random: jshn: uninitialized urandom read (4 bytes read)
[   15.400162] RESETTING 8380, CPU_PORT 28
[   15.605332] rtl838x-eth 1b00a300.ethernet eth0: configuring for fixed/internal link mode
[   15.614423] In rtl838x_mac_config, mode 1
[   15.622048] rtl83xx-switch switch@1b000000 lan1: configuring for phy/internal link mode
[   15.631396] rtl838x-eth 1b00a300.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[   15.641226] 8021q: adding VLAN 0 to HW filter on device lan1
[   15.648396] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   15.655650] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   15.663281] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   15.704310] RTL8380 Link change: status: 1, ports 100
[   15.721941] rtl83xx_fib_event_work_do: FIB4 failed
[   15.731074] rtl83xx_fib_event_work_do: FIB4 failed
[   15.743100] rtl83xx_fib_event_work_do: FIB4 failed
[   15.757681] random: procd: uninitialized urandom read (4 bytes read)
[   17.533064] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   18.112501] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   18.122057] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   18.143132] rtl83xx_fib4_del: no such gateway: 0.0.0.0
[   18.182776] procd: - early -
[   18.186763] procd: - watchdog -
[   19.102777] procd: - watchdog -
[   19.107723] procd: - ubus -
[   19.131289] random: ubusd: uninitialized urandom read (4 bytes read)
[   19.162809] random: ubusd: uninitialized urandom read (4 bytes read)
[   19.171282] random: ubusd: uninitialized urandom read (4 bytes read)
[   19.185954] procd: - init -
[   20.395535] random: jshn: uninitialized urandom read (4 bytes read)
[   20.564137] kmodloader: loading kernel modules from /etc/modules.d/*
[   20.596681] GACT probability on
[   20.615315] Mirror/redirect action on
[   20.660559] u32 classifier
[   20.663783]     input device check on
[   20.667906]     Actions configured
[   21.058554] kmodloader: done loading kernel modules from /etc/modules.d/*
[   23.288516] urngd: v1.0.2 started.
[   26.843492] random: crng init done
[   26.847332] random: 23 urandom warning(s) missed due to ratelimiting
[   31.185880] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   55.814290] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   55.909836] in rtl838x_eth_stop
[   55.913676] rtl838x-eth 1b00a300.ethernet eth0: Link is Down
[   56.456491] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   56.464070] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   56.471478] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   56.479011] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   57.499938] Using MAC [redacted]
[   57.509559] RESETTING 8380, CPU_PORT 28
[   57.714730] rtl838x-eth 1b00a300.ethernet eth0: configuring for fixed/internal link mode
[   57.723781] In rtl838x_mac_config, mode 1
[   57.728776] rtl838x-eth 1b00a300.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[   57.753217] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   57.760384] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   57.768008] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   58.453353] rtl83xx-switch switch@1b000000 lan1: configuring for phy/internal link mode
[   58.493444] 8021q: adding VLAN 0 to HW filter on device lan1
[   58.557213] switch: port 1(lan1) entered blocking state
[   58.563261] switch: port 1(lan1) entered disabled state
[   58.570315] device lan1 entered promiscuous mode
[   58.575686] device eth0 entered promiscuous mode
[   58.678073] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   58.725534] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   59.133375] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   59.140835] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   59.149460] rtl83xx-switch switch@1b000000 lan2: configuring for phy/internal link mode
[   59.188744] 8021q: adding VLAN 0 to HW filter on device lan2
[   59.285483] switch: port 2(lan2) entered blocking state
[   59.291390] switch: port 2(lan2) entered disabled state
[   59.323524] device lan2 entered promiscuous mode
[   59.593618] rtl83xx-switch switch@1b000000 lan3: configuring for phy/internal link mode
[   59.623472] 8021q: adding VLAN 0 to HW filter on device lan3
[   59.697047] switch: port 3(lan3) entered blocking state
[   59.703077] switch: port 3(lan3) entered disabled state
[   59.737778] device lan3 entered promiscuous mode
[   60.111794] rtl83xx-switch switch@1b000000 lan4: configuring for phy/internal link mode
[   60.172229] 8021q: adding VLAN 0 to HW filter on device lan4
[   60.263150] switch: port 4(lan4) entered blocking state
[   60.269046] switch: port 4(lan4) entered disabled state
[   60.323547] device lan4 entered promiscuous mode
[   60.697263] rtl83xx-switch switch@1b000000 lan5: configuring for phy/internal link mode
[   60.733531] 8021q: adding VLAN 0 to HW filter on device lan5
[   60.843141] switch: port 5(lan5) entered blocking state
[   60.849037] switch: port 5(lan5) entered disabled state
[   60.863622] device lan5 entered promiscuous mode
[   61.153366] rtl83xx-switch switch@1b000000 lan6: configuring for phy/internal link mode
[   61.183456] 8021q: adding VLAN 0 to HW filter on device lan6
[   61.245239] switch: port 6(lan6) entered blocking state
[   61.251134] switch: port 6(lan6) entered disabled state
[   61.258390] device lan6 entered promiscuous mode
[   61.324551] RTL8380 Link change: status: 1, ports 100
[   61.572773] rtl83xx-switch switch@1b000000 lan7: configuring for phy/internal link mode
[   61.593358] 8021q: adding VLAN 0 to HW filter on device lan7
[   61.675294] switch: port 7(lan7) entered blocking state
[   61.681191] switch: port 7(lan7) entered disabled state
[   61.688433] device lan7 entered promiscuous mode
[   61.954848] rtl83xx-switch switch@1b000000 lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   62.023300] switch: port 1(lan1) entered blocking state
[   62.029200] switch: port 1(lan1) entered forwarding state
[   62.036712] rtl83xx-switch switch@1b000000 lan8: configuring for phy/internal link mode
[   62.073542] 8021q: adding VLAN 0 to HW filter on device lan8
[   62.080718] IPv6: ADDRCONF(NETDEV_CHANGE): switch: link becomes ready
[   62.090154] IPv6: ADDRCONF(NETDEV_CHANGE): switch.1: link becomes ready
[   62.165378] switch: port 8(lan8) entered blocking state
[   62.171272] switch: port 8(lan8) entered disabled state
[   62.178573] device lan8 entered promiscuous mode
[   62.270508] rtl83xx-switch switch@1b000000 lan9: configuring for inband/1000base-x link mode
[   62.280356] 8021q: adding VLAN 0 to HW filter on device lan9
[   62.340357] switch: port 9(lan9) entered blocking state
[   62.346406] switch: port 9(lan9) entered disabled state
[   62.353743] device lan9 entered promiscuous mode
[   62.478783] rtl83xx-switch switch@1b000000 lan10: configuring for inband/1000base-x link mode
[   62.488866] 8021q: adding VLAN 0 to HW filter on device lan10
[   62.534542] switch: port 10(lan10) entered blocking state
[   62.540635] switch: port 10(lan10) entered disabled state
[   62.548180] device lan10 entered promiscuous mode
[   62.642672] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   63.293327] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported
[   63.300791] rtl83xx_fib_event: FIB_RULE ADD/DEL for IPv6 not supported```
1 Like

assuming you followed the installation guide you must proceed to the second step:

Once OpenWrt is running from RAM, you can write the sysupgrade image as if you were running an already installed OpenWrt image.

That's what my post is about and how I tried to accomplish it.
However I didn't follow the installation guide using TFTP/Serial to install it and used the web GUI instead, which worked fine for others here and also for me when I flashed my GS1900-10HP V2 (Rev. B1).

Maybe I missunderstood your post/quote from the wiki?

Edit: In case it wasn't clear already: my problem is that I tried to install the sysupgrade several times but OpenWrt falls back to recovery mode every time after the required reboot.

What files did you use for your tests?

ps: I'm sorry I can't help you more as I don't have this device but maybe the two of us can figure out how to get out of it

What happens if you sysupgrade? Is the SSH session terminated as expected? Does the switch reboot afterwards?

@ncompact kernel and image from https://firmware-selector.openwrt.org/?version=23.05.2&target=realtek%2Frtl838x&id=zyxel_gs1900-10hp

@andyboeh yes, I just rerun everything and copied it for you:

user@host:~/Downloads$ sha256sum openwrt-23.05.2-realtek-rtl838x-zyxel_gs1900-10hp-squashfs-sysupgrade.bin 
811d2c2a9e00ab941793eec8ee9fef963871b5bb6a5098ef8330ae8eb07e6a6c  openwrt-23.05.2-realtek-rtl838x-zyxel_gs1900-10hp-squashfs-sysupgrade.bin

user@host:~/Downloads$ scp openwrt-23.05.2-realtek-rtl838x-zyxel_gs1900-10hp-squashfs-sysupgrade.bin root@192.168.1.1:/tmp
openwrt-23.05.2-realtek-rtl838x-zyxel_gs1900- 100% 6144KB   2.5MB/s   00:02    

user@host:~/Downloads$ ssh root@192.168.1.1
BusyBox v1.36.1 (2023-11-14 13:38:11 UTC) built-in shell (ash)
OpenWrt 23.05.2, r23630-842932a63d
 
root@OpenWrt:~# free
              total        used        free      shared  buff/cache   available
Mem:         121900       19132       87168       14068       15600       63360
Swap:             0           0           0

root@OpenWrt:~# sysupgrade -v /tmp/openwrt-23.05.2-realtek-rtl838x-zyxel_gs1900-10hp-squashfs-sysupgrade.bin
Cannot save config while running from ramdisk.
Tue Nov 14 13:54:34 UTC 2023 upgrade: Commencing upgrade. Closing all shell sessions.
Command failed: Connection failed
root@OpenWrt:~# Connection to 192.168.1.1 closed by remote host.
Connection to 192.168.1.1 closed.

What does fw_printsys say?

1 Like
root@OpenWrt:~# fw_printsys
resetdefault=0
mac_start=[redacted]
mac_end=[redacted]
sn=[redacted]
dualfname1=openwrt-23.05.2-zyxel_gs1900-10hp-initramfs-kernel.bin
bootpartition=1

Looks like you flashed the initramfs version to the backup slot, not the first slot. The following should fix it then:

fw_setsys bootpartition 0
1 Like

Guess you expected this happened when you asked this question, so thank you too.
I could've sworn that I've flashed it to the active partition and not the backup...

OpenWrt is only working if it's flashed to the active partition.
Assuming the active boot partition is 0 and the backup is 1, so I'm running OpenWrt from partition 0 even though I flashed it to 1 and on both partitions is OpenWrt firmware now?
Will there be any problems with this setup when I update to a newer version of OpenWrt in the future?

Exactly. OpenWrt can only be installed to partition 0 because the partition table is set up that way. The initramfs version runs from either partition since it doesn't need access to the flash chip once it's booted.

Yes, you have OpenWrt on both partitions - an installed version that keeps settings in partition 0 and an initramfs version in partition 1.

With regard to OpenWrt, this is no issue, sysupgrades will work fine as they are also always flashed to the first slot.

However, returning to the stock firmware requires an extra step, namely flashing it to partition 1. If you hadn't overwritten it, you could have just switched boot partition.

2 Likes

Thank you very much for the explanation and the solution.
Good to know it will work.

I fell in the same "trap". I have a GS1900-16, and this is how it happened.

The switch came with firmware version 2.70 on both partitions. I upgraded it to 2.80, which went on partition 1 (by default I guess), and that becomes the active partition. So now I am looking at putting OpenWRT, and I understand it will only work off partition 0. Great - OpenWRT on 0, and ZyXEL on 1 for backup.

I am following the instructions, which say:

Select the Active radio button

That's the trap. My Active was partition 1. One should select Active or Backup depending which one is on partition 0. This can be determined on the Management tab on the same firmware upload page of the ZyXEL UI.

Provided initramfs was on partition 0, I am also fairly certain one can flash the sysupgrade image via the regular OpenWRT UI. No need for scp.

Happy holidays! :christmas_tree:
tjk :slight_smile:

Interesting, as I said I'm pretty sure I selected the active partition like I did on my GS1900-24 and -10HP V2.
However I didn't even bother to check which OEM firmware was installed. Maybe the previous owner upgraded it like you did.

The wiki article is outdated and also says only serial works.
Yes, I tried it via web GUI too but posted only the output from scp because one can get some additional info from this.

Happy holidays for you too.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.