news 2026/7/13 21:26:11

【rk3506】解决cpufreq目录不存在问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【rk3506】解决cpufreq目录不存在问题

问题描述

最近和应用同事联调,反馈日志里一直报这两个错,记录一下完整排查过程。:

open/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq:No such file ordirectory(2)open/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq:No such file ordirectory(2)

排查步骤

1、先看内核配置,是不是没开 cpufreq?

第一反应先去核对内核配置,毕竟这种 sysfs 节点的问题,大概率是配置没开。检查了.config文件,这几个关键配置都已经是开启状态:

CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_ARM_ROCKCHIP_CPUFREQ=y

配置没问题,那说明不是 “没开驱动” 这么简单,得往下挖。

2、设备树才是关键!RK3506 的 DVFS 链路

查了下 Rockchip 的文档才反应过来,RK3506 的 CPU 动态调频调压(DVFS)是有完整链路依赖的,不是开了配置就完事。
整个链路是这样的:
vdd_arm(PWM调压) → pwm0_4ch_0(PWM控制器通道) → rm_io21_pwm0_ch0(引脚复用配置)

这三个环节是环环相扣的,只要缺了一环,内核就没法建立 “CPU 频率 ↔ 核心电压” 的映射,没法调压,自然也就没法启用 cpufreq 驱动,最后就表现为/sys/devices/system/cpu/cpu0/cpufreq这个目录直接不生成。

翻了下设备树,原厂 demo 的设备树里是完整配置了这部分的:

vdd_arm:vdd-arm{compatible="pwm-regulator";pwms=<&pwm0_4ch_0050001>;regulator-name="vdd_arm";regulator-min-microvolt=<710000>;regulator-max-microvolt=<1207000>;regulator-init-microvolt=<1011000>;regulator-always-on;regulator-boot-on;regulator-settling-time-up-us=<250>;pwm-supply=<&vcc_sys>;};&pwm0_4ch_0{pinctrl-names="active";pinctrl-0=<&rm_io21_pwm0_ch0>;status="okay";};rm_io21{/omit-if-no-ref/rm_io21_pwm0_ch0:rm-io21-pwm0-ch0{rockchip,pins=<0RK_PC545&pcfg_pull_none_drv_level_1>;};};

排查发现,我们基于原厂rk3506 demo板设计的原理图上是不支持CPU 动态调频调压。

3、排查到根因:硬件设计不支持 DVFS

拿着设备树去核对我们自己的原理图,才发现问题:我们基于原厂 demo 板做的硬件设计,压根就没接 PWM 调压电路,不支持 CPU 动态调频调压。
也就是说,设备树里的这部分配置,在我们的硬件上是不成立的,内核没法正常初始化 cpufreq 驱动,才会出现 sysfs 节点不存在的问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 21:26:07

Unity 2D游戏高效寻路:导航网格配置与优化全攻略

1. 项目概述&#xff1a;为什么2D寻路需要导航网格&#xff1f;很多刚接触Unity 2D游戏开发的朋友&#xff0c;一听到“导航网格”&#xff08;NavMesh&#xff09;&#xff0c;第一反应往往是&#xff1a;“这不是3D游戏里用的吗&#xff1f;2D游戏用A算法不就行了&#xff1f…

作者头像 李华
网站建设 2026/7/13 21:24:55

STL中vector的使用

vector是C 标准模板库&#xff08;STL&#xff09;的一个容器&#xff0c;它本质是一个封装了动态内存管理的数组&#xff0c;既保留了原生数组随机访问的高效性&#xff0c;又解决了固定长度、手动管理内存的痛点。一&#xff0c;vector是什么std::vector 是 STL 中的顺序容器…

作者头像 李华
网站建设 2026/7/13 21:22:31

斯坦福大学:让AI学会“记笔记“,竟能让小模型打败顶级大模型?

这项由斯坦福大学团队完成的研究以预印本形式发布于2026年7月1日&#xff0c;论文编号为arXiv:2607.01224&#xff0c;有兴趣深入了解的读者可以通过该编号查询完整论文。人类有一种奇妙的能力&#xff0c;叫做"元记忆"——你知道自己记住了什么、忘记了什么&#xf…

作者头像 李华
网站建设 2026/7/13 21:20:30

如何用win-acme解决Windows服务器SSL证书自动化难题:完整实践指南

如何用win-acme解决Windows服务器SSL证书自动化难题&#xff1a;完整实践指南 【免费下载链接】win-acme Automate SSL/TLS certificates on Windows with ease 项目地址: https://gitcode.com/gh_mirrors/wi/win-acme 你是否在为Windows服务器上繁琐的SSL证书管理而头疼…

作者头像 李华
网站建设 2026/7/13 21:19:50

Ruby JSON库高级用法:自定义类型序列化与反序列化终极指南

Ruby JSON库高级用法&#xff1a;自定义类型序列化与反序列化终极指南 【免费下载链接】json JSON implementation for Ruby 项目地址: https://gitcode.com/gh_mirrors/json13/json JSON作为现代Web开发中最常用的数据交换格式&#xff0c;在Ruby开发中扮演着至关重要的…

作者头像 李华