一. Linux内核移植
正点原子 ALPHA开发板已经添加到 Linux内核里面去了,前面文章关于如何添加已经掌握。但是,还有一些驱动的问题需要修改。
二. Linux内核移植之更改CPU主频
"ALPHA开发板系统启动" 文章最后,开发板可以正常从 Nand-Flash启动了。这里继续上一篇文章中开发板的状态。在此基础上,设置 CPU的主频。
1. 设置 I.MX6U-ALPHA 开发板工作在 792MHz
(1) 进入 开发板调试串口终端,如下所示:
root@ATK-IMX6U:~# icm20608: version magic '4.1.15-g19f085b-dirty SMP preempt mod_unload modversions ARMv7 p2v8 ' should be '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 '
root@ATK-IMX6U:~#
root@ATK-IMX6U:~#
root@ATK-IMX6U:~# cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 12.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
Hardware : Freescale i.MX6 Ultralite (Device Tree)
Revision : 0000
Serial : 0000000000000000
root@ATK-IMX6U:~#
root@ATK-IMX6U:~# cd /sys/bus/cpu/devices/cpu0/cpufreq
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq# ls
affected_cpus related_cpus scaling_governor
cpuinfo_cur_freq scaling_available_frequencies scaling_max_freq
cpuinfo_max_freq scaling_available_governors scaling_min_freq
cpuinfo_min_freq scaling_cur_freq scaling_setspeed
cpuinfo_transition_latency scaling_driver stats
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq#
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq# cat scaling_governor
performance
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq# cat cpuinfo_cur_freq
792000
查看 处理器支持的主频率列表有哪些:
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq# cat scaling_available_frequencies
198000 396000 528000 792000
(4) 更改当前CPU的调频策略。
注意:选用哪种调频策略可以在图形化界面进行配置,也可以通过"XXX_Defconfig"配置文件进行配置。
进入 之前添加了ALPHA开发板的 (NXP官方的)kernel内核源码根目录,进入 /arch/arm/configs目录下,打开 nand-Flash版开发板对应的配置文件:imx_v7_alientek_nand_defconfig。
通过图形化界面配置 Linux 内核的 CPU 调频策略,进入Kernel源码根目录下,输入“make menuconfig”命令,打开 Linux 内核的图形化配置界面如下:
进入 如下界面上的路径:
CPU Power Management
-> CPU Frequency scaling
-> Default CPUFreq governor
取消 "performance" 项,选中 "ondemand"项,如下所示:
保存更改后的配置:
root@ATK-IMX6U:~# cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 8.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
Hardware : Freescale i.MX6 Ultralite (Device Tree)
Revision : 0000
Serial : 0000000000000000
root@ATK-IMX6U:~#
(5) 重新编译 kernel源码,生成 zImage镜像再在开发板上运行:
root@ATK-IMX6U:~# cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 8.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
Hardware : Freescale i.MX6 Ultralite (Device Tree)
Revision : 0000
Serial : 0000000000000000
root@ATK-IMX6U:~#
进入/sys/bus/cpu/devices/cpu0/cpufreq目录下:
查看当前CPU的调频策略:
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq# cat scaling_governor
ondemand
查看 CPU 的当前频率:
root@ATK-IMX6U:/sys/bus/cpu/devices/cpu0/cpufreq# cat cpuinfo_cur_freq
396000
可以看出,当前CPU的调频策略已经从 之前"performance" 更改为 "ondemand"模式。
当前CPU频率是 396Mhz。跟之前比,降低了。