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.

[参考译文] AM5748:AM5748 Kexec 问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1244519/am5748-am5748-kexec-issue

器件型号:AM5748

您好!

我们正在尝试使用 kdump 调试内核崩溃。 但无法生成用于内核崩溃的 crashdump。  

我们在内核中配置了以下配置,并从 debian 下载 kdump-tools、kexec 相关文件,并安装在自定义板上。

CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_DEBUG_INFO=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_PROC_VMCORE=y

We disabled watchdog also from reboot when trigger happened.

While passing kexec command we are getting kexec_file_load not avialable. Any configuration is missing?

root@sd:/boot# kexec -d -l /boot/zImage --dtb=/boot/am574x-idk.dtb --command-line="console=ttyO2 115200n8 root=PARTUUUUIE=dbf29694-02 rw rootfsttype=ext4 rootwait crashkernel=64M"

syscall kexec_file_load 不可用。


内核:0xb3b008 kernel_size:0x336200
存储器范围
0000000080000000-000000009ffffff (0)
00000000ac000000-00000000fecfff (0)
ZImage 标头:0x016f2818 0x00000000 0x00336200
zImage 大小0x336200、文件大小0x336200
zImage 需要0x00347200字节
内核:地址= 0x80008000大小= 0x01063a00
dt:地址= 0x8106d000大小= 0x000184ed
kexec_load:entry = 0x80008000 flags = 0x280000
NR_segments = 2
段[0].buf = 0xb6b3b008
段[0].bufsz = 0x336204
段[0].mem = 0x80008000
段[0].memsz = 0x337000
段[1].buf = 0x452008
段[1].bufsz = 0x184ed
段[1].mem = 0x8106d000
段[1].memsz = 0x19000

启动服务也是我收到下面的日志 

Root@AMxxxx~# systemctl start kdump-tools.service
[51.164896] kdump-tools[1158]: Starting kdump-tools: creating symlink /var/lib/kdump/vmlinuz.
[51.178211] kdump-tools[1158]:正在创建 symlink /var/lib/kdump/initrd.img.
[51.185858] kdump-tools[1158]:/usr/sbin/kdump-config:第201行:File:not found
[51.198261] kdump-tools[1158]: invalid symlink :/var/lib/kdump/initrd.img ... 失败!
[51.199251] kdump-tools[1158]:正在创建 symlink /var/lib/kdump/initrd.img.
[51.205708] kdump-tools[1158]:/usr/sbin/kdump-config:第201行:File:not found
[51.217959] kdump-tools[1158]: invalid symlink :/var/lib/kdump/vmlinuz ... 失败!
[51.218940] kdump-tools[1158]:正在创建 symlink /var/lib/kdump/vmlinuz.
[51.251533 ] kdump-tools[1158]:/usr/sbin/kdump-config :第516行:文件:找不到命令
[51.272736] kdump-tools[1158]:syscall kexec_file_load 不可用。
[51.273740] kdump-tools[1158]:未指定内核
[51.274634] kdump-tools[1158]:kexec-tool 2.0.18
[51.275280] kdump-tools[1158]:用法:kexec [option]... [内核]
[51.275926] kdump-tools[1158]:直接重启到新内核
[51.276565] kdump-tools[1158]:-h,--help 打印此帮助。
[51.277192] kdump-tools[1158]:-v,-版本打印 kexec.
[51.277852] kdump-tools[1158]:-f ,- force an immediate kexec,
[51.278491] kdump-tools[1158]:不调用关机。
[51.279132] kdump-tools[1158]:-i、--no-checks 快速重新引导,无内存完整性检查。
[51.279759] kdump-tools[1158]:-x,--no-ifdown 不会中断网络接口。
[51.281359] kdump-tools[1158]:-y,--no-sync not sync filesystems before kexec.
[51.282052] kdump-tools[1158]:-l ,-载入新内核
[51.282734] kdump-tools[1158]:当前内核。
[51.283417] kdump-tools[1158]:-p ,-load-panic 加载新内核以用于 panic。
[51.284196] kdump-tools[1158]:-u,--卸载当前 kexec 目标内核。
[51.284893] kdump-tools[1158]:如果正在卸载捕获内核
[51.285666] kdump-tools[1158]:指定-p with -U。
[51.286367] kdump-tools[1158]:-e,--exec 执行当前加载的内核。
[51.287032] kdump-tools[1158]:-t,--type=type 指定新内核属于此类型。
[51.29031] kdump-tools[1158]:--mem-min= 指定要使用的最低内存地址
[51.291094] kdump-tools[1158]:将代码加载到中。
[51.291714] kdump-tools[1158]:-mem-max= 指定要使用的最高存储器地址
[51.292347] kdump-tools[1158]:将代码加载到中。
[51.292963] kdump-tools[1158]:- reuseinitrd 从第一次引导重新使用 initrd。
[51.293515] kdump-tools[1158]:-print-CKR-size 打印崩溃内核区域大小。
[51.294168] kdump-tools[1158]:-load-preserve-context 加载新内核并保留
[51.294824] kdump-tools[1158]:kexec.
[51.295398] kdump-tools[1158]:- load-jump-back-helper 加载一个帮助程序映像以跳回
[51.295964] kdump-tools[1158]:初始内核。
[51.296573] kdump-tools[1158]:--entry= 指定回跳地址。
[51.297355] kdump-tools[1158]:(0表示不跳回或
[51.298029] kdump-tools[1158]:preserve context)
[51.298429] kdump-tools[1158]:初始内核。
[51.298947] kdump-tools[1158]:-s,-kexec-file-syscall 使用基于文件的 syscall 进行 kexec 操作
[51.299465] kdump-tools[1158]:-c,--kexec-syscall 使用 kexec_load syscall 实现兼容性
[51.299859] kdump-tools[1158]:系统不支持-s (默认值)
[51.300331] kdump-tools[1158]:-a ,-kexec-syscall-auto 使用基于文件的 syscall for kexec 和 fall
[51.300717] kdump-tools[1158]:返回到基于文件的兼容性 syscall
[51.301113] kdump-tools[1158]:不支持 syscall 或内核不支持
[51.302620] kdump-tools[1158]:理解映像
[51.3016] kdump-tools[1158]:-d,--debug 启用调试以帮助发现故障。
[51.303391] kdump-tools[1158]:-S ,--status 如果加载了类型(默认崩溃),则返回0。
[51.303770] kdump-tools[1158]:支持的内核文件类型和选项:
[51.304154] kdump-tools[1158]:uImage
[51.304524] kdump-tools[1158]:- command-line=string 将内核命令行设置为 string。
[51.304897] kdump-tools[1158]:-append=string 将内核命令行设置为 string。
[51.305277] kdump-tools[1158]:-initrd=file use file 作为内核的初始 ramdisk。
[51.305650] kdump-tools[1158]:-ramdisk=file use file 作为内核的初始 ramdisk。
[51.306019] kdump-tools[1158]:- dtb=file use file as the FDT blob.
[51.306385] kdump-tools[1158]:-atags 使用 ATAG 而不是 device-tree。
[51.306756] kdump-tools[1158]:-page-offset=page_offset
[51.637830]kdump-tools[1158]:set page_offset of crash dump vmcore
[51.638249] kdump-tools[1158]: zImage
[51.638624] kdump-tools[1158]:- command-line=string 将内核命令行设置为 string。
[51.638993] kdump-tools[1158]:-append=string 将内核命令行设置为 string。
[51.639361] kdump-tools[1158]:-initrd=file use file 作为内核的初始 ramdisk。
[51.639731] kdump-tools[1158]:- ramdisk=file use file 作为内核的初始 ramdisk。
[51.640216] kdump-tools[1158]:- dtb=file use file as the FDT blob.
[51.640590] kdump-tools[1158]:- atags 使用 ATAG 而不是 device-tree。
[51.640956] kdump-tools[1158]:-page-offset=page_offset
[51.641326] kdump-tools[1158]: set page_offset of crash dump vmcore
[51.641691] kdump-tools[1158]:体系结构选项:
[51.642060] kdump-tools[1158]:-image-size=
[51.642429] kdump-tools[1158]:指定假定的图像总大小为
[51.642797] kdump-tools[1158]:即将装载的内核,
[51.643188]kdump-tools[1158]:如报告所述,包括.bss 段
[51.643561] kdump-tools[1158]: by 'arm-linux-size vmlinux'。 如果不是
[51.643931] kdump-tools[1158]:指定,此值为隐式设置
[51.644301] kdump-tools[1158]:压缩图像大小* 4.
[51.644682] kdump-tools[1158]:-dt-no-old-root
[51.645054] kdump-tools[1158]:不重复使用旧内核 root= param。
[51.645424] kdump-tools[1158]:创建平展设备树时。
[51.645894] kdump-tools[1158]:无法加载 kdump 内核... 失败!

您能解释一下在发生崩溃时启用 kdump 的步骤吗?

谢谢

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

    您好!

    SDK 不支持这项功能。

    -基尔西

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

    您好!

    让 内核崩溃转储脱机分析的任何其他方法。 请提供此方面的帮助。

    谢谢。

    Uthayakumar R H

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

    您好!

    建议检查邮件列表: http://lists.infradead.org/mailman/listinfo/kexec

    -基尔西

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

    Keerthy、您好!

    如果我们在内核4.14中添加此修补程序,它将支持 kexec 是否正确?

    谢谢

    Uthayakumar RH

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

    尊敬的 Uthaykumar:

    如前所述、这并未在 SDK 上得到验证、因此我无法注释补丁是否足够。

    此致、

    基尔西