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.
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.
- 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
- 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 is7d9e46602162c98268c440d03b40c8c4f50cc27f2929d0566d6d9ac42edaf60e
Only 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/file
For more information about this process you can read the guide for verifying OpenWrt firmware binary in the OpenWrt project site. - 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.
- 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.
- 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 ashttp://192.168.1.1:52000/ui/1.0.99.203202/dynamic/velop/blocking.html
would end inhttp://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 isadmin
If 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
- 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 tohttp://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 isroot
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.
- Access your router via SSH
ssh root@192.168.1.1
- Check your previous bootloader variables
fw_printenv
Look for output similar to
kernsize=300000
. This is the default 3 MB size of kernel. - 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. - Check new bootloader variables
fw_printenv
to confirm the change after running. Now you should read
kernsize=500000
. - 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.
- 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
- Verify the downloaded firmware file: As before, you should verify the checksum of the downloaded firmware image. In this case is
932f7237ae702d0f7928d2a27984c1dcd9f0eccb9f3315d0a5432061f694245e
- Flash Firmware: Flash the new OpenWrt firmware from the LuCI web interface in
System > Backup / Flash Firmware
Click on theFlash 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 theForce upgrade option
and then click on theContinue
button.
- 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.