ELF 1開發板選用的是主頻800MHz NXP的i.MX6ULL處理器。根據實際的應用場景,如果需要降低CPU功耗,可以將CPU頻率固定為節能模式,下面以這款開發板為例給小伙伴們介紹一下固定CPU頻率的方法。
先來介紹一下與CPU頻率相關的命令:
1.列出/sys/devices/system/cpu/cpu0/cpufreq/目錄下的文件:
此目錄中記錄了CPU頻率等信息,這些文件的含義如下:
2.使用如下命令查看當前CPU頻率:
當前CPU頻率為792MHz,工作頻率是最高的,其他的值如下:
可以看出,當前CPU支持198MHz、396MHz、528MHz和792MHz四種頻率切換,其中調頻策略為performance,在此頻率下處理器以最高頻率運行,耗電量也相應的處于最高模式。
例如固定CPU頻率為198MHz
具體修改方法有兩種
1.修改文件系統:
當用戶有修改CPU頻率需求時,ELF 1支持通過指令的方式調節CPU頻率。
(1)設置為用戶模式,修改頻率為198000:
root@ELF1:~# echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
root@ELF1:~# echo 198000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
(2)查看當前頻率:
root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
198000 //當前頻率
上述修改方法僅在終端中臨時生效,如果想要斷電不丟失,可以將修改頻率的命令寫進開機自啟腳本中:
(1)開機自啟腳本路徑/etc/rc.local:
root@ELF1:~# vi /etc/rc.local
(2)添加如下命令到開機自啟腳本:
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 198000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
效果如下:
(3)保存退出并重啟開發板。
(4)查看當前頻率:
root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
198000 //當前頻率
可以看到CPU頻率已經固定為198MHz了。
2.修改內核:
通過圖形化界面配置Linux內核的CPU調頻策略:需要先執行“make imx6ull_elf1_defconfig”命令生成.config,然后再使用圖形界面進行配置,因為“make menuconfig”進行圖形配置時,是從.config中讀取出來的。
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make imx6ull_elf1_defconfig //生成.config
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make menuconfig
打開Linux內核的圖形化配置界面,進入如下路徑:
CPU Power Management
-> CPU Frequency scaling
-> Default CPUFreq governor
打開默認調頻策略選擇界面,選擇“powersave”,選擇以后保存退出圖形化配置界面。
此時最新的配置會更新到.config,編譯內核之前需要把.config文件中的配置復制到imx6ull_elf1_defconfig中,作為新的配置文件。
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ cp .config arch/arm/configs/imx6ull_elf1_defconfig
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make imx6ull_elf1_defconfig
elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make zImage
編譯完成以后把新的zImage拷貝到開發板替換掉舊的zImage,保存并重啟。
root@ELF1:~# cp /run/media/sda1/zImage /run/media/mmcblk1p1
root@ELF1:~# sync
root@ELF1:~# reboot
啟動完成以后,查看當前頻率:
root@ELF1:~#cat/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
198000
當前CPU頻率為198MHz了。查看scaling_governor文件看一下當前的調頻策略:
root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave
當前的CPU調頻策略為powersave,也就是省電模式,該模式下系統運行在最低頻率,功耗相應降低,但系統性能會受影響。
到這里就完成了對CPU的固定頻率,希望本文提供的方法能夠對屏幕前的小伙伴有所幫助。
-
嵌入式
+關注
關注
5046文章
18821瀏覽量
298657 -
cpu
+關注
關注
68文章
10702瀏覽量
209431 -
開發板
+關注
關注
25文章
4771瀏覽量
96195
發布評論請先 登錄
相關推薦
評論