<ul id="gu0q4"></ul>
  • <strike id="gu0q4"><abbr id="gu0q4"></abbr></strike>
    <strike id="gu0q4"><menu id="gu0q4"></menu></strike>
    <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
    <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
    • <samp id="gu0q4"></samp>

      一文教會你固定ElfBoard開發(fā)板CPU的頻率!原創(chuàng)

      發(fā)布時(shí)間:2023-11-13 10:07:42
      固定頻率 Linux開發(fā)板

      ELF 1開發(fā)板選用的是主頻800MHz NXP的i.MX6ULL處理器。根據(jù)實(shí)際的應(yīng)用場景,如果需要降低CPU功耗,可以將CPU頻率固定為節(jié)能模式,下面以這款開發(fā)板為例給小伙伴們介紹一下固定CPU頻率的方法。

      先來介紹一下與CPU頻率相關(guān)的命令:

      1.列出/sys/devices/system/cpu/cpu0/cpufreq/目錄下的文件:

      此目錄中記錄了CPU頻率等信息,這些文件的含義如下:

      cpuinfo_cur_freq

      當(dāng)前CPU工作頻率,從CPU寄存器讀取到的工作頻率

      cpuinfo_max_freq

      處理器所能運(yùn)行的最高工作頻率(單位:KHz

      cpuinfo_min_freq

      處理器所能運(yùn)行的最低工作頻率(單位:KHz

      cpuinfo_transition_latency

      處理器切換頻率所需要的時(shí)間(單位:ns)

      scaling_available_frequencies

      處理器支持的主頻率列表(單位:KHz

      scaling_available_governors
      當(dāng)前內(nèi)核中支持的所有governor(調(diào)頻)類型
      scaling_cur_freq
      保存著cpufreq模塊緩存的當(dāng)前CPU頻率,不會對CPU硬件寄存器進(jìn)行檢查

      scaling_driver

      該文件保存當(dāng)前CPU所使用的調(diào)頻驅(qū)動

      scaling_governorgovernor(調(diào)頻)策略,Linux內(nèi)核一共有5種調(diào)頻策略:

      ?

      ①conservative:在CPU負(fù)載較低時(shí),調(diào)節(jié)CPU的工作頻率為較低的頻率,以保證能源和散熱的平衡。而當(dāng)CPU負(fù)載較高時(shí),調(diào)節(jié)CPU的工作頻率為較高的頻率,以提高計(jì)算機(jī)的性能

      ?

      ②ondemand:定時(shí)檢查負(fù)載,然后根據(jù)負(fù)載來調(diào)節(jié)頻率。負(fù)載低的時(shí)候降低CPU頻率,這樣省電,負(fù)載高的時(shí)候提高CPU頻率,增加性能

      ?

      ③userspace:可以在用戶空間手動調(diào)節(jié)頻率

      ?

      ④powersave:省電模式,通常以最低頻率運(yùn)行,系統(tǒng)性能會受影響,一般不會用這個(gè)

      ?

      ⑤performance:最高性能,直接用最高頻率,不考慮耗電

      scaling_max_freq

      governor(調(diào)頻)可以調(diào)節(jié)的最高頻率

      scaling_min_freq

      governor(調(diào)頻)可以調(diào)節(jié)的最低頻率

      stats

      該目錄給出了CPU各種運(yùn)行頻率的統(tǒng)計(jì)情況,比如CPU在各頻率下的運(yùn)行時(shí)間以及變頻次數(shù)

      2.使用如下命令查看當(dāng)前CPU頻率:

      root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

      792000

      當(dāng)前CPU頻率為792MHz,工作頻率是最高的,其他的值如下:

      root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq //最高工作頻率

      792000

      root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq?//最低工作頻率

      198000

      root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq //當(dāng)前頻率

      792000

      root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq //可調(diào)最低頻率

      198000

      root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor //調(diào)頻策略

      performance

      root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies //支持的主頻率

      198000 396000 528000 792000

      可以看出,當(dāng)前CPU支持198MHz、396MHz、528MHz和792MHz四種頻率切換,其中調(diào)頻策略為performance,在此頻率下處理器以最高頻率運(yùn)行,耗電量也相應(yīng)的處于最高模式。
      ?

      例如固定CPU頻率為198MHz

      具體修改方法有兩種

      1.修改文件系統(tǒng):

      當(dāng)用戶有修改CPU頻率需求時(shí),ELF 1支持通過指令的方式調(diào)節(jié)CPU頻率。

      (1)設(shè)置為用戶模式,修改頻率為198000:

      root@ELF1:~# echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorroot@ELF1:~# echo 198000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

      (2)查看當(dāng)前頻率:

      root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq198000                                                  //當(dāng)前頻率

      上述修改方法僅在終端中臨時(shí)生效,如果想要斷電不丟失,可以將修改頻率的命令寫進(jìn)開機(jī)自啟腳本中:

      (1開機(jī)自啟腳本路徑/etc/rc.local:

      root@ELF1:~# vi /etc/rc.local

      (2)添加如下命令到開機(jī)自啟腳本:

      echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorecho 198000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

      效果如下:

      (3)保存退出并重啟開發(fā)板。

      (4)查看當(dāng)前頻率:

      root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq198000                                                  //當(dāng)前頻率

      可以看到CPU頻率已經(jīng)固定為198MHz了。

      2.修改內(nèi)核:
      通過圖形化界面配置Linux內(nèi)核的CPU調(diào)頻策略:
      需要先執(zhí)行“make imx6ull_elf1_defconfig”命令生成.config,然后再使用圖形界面進(jìn)行配置,因?yàn)椤癿ake menuconfig”進(jìn)行圖形配置時(shí),是從.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   //生成.configelf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make menuconfig

      打開Linux內(nèi)核的圖形化配置界面,進(jìn)入如下路徑:

      CPU Power Management -> CPU Frequency scaling -> Default CPUFreq governor

      打開默認(rèn)調(diào)頻策略選擇界面,選擇“powersave”,選擇以后保存退出圖形化配置界面。

      此時(shí)最新的配置會更新到.config,編譯內(nèi)核之前需要把.config文件中的配置復(fù)制到imx6ull_elf1_defconfig中,作為新的配置文件。

      elf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ cp .config arch/arm/configs/imx6ull_elf1_defconfigelf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make imx6ull_elf1_defconfigelf@ubuntu:~/work/ELF/linux-4.1.15-elf1$ make zImage

      編譯完成以后把新的zImage拷貝到開發(fā)板替換掉舊的zImage,保存并重啟。

      root@ELF1:~# cp /run/media/sda1/zImage /run/media/mmcblk1p1root@ELF1:~# syncroot@ELF1:~# reboot

      啟動完成以后,查看當(dāng)前頻率:

      root@ELF1:~#?cat?/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq198000

      當(dāng)前CPU頻率為198MHz了。查看scaling_governor文件看一下當(dāng)前的調(diào)頻策略:

      root@ELF1:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorpowersave

      當(dāng)前的CPU調(diào)頻策略為powersave,也就是省電模式,該模式下系統(tǒng)運(yùn)行在最低頻率,功耗相應(yīng)降低,但系統(tǒng)性能會受影響。

      到這里就完成了對CPU的固定頻率,希望本文提供的方法能夠?qū)ζ聊磺暗男』锇橛兴鶐椭?/span>

      其它推薦:

      推薦閱讀:

      /* 53客服*/ /* 百度統(tǒng)計(jì)*/ /* 百度站長*/
      <ul id="gu0q4"></ul>
    • <strike id="gu0q4"><abbr id="gu0q4"></abbr></strike>
      <strike id="gu0q4"><menu id="gu0q4"></menu></strike>
      <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
      <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
      • <samp id="gu0q4"></samp>