[Solved] Zyxel NBG6817 flashing from OEM

As a very first debugging attempt, reduce the tx power by at least 5 dBm for both radios, also use a recent snapshot and not a 17.01.x release.

Don't know what's wrong but it works if you build from source. And you
actually only need fs-ext4.

I bricked my router now its on a reboot loop, built my own image from source and "dd" both to the /dev destination. I tried looking for directions on how to install zyxel firmware from recovery mode or something, tried various steps using tftp method but no success.

upload OEM image from bootloader using "atur" command and xmodem.

Hi,

I just bought this Zyxel NBG6817 router and was wondering what info on here is still accurate? I installed this on an ASUS RT-AC87u I had lying around and was pleased by the project. While I just installed in on the ASUS by recovery mode the process seems a little strange on the Zyxel.

Any input would be appreciated!!

Thanks
Bob

With proper pre-cal patches applied (snapshots, not 17.01.x!), the tx power issues should be sorted, everything else (in particular the dualboot specialty, see https://forum.openwrt.org/t/web-ui-to-reboot-to-another-partition-for-linksys-dual-partition-routers-and-to-power-off-power-down/3423/94 for details) applies.

Any way you could send me a copy of a working image??n :slight_smile:

I made one thanks anyway

Thanks
Bob

I managed to get build one the has everything in it I want, all works well but only the 2.4 ghz SSID does not stay after a reboot.

I use the ubuntu bash shell in Windows 10, I was surprised it worked so well.

Thanks
Bob

Hello,

i am new to lede and all the things around. I gave created an Image like described above.

In the directory:

lede/bin/targets/ipq806x/generic

are some Files:

41687493 -rw-r--r-- 1 kley kley 998 Okt 2 19:14 config.seed
41687623 -rw-r--r-- 1 kley kley 36M Okt 2 19:36 lede-imagebuilder-ipq806x.Linux-x86_64.tar.xz
41687622 -rw-r--r-- 1 kley kley 2,4K Okt 2 19:34 lede-ipq806x-device-nbg6817.manifest
41687619 -rw-r--r-- 1 kley kley 4,0M Okt 2 19:34 lede-ipq806x-NBG6817-squashfs-mmcblk0p4-kernel.bin
41687618 -rw-r--r-- 1 kley kley 2,2M Okt 2 19:34 lede-ipq806x-NBG6817-squashfs-mmcblk0p5-rootfs.bin
41687617 -rw-r--r-- 1 kley kley 6,2M Okt 2 19:34 lede-ipq806x-NBG6817-squashfs-sysupgrade.tar
41687620 -rw-r--r-- 1 kley kley 2,3M Okt 2 19:34 lede-ipq806x-squashfs-root.img
41687621 -rw-r--r-- 1 kley kley 5,1M Okt 2 19:34 lede-ipq806x-ubifs-root.img
41687616 -rwxr-xr-x 1 kley kley 24M Okt 2 19:34 lede-ipq806x-vmlinux.elf
42078892 drwxr-xr-x 2 kley kley 4,0K Okt 2 19:36 packages
41687624 -rw-r--r-- 1 kley kley 920 Okt 2 19:36 sha256sums

I did a dd with the Files:
lede-ipq806x-NBG6817-squashfs-mmcblk0p4-kernel.bin
lede-ipq806x-NBG6817-squashfs-mmcblk0p5-rootfs.bin

like decribed above and did a reboot -f

The system is jet readonly.

What did i do wrong ???

Please Help me. I am very confused.

Sorry for my bad English

Christoph

Please post the output of ./scripts/diffconfig.sh (and are you using git HEAD or a stable branch, HEAD preferred).

here is the output of the script:

CONFIG_TARGET_ipq806x=y
CONFIG_TARGET_ipq806x_DEVICE_NBG6817=y
CONFIG_TARGET_BOARD="ipq806x"
# CONFIG_DRIVER_11AC_SUPPORT is not set
CONFIG_IB=y
CONFIG_IB_STANDALONE=y
# CONFIG_PACKAGE_ath10k-firmware-qca9984 is not set
CONFIG_PACKAGE_block-mount=y
CONFIG_PACKAGE_blockd=y
# CONFIG_PACKAGE_e2fsprogs is not set
# CONFIG_PACKAGE_kmod-ata-core is not set
# CONFIG_PACKAGE_kmod-ath10k is not set
CONFIG_PACKAGE_kmod-ath9k=y
CONFIG_PACKAGE_kmod-ath9k-common=y
CONFIG_PACKAGE_kmod-crypto-crc32=y
CONFIG_PACKAGE_kmod-crypto-crc32c=y
CONFIG_PACKAGE_kmod-fs-autofs4=y
CONFIG_PACKAGE_kmod-fs-ext4=y
CONFIG_PACKAGE_kmod-fs-f2fs=y
# CONFIG_PACKAGE_kmod-leds-gpio is not set
CONFIG_PACKAGE_kmod-lib-crc16=y
# CONFIG_PACKAGE_kmod-scsi-core is not set
# CONFIG_PACKAGE_kmod-usb3 is not set
# CONFIG_PACKAGE_libblkid is not set
# CONFIG_PACKAGE_libext2fs is not set
# CONFIG_PACKAGE_librt is not set
# CONFIG_PACKAGE_libsmartcols is not set
# CONFIG_PACKAGE_libuuid is not set
# CONFIG_PACKAGE_losetup is not set

This, when building git HEAD from source (I've never tried imagebuilder), should result in a fully functioning nbg6817:

### Use "make defconfig oldconfig" to expand this to a full .config

CONFIG_TARGET_ipq806x=y
CONFIG_TARGET_DEVICE_ipq806x_DEVICE_NBG6817=y
CONFIG_TARGET_DEVICE_PACKAGES_ipq806x_DEVICE_NBG6817=""

### SMP CPUs need irqbalance, invoke irqbalance from /etc/rc.local
CONFIG_PACKAGE_irqbalance=y

### Enable per device rootfs
CONFIG_TARGET_MULTI_PROFILE=y
CONFIG_TARGET_PER_DEVICE_ROOTFS=y

### USB device mount & filesystem support
CONFIG_PACKAGE_block-mount=y
CONFIG_PACKAGE_blockd=y
CONFIG_PACKAGE_kmod-usb-storage=y
CONFIG_PACKAGE_kmod-fs-ext4=y
CONFIG_PACKAGE_kmod-nls-utf8=y
CONFIG_PACKAGE_kmod-usb2=y

### Luci (SSL)
CONFIG_PACKAGE_luci-ssl=y
CONFIG_PACKAGE_luci-app-uhttpd=y

Obviously irqbalance, kmod-usb-storage, kmod-usb2, luci-ssl and luci-app-uhttpd are optional. I am not 100% sure if block-mount and blockd are hard requirements for the nbg6817, given that the rootfs is already referenced from the cmdline (root=/dev/mmcblk0p5) - my hunch would tend towards 'no' - but this would require checking, before submitting the corresponding addition to the default device packages (which would fix this issue once and for all).

Solved! Thanks a lot. The system works perfect with your diff.

Christoph

Do both USB ports (2.0 and 3.0) work fine with kmod-usb2 module, or kmod-usb3 is needed too?

Just managed to debrick my NBG6818 from unsucessfull flash and bootloop using TFTP method. With WPS button pressed after power on, router is looking for ras.bin on 192.168.1.99.

Thanks for documenting that. There must also be a way to toggle the boot order (the router has dual boot functionality, even if LEDE can currently only use the first set of partitions).

Need your help once more... I am trying to start using 3GB /dev/mmcblk0p10 partition as /overlay, but no success. I have included block-mount package into image, and edited fstab.conf (also tried using luci). /dev/mmcblk0p10 is visible, I can "enable" it and define mount point as /overlay but /overlay keeps mounted to /dev/loop0.
I can mount /dev/mmcblk0p10 to /overlay using "mount /dev/mmcblk0p10 /overlay" but it does not survive reboots.

The easiest approach would probably be to configure an extroot on /dev/mmcblk0p10.

Just to clarify, I do know how to toggle the bootflag from a running/ accessible system, but there must be a way to toggle it (via button presses?) in the non-booting case.

Just flashed my Zyxel NBG6817 aswell, it was flashed on latest ABCS.7. First, I flashed to 17.01.4, which lead to the issues listed in this thread. Afterwards, I've build from latest source only using the following flags:

CONFIG_TARGET_ipq806x=y
CONFIG_TARGET_ipq806x_DEVICE_NBG6817=y
CONFIG_TARGET_BOARD="ipq806x"
CONFIG_PACKAGE_kmod-fs-autofs4=y
CONFIG_PACKAGE_kmod-fs-ext4=y
CONFIG_PACKAGE_kmod-nls-utf8=y
CONFIG_PACKAGE_kmod-usb-storage=y

blockd and block-mount don't seem to be hard requirements. Also, in the latest snapshot, kmod-usb2 seems to be activated by default for this device. Settings are saved across reboots. Wireless 2.4GHz and 5GHz also working.

A few things I've noticed so far: I get "Direct firmware load for ath10k/QCA9984/hw1.0/firmware-6.bin failed with error -2". Seems to be WARNING level. Also, LEDs for 2.4GHz and 5GHz on the front are amber instead of white (original firmware). Couldn't find a way to change them to white, as the amber color bothers me.

1 Like