Cannot change back the CPU frequency

I have RB5009UPr+S+. For testing purposes, I’ve switched CPU Frequency in RouterBOARD settings from Auto to 1400MHz. I want to revert it, but I cannot do that - getting “not allowed by device mode: ()”:

Untitled.png
I’m running 7.17.1 and the device is in Advanced Mode:

     mode: advanced     
     allowed-versions: 7.13+,6.49.8+
              flagged: no           
     flagging-enabled: yes          
            scheduler: yes          
                socks: yes          
                fetch: yes          
                 pptp: yes          
                 l2tp: yes          
       bandwidth-test: yes          
          traffic-gen: no           
              sniffer: yes          
                ipsec: yes          
                romon: yes          
                proxy: yes          
              hotspot: yes          
                  smb: yes          
                email: yes          
             zerotier: yes          
            container: yes          
  install-any-version: no           
           partitions: no           
          routerboard: no           
        attempt-count: 0

Any advice?

OK, so appearently, it required running:

/system/device-mode/update routerboard=yes

However, I don’t think that’s expected behavior, is it? It’s OK if this requires updating the mode, but then it shouldn’t allowed me to change the frequency from “Auto” in the first place.

As of 7.17 it is as Mikrotik is trying to lock down features that can be abused by hackers and other nefarious actors. This change has been quite the lightning rod for complaint and anger but it doesn’t look like they’re going to change things. You’ll have to run commands for specific features you want to turn on/off and then reboot the device by pulling the power or pressing reset button. Now image having to do that same thing with 100s or 1000s of fielded devices…

At which ROS version did you set CPU frequency to 1400MHz? Versions lower than 7.17 allowed that without a hiccup …

7.17.1. That’s why it’s strange. If I had set this using older version and couldn’t revert after upgrade, it would make sense. Now, I changed it, but couldn’t revert it back after a couple of minutes. The router wasn’t even rebooted during that time.

Was routerboard version already updated at that time or not ?

Anyhow, sounds like a bug.
Depending on who looks at it …

@tdabasinskas this is a bug IMHO. I have experienced this bug as well. I did came up with some test cases and reported them all to Mikrotik support this week. SUP-177436
Depending on your action sequence there is a high chance that rebooting (/system/reboot) reverts cpu-frequency back to “auto” magically. Give it a try.

Tried this in another router - a simple reboot didn’t help.

I prefer not to go into detail regarding my observations and the test cases I used to reproduce this issue, as I believe it could be security-sensitive. Additionally, it is unclear whether this bug is limited to CPU frequency adjustments or if it represents a broader flaw affecting other device-mode restricted settings. I have not investigated further, as repeatedly cycling device modes via the mode/reset button is not practical for extended testing.

@tdabasinskas
Please report to MikroTik support if not already. https://mikrotik.com/support

Yeah, created SUP-178269 for this.

MikroTik Support thanked me for reaching out and for the report. They mentioned that they had reproduced the issue and were looking forward to fixing it in future RouterOS versions.

What's new in 7.17.2 (2025-Feb-06 11:10):

*) device-mode - do not allow changing CPU frequency if "routerboard" is not allowed by device mode (introduced in v7.17);

Having to physically turn off the power or press a reset button seems crazy. I’m remotely administering the RB at my parents’ home on another continent, half-way around the globe.

I can only confirm that on my LHG 5ac the problem persists on 7.18.2:

[user@MikroTik] > system routerboard/settings/print              
                        ;;; Warning: cpu not running at default frequency
              auto-upgrade: no                                           
               boot-device: nand-if-fail-then-ethernet                   
         preboot-etherboot: disabled                                     
  preboot-etherboot-server: any                                          
             cpu-frequency: 716MHz                                       
             boot-protocol: bootp                                        
       force-backup-booter: no                                           
               silent-boot: no                                           
      protected-routerboot: disabled                                     
      reformat-hold-button: 20s                                          
  reformat-old-button-max: 10m                                          
[user@MikroTik] > system routerboard/settings/set cpu-frequency=auto
failure: not allowed by device-mode
[user@MikroTik] > system/resource/print
                   uptime: 6m45s              
                  version: 7.18.2 (stable)    
               build-time: 2025-03-11 11:59:04
         factory-software: 6.48.6             
              free-memory: 186.4MiB           
             total-memory: 256.0MiB           
                      cpu: ARM                
                cpu-count: 4                  
            cpu-frequency: 716MHz             
                 cpu-load: 0%                 
           free-hdd-space: 1048.0KiB          
          total-hdd-space: 16.0MiB            
  write-sect-since-reboot: 21                 
         write-sect-total: 4247               
        architecture-name: arm                
               board-name: LHG 5 ac           
                 platform: MikroTik           
[user@MikroTik] >

I’m not sure your post illustrates the persistence of the problem.

The way things are supposed to work:
print of routerboard settings will didpkay warning if CPU frequency is not set to default. And setting CPU frequency on ROS v17 and later is only allowed if device-mode property routerboard is enabled.

The problem: with initial 7.17 (and 7.18?) versions it was possible to set CPU frequency once even if routerboard property of device-mode was disabled.

The bug-fix: with 7.17.2 it’s no more possible to set CPU frequency once when routerboard property of device-mode is disabled.

Related behaviour: running config is never (well, almost never) changed by ROS upgrade. Which includes CPU frequency setting. What does change with ROS upgrades are default settings[*] … which affects output of export command - it displays settings which are setting device away from defaults (of any particular ROS version currently running). And print output is affected as well (in this particular case it displays the nasty warning about CPU frequency setting).
One has to manually change settings (e.g. to conform to new defaults) … but with this bug it was not possible (because one has to enable routerboard property of device-mode which can be a problem this way or another). For users who were affected by the bug (they changed CPU frequency setzing whrn this was not supposed to be pissible) the bug fix doesn’t change anything … to revert CPU frequency to former setting they’ll have to follow the same procedure as they had to with “affected ROS version”.

[*]two examples:

  1. around version 6.45 CPU frequency setting “auto” (meaning kernel can dynamically change CPU frequency depending on CPU load) became available on certain devices. A version or three later it became default so all devices with static CPU frequency setting (previous default) started to display the warning (not sure when the warning display was introduced, I don’t think it was displayed previous to “auto” setting).
  2. around version 6.43 default ethernet port speed changed ftom 100Mbps to 1Gbps. Previusly export command showed the setting if port speed was set to 1Gbps, afterwards it showed the setting if it was set to 109Mbps (previous default) even on devices e+with 100Mbps ethernet ports. RIS upgrade did not touch tge setting … and it did not affect anybidy … most users used autonegotiate=yes which doesn’t care sbout speed setting anyway. And for those with disabled autonegotiation any automatic change of settings could be fatal.

Any solution yet, or any workaround? If not allowed by device mode (6), in what mode i can change the CPU speed?

Now it’s hot summer day, lower the CPU speed to release unused power can lower the overall temperature, why lock it up?
Capture.JPG

Are you asking how to set device mode to allow the CPU speed change or are you asking how to workaround the device mode?

If the first:
https://help.mikrotik.com/docs/spaces/ROS/pages/93749258/Device-mode

/system/device-mode/update routerboard=yes

A reboot might be needed.

Anything working to lower my CPU speed so to lower the CPU temperature too, sadly the command not working…
I chose to turn off/on power. What is mode button? I don’t want to risk and press reset…

OK, after second time rebooting, finally i can dial down my CPU speed, thanks.

New problem. After dial down the CPU speed to 400Mhz, the resources still show the CPU in 1200 Mhz…
Capture3.JPG

Hmmm. :confused:
Check also in terminal, should be:
https://wiki.mikrotik.com/Manual:System/Resource

/system resource print

And try rebooting again, it might be an artifact of Winbox UI.