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.

[参考译文] AM3351:内核启动失败

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/859303/am3351-kernel-boot-failure

器件型号:AM3351
主题中讨论的其他器件: CSD

您好!

使用 AM3351的客户报告了其电路板上的启动问题。

软件版本为 TI-processor-SDK-Linux-AM335X-EVM-04.01.00.06。
电路板是定制的、使用了 micro-SD 引导。

启动时有几种故障模式。
a)重复“正在启动内核...”
b)在 Arago Project 徽标之后的“random: crng init Done”处停止。
c)重复“A start job is running for…”
d)在“[失败]启动同步系统和硬件时钟”处停止。

我将通过单独的电子邮件向您发送所有4种类型的日志以及正常启动日志
请查看这些信息、并在需要检查的地方提供您的建议。

谢谢、此致、
田志郎一郎

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

    您好、Koichiro、

    他们是否只有一个 AM335x 定制板存在启动问题? 他们是否拥有 AM335x 定制板、它们是否可以使用与故障定制板相同的软件正常启动?

    我的第一个建议是检查这个定制电路板 DDR 存储器。 您可以运行内存诊断测试(mem_test)以检查您的 RAM 是否正确。

    http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_board.html#diagnostics

    外部存储器(DDR):DDR 时序和电平设置可使用 mem_test 进行检查

    您还可以使用 u-boot 存储器测试仪和/或 Linux memtester。

    对于 u-boot 存储器测试:

    u-boot/doc/README.memory-test
    u-boot/common/memsize.c

     

    对于 Linux memtester:

    https://e2e.ti.com/support/legacy_forums/embedded/linux/f/354/t/567360

    http://www.ti.com/lit/an/spraca1/spraca1.pdf

    另请检查:

    http://www.ti.com/lit/an/sprack4/sprack4.pdf

    此致、
    帕维尔

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

    您好、Pavel、

    感谢您的意见、很抱歉我迟到了。

    客户发现问题来自 micro-SD 卡、故障率为~10%。
    -如果客户从出现故障的电路板上卸下 SD 卡,然后将该卡放入工作电路板,则工作电路板也会出现故障。
    -如果使用相同的引导映像重新写入故障卡,则故障板将正确引导。
    因此、我们得出的结论是卡中的映像已损坏。

    现在、客户用高可靠性的 micro SD 卡更换了他们的 micro SD 卡、并编写了相同的引导映像。
    这些电路板使用新的 micro-SD 卡正确启动。
    但是、如果使用了文件检查器工具、客户发现卡中的文件系统仍然存在错误。

    以下是检查器日志:
    ===========================================================================================================
    e2fsck 1.42 (2011年11月29日)
    通过1:检查 inode、块和大小
    找到属于已损坏孤立链接列表的 inode。  修复 ? 否

    inode 16713是孤立 inode 列表的一部分。  忽略。
    inode 16716是孤立 inode 列表的一部分。  忽略。
    通过2:检查目录结构
    通过3:检查目录连接
    通过4:检查基准计数
    通过5:检查组摘要信息

    rootfs:****** 警告:文件系统仍有错误********

       使用的5297个 inode (2.63%)
        680个非连续文件(12.8%)
          5个非连续目录(0.1%)
            具有 ind/dind/tind 块的 inode 数量:665/22/0
     使用了131702个块(16.36%)
          0个坏块
          1个大文件

       4298个常规文件
        368个目录
          0个字符的设备文件
          0块器件文件
          0个 FIFO
          0个链接
        622个符号链接(619个快速符号链接)
          0个插槽
    ----
       5288个文件
    秘书长的报告

    以下错误是什么意思? 可以忽略这一点吗?
    找到属于已损坏孤立链接列表的 inode。

    如果客户选择“是”进行修复,则会通过检查器工具进行修复,但检查器正在运行 Linux 主机服务器,而不是在 Sitara 上运行。
    因此无法在实际系统中使用修复程序。

    谢谢、此致、
    田志郎一郎

     

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

    一郎

    [引用用户="Koichiro Tashiro"]以下错误是什么意思? 可以忽略这一点吗?
    找到属于已损坏孤立链接列表的 inode。

    此错误并非仅针对 AM335x SDK。 我不能提供建议。 我建议您与 SD 卡供应商和/或 Linux 主线通用论坛联系。

    我还建议您尝试使用 AM335x SD 卡创建脚本:

    {PSDK}/bin/create-sdcard.sh

    http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Overview_Getting_Started_Guide.html#linux-sd-card-creation-guide

    此致、
    帕维尔

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

    你好,Pavel。

    客户使用您建议的 SD 卡创建脚本。
    我从客户那里获得了其他信息。
    创建 SD 卡并写入映像时、SD 卡映像没有错误。
    在客户的系统中使用 SD 卡一段时间后,以下文件的 inode 将被损坏。
    这些是 TI SDK 中的文件。
              inode   路径
              16713 /sys/devices/platform/ocp/48060000.mmc/mmc_host/mmc0/mmc0:5048/CSD
              16716 /sys/devices/platform/ocp/48060000.mmc/mmc_host/mmc0/mmc0:5048/date

    正如我提到过的、即使这些 inode 已损坏、系统也能正确启动。
    Q1)这些文件的用途是什么?
    Q2)如果这些文件已损坏、会发生什么情况?
    Q3)这些文件是否在运行期间更新? (客户怀疑这些文件在写入操作期间损坏)

    谢谢、此致、
    田志郎一郎

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

    Tashiro-san、

    [报价用户="Koichiro Tashiro]]在客户系统中使用 SD 卡一段时间后,以下文件的 inode 将被破坏。
    这些是 TI SDK 中的文件。
              inode   路径
              16713 /sys/devices/platform/ocp/48060000.mmc/mmc_host/mmc0/mmc0:5048/CSD
              16716 /sys/devices/platform/ocp/48060000.mmc/mmc_host/mmc0/mmc0:5048/date

    这是从 AM335x 系统中卸下卡并将其放入 Linux PC 上的 SD 卡读取器后产生的结果吗? 当我尝试在 AM335x EVM 中使用 AM335x 卡时、它已经干净了...

    #使用主机 PC
    a0797059检查包含 AM335x rootfs 分区的 SD 卡@Jiji:~/git/u-boot (ti-u-boot-2019.01-next dev)
    $ sudo e2fsck /dev/sda2
    e2fsck 1.44.1 (2018年3月24日)
    rootfs:clean、75282/479552文件、69434193/208块 

    如果是、这是奇数。 在不同的计算机上读取卡时,/sys 文件夹应始终显示为空(不是引导),因为它是一个虚拟文件夹,并且不会在其中写入实际文件。

    #从主机 PC
    a0797059上 SD 读卡器中的 SD 卡读出/sys 文件夹@Jiji:~/git/u-boot (ti-u-boot-2019.01-next dev)
    $ll /media/a0797059/rootfs/sys
    总计8
    dr-xr-x 2 root 4096 oct 19 15:17 ./
    drwxr-x21 root oct 19 21 oct 19:19 ./4096 root 用户 

    客户也会做什么?

    在 AM335x 系统上安装 sysfw 可能会出现一些问题、可能是暂时的? 它应该像这样...

    #在运行 AM335x 系统
    根目录时检查 sysfw 安装状态和位置@AM335x-EVM:~# mount | grep sysfs
    在/sys 类型 sysfs 上(rw、nosuid、nodev、noexec、relatme) 

    [引用用户="Koichiro Tashiro]Q1)这些文件有哪些用途?
    Q2)如果这些文件已损坏、会发生什么情况?
    Q3)这些文件是否在运行期间更新? (客户怀疑这些文件在写入操作期间损坏)

    这些是由内核公开的虚拟文件、主要用于与用户空间连接。 是的、/sys 下的文件将在运行期间始终由内核更新、但由于这些文件纯粹是虚拟的、因此不应存在任何相关的 MMC 活动。

    客户如何关闭其电路板?

    在卸下 SD 卡和/或关闭电路板电源之前、他们是否执行"断电"命令、以确保以有序和同步的方式关闭?

    他们能否从*当前*的 AM335x Linux SDK 运行未经修改的 TI 文件系统映像? 最初的帖子表明他们使用的是版本4。 请让他们使用当前版本 v6.01、网址 为 http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/latest/index_FDS.html

    此致、Andreas