Skip to content

Install the 8311 community firmware on the WAS-110

WAS-110 community

Group buy participants...

Just a reminder that your WAS-110 should have come pre-flashed with the 8311 community firmware unless otherwise indicated.

Please ignore the Azores shell upgrade and web UI upgrade sections mentioned below. To update your WAS-110 to a newer 8311 community firmware release, refer to the instructions in the supplementary upgrade section.

Out of the box, the WAS-110 is not fully compatible with varying ISP OLT configurations, with issues ranging from vendor-specific managed entities to VEIP to IEEE standards such as 802.1X and 802.1ad. Due to these incompatibilities and discovered bugs, a community firmware1 has been curated to fix any impeding issues2.

Firmware Preparation

Download firmware

The community firmware comes in two (2) variants: basic and bfw; for the purposes of this guide, we'll focus on the recommended basic firmware, which can be downloaded at:

https://github.com/djGrrr/8311-was-110-firmware-builder/releases/latest

As an example, the following command downloads the basic firmware into the current users download directory.

curl.exe -L --output-dir %UserProfile%\Downloads -O https://github.com/djGrrr/8311-was-110-firmware-builder/releases/download/v2.8.0/WAS-110_8311_firmware_mod_v2.8.0_basic.exe
curl -L --output-dir ~/Downloads -O https://github.com/djGrrr/8311-was-110-firmware-builder/releases/download/v2.8.0/WAS-110_8311_firmware_mod_v2.8.0_basic.7z

The basic firmware is based on a vanilla MaxLinear OpenWrt 19.07 build from Potrontec. Additionally, it includes customized luci web interfaces for hassle-free masquerading and the aforementioned fixes. And unlike the bfw variant, it does not include the abysmal BFW patches and cruft.

Extract download

The community firmware upgrade comes bundled as a self-extracting executable ( Windows only) or a 7-Zip archive and includes:

local-upgrade.img

Used with the Azores web upgrade utility.

local-upgrade.tar

Used with the universal shell upgrade command sequence.

To extract the archive to a temporary directory, execute the following command(s):

Replace <version> with the downloaded version.

Self-extracting Executable

Double-click on the exe file in Windows File Explorer.

7-zip

7z e "-i!local-upgrade.*" %UserProfile%\Downloads\WAS-110_8311_firmware_mod_<version>_basic.7z -o%Temp%\8311

macOS Archive Utility mangles the extracted local-upgrade.tar

The following commands assume Homebrew is installed

brew install sevenzip
7zz e '-i!local-upgrade.*' ~/Downloads/WAS-110_8311_firmware_mod_<version>_basic.7z -o/tmp

The following commands assume Debian or derivatives3

sudo apt-get install p7zip-full
7z e '-i!local-upgrade.*' ~/Downloads/WAS-110_8311_firmware_mod_<version>_basic.7z -o/tmp

Network setup

Plug the WAS-110 into a 10-gigabit compatible SFP+ host interface, such as a NIC, media converter, and/or network switch.

Rx loss

The WAS-110 running the default Azores firmware will trigger RX_LOS if the SC/APC fiber cable is unplugged or inactive. Some host interfaces will enter a power-saving state, making the WAS-110 inaccessible.

The default IP address of the WAS-110 is 192.168.11.1/24. To connect successfully, follow one (1) of the configurations in the Accessing the ONT guide and proceed.

Test optics

Before any installation, it's highly recommended to do a simple optics fault test on the WAS-110. If the signal(s) are abnormal, contact the seller immediately to start the RMA process. If you're uncertain, please double-check on the 8311 Discord.

Dump & backup firmware optional

  1. Enable SSH from the web UI by following the steps outlined below in the shell upgrade section.

  2. Log in to the WAS-110 remote shell over SSH using the root shell credentials.

    ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.11.1
    
  3. Execute the following command sequence from the WAS-110 remote shell to dump the WAS-110's volumes into its temporary directory and exit from the remote shell.

    mkdir -p /tmp/fw; for part in kernelA bootcoreA rootfsA kernelB bootcoreB rootfsB; do VOL=$(ubinfo /dev/ubi0 -N "$part" | grep "Volume ID" | awk '{print $3}'); [ -n "$VOL" ] && { DEV="/dev/ubi0_$VOL"; OUT="/tmp/fw/ubi0_$VOL-$part.img"; echo "Dumping $part ($DEV) to: $OUT"; dd if="$DEV" of="$OUT"; }; done; exit
    
  4. Execute the following command from the host PC terminal (not the WAS-110 remote shell) to back-up the dumped volumes to your local user directory.

    Prior to Windows 11 Build 22631.4391 (KB5044380) and Windows 10 Build 19045.5073 (KB5045594)...

    The scp command used the legacy SCP protocol without the need for specifying the -O optional parameter. If you're using an older Windows build or an OpenSSH version before 8.9.0.0, please remove -O from the scp command parameters.

    systeminfo
    ssh -V # (1)!
    
    1. OpenSSH version info

    If you continue to have issues, consider installing and running WinSCP, a GUI client.

    Command Prompt

    cd /D %UserProfile% & scp -O -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.11.1:/tmp/fw/ubi* .
    

    Powershell / Windows Terminal

    cd /D %UserProfile%; scp -O -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.11.1:/tmp/fw/ubi* .
    
    cd ~/; scp -O -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa 'root@192.168.11.1:/tmp/fw/ubi*' ./
    

Shell upgrade recommended

The extracted local-upgrade.tar includes a safer upgrade script in comparison to the built-in web UI.

Enable SSH

SSH must be enabled from the web UI prior to running the shell commands.

WAS-110 login

WAS-110 services

  1. Navigate to https://192.168.11.1/html/main.html#service/servicecontrol in a web browser and enter your admin web credentials.

  2. On the Service Control page, check the SSH checkbox and click Save.

Upgrade firmware

Run the following commands from the host terminal to upgrade to the 8311 community firmware.

  1. Input the root shell credentials if prompted.

    Prior to Windows 11 Build 22631.4391 (KB5044380) and Windows 10 Build 19045.5073 (KB5045594)...

    The scp command used the legacy SCP protocol without the need for specifying the -O optional parameter. If you're using an older Windows build or an OpenSSH version before 8.9.0.0, please remove -O from the scp command parameters.

    ssh -V # (1)!
    
    1. OpenSSH version info

    If you continue to have issues, consider installing and running WinSCP, a GUI client.

    Also, a popular GUI alternative to the ssh command is Putty.

    scp -O -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa %Temp%\8311\local-upgrade.tar root@192.168.11.1:/tmp/
    ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.11.1 "tar xvf /tmp/local-upgrade.tar -C /tmp/ -- upgrade.sh && /tmp/upgrade.sh -y -r /tmp/local-upgrade.tar"
    
    scp -O -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa /tmp/local-upgrade.tar root@192.168.11.1:/tmp/
    ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.11.1 'tar xvf /tmp/local-upgrade.tar -C /tmp/ -- upgrade.sh && /tmp/upgrade.sh -y -r /tmp/local-upgrade.tar'
    
  2. Once rebooted, enjoy this labor of love from the 8311 community. As a first step, we recommend performing a supplementary upgrade.

New SSH host keys will be generated

Don't be alarmed when attempting to connect over SSH into the newly installed firmware and the following warning is presented:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:Y3WzWezEYQi5374JfEa4KMm2nqfkj7raMyZIi6TS+X4.
Please contact your system administrator.
Add correct host key in /home/8311/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/8311/.ssh/known_hosts:1
Host key for 192.168.11.1 has changed and you have requested strict checking.
Host key verification failed.

Simply delete the old host ID by running the following command and retry:

ssh-keygen -R 192.168.11.1

Web UI upgrade not recommended

Proceed with caution!

The Azores firmware upgrade utility on occasion is known to soft-brick itself. To recover, a host device with serial breakout on SFP pins 2 (rx) and 7 (tx) will be required.

Alternatively, jump to the safer shell upgrade within this guide.

WAS-110 login

WAS-110 firmware upgrade

50/50 chance of soft-bricking the WAS-110 if proceeded!

  1. Navigate to https://192.168.11.1/html/main.html#admin/upgrade in a web browser and enter your admin web credentials.

  2. On the Firmware Upgrade page, browse for the local-upgrade.img file from the extracted download and click Upgrade.

  3. Patiently wait out the process, 4 to 5 minutes, or until the web session becomes unresponsive.

    Run a continuous ping

    To recieve an early indication that the WAS-110 has completed its upgrade reboot cycle, run a continuous ping:

    ping -t 192.168.11.1
    
    ping 192.168.11.1
    
  4. Once rebooted, enjoy this labor of love from the 8311 community. As a first step, we recommend performing a supplementary upgrade.

Supplementary upgrades

A/B architecture

block
  block:BOOT
    columns 1
    mtd0("<b>uboot</b><br/>/dev/mtd0")
    mtd1("<b>ubootconfigA</b><br/>/dev/mtd1")
    mtd2("<b>ubootconfigB</b><br/>/dev/mtd2")
  end

  block:UBI("/dev/ubi0")
    columns 2
    block:A("Slot A")
      columns 1
      mtd9("<b>kernelA</b><br/>/dev/mtd9")
      mtd10("<b>bootcoreA</b><br/>/dev/mtd10")
      mtd11("<b>rootfsA</b><br/>/dev/mtd11")
    end
    block:B("Slot B")
      columns 1
      mtd12("<b>kernelB</b><br/>/dev/mtd12")
      mtd13("<b>bootcoreB</b><br/>/dev/mtd13")
      mtd14("<b>rootfsB</b><br/>/dev/mtd14")
    end
    block:PERSIST:2
      columns 1
      mtd15("<b>ptconf</b><br/>/dev/mtd15")
      mtd16("<b>rootsfs_data</b><br/>/dev/mtd16")
    end
  end

  classDef slateContainer fill:#e2e8f0,stroke:#1e293b,stroke-width:3px
  classDef slateSubBlock fill:#f8fafc,stroke:#94a3b8,stroke-width:2px,font-weight:bold
  classDef slateNode fill:#fff,stroke:#475569,stroke-width:1px

  class BOOT slateContainer
  class UBI slateContainer
  class A,B slateSubBlock
  class mtd0,mtd1,mtd2,mtd9,mtd10,mtd11,mtd12,mtd13,mtd14,mtd15,mtd16 slateNode
  class PERSIST slateSubBlock

The WAS-110 uses an A/B architecture, which means there are two adjacent firmware images: an active image (the currently running firmware) and an inactive image. Either image can be selected as active, and upon upgrade, the inactive image will be overwritten and become the newly active image after reboot, i.e. committed image.

Furthermore, the OLT has the capability to select the active firmware image, upgrade the inactive image, and reboot the ONT. It is therefore recommended to install the community firmware on both A and B slots.

Web UI upgrade safe

Integrity first and foremost

The 8311 community firmware re-uses the safe shell upgrade logic throughout. Those who prefer the CLI may continue to use the shell upgrade method going forward.

Furthermore, the 8311 community firmware includes an up-to-date dropbear4 build, which does not require the use of weak algorithms when using an SSH client, i.e.

-oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa

can be removed from future command usage.

WAS-110 firmware

WAS-110 browse firmware

WAS-110 install firmware

  1. Navigate to https://192.168.11.1/cgi-bin/luci/admin/8311/firmware in a web browser and enter your root password if prompted.

  2. On the Firmware page, browse for the local-upgrade.tar file from the extracted download and click Upload.

  3. Once the upload is complete, click Install and Reboot to finish the upgrade.

    Run a continuous ping

    To recieve an early indication that the WAS-110 has completed its upgrade reboot cycle, run a continuous ping:

    ping -t 192.168.11.1
    
    ping 192.168.11.1
    
  4. Once rebooted, enjoy this labor of love from the 8311 community. As a first step, we recommend performing a supplementary upgrade.

Factory Reset

8311 configuration is stored within U-Boot environment variables.

  1. Log in to the WAS-110 remote shell over SSH as the root user:

    ssh root@192.168.11.1
    
    Forgot your root password?

    If you have forgotten your 8311 root password, you can reset it by following the Multicast Upgrade and Community Firmware Recovery guide.

  2. Remove all 8311 U-Boot environment variables:

    fw_printenv | awk -F'=' '/^8311/ {print $1}' | xargs fw_setenv
    
  3. Verify all 8311 environment variables have been successfully removed:

    fw_printenv | grep '^8311'