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.

[参考译文] BEAGLEBK:在 BeagleBone Black 上未检测到外部 SATA 驱动器(具有 SATA 至 USB 接口)

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/994559/beaglebk-external-sata-drive-with-sata-to-usb-interface-is-not-detected-on-beaglebone-black

您好!

TI-SDK 版本:TI-PROCESSOR-SDK-LINUX-AM335x-EVM-06.03.00.106

U-Boot 版本:U-Boot 2019.01-gc148924

USB 器件:

        带 SATA 至 USB 接口的+ 2.5英寸外部 SATA 驱动器(JM20329、MA6116A)

 在 U-Boot shell 中、当我将上述器件连接到 BeagleBone Black 上的 USB 端口时、未检测到这些器件。

USB 存储设备 viz. Western Digital Portable Drive (My Passport)已被同一 BeagleBone Black 正确检测到。

对于未检测到的 USB 设备、我只收到一条"Port Not Available (端口不可用)"消息。        

是否需要此行为?? 如何克服这一问题?

此致、

Adarsh

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

    您好、Adarsh、

    Linux 能否检测到此 USB-SATA 器件?

    如果您使用自供电 USB 集线器连接此 USB-SATA 设备、U-Boot 能否检测到它?

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

    您好、Liu、

    问:"Linux 能否检测到此 USB-SATA 器件?"

    是的、我可以。

    ------

    磁盘/dev/sda:298.1 GiB、320072933376字节、625142448扇区
    单位:1 * 512 = 512字节的扇区
    扇区大小(逻辑/物理):512字节/512字节
    I/O 大小(最小值/最佳值):512字节/ 512字节
    disklabel 类型:DOS
    磁盘标识符:0x8ffe8ffe

    器件    引导开始      结束  扇区  大小 ID 类型
    /dev/sda1       2048 625142445 625140398 298.1G 83 Linux
    Debian@BeagleBone:~

    ------

    问:"如果您使用自供电 USB 集线器连接此 USB-SATA 设备、U-Boot 能否检测到它?"

    否、未检测到 USB-SATA 设备。

    此致、

    Adarsh

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

    您好、Adarsh、

    在检测失败时、您能否提供 U-Boot 控制台日志?

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

    您好、Liu、

    不带 USB 集线器的日志

    ------

    U-Boot SPL 2019.01-gc148924-脏 污(2021年4月17日- 12:08:20 +0530)
    尝试从 MMC1引导


    U-Boot 2019.01-gc148924-m脏(2021年4月17日- 12:08:20 +0530)

    CPU :AM335X-GP 修订版2.1
    型号:TI AM335x BeagleBone Black
    DRAM: 512 MiB
    NAND: 0 MIB
    MMC:  OMAP SD/MMC:0、OMAP SD/MMC:1.
    正在从 FAT 加载环境... 好的
    NET:  eth0:以太网@4a100000
    警告:USB_Ether MAC 地址不匹配:
    ROM 中的地址为         :de:ad:be:ef:00:01
    环境中的地址为 04:79:B7:A8:FD:e0
    ,eth1:USB_ether
    按任意键停止自动引导: 0
    => USB 开始
    正在启动 USB...
    USB0:  端口不可用。


    =>

    ------

    记录通过 USB-2.0集线器(iball piano423)连接的 USB-SATA 设备:

    在"u-boot/drivers/USB/host/USB-uclass.c"中启用调试

    --------

    => USB 开始
    正在启动 USB...
    USB0:  正在扫描设备的总线1 ...
    调用 USB_setup_device(),portnr=0
    'USB@47401800'的 READ_descriptor:RET=0
    ** USB_find_child 返回-2
    USB_find_and_bind_driver:搜索驱动程序
    USB_find_and_bind_driver:找到匹配项:USB_hub
    USB_scan_device:探测'USB_hub'、plat=9df4c4e8
    找到1个 USB 设备
    扫描结束
          正在扫描存储设备的 USB ... 找到0个存储设备
    =>

    --------

    此致、

    Adarsh

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

    您好、Adarsh、

    请尝试使用"USB reset"命令而不是"USB start"。

    当检测失败时、请在 uboot 控制台上运行以下命令以转储寄存器:

    => md.b 0x47401c60 1

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

    您好、Liu、

    命令的输出:

    ----------------------

    U-Boot SPL 2019.01-g333c3e72d3 (2020年4月19日- 11:21:12 +0000)
    尝试从 MMC1引导


    U-Boot 2019.01-g333c3e72d3 (2020年4月19日- 11:21:12 +0000)

    CPU :AM335X-GP 修订版2.1
    型号:TI AM335x BeagleBone Black
    DRAM: 512 MiB
    NAND: 0 MIB
    MMC:  OMAP SD/MMC:0、OMAP SD/MMC:1.
    正在从 FAT 加载环境... 好的
    NET:  eth0:以太网@4a100000
    警告:USB_Ether MAC 地址不匹配:
    ROM 中的地址为         :de:ad:be:ef:00:01
    环境中的地址为 04:79:B7:A8:FD:e0
    ,eth1:USB_ether
    按任意键停止自动引导: 0
    => USB 复位
    正在重置 USB...
    USB0:  端口不可用。
    => MD.b 0x47401c60 1.
    47401c60: 80                                                。
    =>

    ----------------------

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

    您好、Adarsh、

    请在运行"USB reset"之前运行以下命令、以查看其是否解决了问题。 请尝试使用和不使用 USB 集线器。

     

    setenv usb_pgood_delay 200

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

    您好、Bin、

    不带 USB 集线器:

    U-Boot SPL 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    Trying to boot from MMC1
    
    
    U-Boot 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    
    CPU  : AM335X-GP rev 2.1
    Model: TI AM335x BeagleBone Black
    DRAM:  512 MiB
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Loading Environment from FAT... *** Warning - bad CRC, using default environment
    
    <ethaddr> not set. Validating first E-fuse MAC
    Net:   eth0: ethernet@4a100000
    Warning: usb_ether MAC addresses don't match:
    Address in ROM is          de:ad:be:ef:00:01
    Address in environment is  04:79:b7:a8:fd:e0
    , eth1: usb_ether
    Hit any key to stop autoboot:  0 
    => setenv usb_pgood_delay 200
    => printenv usb_pgood_delay
    usb_pgood_delay=200
    => usb reset
    resetting USB...
    USB0:   Port not available.
    =>

    使用 USB 集线器:

    U-Boot SPL 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    Trying to boot from MMC1
    
    
    U-Boot 2019.01-g333c3e72d3 (Apr 19 2020 - 11:21:12 +0000)
    
    CPU  : AM335X-GP rev 2.1
    Model: TI AM335x BeagleBone Black
    DRAM:  512 MiB
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    Loading Environment from FAT... *** Warning - bad CRC, using default environment
    
    <ethaddr> not set. Validating first E-fuse MAC
    Net:   eth0: ethernet@4a100000
    Warning: usb_ether MAC addresses don't match:
    Address in ROM is          de:ad:be:ef:00:01
    Address in environment is  04:79:b7:a8:fd:e0
    , eth1: usb_ether
    Hit any key to stop autoboot:  0 
    => setenv usb_pgood_delay 200
    => usb reset
    resetting USB...
    USB0:   scanning bus 1 for devices... 1 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    => 
    

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

    您好、Adarsh、

    我可以理解、该 USB 驱动器可能具有特殊字符、导致没有 USB 集线器的枚举失败、但我不能理解为什么它在自供电 USB 集线器的情况下也会失败。

    调试的下一步是使用示波器探测某些 USB 引脚、您可以参考 BeagleBone Black 原理图来查找以下信号- USB1_DRVVBUS、USB1_VBUS、USB1_DP、并在运行命令"USB reset"时探测这些信号。 我希望看到这些信号的捕获。

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

    BeagleBone Black 在 USB1端口上没有 USB2.0规范要求的大容量 VBUS 电容。 另一个简单的硬件测试是在电路板上 USB 主机连接器附近的 USB1 VBUS 线路上添加一个120uF 电容器、以查看这是否解决了问题。

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

    您好、Bin、

    观察到在 Linux 环境中检测到 USB-SATA 驱动器(电路板上的 Linux 出厂映像)。已连接日志。

    [引用 userid="7730" URL"~/support/processors/f/processors-forum/994559/beaglebk-external-sata-drive-with-sata-to-usb-interface-is-not-detected-on-beaglebone-black/3677986 #36777986"]另一个简单的硬件测试是在电路板上 USB 主机连接器附近的 USB1 VBUS 线路上添加一个120uF 电容器、以查看这是否能解决上述问题[/引用]

    完成后、我将向您更新。

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

    您好、Bin、

    [引用 userid="7730" URL"~/support/processors/f/processors-forum/994559/beaglebk-external-sata-drive-with-sata-to-usb-interface-is-not-detected-on-beaglebone-black/3677983 #36777983]调试 的下一步是使用示波器探测某些 USB 引脚、您可以参阅 BeagleBone Black 原理图以查找以下信号- USB1_DRVVBUS、USB1_VBUS、USB1_DP、并在运行命令'USB1'复位'时探测这些信号。 我想看到这些信号的捕获。[/quot]

    BeagleBone Black 的 P9和 P8扩展头上不提供这些 USB1线路。 根据我的理解,探测这些可能需要对板载硬件进行额外的布线。

    我们希望检查这一备选方案的可行性,然后进一步开展工作。

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

    是的、这些信号不在 P8或 P9接头上。 您必须焊接一些线环才能输出信号。

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

    您好、Bin、

    由于这些是在具有精细轨道的多层 PCB 上进行的硬件调整、因此我们无法向前迈出一步(担心电路板会在工艺过程中变砖)。

    到目前为止、我们希望暂停执行此操作、并仅在执行建议的修改后才能继续进一步调试。

    感谢您的支持。

    此致、

    Adarsh

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

    您好、Adarsh、

    我理解您的担忧。

    您是否想解释为什么要让多个 USB 硬盘在 U-Boot 中工作? 从我的理解来看、这一要求并不常见。

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

    您好、Bin、

    [引用 userid="7730" URL"~/support/processors/f/processors-forum/994559/beaglebk-external-sata-drive-with-sata-to-usb-interface-is-not-detected-on-beaglebone-black/3681626 #3681626">您是否想解释为什么要让多个 USB 硬盘在 U-Boot 中工作? 从我所知、这一要求并不常见。

    当然、它不是多个 USB 硬盘、是连接到 SATA 至 USB 适配器的单个 SATA 驱动器。我们想从 USB 驱动器引导 Linux 操作系统(存储容量也更大、可用于存储数据)、 SATA 至 USB 驱动器已经在我们的身边、并且希望在我们当前的项目中使用它们。

    由于 u-boot 无法识别存储设备本身,所以我没有什么可疑之处(印象中认为 u-boot 应至少检测到该设备)并将其报告给 TI。除了 SATA 至 USB 驱动器外,还发现复合 USB 设备 (像带有 SDHC 存储设备的 HUAEI USB 互联网调制解调器和 Sony USB 演练者一样)也未被检测到。

    尽管这些设备不仅是存储设备、但也可在需要或紧急情况下使用。

    此致、

    Adarsh。

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

    您好、Adarsh、

    [引用 userid="407927" URL"~/support/processors/f/processors-forum/994559/beaglebk-external-sata-drive-with-sata-to-usb-interface-is-not-detected-on-beaglebone-black/3682835 #3682835"]它不是多个 USB 硬盘,是连接到 SATA 转 USB 适配器的单个 SATA 驱动器。

    抱歉、我说多个是指不同的 USB 硬盘驱动器。

    由于在 uBoot 中无法检测到的硬盘在 Linux 中工作正常、我认为问题可能与 uBoot 中的软件时序有关。 但我没有一个可以触发本地调试失败的 USB 器件、我必须依靠您来调试设置、正如您看到的、远程调试过程会很慢。