mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2026-03-13 07:01:01 +01:00
This commit adds support for Gemtek (Centurylink/Lumen/Quantum Fiber) W1700K. Device specification -------------------- SoC Type: Airoha AN7581 RAM: ESMT M16U8G16512A (2GB) Flash: Winbond 25N04KVZEIR (512MB) Ethernet: 2x gigabit via AN7581, 2x 10g via RTL8261N Wi-Fi: MT7996 - BE19000 LEDs: 1 LED, power/status Button: Reset USB ports: None Bootloader: U-Boot 2014.04-rc1 (Jun 12 2024 - 08:14:34) AXON 2.0 Fan: 1x controlled by Nuvoton NCT7511Y This device is pretty useless with the stock firmware as it requires an account to completely set it up. Additionally, the vendor bootloader is signed and uses Airoha/Mediatek's BBT/BMT for bad block management on the flash. It does not support UBI, thus kernel updates are subject to BMT/BBT which OpenWrt does not support. In turn, if a kernel update happens and a block is marked bad in the process, the device will fail to boot and will need to be recovered via serial. The workaround is to chainload U-Boot in place of the kernel, as it should not need frequent updates and thus should not cause BBT/BMT to misbehave and soft-brick the device. Upstream U-Boot supports loading a FIT image from UBI, so we create a UBI partition for the new u-boot env, FIT image and factory data. This way, bad blocks are managed by UBI instead, which will not soft-brick the device should a block be marked bad during a normal OpenWrt update. Users wishing to update U-Boot can do so, but should be prepared to recover if a block goes bad. Because the device is not useful with stock firmware, this is a one-way ticket for most users and reverting will not be documented. The following steps can be used to install OpenWrt on the W1700K. Connect to serial console. There is a Torx T10 screw underneath the QR code printed onto the label. Then, pry between the gray and white plastic, starting by the ports on the back. There are clips arount the entire device. Starting closest to the screw next to the UART header, TX - GND - VCC - N/A - RX. The bootloader can be interrupted by pressing any key. Configuring Vendor Bootloader and Installing U-Boot Chainloader: The bootloader's default bootcmd will only run a signed image. However, we can still bootm our own image from flash. NOTE: The vendor's ethernet drivers are flaky. You may have to reboot and try the tftpboot part several times for it to work. - setenv one flash read 0x600000 0x1000000 \$loadaddr - setenv two "; bootm" - setenv bootcmd "$one$two" - setenv one - setenv two - saveenv - setenv serverip 192.168.1.10; setenv ipaddr 192.168.1.1; tftpboot 0x89000000 openwrt-airoha-an7581-gemtek_w1700k-ubi-chainload-uboot.itb - flash erase 0x600000 0x100000 - flash write 0x600000 0x100000 0x89000000 - reset The device will now reboot into the U-Boot chainloader. Loading the W1700K UBI Installer: The installer can be downloaded at https://github.com/hurrian/w1700k-ubi-installer/releases - Boot the installer via the TFTP option in the U-Boot menu. This process is automatic, though you may be prompted to answer some questions. - Once it is done, you may upgrade to your preferred build. - For more information: https://github.com/hurrian/w1700k-ubi-installer For those wishing to explore the stock firmware: Rooting Stock FW (for making backups, recommended): - Boot the router and watch serial console until presented with failsafe mode. Enter it (f + enter). - mount_root - Change the root password (passwd). - Open /etc/config/axon_platform_manager and set sshServerEnable, localAccessEnable and remoteAccessEnable to 1. - Search for "SSH". You'll find a long string with 3 matches such as Enabled%25252c1%25252cSSH%Drop. Change any instances of "Disabled" preceding SSH to "Enabled" and any instances of "Drop" to "Accept" that follow SSH. Same for "Local SSH" and "Remote SSH". - Set /etc/config/dropbear to: config dropbear option PasswordAuth 'on' option RootPasswordAuth 'on' option Port '22' - Reboot. - Connect 10g WAN port to existing network and SSH in with the password you set. - SSH into rooted stock fw. Signed-off-by: Andrew LaMarche <andrewjlamarche@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17869 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>