Skip to content

Lab 01-03 · Packages, release channels and upgrades

MTCNA

Module 1 · Introduction. Official course slides 50–65: RouterOS releases, upgrading, CPU architectures, package management (LAB, slides 58–59), downgrading (LAB, slides 60–61), RouterBOOT. The branding package (slides 62–63) is lab 01-04.

Your phone nags you: "A new software update is available". Some friends install it the same day; others wait a week "until they fix the bugs". Some even join the beta to get features early, and accept that the camera app crashes now and then.

A router has the same choice, with one difference: if a router update goes wrong, a whole school loses the Internet. Today you learn how RouterOS is put together, how to see exactly what your router runs, and how to pick a "safe" update channel.

What you will learn

  • Find the version, architecture and license of a RouterOS device
  • Explain what a package is and how packages switch features on and off
  • Choose between the long-term, stable and testing release channels
  • Update, downgrade and add an extra package (on the real hAP, in class)
  • Why an update file for an hAP ax² cannot be installed on an hAP ac² (the architecture trap)
  • Leave a note that every administrator sees when they log in

RouterOS is built from packages

Think of your phone again. The operating system is one big piece, plus apps. Some apps come preinstalled and you can switch them off; others you download.

A package is a file (extension .npk) that adds a group of features to RouterOS.

In RouterOS 7 almost everything (routing, firewall, DHCP, PPP, IPv6...) lives in one main package, called routeros. A few big features come as extra packages:

Extra package What it adds
wifi-qcom WiFi for newer hardware such as the hAP ax²
wireless WiFi for older hardware such as the hAP ac² (the "classic" driver used in the course PDF)
container runs Linux containers on the router
user-manager a user database (RADIUS) for hotspots
iot, gps, ups... support for specific hardware

Disable a package and its menus and interfaces disappear after a reboot. That is the course's package LAB: disable WiFi, reboot, see that the WiFi interfaces are gone.

RouterOS 6 vs 7

The course slides list packages like dhcp, ppp, routing, security, system (slide 55). That is how RouterOS 6 was split. In RouterOS 7 those are all inside the single routeros package, so you cannot disable DHCP alone any more.

Architecture: the trap that bricks upgrades

Every package is compiled for one CPU architecture: the "language" the router's processor speaks. A file for one architecture is gibberish to another, like an Android app on an iPhone.

Device Architecture
hAP ax² arm64
hAP ac² arm
CHR (this lab) x86_64

The course lists MikroTik's architectures: ARM64, ARM, MIPSBE, SMIPS, MMIPS, TILE, PPC and x86. Always check yours in System → Resources before downloading anything.

Release channels

A release channel is the "speed lane" of updates your router follows.

Channel What you get Who uses it
long-term only bug fixes, no new features production routers: schools, shops, ISPs
stable the same fixes plus new features most home users, the factory setting
testing the next version, treat it as a beta people who want to try features early
development work in progress MikroTik's own testers

The rule of thumb: the more people depend on a router, the slower its lane.

The scenario

Just one router: r1, a CHR (Cloud Hosted Router: RouterOS as a virtual machine). The virtual lab has no Internet on purpose, so the "Check for updates" step will fail here; downloading, upgrading and downgrading are done on the real hAP in class (instructions below and in final/r1-hap-packages.rsc).

flowchart LR
    YOU["<b>Your PC</b><br>ssh"] -- "management port<br>(ether1, lab plumbing)" --> R1["<b>r1</b><br>CHR · x86_64<br>RouterOS 7.23.8"]
    R1 -. "check for updates<br>(no Internet in the lab)" .-> MT["upgrade.mikrotik.com"]
Node Role Address
r1 your router (CHR) only the lab's management port

Start the lab

Download the lab files and unzip them: 01-03-packages-and-upgrades.zip. Open a terminal inside the 01-03-packages-and-upgrades folder.

sudo containerlab deploy -t topology.clab.yml
ssh admin@clab-mtcna-01-03-r1        # password: admin

Step 1 · Find out what your router is

Why: before any update you must know the version, the architecture and the license.

In WinBox: System → Resources and System → License. On r1:

/system resource print
/system license print

Expected (the important lines):

          version: 7.23.8 (long-term)
 factory-software: 7.1
architecture-name: x86_64
       board-name: CHR QEMU Standard PC (i440FX + PIIX, 1996)
            level: free

factory-software is the version the device shipped with. On many newer devices you cannot downgrade below it. level: free is the free CHR license: everything works, but each interface is limited to 1 Mbit/s (course slide 97). Real routers (RouterBOARDs) ship with their license already included.

Check yourself

Write down your router's architecture. Could you install a package called routeros-7.23.8-arm64.npk on it? Why?

Done when: you know the version, architecture and license level.

Step 2 · List the packages

Why: this is the list of "apps" installed on your router.

In WinBox: System → Packages. On r1:

/system package print

Expected:

Columns: NAME, VERSION, BUILD-TIME, SIZE
# NAME      VERSION  BUILD-TIME           SIZE
0 routeros  7.23.8   2026-10-08 09:46:16  19.8MiB

On the CHR there is only the main package. On your hAP ax² in class you will also see wifi-qcom.

Never disable routeros

/system package disable routeros is accepted and only marks the package "scheduled for disable". After the next reboot the router would have no operating system to speak of. If you ever do it by mistake, undo it before rebooting: /system package unschedule routeros. The check script makes sure nothing is scheduled.

Check yourself

Look at the Flags: line of /system package print detail. What do the flags X and A mean?

Done when: you have seen the package list.

Step 3 · Look at the update settings and try to check for updates

Why: System → Packages → Check For Updates is the easiest way to upgrade (course slide 51). It contacts MikroTik's servers, compares versions and offers Download & Install.

In WinBox: System → Packages → Check For Updates. On r1:

/system package update print
/system package update check-for-updates once

Expected, in this offline lab:

          channel: stable
installed-version: 7.23.8
           status: ERROR: IPv4: could not resolve dns name (timeout)

The router cannot even turn upgrade.mikrotik.com into an address: there is no DNS server and no Internet. In class, with the hAP connected to the class AP (lab 01-02), the same command shows latest-version and, if it is newer, the button Download & Install (/system package update install).

Check yourself

The installed version says long-term, but the channel says stable. If you pressed Download & Install in class, which lane would your router move to?

Done when: you have read the error and understood why it happens here.

Step 4 · Move the router to the long-term channel

Why: a school router should get fixes, not surprises.

In WinBox: System → Packages → Check For Updates, Channel long-term. On r1:

/system package update set channel=long-term
/system package update print

Expected: channel: long-term. The setting is part of the configuration: you will see it in /export as /system package update set channel=long-term.

Done when: the channel is long-term.

Step 5 · Leave a note for the next administrator

Why: when several people manage a router, a short note at login saves a lot of questions (course slide 34, CLI tips).

In WinBox: System → Note. On r1, write what you found in step 1 (use your architecture and version):

/system note set note="r1: architecture x86_64, RouterOS 7.23.8, channel long-term" show-at-cli-login=yes

Log out (/quit) and back in with ssh admin@clab-mtcna-01-03-r1: the note appears above the prompt.

Check yourself

Give one example of something useful to write in a router's note at work.

Done when: the note appears when you log in.

In class, on the real hAP

These steps need the real router (and, for downloads, Internet through the class AP). The exact commands are in final/r1-hap-packages.rsc.

  1. Interfaces: note that wifi1 and wifi2 exist.
  2. System → Packages, select wifi-qcom, Disable. Then System → Reboot.
  3. Interfaces again: the WiFi interfaces are gone.
  4. Enable the package again, reboot, and check they are back.
  1. Look at the System menu in WinBox.
  2. At mikrotik.com/download download Extra packages for ARM64 and the same version as your router.
  3. Drag the .npk onto WinBox's Files window (or scp file.npk admin@192.168.88.1:), then reboot.
  4. The package is installed during the boot. Check System → Packages and the menus again.
  1. System → Packages → Check For Updates, Channel long-term.
  2. Download. Then, in the Package List window, Downgrade (/system package downgrade). The router reboots into the older version.
  3. Upgrade back: channel stable, Check For Updates, Download & Install.

RouterBOOT is the small firmware that starts RouterOS on a RouterBOARD (like a PC's BIOS). There are two copies: a main one, which can be upgraded, and a backup one, which is used if you hold the reset button while powering on. After upgrading RouterOS: System → RouterBOARD → Upgrade, then reboot. (CHR has no RouterBOOT: /system routerboard does not exist here.)

Check your work

./check.sh

All lines PASS, last line Lab 01-03 SOLVED.

If something goes wrong

Symptom Likely cause Fix
Check For Updates says could not resolve dns name no Internet / no DNS (always, in the virtual lab) in class: connect to the class AP first (lab 01-02)
Uploaded .npk is not installed after reboot wrong architecture or a different version than the main package check System → Resources; download the same version for your architecture
routeros shows scheduled for disable you disabled the main package /system package unschedule routeros before rebooting
WiFi interfaces missing on the hAP the WiFi package is disabled System → Packages, enable it, reboot
The check says the note is wrong the note must contain your architecture, version and the word long-term /system note set note="..." again

Clean up

sudo containerlab destroy -t topology.clab.yml --cleanup

Key takeaways

  • RouterOS 7 is one main package (routeros) plus extra packages such as wifi-qcom, wireless or container.
  • Packages are built for one architecture (arm64, arm, x86_64...): always check System → Resources before downloading.
  • Long-term gets only fixes, stable gets fixes and features, testing is a beta: the more people depend on a router, the slower its channel.
  • System → Packages → Check For Updates is the easy way to upgrade; uploading an .npk and rebooting is the manual way; Downgrade goes back.
  • RouterBOOT is the board's firmware; upgrade it after RouterOS.
  • A system note tells every administrator something important the moment they log in.

Quick check

1. Which menu tells you a router's CPU architecture?
  • System → Resources
  • System → Identity
  • IP → Services
  • Interfaces

System → Resources (/system resource print) shows architecture-name, the version and the hardware. You need the architecture to download the right .npk files.

2. Which release channel gives only bug fixes and no new features?
  • long-term
  • stable
  • testing
  • development

Long-term only receives fixes: ideal for production routers. Stable adds new features too, and testing is a beta.

3. You download routeros-7.23.8-arm64.npk for an hAP ac². Why will it not install?
  • The hAP ac² has an ARM CPU, and the file is built for ARM64
  • The hAP ac² only accepts packages downloaded through WinBox
  • Version 7.23.8 is a long-term version and cannot be uploaded
  • The file must be renamed to .rsc before uploading

Packages are compiled for one architecture. The hAP ac² is arm, not arm64: like an Android app on an iPhone, the code does not match the processor.

4. In RouterOS 7, what happens after you disable the WiFi package and reboot?
  • The WiFi interfaces disappear from the interface list
  • The WiFi keeps working but cannot be configured
  • The router resets to its factory configuration
  • Only the 5 GHz interface disappears

A disabled package removes its features at the next reboot: menus and interfaces vanish. Enable it and reboot to bring them back.

5. What is RouterBOOT?
  • The firmware that starts RouterOS on a RouterBOARD
  • The first configuration script RouterOS runs at boot
  • The menu where you choose the update channel
  • The tool that installs RouterOS from a PC

RouterBOOT is the board's firmware, like a PC's BIOS. It has a main copy (upgradeable) and a backup copy. The tool that installs RouterOS from a PC is Netinstall (lab 01-07).

6. Why does Check For Updates fail in the virtual lab?
  • The router has no DNS server and no Internet access
  • The CHR has no license that allows updates
  • Updates only work from WinBox, not from the CLI
  • The long-term channel cannot check for updates

The error says could not resolve dns name: without a DNS server the router cannot even find upgrade.mikrotik.com, and there is no route to the Internet anyway.

7. The school's main router runs stable and an update broke the WiFi last month. Which two actions make sense?
  • Move the router to the long-term channel
  • Use Downgrade to return to the previous working version
  • Move the router to the testing channel to get the fix sooner
  • Disable the routeros package and reboot

Long-term avoids new-feature surprises, and Downgrade brings back a known-good version. Testing is a beta (more risk), and disabling routeros would leave the router without its operating system.

You now know what your router runs and how to keep it updated. Next lab: personalising RouterOS with a branding package.