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.

[参考译文] AM3356:无法使用内核6.1.49进入睡眠模式

Guru**** 2473260 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1433963/am3356-cannot-enter-sleep-mode-with-kernel-6-1-49

器件型号:AM3356

工具与软件:

你好、专家

我们无法通过定制电路板上的内核6.1.46进入睡眠(待机)模式。
我们如何进入睡眠模式?
对于内核4.19和5.10、我们可以进入板载的睡眠模式。


SDK 版本:
09.01.00.001

电路板:
开发板

内核版本:

$ uname -a
Linux am335x-evm 6.1.46-g1d4b5da681 #2 PREEMPT Tue Nov  5 15:47:28 JST 2024 armv7l GNU/Linux

操作和错误消息:

$ echo standby > /sys/power/state
bash: echo: write error: Invalid argument

sleep.conf:

$ cat /etc/systemd/sleep.conf
[Sleep]
SuspendState=standby

设备树:

&wkup_m3_ipc {
    ti,scale-data-fw = "am335x-evm-scale-data.bin";
};
or
&wkup_m3_ipc {
    ti,scale-data-fw = "am335x-boneblack-scale-data.bin";
};
or
&wkup_m3_ipc {
    firmware-name = "am335x-evm-scale-data.bin";
};

/lib/firmware 的 LS:

am335x-bone-scale-data.bin
am335x-evm-scale-data.bin
am335x-pm-firmware.elf
am43x-evm-scale-data.bin
inv_dmpfirmware.bin
regulatory.db
regulatory.db.p7s
ti-connectivity/

dmesg 输出中的一段摘录:

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.1.46-g1d4b5da681 (katsu@pck-134) (arm-oe-linux-gnueabi-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #2 PREEMPT Tue Nov  5 15:47:28 JST 2024
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: JRCM AM335x JRN-430K
[    0.000000] Memory policy: Data cache writeback
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 64 MiB at 0x88800000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x000000008fdfffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000008fdfffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000008fdfffff]
[    0.000000] CPU: All CPU(s) started in SVC mode.
  ...
[    0.163293] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.613646] remoteproc remoteproc0: wkup_m3 is available
  ...
[    1.071960] edma 49000000.dma: TI EDMA DMA engine driver
  ...
[    3.261695] remoteproc remoteproc0: powering up wkup_m3
[    3.267221] remoteproc remoteproc0: Direct firmware load for am335x-pm-firmware.elf failed with error -2
[    3.379025] remoteproc remoteproc0: Falling back to sysfs fallback for: am335x-pm-firmware.elf
[    3.391467] input: wakeup_pins as /devices/platform/wakeup_pins/input/input0
  ...
[   24.433096] PM: Cannot get wkup_m3_ipc handle
[   25.345573] PM: Cannot get wkup_m3_ipc handle
[   44.610947] PM: Cannot get wkup_m3_ipc handle
[   64.491064] remoteproc remoteproc0: request_firmware failed: -110
[   64.497362] wkup_m3_ipc 44e11324.wkup_m3_ipc: rproc_boot failed

内核配置:

# Firmware Loading from rootfs
CONFIG_FW_LOADER_USER_HELPER=y
CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y

# AMx3 Power Config Options
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/m
CONFIG_AMX3_PM=y/m 

CONFIG_RTC_DRV_OMAP=y/m

此致、
Katsuyama

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

    尊敬的 Katsuyama-San:

    使用内核6.1的 SDK9.x 中未启用系统挂起和恢复。

    [  64.491064] remoteproc remoteproc0:request_firmware 失败:-110
    [  64.497362] wkup_m3_ipc 44e11324.wkup_m3_ipc:rproc_boot 失败

    这些消息表示 M3固件未正确加载、因此 SUSPEND 将不起作用。

    我可以帮助解决此问题、但是内核6.1中的恢复功能已损坏。 此问题已报告给我们的软件开发团队、但尚未解决。

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

    嗨、斌山

    感谢您的快速响应。

    这对我们的产品来说是致命的问题。
    因此、我希望它能在几周内得到解决。

    此致
    Katsuyama

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

    尊敬的 Katsuyama-San:

    计划在 AM335x SDK9.3中修复、该版本将在下个月中/末发布。

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

    尊敬的 Katsuyama-San:

    您将使用什么唤醒源?

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

    嗨、斌山

    我们将使用 GPIO0和 UART 作为唤醒源。

    此致
    Katsuyama

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

    尊敬的 Katsuyama-San:

    规格。 谢谢。

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

    尊敬的 Bin-San:

    谢谢你。

    顺便说一下、我刚刚意识到我在这个标题中得到了错误的版本号。 它必须为"6.1.46"。

    我理解新的固定版本将是"6.1.49"。

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

    尊敬的 Katsuyama-San:

    AM335x SDK9.3将基于主线内核 v6.1.105或更高版本。

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

    嗨、斌山

    反措施的状态是什么?

    如果内核版本是6.1.113或更高版本、就很好了。
    因为已解决了 CVE-2024-49884等漏洞。

    此致
    Katsuyama

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

    尊敬的 Katsuyama-San:

    目前、SDK9.3版本候选版本基于 v6.1.112。 分支将于今天(截至目前为 v6.1.119)再次与上游稳定分支同步、并运行整个测试周期。 如果此更新中没有任何问题、SDK9.3至少将基于 v6.1.119。

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

    尊敬的 Bin-San:

    感谢您的答复。
    我很高兴听到下一个内核基本版本将是6.1.119。

    我之前听说、释放将在本月中或末进行。
    "你以为你赢了吗?

    此致、
    Katsuyama

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

    尊敬的 Katsuyama-San:

    SDK 发布候选版本是在最后几轮测试中。 据我所知、发布仍在按计划进行。

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

    尊敬的 Katsuyama-San:

    $ echo standby >/sys/power/state
    Bash:echo:写入错误:无效的参数

    抱歉、我刚刚注意到您在待机用例中报告了问题。 您是否仅需要待机模式、而不需要 DEEPSLEEP 模式?

    发送给我们软件开发团队的问题报告中存在错误沟通。 然后、恢复/唤醒仅在 DEEPSLEEP 暂停模式下有效、而在待机模式下无效。 错误通信现已纠正、我们的软件开发团队正在调查待机恢复问题。 在 SDK9.3版本中包含该解决方案可能为时过晚、但一旦问题得到解决、修复补丁将在 git.ti.com 的 kernel 6.1.y 分支上提供。

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

    尊敬的 Bin-San:

    感谢您提供的信息。

    >您是否只需要待机模式、而不需要深度睡眠模式?
    是的、我只需要待机模式。 我不使用 DEEPSLEEP 模式。

    我们希望该修复程序将尽快发布,并在理想情况下包含在 SDK9.3中。

    此致、
    Katsuyama

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

    尊敬的 Katsuyama-San:

    很抱歉、它不太可能包含在 SDK9.3中。 SDK9.3将在几周后发布、代码已冻结。 但是、一旦 git.ti.com 上的内核存储库中提供了补丁、我就会立即告知您。

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

    尊敬的 Bin-San:

    您可以在 SDK 9.3发布时向我展示其 URL 吗?
    我将定期查看是否已上传。

    此致、
    Katsuyama

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

    尊敬的 Katsuyama-San:

    SDK9.3版本的发布网址为 https://www.ti.com/tool/PROCESSOR-SDK-AM335X

    但版本本身不会更新。 未来的内核更新将在下面链接的 ti-linux-6.1.y-cicd 分支上进行。

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-linux-6.1.y-cicd

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

    尊敬的 Katsuyama-San:

    对不起,我想我误解了你的问题,我以前的答复没有回答。

    AM335x SDK9.3是上周发布的。 请访问以下链接。

    https://www.ti.com/tool/PROCESSOR-SDK-AM335X

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

    尊敬的 Bin-San:

    感谢您的答复。

    对于 SDK 9.1、我从以下 URL 下载它。

    software-dl.ti.com/.../Overview_Building_the_SDK.html

    我想知道 SDK 9.3的此样式 URL。

    此致、
    Katsuyama

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

    尊敬的 Katsuyama-San:

    [报价 userid="599863" url="~/support/processors-group/processors/f/processors-forum/1433963/am3356-cannot-enter-sleep-mode-with-kernel-6-1-49/5573240 #5573240"]

    对于 SDK 9.1、我从以下 URL 下载它。

    software-dl.ti.com/.../Overview_Building_the_SDK.html

    [报价]

    此链接指向 SDK9.1文档。 SDK9.3的相应链路为

    https://software-dl.ti.com/processor-sdk-linux/esd/AM335X/09_03_05_02/exports/docs/linux/Overview_Building_the_SDK.html

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

    尊敬的 Bin-San:

    我看到了 software-dl.ti.com/.../Overview_Building_ 454_SDK.html。
    我有点困惑、因为内容与内容非常不同

    以下 SDK 9.1方法是否仍可以在 SDK 9.3中使用?

      $ git clone git.ti.com/.../oe-layersetup.git tisdk
      $ cd tisdk
      $ ./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-09.03.05.02-legacy-config.txt
    


    此致、
    Katsuyama

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

    尊敬的 Katsuyama-San:

    SDK9.3中更改了文档方案、但编译指令与 SDK9.1 doc 中的指令相同:

    git clone git.ti.com/.../oe-layersetup.git tisdk
    cd tisdk
    ./oe-layertool-setup.sh -f configs/processor-sdk/<oeconfig-file>
    cd build
    . conf/setenv
    MACHINE=<machine> bitbake -k tisdk-default-image

    Link https://software-dl.ti.com/processor-sdk-linux/esd/AM335X/09_03_05_02/exports/docs/linux/Release_Specific_Yocto_ 4.12.101_Configuration.html#Yocto-layer-configuration 显示 oeconfig-file 是"PROCESSOR-SDK-09.03.05.02-legacy-config.txt"、因此您的指令是正确的。

    我还想说明的是、SDK 提供预编译的 Linux 映像、您可以下载并安装下面链接的 SDK 软件包、以防无需在 Yocto 中重新编译 SDK 即可使用。

    https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-1BUptXj3op/09.03.05.02/ti-processor-sdk-linux-am335x-evm-09.03.05.02-Linux-x86-Install.bin

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

    尊敬的 Bin-San:

    我能够成功构建 SDK 9.3的"tisdk-base-image"。
    非常感谢!

    顺便说一下、我将定期检查内核存储库、您认为什么时候可以修复休眠问题?

    此致、
    Katsuyama

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

    尊敬的 Katsuyama-San:

    开发人员正在主动调试问题、对问题有一定的了解、但尚未确定根本原因、因此目前尚不清楚何时可以进行修复、

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

    尊敬的 Bin-San:

    新年快乐!

    如何调试睡眠问题?
    我检查了系统信息库、找不到任何有关它的提交。
    我期待能够发布补丁。

    此致、
    Katsuyama

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

    尊敬的 Katsuyama-San:

    在过去两周的假期里,我们大多数人都不在办公室里,我不相信它最近做了很多调试工作。 我会继续向您发布消息。

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

    尊敬的 Bin-San:

    是否取得了进展?

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

    尊敬的 Katsuyama-San:

    对于延迟、我们深表歉意。 下面随附了我刚从开发人员处获取的两个补丁。

    e2e.ti.com/.../7776.0001_2D00_soc_2D00_ti_2D00_omap_2D00_prm_2D00_Fix_2D00_STANDBY_2D00_handling_2D00_of_2D00_PER_2D00_power_2D00_do.patch

    e2e.ti.com/.../7776.0002_2D00_ARM_2D00_OMAP2_2D00_Fix_2D00_l4ls_2D00_clk_2D00_domain_2D00_handling_2D00_in_2D00_STANDBY.patch

    这是我的待机唤醒日志。

    root@am335x-evm:~# rtcwake -s 10 -m standby
    rtcwake: wakeup from "standby" using /dev/rtc0 at Sat Jan  1 00:01:17 2000
    [   68.734885] PM: suspend entry (shallow)
    [   68.738957] Filesystems sync: 0.000 seconds
    [   68.747341] Freezing user space processes
    [   68.754855] Freezing user space processes completed (elapsed 0.002 seconds)
    [   68.762255] OOM killer disabled.
    [   68.765517] Freezing remaining freezable tasks
    [   68.771514] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
    [   68.779116] printk: Suspending console(s) (use no_console_suspend to debug)
    [   68.915120] cpsw-switch 4a100000.switch eth0: Link is Down
    [   68.926728] PM: suspend devices took 0.140 seconds
    [   68.942623] Disabling non-boot CPUs ...
    [   68.942685] pm33xx pm33xx: PM: Successfully put all powerdomains to target state
    [   68.942685] PM: Wakeup source RTC Alarm
    [   68.956377] cpsw-switch 4a100000.switch: starting ndev. mode: dual_mac
    [   69.041664] SMSC LAN8710/LAN8720 4a101000.mdio:00: attached PHY driver (mii_bus:phy_addr=4a101000.mdio:00, irq=POLL)
    [   69.165276] PM: resume devices took 0.210 seconds
    [   69.215722] OOM killer enabled.
    [   69.219309] Restarting tasks ... done.
    [   69.248182] random: crng reseeded on system resumption
    [   69.259365] PM: suspend exit
    root@am335x-evm:~# [   71.161004] cpsw-switch 4a100000.switch eth0: Link is Up - 100Mbps/Full - flow control off

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

    尊敬的 Bin-San:

    感谢您的补丁。
    我应用了它们、但不幸的是、没有任何变化。
    仍会显示以下内核消息。

    [   64.489759] remoteproc remoteproc0: request_firmware failed: -110
    [   64.496060] wkup_m3_ipc 44e11324.wkup_m3_ipc: rproc_boot failed
    

    rtcWAKE 显示以下内容。

    rtcwake -s 10 -m standby 
    rtcwake: unrecognized suspend state 'standby' 
    

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

    [  64.489759] remoteproc remoteproc0:request_firmware 失败:-110
    [  64.49606060] wkup_m3_IPC 44e11324.wkup_m3_IPC:rproc_boot 失败

    此错误应该已在 SDK9.3中得到修复。

    您是如何生成内核.config 文件的? 请使用 SDK 顶层目录中的命令"make linux"来构建内核。

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

    尊敬的 Bin-San:

    >请使用 SDK 顶层目录中的命令"make linux"构建内核。

    恐怕我无法理解这种方法。
    我将.config 设置如下:
    ——
    cp -a "kernel-source"目录(位于"tisdk/build/arago-tmp-default-glibc/arago-tmp-default-glibc/work-shared/am335x-evm"./Linux 中)
    2. Linux 光盘
    3.应用增补程序
    4.做 mrproper
    5.创建 am335x_xxx_defconfig
    ——
    我将 在之后上传 AM335x_xxx_defconfig。

    然后构建内核和模块。 按如下方式部署它们。
    ——
    5.制造
    6.使 install_mod_path=xxxx modules_install
    7.在目标板上部署 zImage 和模块。
    ——

    这是由 cortex m3固件造成的吗?

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

    尊敬的 Katsuyama-San:

    1. cp -a "tisdk/build/arago-tmp-default-glibc/arago-tmp-default-glibc/work-shared/AM335x-evm"中的"kernel-source"目录./linux

    确保"kernel-source"来自 AM335x SDK9.3版本。

    5. 创建 AM335x_xxx_defconfig

    SDK9.3内核没有此"am335x_xxx_defconfig"文件。 请使用以下命令来生成.config。

    创建 multi_v7_defconfig ti_multi_v7_prune.config no_smp.config

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

    尊敬的 Bin-San:

    AM335x_xxx_defconfig 是我在从旧内核迁移后自定义的内容。

    "我说,我不会骗你的。"
    我收到错误"MPC.h:没有这样的文件或目录"。
    这是日志。

    $ make mrproper
    $ make multi_v7_defconfig ti_multi_v7_prune.config no_smp.config
      ...
    $ make
      SYNC    include/config/auto.conf.cmd
      SYSHDR  arch/arm/include/generated/uapi/asm/unistd-oabi.h
      SYSHDR  arch/arm/include/generated/uapi/asm/unistd-eabi.h
      HOSTCC  scripts/dtc/dtc.o
      HOSTCC  scripts/dtc/flattree.o
      HOSTCC  scripts/dtc/fstree.o
      HOSTCC  scripts/dtc/data.o
      HOSTCC  scripts/dtc/livetree.o
      HOSTCC  scripts/dtc/treesource.o
      HOSTCC  scripts/dtc/srcpos.o
      HOSTCC  scripts/dtc/checks.o
      HOSTCC  scripts/dtc/util.o
      LEX     scripts/dtc/dtc-lexer.lex.c
      YACC    scripts/dtc/dtc-parser.tab.[ch]
      HOSTCC  scripts/dtc/dtc-lexer.lex.o
      HOSTCC  scripts/dtc/dtc-parser.tab.o
      HOSTLD  scripts/dtc/dtc
      HOSTCC  scripts/dtc/libfdt/fdt.o
      HOSTCC  scripts/dtc/libfdt/fdt_ro.o
      HOSTCC  scripts/dtc/libfdt/fdt_wip.o
      HOSTCC  scripts/dtc/libfdt/fdt_sw.o
      HOSTCC  scripts/dtc/libfdt/fdt_rw.o
      HOSTCC  scripts/dtc/libfdt/fdt_strerror.o
      HOSTCC  scripts/dtc/libfdt/fdt_empty_tree.o
      HOSTCC  scripts/dtc/libfdt/fdt_addresses.o
      HOSTCC  scripts/dtc/libfdt/fdt_overlay.o
      HOSTCC  scripts/dtc/fdtoverlay.o
      HOSTLD  scripts/dtc/fdtoverlay
      HOSTCXX scripts/gcc-plugins/arm_ssp_per_task_plugin.so
    In file included from scripts/gcc-plugins/gcc-common.h:95,
                     from scripts/gcc-plugins/arm_ssp_per_task_plugin.c:3:
    /opt/arago-2023.10/sysroots/x86_64-arago-linux/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/11.5.0/plugin/include/builtins.h:23:10: fatal error: mpc.h: No such file or directory
       23 | #include <mpc.h>
          |          ^~~~~~~
    compilation terminated.
    make[2]: *** [scripts/gcc-plugins/Makefile:54: scripts/gcc-plugins/arm_ssp_per_task_plugin.so] Error 1
    make[1]: *** [scripts/Makefile.build:505: scripts/gcc-plugins] Error 2
    make: *** [Makefile:1268: scripts] Error 2
    

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

    尊敬的 Bin-San:

    一旦我禁用了 CONFIG_GCC_plugins、关于 mcp.h 的错误消失了、构建成功完成。

    不再显示以下内核消息:

    [   64.489759] remoteproc remoteproc0: request_firmware failed: -110
    [   64.496060] wkup_m3_ipc 44e11324.wkup_m3_ipc: rproc_boot failed
    

    但我仍然无法进入睡眠模式。

    以下是错误消息。

    $ echo standby > /sys/power/state
    bash: echo: write error: Invalid argument
    $ rtcwake -s 10 -m standby
    rtcwake: unrecognized suspend state 'standby'
    

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

    尊敬的 Bin-San:

    我在/sys/power/state.上看不到"待机"

    $ cat /sys/power/state
    freeze mem
    

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

    尊敬的 Katsuyama-San:

    顺便说一句,我试过,就像你说的。
    我收到错误"mPC.h:没有这样的文件或目录"。[/QUOT]

    我认为您需要在 PC Ubuntu 上安装一些软件包才能解决此问题:

    $ sudo apt install libgmp3-dev libmpc-dev

    一旦我禁用 CONFIG_GCC_plugins、关于 mcp.h 的错误将消失、构建成功完成。


    我不建议禁用它、因为 SDK 始终会启用它。 我不确定禁用后的行为。

    [报价 userid="599863" url="~/support/processors-group/processors/f/processors-forum/1433963/am3356-cannot-enter-sleep-mode-with-kernel-6-1-49/5623799 #5623799"]

    我在/sys/power/state.上看不到"待机"

    [报价]

    让我们首先确保我们位于同一页-您可以执行以下操作来确保让 DeepSleep 或 STANDBY 恢复正常工作、而不是使用您的内核构建流程吗?

    -从 TI.com 下载并安装 AM335x SDK9.3版本;
    -转到 SDK 安装目录;
    -运行命令"make linux",编译内核 zImage、模块和 dtbs ;
    -使用您喜欢的方法将内核 zImage、模块和 dtb 填充到您的板根文件系统中。

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

    尊敬的 Bin-San:

    我安装了 libgmp3-dev libmpc-dev 并启用了 config_GCC_plugins、出现以下错误。

    cc1: error: cannot load plugin ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so: ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so: undefined symbol: _ZN8opt_pass14set_pass_paramEjb
    cc1: error: cannot load plugin ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so: ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so: undefined symbol: _ZN8opt_pass14set_pass_paramEjb
    make[1]: *** [scripts/Makefile.build:250: scripts/mod/empty.o] error 1
    

     -从 TI.com 下载并安装 AM335x SDK9.3版本;
     -转到 SDK 安装目录;
     -运行命令"make linux",编译内核 zImage、模块和 dtbs ;
     -使用您喜欢的方法将内核 zImage、模块和 dtb 填充到您的板根文件系统中。

    我不明白"make Linux"。
    我应该在哪个目录中运行它?

    我根据 software-dl.ti.com/.../Overview_Building_the_SDK.html 用以下步骤构建

      $ sudo apt install libgmp3-dev libmpc-dev
      $ git clone git.ti.com/.../oe-layersetup.git tisdk
      $ cd tisdk/
      $ ./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-09.03.05.02-legacy-config.txt
      $ cd build/
      $ . conf/setenv
      $ MACHINE=am335x-evm bitbake -k tisdk-base-image
      $ cd ../..
      $ cp -a tisdk/build/arago-tmp-default-glibc/arago-tmp-default-glibc/work-shared/am335x-evm/kernel-source ./linux
      $ cd linux
      $ git apply 7776.0001-soc-ti-omap-prm-Fix-STANDBY-handling-of-PER-power-do.patch
      $ git apply 7776.0002-ARM-OMAP2-Fix-l4ls-clk-domain-handling-in-STANDBY.patch
      $ source /opt/arago-2023.10/environment-setup-armv7at2hf-neon-oe-linux-gnueabi
      $ export MACHINE=am335x-evm
      $ export ARCH=arm
      $ make mrproper
      $ make multi_v7_defconfig ti_multi_v7_prune.config no_smp.config
      $ make 
        I got the above error!
    

    我按如下所示构建了工具链。

    $ MACHINE=am335x-evm bitbake -k meta-toolchain-arago-tisdk
    

    我的 Ubunutu 版本是22.04LTS。

    这可能与下面的问题相同。

     lists.openembedded.org/.../89633477

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

    尊敬的 Katsuyama-San:

    我不明白"make linux"。
    我应该在哪个目录中运行它?

    我在说明"转到 SDK 安装目录"中提到过它。 该目录包含以下内容。

    dev@ula:am335x-plsdk-9352$ ls
    bin            example-applications    filesystem  linux-devkit  manifest  Rules.make
    board-support  external-toolchain-dir  licenses    makerules     Makefile  setup.sh
    

    该过程编译整个 SDK、包括根文件系统。 这需要几个小时才能完成。

    但我提到的"make Linux"指令只编译内核、速度要快得多。

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

    尊敬的 Bin-San:

    我最终可以进入睡眠状态。
    非常感谢。

    下面是我的结论:
    1.关于 CONFIG_GCC_plugins 的构建错误
    pre-build-SDK 中包含的工具链版本是11.03.01、
    但根据 Overview_Building_the_SDK.html 构建的那个编译器是11.5.0。
    版本11.5.0可能是错误的原因。
    Yocto 似乎自动禁用 CONFIG_GCC_plugins。

    2. WKUP_M3*的配置必须是模块
    我将这些设置为"y"、因为我想减少模块数量。
    但是、我应该这样设置它们:

         CONFIG_WKUP_M3_RPROC=m
         CONFIG_WKUP_M3_IPC=m
    

    最后一个问题:
    这些补丁是否会在不久的将来交付到存储库?

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

    尊敬的 Katsuyama-San:

    很高兴听到它在您身边工作。 感谢您的更新。

    这两个补丁目前正在审核中、我们应该很快将其提交到 git.ti.com 上的 ti-linux-6.1.y 分支。