RouterOS is not one lump of software. Its features are divided into packages, files with an .npk extension, and a device runs the set that happens to be installed on it. Most of the time you never think about this. You think about it the first time a menu you were told to open is not there.
What is already on the device
A MikroTik ships with the routeros bundle, and that bundle holds nearly everything: interfaces, bridging and VLANs, routing, firewall and NAT, DHCP, DNS, queues, VPN, scripting, the lot. Underneath it there is a bare system package that is the minimum RouterOS needs to run, but you will not be assembling a device from parts. For normal work, the bundle plus, on a wireless device, a driver package is the whole story.
The bundle is built per processor architecture: arm, arm64, mipsbe, mmips, smips, tile, ppc, and one for x86 and CHR. Which one your device uses is in /system resource print, together with the free storage. You need both numbers before you download anything.
Wi-Fi: the one everybody runs into
Wireless drivers are packages of their own, and which one you need depends on the radios in the device, not on your preference:
- wireless is the older driver. It serves the 802.11ac generation and earlier, and it is the one behind
/interface wirelessand the legacy CAPsMAN. - wifi-qcom is the driver for 802.11ax Qualcomm radios, and it is what
/interface wifitalks to. On the ax boards it comes in the box. - wifi-qcom-ac is an optional driver that lets some 802.11ac boards use the newer
/interface wificonfiguration instead of the old one. - wifi-qcom-be and wifi-mediatek cover Wi-Fi 7 Qualcomm hardware and MediaTek hardware respectively.
The important part: wireless and the wifi-qcom drivers cannot be active at the same time. They conflict, so swapping one for the other means removing the first. A device where the Wi-Fi menu is empty after an upgrade, or where the menu is there under a different name than the guide you are reading, is almost always a device with the other driver installed. That story, including what happens to a v6 configuration, is in From RouterOS v6 to v7, and the symptoms are in When something goes wrong.
Which driver your model uses also decides how we write your Wi-Fi configuration. See Wi-Fi settings.
The extra packages
Everything else is optional and only worth installing if you know why. The ones people actually ask for:
- container, to run Linux containers on the router. It has requirements of its own, including a setting that must be confirmed at the device. See Containers.
- user-manager, MikroTik's own user database for hotspot and other services. See Hotspot.
- dude, the monitoring server.
- rose-storage, for disks, RAID and the storage protocols.
- iot, gps and ups, for the hardware their names suggest.
- zerotier and tr069-client, for those specific services.
Not every package exists for every architecture. Packages come from MikroTik and nobody else can make them.
Why the version has to match exactly
A package belongs to a RouterOS release. Put a 7.x package next to a device running a different 7.x release and the device ignores it: no error on screen, no new menu, nothing. You look in the log after the reboot and find it refused.
So before you download, read the version off /system resource print and take the extra packages from the archive of exactly that version. If you upgrade the device later, the extra packages come along with a normal upgrade, because the upgrade brings the matching versions of everything installed. It is the hand-placed file from last year that gets left behind.
Check the free storage before you start. A small board has very little of it, and an upload that does not fit fails quietly enough to miss. /system resource print shows free space; delete old backups and packages from the file list first.
Installing and removing
There are two routes, and they end in the same place.
From the router. In System, then Packages, ask the device to check for updates. The list then also shows the packages that exist on MikroTik's server but are not on the device, marked as available and disabled. Select one, enable it, then apply the changes. The device downloads it and reboots. This needs working DNS and internet access from the router itself.
By hand. Download the extra packages archive for your architecture and version, unpack it, and upload the .npk files to the root of the device's file list, by drag and drop in WinBox or over SFTP. Then reboot. The reboot is the install. A file uploaded as name.auto.npk triggers the reboot and the install by itself, which is useful in a script.
Removing works the same way round: /system package uninstall for the ones you want gone, or disable to keep the file but switch the feature off, and then apply the changes with the reboot that follows. Scheduled a removal by mistake? /system package unschedule cancels it before the reboot.
After the reboot, look at the log. RouterOS writes there whether a package installed, and when it did not, why.
Related: From RouterOS v6 to v7, Backup and export, When something goes wrong.