How to install OpenWrt on the Linksys MR8300 Wireless Router

The Linksys MR8300 is not a bad wireless router, but one of its best features, as with the WRT1900ACS, is that it is supported by different open source firmwares including OpenWrt. So, if you’re like me and want to use this router with the open source router firmware to unlock all of its power instead of the limited stock firmware, read this guide to learn how to install it. It’s not a hard process, but you need to be careful with some of the steps, but don’t worry, I’ll guide you through the whole process.


WARNING: Installation of OpenWrt 23.05 or main snapshot on the Linksys MR8300 needs a two steps installation. First you’ll need to install 22.03 for changing a boot variable. Than you can install 23.05. Don’t try to install or upgrade to 23.05 directly, it will soft-brick your device!

 

Save the stock firmware

I don’t know why you would want to revert to the stock firmware after installing OpenWrt, but if you want to have the option, it would be best to keep a file with the stock firmware just in case you need it in the future.

You can download the Linksys stock firmware from https://www.linksys.com/support-article?articleNum=47131
My MR8300 is v1.1, so the latest firmware available at the time of writing this guide is FW_MR8300_1.1.10.210186_prod.img Ver. 1.1.10.210186 (4/19/2022) 48.5 MB

 

Installing OpenWrt 22.03.5

As I said in the warning, we need to install install v22.03 to change a boot variable before installing the latest OpenWrt release.

  1. Download OpenWrt firmware: Download the Factory image to flash OpenWrt firmware v22.03.5 from
    https://firmware-selector.openwrt.org/?version=22.03.5&target=ipq40xx%2Fgeneric&id=linksys_mr8300
  2. Verify the downloaded firmware file: After downloading the firmware image you should verify, using a checksum tool, that the file you’ve just downloaded is correct so you will not brick your device by applying a faulty download. The sha256sum for the firmware image is show in the firmware selector page of the previous page. In this case is 7d9e46602162c98268c440d03b40c8c4f50cc27f2929d0566d6d9ac42edaf60eOnly continue with flashing, if the firmware checksum of your download matches the checksum stated on the download site! On a Mac you can use the command: shasum -a 256 /path/to/fileFor more information about this process you can read the guide for verifying OpenWrt firmware binary in the OpenWrt project site.
  3. Disconnect the Internet cable: Now that we have downloaded the OpenWrt firmware file, we should disconnect the Ethernet cable from the yellow Internet port on the back of your router. This will prevent the router from connecting to who knows where.
  4. Factory reset: Although not strictly necessary, resetting the router to its factory defaults before upgrading isn’t a bad idea. You can read more about this process on the Linksys website, but it is quite simple: make sure your Linksys MR8300 is plugged in and switched on, then press and hold the reset button on the back of the unit. Do not release the button until the light goes out and then turns bright red.
  5. Log in to the Linksys MR8300 web interface to upload the new firmware: Connect your computer to the router using an Ethernet cable, then open a web browser to the IP address 192.168.1.1. You’ll probably get a blocking page from our friends at Belkin, asking you to use an app on your phone to configure the router. Seriously, Belkin, who had the terrible idea of requiring us to download an app onto a phone in order to configure a router?
    We can try to get around this restriction by changing the URL on our browser. Edit the last part of the URL, replacing ‘velop/blocking.html‘ with ‘login.html‘. This means that an URL such as http://192.168.1.1:52000/ui/1.0.99.203202/dynamic/velop/blocking.html would end in http://192.168.1.1:52000/ui/1.0.99.203202/dynamic/login.html.If you manage to bypass the blocking page, remember that the Username and Password for logging in is adminIf this doesn’t work, try replacing ‘velop/blocking.html‘ with ‘index.html#casupport‘ or, if this does not work either, ‘blocking.html‘ with ‘setup.html‘.If you haven’t managed to log in yet, all is not lost, we still have a trick up our sleeve. Enter this URL for a direct page to upload a new firmware: https://192.168.1.1/fwupdate.html
  6. Upload the OpenWrt firmware: No matter how we got to the firmware update page, just upload the OpenWrt firmware you downloaded in step one and start the update process.

    You may see some warnings warning (wrong file name, …), just continue. Wait about a minute for the router to complete the installation and reboot. Manually browse to http://192.168.1.1/ again to enter LuCI web interface. You may need to force your browser to reload the cache.And you have done it, you have installed OpenWrt on the Linksys MR8300. The default username is root with no password.

 

Advanced Reboot Web UI

The Linksys MR8300 is a dual partition device, which means each time you install/upgrade the system (from OEM or OpenWrt), it overwrites the other partition, not the active one.

To be able to see both partitions and choose which one we want the router to reboot to, we can install the Advanced Reboot Web UI package.

To install the package, you must have reconnected the Ethernet cable to the yellow Internet port on the back of the router.

The package can be installed from LuCI by going to System > Software. Click on the Update lists... button, filter the contents by luci-app-advanced-reboot and then click on the Install button.

Alternatively, if you prefer, you can connect to your router via ssh and run the following commands:

opkg update
opkg install luci-app-advanced-reboot

Once you’ve installed the package, you’ll see a new Advanced Reboot menu item under System.


Here you can see the firmwares installed in both partitions and choose to reboot in one or the other.

Changing the kernsize variable value

Despite its fair amount of flash memory (256MB), the MR8300 has a tiny kernel partition limited to 3MB. This is sufficient to boot Linksys OEM and OpenWrt 22.03 (based on kernel 5.10). Meanwhile this is not enough to boot kernel 5.15 (23.05 and snapshot). There is a workaround for this situation, and it involves changing a bootloader variable. This is only needed once in the lifetime of the device, and can be done easily via SSH. Once the bootloader has been tweaked, the device can boot everything: Linksys OEM, OpenWrt 22.03, 23.05 and snapshot.

  1. Access your router via SSH
    ssh root@192.168.1.1
  2. Check your previous bootloader variables
    fw_printenv

    Look for output similar to kernsize=300000. This is the default 3 MB size of kernel.

  3. Change kernsize value to 500000
    fw_setenv kernsize 500000

    This will tell the bootloader to read 5 MB (needed for kernel 5.15) instead of 3 MB.
    WARNING : DO NOT type = in this command, it will soft-brick the bootloader. You will need to access the device with a serial link and restore the kernsize variable from u-boot console.

  4. Check new bootloader variables
    fw_printenv

    to confirm the change after running. Now you should read kernsize=500000.

  5. Reboot the device
    It should boot the current 22.03 just as previously.

 

Upgrade to OpenWrt 23.05

After changing the kernel partition to 5MB it is safe to install OpenWrt 23.05. If you haven’t done so yet, stop and read the previous section.

  1. Download OpenWrt firmware: Download the Factory image to flash OpenWrt firmware v23.05.3 from
    https://firmware-selector.openwrt.org/?version=23.05.3&target=ipq40xx%2Fgeneric&id=linksys_mr8300
  2. Verify the downloaded firmware file: As before, you should verify the checksum of the downloaded firmware image. In this case is 932f7237ae702d0f7928d2a27984c1dcd9f0eccb9f3315d0a5432061f694245e
  3. Flash Firmware: Flash the new OpenWrt firmware from the LuCI web interface in System > Backup / Flash Firmware

     
    Click on the Flash image... button and select the firmware file we downloaded in step 1.

    Uncheck the Keep current settings and retain the current configuration option, as the newer versions have ‘DSA’ support, which is incompatible with the previous ‘swconfig’ architecture, and will lead to a soft-brick of the router.
    Also check the Force upgrade option and then click on the Continue button.
     

  4. Wait for reboot

As this is a dual partition device, this OpenWrt v23.05.3 will have been installed on the other partition, overwriting the last stock firmware left in the device.

The Advanced Reboot package will not be installed, so we need to reinstall it as before.

Finally, if you want to get rid of the previous OpenWrt 22.03.5 in the other partition, just flash the same OpenWrt factory image from the freshly installed OpenWrt again.

Note: Since OpenWrt 22.03.3, you can easily restore back Linksys OEM by just flashing the firmware image we saved before if you really need to.