This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/processor-SDK-AM335X:rtcWAKE 命令错误

Guru**** 2589265 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/587110/linux-processor-sdk-am335x-rtcwake-command-error

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

您好!

我正在研究最新的 ti sdk ti-processor-sdk-linux-am335x-evm-03.02.00.05-linux-x86-64安装程序、希望使用 rtcwake 命令、但遇到错误。

有人能不能向我推荐麦经龙的工作所需的更改。

以下是日志:

root@ngt:~ rtcwake -d /dev/rtc0 -m standby -s 5.

从 2000年1月1日星期六00:22:41的"待机"唤醒
rtcwake:短写入

谢谢、此致

Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Deshvir、

    您是否使用 TI 电路板(AM335x EVM、SK)或定制电路板? 您的 AM335x 处理器是什么器件版本?

    是否可以使用以下命令尝试从暂停状态唤醒、是否有任何区别?

    rtcwake -d /dev/rtc0 -m mem -s 5.

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    我正在使用定制板。 器件版本为器件版本2.1

     

    以下是日志:

    对于器件版本:

    root@ngt:~# devmem2 0x44E10600
    /dev/mem 已打开。
    映射到地址 bb6f3d000的内存。
    在地址 0x44E10600 (bb6f3d600)处读取:0x2B94402E

    用于 rtcwake

    root@ngt:~ rtcwake -d /dev/rtc0 -m mem -s 5.

    2000年1月 1日:02:32星期六从"mem"唤醒
    rtcwake:短写入

     

    谢谢、此致

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Deshvir、

    是否使用默认的 TI 根文件系统?

    TI-PROCESSOR-SDK-LINUX-AM335x-EVM-03.02.00.05/文件系统/tisdk-rootfs-image-am335x-evm

    此根文件系统包含正确的 rtcwake 命令(busybox 二进制文件)。 如果您正在使用自己版本的 busybox、则应该对其进行修补、请参阅下面的 wiki 页面以了解更多信息:

    processors.wiki.ti.com/.../Linux_Core_Power_Management_User's_Guide_(v4.1)

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    我不使用默认文件系统。 但我尝试了在 dafault 文件系统中可用的 busybox 二进制文件、并得到相同的错误。 我需要检查内核配置、我会告诉您。

    如果您知道任何特定的内核配置、请告诉我。

    谢谢、此致

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    在进行写操作之前、您是否检查了"/dev/rtc0 "是否存在?

    总线错误似乎是总线框中的通用返回值、未提供详细信息、因此会引起混淆。

    RTC 很可能是一个模块、因此如果不自动加载、您需要复制和插入模块。
    检查是否内置了(CONFIG_RTC_DRV_OMAP=y)否则
    执行"lsmod | grep rtc"、您应该会看到"rtc_omap"
    如果不是、则不加载 RTC 模块。
    执行"depmod -a 和"modprobe RTC_OMA"-如果没有错误、则执行"lsmod | grep RTC_OMA"

    如果出现错误-则没有这样的文件/目录
    编译模块并将其复制到 rootfs "lib/模块"

    制造模块

    使 modules_install install_modd_path=
    通常文件夹名是您的 rootfs 所在的位置。 如果您遇到权限问题,请安装到临时文件夹并将其复制到 rootfs。


    此致、
    RK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 RK、

    很抱歉、我昨天已经离开了...我会尝试您的建议并告诉您结果。

    谢谢、此致
    Deshvir Malik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 RK、

    /dev/rtc0存在

     

    CONFIG_RTC_DRV_OMAP=y 存在于.config 文件中

    以下是日志

    root@ngt:~# cd /dev/rtc

    RTC rtc0  

    root@ngt:~# lsmod | grep RTC

    root@ngt:~# cd /lib/mod

    modprobe.d/模块/   

    root@ngt:~# cd /lib/mod

    modprobe.d/模块/   

    root@ngt:~# cd /lib/modules

    3.12.10-ti2013.12.01/4.4.3.32-gadde2ca9f8/  

    root@ngt:~# cd /lib/modules/4.4.32-gadde2ca9f8

    构建         modules.builtin.bin modules.softdep

    内核/        modules.dep      modules.symbols

    modules.alias    modules.dep.bin   modules.symbols.bin

    modules.alias.bin  modules.devname   来源

    modules.builtin   modules.order     

    root@ngt:~# cd /lib/modules/4.4.32-gadde2ca9f8/kernel/drivers

    root@ngt:/lib/modules/4.4.32-gadde2ca9f8/kernel/drivers ls

    ATA    char   hid    介质   网络    SPI    看门狗

    基本   加密  hwmon   存储  器电源   uio

    蓝牙 extcon  IIO    MFD    RTC    USB

    CDROM   GPU    输入   MTD    SCSI   W1

    root@ngt:/lib/modules/4.4.32-gadde2ca9f8/kernel/drivers # CD RTC/

    root@ngt:/lib/modules/4.4.32-gadde2ca9f8/kernel/drivers/rtc ls

    RTC-ds1307.ko RTC-Palmas.ko

     

    另一方面,在旧的 ti-sdk"ti-sdk-am335x-evm-07.00.00.00.00.00.00.00.00.00.00"中,RTC 正在运行,以下是日志

    工作版本中的日志

    umount:无法 umount /mnt/.psplash:无效参数
    root@ngt:~#
    root@ngt:~#
    root@ngt:~# cd /dev/rtc
    RTC  rtc0  
    root@ngt:~# cd /dev/rtc0
    -sh:cd:/dev/rtc0:不是目录
    root@ngt:~# lsmod | grep RTC
    root@ngt:~# cd /lib/mod
    modprobe.d/模块/    
    root@ngt:~# cd /lib/modules/3.12.10-ti2013.12.01
    root@ngt:/lib/modules/3.12.10-ti2013.12.01 ls
    构建               modules.dep.bin     modules.seriomap
    内核              modules.devname     modules.softdep
    modules.alias       modules.iee1394map modules.symbols
    modules.alias.bin   modules.inputmap    modules.symbols.bin
    modules.builtin     modules.isapnpmap   modules.usbmap
    modules.builtin.bin modules.ofmap       源代码
    modules.ccwmap      modules.order       更新
    modules.dep         modules.pcimap
    root@ngt:/lib/modules/3.12.10-ti2013.12.01 CD 内核/驱动程序/
    root@ngt:/lib/modules/3.12.10-ti2013.12.01/kernel/drivers ls
    hwmon IIO   介质 网络   phy   USB
    root@ngt:/lib/modules/3.12.10-ti2013.12.01/kernel/drivers

     

    谢谢、此致

    Deshvir Malik

     

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    好的、既然我们已经确定内置了 RTC、下一步是检查 rtcwake 实用程序是否存在问题。

    我看到您提到不同的 rtcwake 二进制文件都发生了这种情况、但您能否检查两者是否都来自 Busybox。

    更多的挖掘显示 Busybox 输出错误"短写入"。

    有关错误的更多详细信息、请参阅以下邮件链

    http://lists.busybox.net/pipermail/busybox/2016-September/084619.html


    它指出、当我们离开空间时、通常会抛出错误-使用 dd、wget 等命令。

    但我在一段时间前使用 基于 ramdisk 的小 FS 时看到了这个问题、当我使用所有模块切换到全 FS 时、这个问题得到了解决。

    我希望您先检查这些模块。

    您能否使用 rtcwake 表 单"util-linux"进行检查、并告知我们您是否仍然看到问题?

    您可以在此处获取源文件 https://www.kernel.org/pub/linux/utils/util-linux/v2.29/ 、并且需要为 ARM 进行交叉编译。

    此致、

    RK

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 RK、

    我也会查看 util-linux、但在此之前、我想告诉您一些观察结果、如下所述。 在下面两种情况下、唯一的区别是汇流箱(如 Pavel 所建议)。

    如果我使用文件系统、但使用引导加载程序、内核、新 SDK 中的模块和旧总线框、我将获得以下日志

    root@ngt:~#

    root@ngt:~ rtcwake -s 10 -d /dev/rtc0 -m poweroff

    [17.149507] *** OMAP_RTC_READ_TIME***

    [17.153381] *** RTC_WAIT_NOT _BUSY***

    [17.156893]*** OMAP_RTC_READ_TIME_RAW***

    [17.160971]*** bcd2tm***

    [17.163713]*** OMAP_RTC_READ_TIME***

    [17.167478] *** RTC_WAIT_NOT _BUSY***

    [17.170985]*** OMAP_RTC_READ_TIME_RAW***

    [17.174942]*** bcd2tm***

    [17.177609] *** OMAP_RTC_READ_TIME***

    [17.181201] *** RTC_WAIT_NOT _BUSE***

    [17.184699]*** OMAP_RTC_READ_TIME_RAW***

    [17.188658] *** bcd2tm***

    [17.191200]*** OMAP_RTC_SET_ALART***

    [17.194786]*** tm2bcd***

    [17.197338] *** RTC_WAIT_NOT _BUSY***

    [17.200843]*** OMAP_RTC_ALARM_IRQ_ENABLE***

    [17.205131] *** RTC_WAIT_NOT _BUSY***

    [17.208637]*** RTC_WAIT_NOT _BUSY***

    从 2000年1月1日星期六00:00:27的"断电"唤醒

    rtcwake:短写入

    root@ngt:~#[27.863945]*** RTC_IRQ***

    [27.866636]*** OMAP_RTC_READ_TIME***

    [27.870226] *** RTC_WAIT_NOT _BUSY***

    [27.873727]*** OMAP_RTC_READ_TIME_RAW***

    [27.877689] *** bcd2tm***

    [27.880239]*** OMAP_RTC_ALARM_IRQ_ENABLE***

    [27.884436]*** RTC_WAIT_NOT _BUSY***

    [27.887936]*** RTC_WAIT_NOT _BUSY***

    root@ngt:~#

    如果我使用文件系统、但使用引导加载程序、内核、新 SDK 中的模块以及最新 SDK 中的 busybox 格式文件系统、我会得到以下日志

    root@ngt:~ rtcwake -s 10 -d /dev/rtc0 -m poweroff
    [24.433329]***  OMAP_RTC_READ_TIME***
    [24.437123]***  RTC_WAIT_NOT _BUSY***
    [24.440630]***  OMAP_RTC_READ_TIME_RAW***
    [24.444568]***  bcd2tm***
    [24.447326]***  OMAP_RTC_READ_TIME***
    [24.450920]***  RTC_WAIT_NOT _BUSY***
    [24.454419]***  OMAP_RTC_READ_TIME_RAW***
    [24.458506]  *** bcd2tm***
    [24.461070]***  OMAP_RTC_READ_TIME***
    [24.46457]***  RTC_WAIT_NOT _BUSY***
    [24.468157]  *** OMAP_RTC_READ_TIME_RAW***
    [24.472139]  *** bcd2tm***
    [24.474682]  *** OMAP_RTC_SET_ALART***
    [24.478285]  *** tm2bcd***
    [24.480826]***  RTC_WAIT_NOT _BUSY***
    [24.484331]***  OMAP_RTC_ALARM_IRQ_ENABLE***
    [24.488543]***  RTC_WAIT_NOT _BUSY***
    [24.492044]***  RTC_WAIT_NOT _BUSY***
    从 2000年1月1日星期六00:00:34的"断电"唤醒
    警告:无法确定运行级别-执行软关机
     (最好使用关机而不是从命令行关机)
    INIT:发送会处理术语信号
    init:SensidStipping telnet 守护程序。
    正在停止系统消息总线:[31.236309]  *** OMAP_RTC_SET_TIME***
    [31.239847]  *** tm2bcd***
    [31.242389]  *** RTC_WAIT_NOT _BUSY***
    [31.246079]***  OMAP_RTC_READ_TIME***
    [31.249673]***  RTC_WAIT_NOT _BUSY***
    [31.253172]  *** OMAP_RTC_READ_TIME_RAW***
    [31.257503]  *** bcd2tm***
    [31.260067]***  OMAP_RTC_READ_TIME***
    [31.263653]  *** RTC_WAIT_NOT _BUSY***
    [31.267152]  *** OMAP_RTC_READ_TIME_RAW***
    [31.271126]  *** bcd2tm***
    [31.273669]***  OMAP_RTC_SET_ALART***
    [31.277273]  *** tm2bcd***
    [31.279814]***  RTC_WAIT_NOT _BUSY***
    打开/dev/fb0时出错:没有这样的文件或目录
    正在停止 syslogd/klogd:未找到 syslogd;没有任何内容被终止
    正在停止 thttpd。
    ALSA:正在存储混频器设置...
    /usr/sbin/alsactl:/usr/lib/libasound.so.2:无可用版本信息(/usr/sbin/alsactl 需要)
    正在解算网络接口... ifdown:未配置接口 lo
    ifdown:未配置接口 eth0
    完成。
    [32.370138]  wlcore:使用反相中断逻辑:8.
    [32.430316]  wlcore:PHY 固件版本:版本8.2.0.237
    [32.528514]  wlcore:固件已启动(版本8.9.0.0.70)
    [32.543218]  IPv6:ADDRCONF (NETDEV_UP):wlan0:链路未就绪
    udhcpc (v1.24.1)已启动
    正在发送发现...
    [34.842011]  *** RTC_IRQ***
    [34.844705]  *** OMAP_RTC_READ_TIME***
    [34.848318]***  RTC_WAIT_NOT _BUSY***
    [34.851821]***  OMAP_RTC_READ_TIME_RAW***
    [34.855772]  *** bcd2tm***
    [34.858322]  *** OMAP_RTC_ALARM_IRQ_ENABLE***
    [34.862518]  *** RTC_WAIT_NOT _BUSY***
    [34.866018]  *** RTC_WAIT_NOT _BUSY***
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...
    正在发送发现...

    继续...

    您能否评论一下这一观察结果、并且电流没有下降。

     

    谢谢、此致

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 RK、

    在 util-linux 中交叉编译 rtcwake 需要哪些选项?

    此致
    Deshvir Malik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Deshvir、

    我在 AM335x TI EVM 上使用 PSDK3.02的内核和 rootfs 尝试了此命令。 工作正常:

    root@AM335x-EVM:~# ls -al /dev/rtc0

    Crw----   1  根根   根254、 0解码14 23:15 /dev/rtc0

    root@AM335x-EVM:~ rtcwake -d /dev/rtc0 -m mem -s 5.

    rtcwake:假设 RTC 使用 UTC...

    rtcwake:在 2000年1月1日星期六00:01:14使用/dev/rtc0从"mem"唤醒

    [92.943426] PM:正在同步文件系统... 完成。

    [93.146331] 冻结用户空间进程... (已过0.009秒)

    完成。

    [93.158393] 冻结剩余可自由执行的任务... (分度值0.001

    秒)完成。

    [93.167815] 暂停控制台(使用 NO_console_suspend 进行调试)

    [93.304484] PM:器件挂起在128.283毫秒后完成

    [93.309640] PM:5.098毫秒后器件延迟挂起完成

    [93.314858] PM:5.163m 秒后器件挂起完成

    [93.314876] PM:成功地将所有电源域置于目标状态

    [93.336953] PM:21.889毫秒后器件的 noirq 恢复完成

    [93.341550] PM:3.974ms 后设备的早期恢复完成

    [93.343893] net eth0:正在初始化 cpsw 版本1.12 (0)

    [93.343918] net eth0:初始化 cpsw ale 版本1.4

    [93.343934] 净 eth0:ALE 表大小1024

    [93.417889] net eth0:找到 PHY:id:0x4dd074

    [93.418037] libphy:找不到 PHY 4a101000.MDIO:01

    [93.418060] 网络 eth0:从机1上找不到 PHY "4a101000.mdio:01"、错误-19

    [93.657349] PM:315.743毫秒后设备恢复完成

    [93.734143] 正在重新启动任务... 完成。

    根目录@AM335x-EVM:~编号

     

    您是否尝试过 PSDK3.02中的内核和 rootfs?


    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    我们还使用最新的 SDK ti-processor-sdk-linux-am335x-evm-03.02.00.05-linux-x86-Install.bin。  

    我们已从 ti-sdk-am335x-evm-07.00.00.00迁移 ti-processor-sdk-linux-am335x-evm-03.02.00.05、并且旧 SDK RTC 正在运行。

    在我的定制板中、不存在 PMIC 支持。

    我已使用默认文件系统中的最新 busybox (busybox、busybox.nosuid、busybox.suid)二进制文件替换了旧的 busybox 二进制文件。

    但我们仍然面临相同的误差。

    日志:

    root@ngt:~/test# cd
    root@ngt:~ rtcwake -d /dev/rtc0 -m standby -s 5.
    从 2000年1月1日星期六00:02:04的"待机"唤醒
    rtcwake:短写入
    root@ngt:~ rtcwake -d /dev/rtc0 -m mem -s 5.                                                                                                   
    2000年1月 1日:02:14星期六从"mem"唤醒
    rtcwake:短写入
    root@ngt:~ rtcwake -s 10 -d /dev/rtc0 -m poweroff
    从 2000年1月1日星期六00:02:30的"断电"唤醒
    警告:无法确定运行级别-执行软关机
     (最好使用关机而不是从命令行关机)
    INIT:发送会处理术语信号
    init:SensidStipping telnet 守护程序。
    正在停止系统消息总线:打开/dev/fb0时出错:没有此类文件或目录
    正在停止 syslogd/klogd:未找到 syslogd;没有任何内容被终止
    正在停止 thttpd。
    ALSA:正在存储混频器设置...
    /usr/sbin/alsactl:/usr/lib/libasound.so.2:无可用版本信息(/usr/sbin/alsactl 需要)
    /usr/sbin/alsactl:save_state:1580:找不到声卡...
    正在解算网络接口... ifdown:未配置接口 lo
    ifdown:未配置接口 eth0
    完成。
    ifconfig:SIOCGIFFLAGS:无此类设备
    GPIO/set-value:没有这样的文件或目录
    发送所有数据将处理术语信号...
    发送所有数据将处理 kill 信号...
    正在卸载远程文件系统...
    正在禁用交换...
    正在卸载本地文件系统...
    [153.242604] EXT4-FS (mmcblk0p2):已重新安装。 opts:data= ordered
    [155.554076] 重新启动:关闭电源
    [155.557191] 系统将在大约1秒内进入 POWER_OFF 状态
    [158.056772] RTC_POWER_OFF 失败、正在传出。

    谢谢、此致

    Deshvir Malik

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Deshvir、

    [引用 user="Deshvir Malik">我已将旧的总线框二进制文件替换为默认文件系统中的最新总线框(总线框、busybox.nosuid、总线框.suid)二进制文件。 [/报价]

    您可以尝试使用 PSDK3.02文件系统吗?

    如果您无法做到这一点、您能否从文件系统中替换以下两个文件:

    TI-PROCESSOR-SDK-LINUX-AM335x-EVM-03.02.00.05/文件系统/tisdk-rootfs-image-am335x-evm/lib/opkg/options/rtcwake

    TI-PROCESSOR-SDK-LINUX-AM335x-EVM-03.02.00.05/文件系统/tisdk-rootfs-image-am335x-evm/usr/sbin/rtcwake

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    1。

    对于新的 PSDK3.02文件系统、我们将使用新的自定义引导加载程序和内核映像。

    根目录@AM335x-EVM:~编号

    root@AM335x-EVM:~# ls -al /dev/rtc0                                               

    Crw----   1  根根   根254、 0解码14 23:15 /dev/rtc0

    root@AM335x-EVM:~ rtcwake -d /dev/rtc0 -m mem -s 5.                                               

    rtcWAKE:无法识别的挂起状态'em'

    根目录@AM335x-EVM:~编号

    2.使用旧文件系统和新的自定义引导程序和内核映像,我在/usr/sbin 中替换了 rtcwake,以下是观察结果

    root@ngt:/usr/sbin #./rtcwake -d /dev/rtc0 -m mem -s 5.
    rtcWAKE:无法识别的挂起状态'em'
    root@ngt:/usr/sbin

    root@ngt:~ rtcwake -d /dev/rtc0 -m mem -s 5.                                                                                                   
    从 2000年1月1日下午5:36星期六的"mem"唤醒
    rtcwake:短写入
    root@ngt:~#

    谢谢、此致

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Deshvir、

    [引用 user="Deshvir Malik"]

    对于新的 PSDK3.02文件系统、我们将使用新的自定义引导加载程序和内核映像。

    根目录@AM335x-EVM:~编号

    root@AM335x-EVM:~# ls -al /dev/rtc0                                               

    Crw----   1  根根   根254、 0解码14 23:15 /dev/rtc0

    root@AM335x-EVM:~ rtcwake -d /dev/rtc0 -m mem -s 5.                                               

    rtcWAKE:无法识别的挂起状态'em'

    [/报价]

    您可以使用以下命令吗? 那么结果是什么?

    rtcwake -d /dev/rtc0 -m standby -s 5. 

    rtcwake -d /dev/rtc0 -m poweroff -s 10. 




    [引用 user="Deshvir Malik"]2. 使用旧文件系统和新的自定义引导程序和内核映像、我在/usr/sbin 中替换了 rtcwake、以下是观察结果[/quot]

    [引用 user="Deshvir Malik"]rtcwake:短写入[/quot]

    您应该尝试修补 util-linux/rtcwake。c 并使用修补的 rtcwake 重新构建新的文件系统。 只重新放置可执行文件可能不起作用。


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    交叉编译 rtcwake form util-linux

    /configure --host=arm-linux-gnueabihf --prefix=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin
    生成 rtcwake

    将"rtcwake (rtcwake)"复制到 rootfs。

    此致、
    RK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 RK、

    我使用了您提到的命令

    /configure --host=arm-linux-gnueabihf --prefix=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin
    生成 rtcwake

    但它没有为目标平台创建 rtcwake。

    ~@Δ vir OPTIPS-3040:Δ tC/util-linux-2.29.2$文件 rtcwake
    rtcwake:elf 64位 LSB 可执行文件、x86-64、版本1 (SYSV)、动态链接(使用共享库)、适用于 GNU/Linux 2.6.24、BuildID[SHA1]=0ce23f8ed0d90ba2d7ed4606d50487963f1e7adf、未剥离
    ~@á mivir í vir-OPTIPS-3040:μ C/util-Linux-2.29.2$

    您能否告诉我们还需要什么来为 arm-linux-gnueabihf 交叉编译它

    谢谢、此致

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、

    rtcwake -d /dev/rtc0 -m standby -s 5.
    上述命令还提供了与"rtcwake -d /dev/rtc0 -m mem -s 5"相同的错误

    谢谢、此致
    Deshvir Malik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Deshvir Malik"]rtcwake -d /dev/rtc0 -m standby -s 5.
    上述命令还提供了与"rtcwake -d /dev/rtc0 -m mem -s 5"[/quot]相同的错误

    是否可以尝试是否可以进入深度睡眠0 (MEM)和/或待机模式?

    首先检查您是否在内核中启用了 Suspend/Resume PM 选项:

    [*]挂起到 RAM 和待机 

    然后尝试"$ echo mem>/sys/power/state 和/或"$ echo standby >/sys/power/state。" 您是否能够成功进入深度睡眠0和/或待机模式?



    您还可以尝试以下序列:
    $ echo 1 >/sys/kernel/debug/pm_debug/enable_off_mode 
    $ rtcwake -s 5 -d /dev/rtc0 -m mem 


    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Deshvir Malik"]

    我使用了您提到的命令

    /configure --host=arm-linux-gnueabihf --prefix=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin
    生成 rtcwake

    [/报价]

    这就是我在我这边交叉编译的方式:

    pbotev@MMS-0306:~/AM335x/utils/utils-linux-2.29.2$导出路径=/home/users/pbotev/AM335x/ti-processor-sdk-linux-am335x-evm-03.02.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$path

    pbotev@MMS-0306:~/AM335x/utils/utils-linux-2.29.2$导出 cross_compile=/home/users/pbotev/AM335x/ti-processor-sdk-linux-am335x-evm-03.02.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-

    pbotev@MMS-0306:~/AM335x/utils/utils-linux-2.29.2$导出 CC=${cross_compile}gcc

    pbotev@MMS-0306:~/AM335x/utils/utils-linux-2.29.2$导出 arch=arm

    pbotev@MMS-0306:~/AM335x/utils/utils-util-linux-2.29.2$./configure --host=arm-linux-gnueabihf --prefix=/home/users/pbotev/AM335x/ti-processor-sdk-linux-am335x-evm-03.02.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin

    pbotev@MMS-0306:~/AM335x/utils/utils-linux-2.29.2$ make rtcwake

    pbotev@MMS-0306:~/AM335x/utils/utils-linux-2.29.2$文件 rtcwake
    rtcwake:elf 32位 LSB 可执行文件、arm、版本1 (SYSV)、动态链接(使用共享库)、适用于 GNU/Linux 2.6.32、BuildID[SHA1]=0x2727f258cd3724f61bc5f3680420465fb12a9e2b、未剥离

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、

    非常感谢。 即使我现在能够按照您提供的步骤进行交叉编译。

    此致
    Deshvir Malik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Malik、
    仅供将来参考和其他可能访问此主题的人员使用、在我的案例中、工具链安装在-prefix 所示的路径中、
    因此我设置--prefix=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin

    您需要指向设置上的正确位置。

    很高兴您能够构建它。

    同样、正如 Pavel 提到的、一旦您拥有了正确的二进制文件-只需检查您是否在 config 中启用了"Suspend to memory"。

    此致、
    RK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    我已经尝试过您的建议、并获得了以下结果

    root@ngt:~# echo mem >/sys/power/state
    -sh:echo:write error:invalid arge.
    root@ngt:~# echo standby >/sys/power/state
    -sh:echo:write error:invalid arge.


    root@ngt:~# echo 1 >/sys/kernel/debug/pm_debug/enable_off_mode
    root@ngt:~ rtcwake -s 5 -d /dev/rtc0 -m mem
    2000年1月 1日:01:43星期六从"mem"唤醒
    rtcwake:短写入
    root@ngt:~ rtcwake -s 5 -d /dev/rtc0 -m standby
    从 2000年1月1日1:01:56星期六的"待机"唤醒
    rtcwake:短写入

    根据您的建议、我们使用最新文件系统的总线框来避免短写入错误。


    观察结果:在/sys/power/state 中,除了我的旧 SDK /sys/power/state 中包含备用、存储和冻结之外,没有其他内容。

    以下是内核配置中的电源管理选项

    编号
    #电源管理选项
    编号
    CONFIG_SUSP=y
    CONFIG_SUSPEND_FERC=y
    未设置# CONFIG_SUSPEND_SKIP_SYNC
    未设置# CONFIG_休眠
    CONFIG_PM_SLEEP=y
    未设置# CONFIG_PM_AUTOSLEEP
    未设置# CONFIG_PM_WAKELOCKS
    CONFIG_PM=y
    CONFIG_PM_debug=y
    未设置# CONFIG_PM_ADVAND_DEBUG
    未设置# CONFIG_PM_TEST_SUSPEND
    CONFIG_PM_SLEEP_DEBUG=y
    未设置# CONFIG_APM_EMULATION
    CONFIG_PM_OPP=y
    CONFIG_PM_CLK=y
    未设置# CONFIG_WQ_POWER_efficient 默认值
    CONFIG_CPU_PM=y
    CONFIG_ARCH_SUSPEND _Possible = y
    CONFIG_ARM_CPU_SUSPEND = y
    CONFIG_ARCH_休眠_Possible = y

    谢谢、此致

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 RK 和 Pavel:

    正确、我们需要根据系统设置环境变量。

    我使用了最新编译的 rtcwake 并放在/usr/sbin 上
    此外、我还使用了新文件系统中的最新总线框。

    以下是日志:

    root@ngt:/usr/sbin #./rtcwake -d /dev/rtc0 -m standby -s 5.
    rtcWAKE:无法识别的挂起状态"待机"
    root@ngt:/usr/sbin #./rtcwake -d /dev/rtc0 -m mem -s 5.
    rtcWAKE:无法识别的挂起状态'em'

    请告诉您如何在 CONFIG 中启用"SUSPEND TO MEMORY (挂起到存储器)"。 "挂起到 RAM 和待机"存在、但我没有找到挂起到存储器选项。

    谢谢、此致
    Deshvir Malik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Deshvir、

    "挂起到 RAM 和待机"应该足以使用暂停/恢复(深度睡眠0/mem 或 STANDBY)。 我认为"挂起到内存"与"挂起到 RAM"相同。

    processors.wiki.ti.com/.../Linux_Core_Power_Management_User's_Guide_(v4.4)

    默认情况下、应在 tisdk_AM335x-evm_defconfig 文件中启用这些 PM 功能。 构建内核时、您是否使用 tisdk_AM335x-evm_defconfig?

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、

    我仅在构建内核时使用"tisdk_AM335x-EVM_defconfig"、并在其中启用"挂起到 RAM 和待机"。

    谢谢、此致
    Deshvir Malik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Deshvir、

    因此、您使用的是 tisdk_AM335x-evm_defconfig 文件、并且您不会通过 menuconfig 进行任何更改? 您仍然在 rootfs 中看不到“/sys/power/state”吗?

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    我使用的是 tisdk_AM335x-evm_defconfig  

    我可以看到"/sys/power/state "、但在"状态"中没有任何内容、如待机、内存或冻结。

    日志如下:

    root@ngt:/sys/power cat 状态

    root@ngt:/sys/power

    我将在此处附加 tisdk_AM335x-evm_defconfig 以供参考。 请检查一下。

    e2e.ti.com/.../8053.tisdk_5F00_am335x_2D00_evm_5F00_defconfig.txt

    谢谢、此致、

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Deshvir Malik"]

    我将在此处附加 tisdk_AM335x-evm_defconfig 以供参考。 请检查一下。

    (请访问网站以查看此文件)

    [/报价]

    您是否使用了默认的 tisdk_AM335x-evm_defconfig 文件、或者您对此文件进行了一些更改? 如果您使用的是默认 tisdk_AM335x-evm_defconfig 文件、我应该检查该文件中的内容是什么?

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、

    是的、我们已经根据电路板进行了更改。 它不是默认的 defconfig。
    您能不能检查我们在 defconfig 中需要启用的有关 RTC 和电源的任何内容。


    谢谢、此致
    Deshvir Malik。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    终于移动了一步!!!

    我已完成以下更改、并且 rtcwake 命令开始工作、但内核在此之后会崩溃。

    定义配置如下所述

    #从 rootfs 加载固件

    CONFIG_FW_LOADER_USER_helper=y

    CONFIG_FW_LOADER_USER_helper_backally=y

    # AMx3电源配置选项

    CONFIG_mailbox=y

    CONFIG_OMAP2PLUS_MBOX=y

    CONFIG_WKUP_M3_RPROC=y

    CONFIG_SOC_TI=y

    CONFIG_WKUP_M3_IPC=y

    CONFIG_TI_EMIF_SRAM=y

    CONFIG_AMX3_PM=y

    CONFIG_RTC_DRV_OMAP=y

    2. AM335x-pm-firmware.elf 取自默认文件系统,并放在/lib/firmware 上的自定义文件系统中

    以下是日志:

    root@ngt:/usr/sbin #./rtcwake -d /dev/rtc0 -m standby -s 5.                                                                                     
    rtcwake:假设 RTC 使用 UTC...
    rtcwake:使用/dev/rtc0从"待机"唤醒 、时间为2000年1月1日星期六00:16:14
    [958.290775] PM:正在同步文件系统... 完成。
    [958.298040] 冻结用户空间进程... (已用0.001秒)。
    [958.306784] 冻结剩余可自由执行的任务... (已用0.001秒)。
    [958.315864] 暂停控制台(使用 NO_console_suspend 进行调试)
    [958.330840] PM:7.207毫秒后设备挂起完成
    [958.333144] PM:2.277ms 后器件延迟挂起完成
    [958.335915] PM:2.740ms 后设备挂起完成
    [958.33594] PM:已成功将所有电源域置于目标状态
    [958.338803] PM:2.766ms 后器件的 noirq 恢复完成
    [958.341145] PM:2.113ms 后器件的早期恢复完成
    [963.644005] PM:器件恢复在5302.825毫秒后完成
    [963.644014] ------ [在此处剪切]-----
    [963.644052] 警告:CPU:0 PID:580 at drivers/cpufreq/cpufreq.c:1646 cpufreq_resume+0x138/0x190 ()
    [963.644152] 链接的模块:sd_mod ARC4 wl18xx USB_storage wlcore SCSI_mod mac80211 cfg80211 musb_dsps musb_hdrc usbcore UDC_CORE ECB MD5
     pm33xx sha1_generic sha1_arm snd_soc_simple_card wkup_m3_rproc wkup_m3_ipc remoteproc virtio_ring omap_ae_driver omap_sham omap_rng c_
    can_platform c_can rng_core can_dev snd_soc_davinci_mcasp snd_soc_edma snd_soc wlcore_sdio snd_soc_tlv320aic3x snd_soc_core snd_pcm_dmaeng
    INE SND_PCM SND_TIMER_MUSB OMA335x OMAP-WDT
    [963.644167] CPU:0 PID:580 Comm:rtcwake 被污染:G       W      4.4.3.32-gadde2ca9f8 #285
    [963.644170] 硬件名称:通用 AM33XX (平展器件树)
    [963.644177] 回溯:
    [963.644207][  ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
    [963.644220]  r7:c03dbc24 r6:0000066e R5:00000009 R4:00000000
    [963.644237] [ ](show_stack)从[ ](dump_stack+0x24/0x28)
    [963.644255][  ](dump_stack)从[ ](warn_slESpath_common+0x88/b4)
    [963.644266] [ ](warn_slowpath_common)、来自[ ](WARN_RASPEK_NULL_0x24/0x2C)
    [963.644279]  R8:c07f9b04 r7:c07a82bc R6:c07a8298 R5:c07fa804 R4:00000000
    [963.644292] [ ](warn_slowpath_null)、来自[ ](cpufreq_resume+0x138/0x190)
    [963.644305][  ](cpufreq_resume)从[ ](DPM_RESUME+0x210/0x228)
    [963.644320]  R9:c07a8298 R8:c07f9b04 r7:c07a82bc R6:c07a8298 R5:cf79aa28 R4:c07a82bc
    [963.644329] [ ](DPM_RESUME)从[ ](DPM_RESUE_END+0x14/0x20)
    [963.644344]  R10:c077e12c R9:c07c78a8 R8:00000000 r7:00000000 R6:00000000 R5:00000002
    [963.644348]  R4:00000010
    [963.644361][  ](DPM_RESUE_END)从[ ](SUSPEND_DEVICE_AND_ENTER+0x170/0x588)
    [963.644368]  R5:00000002 R4:c07c78bc
    [963.644377] [ ](suspend_devices_and_enter)从[ ](Pm_SUSPEND +0x2bc/0x370)
    [963.644392]  R10:00000051 R9:caaec3c0 R8:00000008 r7:c07bc2e8 R6:c07c78c4 R5:00000000
    [963.644396]  R4:00000002
    [963.644405] [ ](pm_suspend)从[ ](STACK_STORE + 0x70/0xc0)
    [963.644416]  r7:00000007 r6:c07c78c8 r5:c06a04f0 r4:00000002
    [963.644428] [ ](state_store)从[ ](kobj_attr_store+0x1c/0x28)
    [963.644442]  R9:b6f25000 R8:c00107c4 r7:00000000 R6:00000000 R5:caaec3c0 R4:c0066c30
    [963.644457][  ](kobj_attr_store)、来自[ ](sysfs_KF_WRITE+0x48/0x4c)
    [963.644464]  R5:caaec3c0 R4:c02bb320
    [963.644473] [ ](sysfs_KF_write)、来自[ ](kernfs_fop_write+0xc8/0x1d4)
    [963.644480]  R5:caaec3c0 r4:caaec340
    [963.644500] [ ](kernfs_fop_write)、来自[ ](_vfs_write+0x34/0xe4)
    [963.644515]  R10:00000000 R9:cab3a000 R8:c00107c4 r7:cab3bf80 R6:00000008 R5:c016ffac
    [963.644519]  R4:cf5ba780
    [963.644531] [ ](_vfs_write)、来自[ ](vfs_write+0x98/0x174)
    [963.644545]  R9:cab3a000 r8:c00107c4 r7:cab3bf80 r6:b6f25000 r5:00000008 r4:cf5ba780
    [963.644557] [ ](vfs_write)从[ ](sys_write+0x4c/0xa8)
    [963.644570]  R8:c00107c4 r7:00000008 r6:b6f25000 r5:cf5ba780 r4:cf5ba780
    [963.644582] [ ](sys_write)从[ ](RET_FAST_SYSCALL+0x0/0x3c)
    [963.644593]  r7:00000004 R6:b6f25000 R5:00000008 R4:00026138
    [963.644598] --[结束线迹7e189ad45954840f ]--
    [963.996187] 正在重新启动任务...
    [963.999824] USB 1-1:USB 断开连接、器件编号4
    [964.005920] 完成。
    root@ngt:/usr/sbin #[964.323896] USB 1-1:使用 musb-hdrc 的新型高速 USB 器件编号5
    [964.486828] USB-STORAGE 1-1:1.0:检测到 USB 大容量存储设备
    [964.503073] SCSI host3:USB-storage 1-1:1.0
    [965.527254] SCSI 3:0:0:0:0:直接访问    Toshiba TransMemory     1.00 PQ:0 ANSI:4
    [965.541331] SD 3:0:0:0:[SDA] 7574304 512字节逻辑块:(3.88 GB/3.61 GiB)
    [965.554756] SD 3:0:0:0:[SDA]写保护关闭
    [965.570735] SD 3:0:0:0:[SDA]写入高速缓存:禁用、读取高速缓存:启用、不支持 DPO 或 FUA
    [965.586794]  sda:sda1.
    [965.599190] SD 3:0:0:[SDA]连接的 SCSI 可拆卸磁盘
    [965.928360] EXT4-FS (SDA1):恢复完成
    [965.932782] EXT4-FS (SDA1):已安装文件系统、具有有序数据模式。 OPTS:(空)

    您能告诉我这次崩溃可能出现的问题吗?

    谢谢、此致

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价 USER="Deshvir Malik"]您能不能检查我们在 defconfig 中需要启用的有关 RTC 和电源的任何内容。[/报价]

    我已经尝试使用您的 defconfig 文件(在我的 AM335x TI EVM 上)、但我仍然看到"mem"和"standy"条目:

    root@AM335x-EVM:~# cat /sys/power/state
    冻结待机内存

    这些条目(冻结、待机、内存)取决于"挂起到 RAM 和待机"设置。 当我删除此设置(默认情况下在 tisdk_AM335x-evm_defconfig 中启用)时、我没有这些条目(冻结待机内存)。

    rtcWAKE 命令首先用于挂起器件、然后通过 RTC 唤醒器件。 第一步是调用"echo mem >/sys/power/state "或"echo standby >/sys/power/state "。 我认为您应该专注于调试这些命令故障、而不是 rtcwake。

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Deshvir Malik"] root@ngt:/usr/sbin #./rtcwake -d /dev/rtc0 -m standby -s 5   

    下面是我的一面:

    root@AM335x-EVM:~ rtcwake -d /dev/rtc0 -m standby -s 5.
    rtcwake:假设 RTC 使用 UTC...
    rtcwake:使用/dev/rtc0在2016年12月14日23:16:22日通过 Wed 从"待机"唤醒
    [73.097442]  PM:正在同步文件系统... 完成。
    [73.280173]  冻结用户空间进程... (已过0.003秒)完成。
    [73.290444]  冻结剩余可自由执行的任务... (已用0.001秒)。
    [73.300011]  暂停控制台(使用 NO_console_suspend 进行调试)
    [73.442043]  PM:器件暂停在133.556毫秒后完成
    [73.447104]  PM:5.005毫秒后器件延迟挂起完成
    [73.452725]  PM:5.561ms 后器件暂停完成
    [73.452744]  PM:已成功将所有电源域置于目标状态
    [73.474619]  PM:21.665ms 后器件的 noirq 恢复完成
    [73.479435]  PM:器件的早期恢复在4.317毫秒后完成
    [73.481911]  Net eth0:正在初始化 cpsw 版本1.12 (0)
    [73.481937]  net eth0:已初始化 cpsw ale 版本1.4
    [73.481954]  净 eth0:ALE 表大小1024
    [73.55793]  net eth0:Phy found:id is:0x4dd074
    [73.558081]  libphy:找不到 PHY 4a101000.MDIO:01
    [73.558103]  net eth0:在从器件1上找不到 PHY "4a101000.MDIO:01"、错误-19
    [73.797356]  PM:317.859ms 后完成器件恢复
    [73.874251]  正在重新启动任务... 完成。
    根目录@AM335x-EVM:~编号

     

    在我看来、在执行 rtcwake 命令之前和期间、您似乎有一些正在进行的活动。 此外、请检查您是否对特定于电路板的 cpufreq 设置进行了一些更改。


    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    通过在 Beagle Bone 中使用预构建的图像、我们将获得如下所示的 CPU 频率

    root@AM335x-EVM:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
    300000
    root@AM335x-EVM:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
    300000 600000 720000 800000 1000000
    根目录@AM335x-EVM:~编号

    但在我的定制板中、我没有获得"cpufreq"

    root@ngt:~# cd /sys/devices/system/cpu/cpu0                                                                                                   
    root@ngt:/sys/devices/system/cpu/cpu0 ls
       空闲节点   电源     子系统 拓扑  事件
    root@ngt:/sys/devices/system/cpu/cpu0

    您能不能建议需要哪些配置来实现这一点?

    谢谢、此致、

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Deshvir、

    [引用 user="Deshvir Malik"]但在我的自定义板中,我没有得到"cpufreq"

    [引用 user="Deshvir Malik"]您能否建议需要哪些配置才能获得此信息?

    如果您使用的是 linuxkernel 4.4.x、请参阅以下 wiki:

    processors.wiki.ti.com/.../Linux_Core_Power_Management_User's_Guide_(v4.4)

    另请参阅以下 e2e 线程:

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    我尝试了几个选项、但没有锻炼。

    我将向您介绍我的旧 SDK 配置和新 SDK 配置。

    旧的工作 SDK

    在旧的工作 SDK 中、/drivers/rtc/rtc-omap.c 已修改、下面我提到了修改后的部分。 在给出"rtcwake -d /dev/rtc0 -m standby -s 5"或"rtcwake -d /dev/rtc0 -m mem -s 5"时、电流将高达15mA、且用于在所述时间后重新启动的电路板。 (新 SDK 中不会重新启动电路板)

    它们是很少的先决条件、我们需要在仅 RTC 模式下对电路板进行阐述。 我们满足这些前提条件、然后只有电路板进入仅 RTC 模式。 (即使在满足预条件电路板电流高达55mA 后、新 SDK 也不会发生这种情况、如果我们不满足先决条件、电路板电流仍为55mA)。

    此处 注释掉电功能。

    静态结构 RTC_Class_ops OMAP_RTC_ops ={

    Read_Time = OMAP-RTC_Read_Time、

    Set_Time = OMAP-RTC_SET_TIME、

    READ_ALARM = OMAP_RTC_READ_ALARM、

    Set_alarm = OMAP_RTC_SET_ALARM、

     /*.power_off = RTC_power_off, 已添加注释以消除编译错误*/

    .alarm_IRQ_enable = OMA_RTC_alarm_IRQ_enable、

    };

    挂起函数被注释并且 从 OMAP-RTC_SUSP()函数中调用 RTC_POWER_OFF ()。

    静态 int omap_rtc_suspend (struct device *dev)

    printk (Kern_info "*** OMAP-RTC_SUSPLE***);

    #if 0

    U8 irqwake 稳压器;

    struct platform_device *pdev = TO_platform_device (dev);

    const 结构 platform_device_id * id_entry =

    platform_get_device_id (pdev);

    irqstat = RTC_READ (OMAP-RTC_INTERRUPTS_REG);

    /* FIXME RTC 报警当前不会用作唤醒事件

    *在某些平台上提供源代码,实际上,此 enable()调用只是

    *保存从未使用过的标志...

    *

    if (device_may _wakeup (dev)){

    ENABLE_IRQ_WAKE (OMAP_RTC_ALARM);

    if (id_entry->driver_data & omap_rtc_has _IRQWAKEEN){

    irqWAKE_stat = RTC_READ (OMAP-RTC_IRQWAKEEN);

    irqWAKE_stat |= OMA_RTC_IRQWAKEEN_ALARM_WAKEEN;

    RTC_WRITE (irqWAKE_stat、OMAP-RTC_IRQWAKEEN);

    }否则{

    RTC_WRITE (0、OMAP-RTC_INTERRUPTS_REG);

    /*禁用时钟/模块*/

    Pm_runtime_put_sync (dev);

    返回0;

    #endif

    RTC_POWER_OFF ();

    返回0;

    对该函数的某些部分进行了注释

    静态空 RTC_POWER_OFF (空)

    printk (Kern_info "*** rtc_power_off***\n");

    u32 val;

    struct rtc_time tm;

    #if 0

    /*Configuration may needed or may not need*/

    /*设置 PMIC 电源使能 SM */

    Val = readl (RTC_BASE + OMAP_RTC_PMIC_REG);

    Val |= OMAP_RTC_PWR_ENABLE_SM;

    RTC_writel (val、OMAP_RTC_PMIC_REG);

    /*设置 PMIC 极性-低电平有效*/

    Val = readl (RTC_BASE + OMAP_RTC_PMIC_REG);

    Val |= OMAP_RTC_PMIC_EXT_WAKEUP_POL;

    RTC_writel (val、OMAP_RTC_PMIC_REG);

    #endif

    /*设置 OMAP-RTC_PMIC_EXT_WAKEUP_EN *

    Val = readl (RTC_BASE + OMAP_RTC_PMIC_REG);

    Val |= OMAP_RTC_PMIC_EXT_WAKEUP_EN;

    RTC_writel (val、OMAP_RTC_PMIC_REG);

    /*设置 PMIC 电源使能*/

    Val = readl (RTC_BASE + OMAP_RTC_PMIC_REG);

    Val |= OMA_RTC_PMIC_POWER_EN_EN;

    RTC_writel (val、OMAP_RTC_PMIC_REG);

    /*等待几秒钟,而不是翻转*/

    执行{

    OMAP_RTC_READ_TIME (NULL、&TM);

    如果(Wait_after <= TM.TM_sec)

    mdelay (WAIT_TIME_MS);

    } while (wait_after <= TM.TM_sec);

    /*将关断时间添加到当前值*/

    TM.TM_sec += SHUTDOWN_TIME_SEC;

    if (tm2bcd (&TM)< 0)

    返回;

    PR_INFO ("系统将在大约 %d 秒\n"、

    SHUTDOWN_TIME_SEC);

    /*设置 ALARM2时间*/

    RTC_WRITETM (TM.TM_sec、OMAP-RTC_ALARM2_Seconds_REG);

    RTC_WRITETM (TM.TM_MIN、OMAP-RTC_ALARM2_MINESS_REG);

    RTC_WRITE (TM.TM_Hour、OMAP-RTC_ALARM2_Hour_REG);

    RTC_WRITE (TM.TM_mday、OMAP-RTC_ALARM2_DAY_REG);

    RTC_WRITETM (TM.TM_MON、OMAP_RTC_ALARM2_MOUNESS_REG);

    RTC_WRITETM (TM.TM_year、OMAP-RTC_ALARM2_NESS_REG);

    /*启用 ALARM2中断*/

    Val = readl (RTC_BASE + OMAP_RTC_INTERRUPTS_REG);

    writel (val | OMAP-RTC_interrupts_IT_ALARM2、

    RTC_BASE + OMAP_RTC_INTERRUPTS_REG);

    /*不允许执行任何其他任务*/

    while (1);

     

    在新的 SDK 中,我们没有在/drivers/rtc/rtc-omap.c 中进行任何更改,电流将达到55mA,而不是达到15mA。 无论我们是否满足先决条件、在这两种情况下、电流都将高达55mA。

    此外、在给出 rtcwake 命令后、我们希望电路板重新启动。

    您能不能告诉我们如何修改 RTC-OMAP 驱动程序以满足我们的条件。

    谢谢、此致、

    Deshvir Malik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Deshvir、

    [引用 user="Deshvir Malik"]在新的 SDK 中,我们尚未在/drivers/rtc/rtc-omap.c 中进行任何更改,电流将达到55mA,而不是达到15mA [/引用]

    [引用 user="Deshvir Malik"]您能告诉我们如何修改 RTC-OMAP 驱动程序,以使我们的条件得到满足吗?

    您的最新问题与主题"rtcwake command error"有太大的偏差。 我想您现在可以使用 rtcwake 命令了、对吧? 如果是、请关闭此主题并打开有关新问题的新主题。

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Pavel 的支持。 我将打开一个用于启用仅 RTC 的新线程。

    以上问题是因为 AM335x-pm-firmware.elf 在文件系统中不可用。 这就是/sys/power/states 中不存在功耗状态 mem、freeze 和 standby 的原因