Hi Folks welcome to my blog..
I have a short post in changing CPU frequency & governors from command line on a Linux machine. I am using BeagleBoneBlack booted to shell with minimal file-system generated from build-root with Kernel version 3.8.13.
I am at shell prompt as a sudo user.
Reading CPU information: We get the CPU information reading the cpuinfo file in proc file-system.
# cat /proc/cpuinfo
Reading CPU frequency & governors:
Change directory to /sys/bus/cpu/devices/cpu0/cpufreq
# cd /sys/bus/cpu/devices/cpu0/cpufreq
# ls
To get the available CPU frequencies for scaling read the below file.
# cat scaling_available_frequencies
To get the current CPU frequency, read the below file.
# cat cpuinfo_cur_freq
CPU is currently running at 1GHz
To read the current CPU governor, read the below file
# cat scaling_available_governors
similarly to read the current CPU governor read the below file
# cat scaling_governor
Changing CPU frequency
In order to change the CPU frequency, we have to change the CPU governor to userspace. This allows to run the CPU at user specified frequencies.
In case of ondemand governor we can set the scaling_max_freq & scaling_min_freq, but we cannot set a specific frequency from the available list of CPU frequencies.
For more details read the following link: https://wiki.archlinux.org/index.php/CPU_frequency_scaling
# echo userspace > scaling_governor
# echo 600000 > scaling_setspeed
#cat cpuinfo_cur_freq
Changing CPU frequency to 600MHz, we can set only values available under scaling_available_frequencies
Now you change the CPU governor to ondemand and try to modify the scaling_max_freq & scaling_min_freq frequencies and observe the effect when you try to change the CPU current frequency.
Thanks for your time. Please feel free to post your comments.
I have a short post in changing CPU frequency & governors from command line on a Linux machine. I am using BeagleBoneBlack booted to shell with minimal file-system generated from build-root with Kernel version 3.8.13.
I am at shell prompt as a sudo user.
Reading CPU information: We get the CPU information reading the cpuinfo file in proc file-system.
# cat /proc/cpuinfo
Reading CPU frequency & governors:
Change directory to /sys/bus/cpu/devices/cpu0/cpufreq
# cd /sys/bus/cpu/devices/cpu0/cpufreq
# ls
To get the available CPU frequencies for scaling read the below file.
# cat scaling_available_frequencies
To get the current CPU frequency, read the below file.
# cat cpuinfo_cur_freq
CPU is currently running at 1GHz
To read the current CPU governor, read the below file
# cat scaling_available_governors
similarly to read the current CPU governor read the below file
# cat scaling_governor
Changing CPU frequency
In order to change the CPU frequency, we have to change the CPU governor to userspace. This allows to run the CPU at user specified frequencies.
In case of ondemand governor we can set the scaling_max_freq & scaling_min_freq, but we cannot set a specific frequency from the available list of CPU frequencies.
For more details read the following link: https://wiki.archlinux.org/index.php/CPU_frequency_scaling
# echo userspace > scaling_governor
# echo 600000 > scaling_setspeed
#cat cpuinfo_cur_freq
Changing CPU frequency to 600MHz, we can set only values available under scaling_available_frequencies
Now you change the CPU governor to ondemand and try to modify the scaling_max_freq & scaling_min_freq frequencies and observe the effect when you try to change the CPU current frequency.
Thanks for your time. Please feel free to post your comments.