当前位置: 首页 > news >正文

20251110给荣品RD-RK3588开发板跑Rockchip的原厂Android13系统时熟悉散热风扇

20251110给荣品RD-RK3588开发板跑Rockchip的原厂Android13系统时熟悉散热风扇
2025/11/10 20:49


缘起:需要通过模拟PWM模式控制散热风扇的风力大小!
首先要先学会如何打开/关闭【启/停】风扇。


看原理图,风扇的控制GPIO引脚为GPIO4A7。
也就是:32*4+8*0+7=135


【精简的LOG:操作步骤】
rk3588_t:/ # cd /sys/class/gpio/
rk3588_t:/sys/class/gpio # ll
rk3588_t:/sys/class/gpio # echo 135 > export
rk3588_t:/sys/class/gpio # ll
rk3588_t:/sys/class/gpio # cd gpio135
rk3588_t:/sys/class/gpio/gpio135 # ll
rk3588_t:/sys/class/gpio/gpio135 # cat direction
in
rk3588_t:/sys/class/gpio/gpio135 # cat value
0
rk3588_t:/sys/class/gpio/gpio135 #
rk3588_t:/sys/class/gpio/gpio135 # echo out > direction
rk3588_t:/sys/class/gpio/gpio135 # echo 1 > value
rk3588_t:/sys/class/gpio/gpio135 # echo 0 > value
rk3588_t:/sys/class/gpio/gpio135 # echo 1 > value

rk3588_t:/sys/class/gpio/gpio135 #


Microsoft Windows [版本 10.0.19045.6216]
(c) Microsoft Corporation。保留所有权利。

C:\Users\QQ>adb shell
adb server version (40) doesn't match this client (41); killing...
* daemon started successfully
rk3588_t:/ $ su
rk3588_t:/ #
rk3588_t:/ # ll
total 88
drwxr-xr-x   2 root   root       4096 2025-11-07 05:56 acct
drwxr-xr-x  27 root   root        560 2021-01-01 12:07 apex
lrw-r--r--   1 root   root         11 2025-11-07 05:56 bin -> /system/bin
lrw-r--r--   1 root   root         50 2025-11-07 05:56 bugreports -> /data/user_de/0/com.android.shell/files/bugreports
drwxrwx---   6 system cache      4096 2021-01-01 12:07 cache
drwxr-xr-x   3 root   root          0 1970-01-01 00:00 config
lrw-r--r--   1 root   root         17 2025-11-07 05:56 d -> /sys/kernel/debug
drwxrwx--x  50 system system     4096 2025-11-07 05:56 data
drwx------   8 root   system      160 2021-01-01 12:07 data_mirror
drwxr-xr-x   2 root   root       4096 2025-11-07 05:56 debug_ramdisk
drwxr-xr-x  26 root   root       3500 2025-11-07 05:56 dev
lrw-r--r--   1 root   root         11 2025-11-07 05:56 etc -> /system/etc
lrwxr-x---   1 root   shell        16 2025-11-07 05:56 init -> /system/bin/init
-rwxr-x---   1 root   shell       463 2025-11-07 05:56 init.environ.rc
drwxr-xr-x  11 root   root        260 2021-01-01 12:07 linkerconfig
drwx------   2 root   root      16384 2025-11-07 05:56 lost+found
drwxr-xr-x  13 root   root       4096 2021-01-01 12:07 metadata
drwxr-xr-x  16 root   system      340 2021-01-01 12:07 mnt
drwxr-xr-x   5 root   root       4096 2025-11-07 05:56 odm
drwxr-xr-x   4 root   root       4096 2025-11-07 05:56 odm_dlkm
drwxr-xr-x   2 root   root       4096 2025-11-07 05:56 oem
drwxr-xr-x   2 root   root       4096 2025-11-07 05:56 postinstall
dr-xr-xr-x 403 root   root          0 2021-01-01 12:07 proc
drwxr-xr-x   9 root   root       4096 2025-11-07 05:56 product
lrw-r--r--   1 root   root         21 2025-11-07 05:56 sdcard -> /storage/self/primary
drwxr-xr-x   2 root   root       4096 2025-11-07 05:56 second_stage_resources
drwx--x---   4 shell  everybody    80 2021-01-01 12:07 storage
dr-xr-xr-x  15 root   root          0 2021-01-01 12:07 sys
drwxr-xr-x  13 root   root       4096 2025-11-07 05:56 system
drwxr-xr-x   4 root   root       4096 2025-11-07 05:56 system_dlkm
drwxr-xr-x   9 root   root       4096 2025-11-07 05:56 system_ext
drwxr-xr-x  10 root   root       4096 2025-11-07 05:56 vendor
drwxr-xr-x   5 root   root       4096 2025-11-07 05:56 vendor_dlkm
rk3588_t:/ # cd /sys/class/gpio/
rk3588_t:/sys/class/gpio # ll
total 0
--w------- 1 root root 4096 2025-11-07 05:57 export
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.1.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 2025-11-07 05:57 unexport
rk3588_t:/sys/class/gpio # echo 135 > export
rk3588_t:/sys/class/gpio # ll
total 0
--w------- 1 root root 4096 2025-11-07 05:57 export
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpio135 -> ../../devices/platform/pinctrl/fec50000.gpio/gpiochip4/gpio/gpio135
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.1.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root    0 2025-11-07 05:57 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 2025-11-07 05:57 unexport
rk3588_t:/sys/class/gpio # cd gp
gpio135/      gpiochip0/    gpiochip128/  gpiochip32/   gpiochip509/  gpiochip64/   gpiochip96/
rk3588_t:/sys/class/gpio # cd gpio135
rk3588_t:/sys/class/gpio/gpio135 # ll
total 0
-rw-r--r-- 1 root root 4096 2025-11-07 05:58 active_low
lrwxrwxrwx 1 root root    0 2025-11-07 05:58 device -> ../../../gpiochip4
-rw-r--r-- 1 root root 4096 2025-11-07 05:58 direction
-rw-r--r-- 1 root root 4096 2025-11-07 05:58 edge
drwxr-xr-x 2 root root    0 2025-11-07 05:58 power
lrwxrwxrwx 1 root root    0 2025-11-07 05:58 subsystem -> ../../../../../../../class/gpio
-rw-r--r-- 1 root root 4096 2025-11-07 05:58 uevent
-rw-r--r-- 1 root root 4096 2025-11-07 05:58 value
rk3588_t:/sys/class/gpio/gpio135 # cat direction
in
rk3588_t:/sys/class/gpio/gpio135 # cat value
0
rk3588_t:/sys/class/gpio/gpio135 #
rk3588_t:/sys/class/gpio/gpio135 # echo out > direction
rk3588_t:/sys/class/gpio/gpio135 # echo 1 > value
rk3588_t:/sys/class/gpio/gpio135 # echo 0 > value
rk3588_t:/sys/class/gpio/gpio135 # echo 1 > value

rk3588_t:/sys/class/gpio/gpio135 #


请问 RD-RK3588-MID控制 风扇的 部分是 PWM输出的吗?

温度 越高?PWM的占空比越高?[破涕为笑][疑问]
https://doc.rpdzkj.cn/#/zh_cn/%E7%91%9E%E8%8A%AF%E5%BE%AE%E7%B3%BB%E5%88%97/rk3566-rk3568/8.%E6%8E%A5%E5%8F%A3%E4%BD%BF%E7%94%A8?id=%e9%a3%8e%e6%89%87
https://doc.rpdzkj.cn/#/zh_cn/%E7%91%9E%E8%8A%AF%E5%BE%AE%E7%B3%BB%E5%88%97/rk3588-rk3588s/7.%E6%8E%A5%E5%8F%A3%E4%BD%BF%E7%94%A8?id=%e9%a3%8e%e6%89%87

不是的,只是在达到对应温度后,拉高或者拉低引脚风扇引脚启动
https://doc.rpdzkj.cn/#/zh_cn/%E7%91%9E%E8%8A%AF%E5%BE%AE%E7%B3%BB%E5%88%97/rk3588-rk3588s/7.%E6%8E%A5%E5%8F%A3%E4%BD%BF%E7%94%A8
风扇
风扇是根据温度的增长而打开的,当温度达到设定的温度时,风扇就会自动打开,风扇低于设定温度时,就会在设定延迟时间后关闭

    fan_gpio_control {
            compatible = "fan_gpio_control";
            gpio-pin = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
            thermal-zone = "cpu-thermal";
            threshold-temp = <60000>; //60C
            running-time = <10000>; //10s
            status = "okay";
        };
我想知道 默认 GPIO1C2是否具有 PWM输出?
普通GPIO口是否可以 模拟 PWM输出?
以便 【根据SOC的温度】调整占空比 控制风扇的风扇?
看RD-RK3588原理图,是可以配置成pwm功能来使用


【DTS】
Y:\new_disk_4t\wyb\RD-RK3588\orig_RD-rk3588_Android13\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588\rd-rk3588.dts
    fan_gpio_control {
            compatible = "fan_gpio_control";
            gpio-pin = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
            temperature-device = "soc-thermal";
            temp-on = <60000>;
            time = <10000>;
            status = "okay";
        };


【驱动程序】
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/orig_RD-rk3588_Android13/kernel-5.10$ grep rp_fan . -R
grep: ./arch/arm64/boot/Image: 匹配到二进制文件
./drivers/rongpin/Makefile:obj-$(CONFIG_RP_FAN)           += rp_fan_power.o
./drivers/rongpin/rp_fan_power.c:    //Create proc/rp_fan
./drivers/rongpin/rp_fan_power.c:    root_entry_fan = proc_mkdir("rp_fan", NULL);
jinhualong@jinhualong-LEGION-REN7000K-26IRX:~/new_disk_4t/wyb/RD-RK3588/orig_RD-rk3588_Android13/kernel-5.10$ 

http://www.dtcms.com/a/592558.html

相关文章:

  • UniApp自定义Android基座原理及流程
  • Ganache-CLI以太坊私网JSON-RPC接口执行环境搭建
  • Android 系统超级实用的分析调试命令
  • 【ZeroRange WebRTC】WebRTC 加密安全总览:对称/非对称、数字签名、证书、SHA/HMAC、随机数
  • 【ZeroRange WebRTC】数字签名与 WebRTC 的应用(从原理到实践)
  • 承德网站制作公司做国外的网站有什么不用钱的
  • 破解遗留数据集成难题:基于AWS Glue的无服务器ETL实践
  • Rust 的所有权系统,是一场对“共享即混乱”的编程革命
  • 【Rust 探索之旅】Rust 库开发实战教程:从零构建高性能 HTTP 客户端库
  • API 设计哲学:构建健壮、易用且符合惯用语的 Rust 库
  • 横沥镇做网站wordpress中文说明书
  • 先做个在线电影网站该怎么做贵阳做网站软件
  • 【字符串String类大集合】构造创建_常量池情况_获取方法_截取方法_转换方法_String和基本数据类型互转方法
  • Http请求中Accept的类型详细解析以及应用场景
  • 升鲜宝 供应链SCM 一体化自动化部署体系说明
  • grafana配置redis数据源预警误报问题(database is locked)
  • 拒绝繁琐,介绍一款简洁易用的项目管理工具-Kanass
  • 测试自动化新突破:金仓KReplay助力金融核心系统迁移周期缩减三周
  • 大语言模型入门指南:从科普到实战的技术笔记(1)
  • 大模型原理之Transformer进化历程与变种
  • 2025-简单点-ultralytics之LetterBox
  • 网站开发经济可行性分析石龙做网站
  • wordpress中国优化网络优化的目的
  • 【Linux网络】Socket编程TCP-实现Echo Server(下)
  • 路由协议的基础
  • ios 26的tabbar 背景透明
  • Hadoop大数据平台在中国AI时代的后续发展趋势研究CMP(类Cloudera CDP 7.3 404版华为鲲鹏Kunpeng)
  • Apache Jena:利用 SPARQL 查询与推理机深度挖掘知识图谱
  • Regression vs. Classification|回归vs分类
  • Nine.fun × AIOT重磅联手,打造健康娱乐新经济