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/AM3352:启用 USB 以太网时出现问题

Guru**** 2551110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/601618/linux-am3352-problems-enabling-usb-ethernet

器件型号:AM3352

工具/软件:Linux


你(们)好

我正在寻求帮助、以了解如何在 AM335x 上运行的内核中启用 USB-Ethernet。

我使用的电路板来自当前运行 ti-processor-sdk-linux-am335x-evm-03.02.00.05-Linux-x86-Install.bin 的 BeagleBoneBlack (使用内核 linux-4.4.4.19+gitAUTOINC+db0b54cdad-gdb0b54cdad)

电路板的主要限制是存储空间(因此、ROOTFS 极小、并且大部分为只读)
并且板上没有物理以太网端口;这就是我希望启用 USB-Ethernet 的原因

我在 Sitara 文档中深入探讨了这一过程、并在这一过程中找到了我能做的一切。
我已按照 processors.wiki.ti.com/.../Sitara_Linux_Program_the_eMMC_on_Beaglebone_Black 上的说明进行操作
-启用我认为必要的驱动程序并将其构建到内核中

menuconfig 中的这些更改最终如下所示:

─────────────────────────────────────────────────────────────────────────μ A
--- USB Gadget 支持
[]调试消息(开发)
[]调试信息文件(开发)
[]调试 debugfs 中的信息文件(开发)
(2)最大 VBUS 功耗(2-500mA)
(32)存储管道缓冲器数量
USB 外设控制器-- -><*>USB
小工具驱动程序(以太网小工具(支持 CDC 以太网))-->
以太网小工具(支持 CDC 以太网)
[*] RNDIS 支持
[]以太网仿真模型(EEM)支持

和  

<> Microtek X6USB 扫描器支持││
<> USB/IP 支持││
<*> Inventra 高速双角色控制器(TI、ADI、AW、...) ││
MUSB 模式选择(仅小工具模式)-- ->││
││***平台胶合层***
││<> TUSB6010



││<> OMAP2430及更高版本││<> AM35x││<*> TI DSP 平台││*** MUSB DMA 模式***
││[*]禁用 DMA (始终使用 PIO)
DesignWare USB3 DRD 内核支持││
DWC3模式选择(双角色模式)--> 


之后、内核将使用以下命令进行引导:

正在启动内核...

[0.000000]在物理 CPU 上引导 Linux 0x0
[0.000000]

正在初始化 cgroup 子系统 CPU [0.000000]正在初始化 cgroup 子系统 cpuacct [0.000000] Linux 版本4.4.4.1.19-gdb0b54cdd (Richard@Richard - ubvm)(gcc 版本5.3.1 GCC 60113 (Linaro 5.3-2016.02))))#1.36:2017年5月30日星期五[0.146] CPU:
ARMv7处理器[413fc082]修订版2 (ARMv7)、CR=10c5387d
[0.000000] CPU:PIPT / VIPT 非混叠数据高速缓存、VIPT 指令高速缓存
[0.0000]机器模型:Compumedics Argo
[0.CMC]

SVC:保留24 at 0x8d000000 [0.000000 (0.000000) CPU 内存策略启动[0.000000) CPU:所有数据模式[0.000000。
[0.000000] AM335X ES2.1 (NEON)
[0.000000]在区域顺序中构建了1个区域列表,移动分组打开。 总页数:64960
[0.000000]内核命令行:console=ttyO0、115200n8 root=PARTUUUID=b2422e7c-02 RW rootfstype=ext4 rootwait
[0.000000] PID 哈希表条目:1024 (顺序:0、4096字节)
[0.000000] Dentry 高速缓存哈希表条目:32768 (顺序:5、135360
字节
:0.000000) 224924K/262144K 可用(6619K 内核代码、316K rwdata、2348K rodata、268K init、297K BSS、 12644K 保留,24576K CMA 保留,0K HIGHMEM)
[0.000000]虚拟内核内存布局:
[0.000000]矢量:0xff0000- 0xff1000 (4KB)
[0.000000]固定映射:0xc00000 - 0xfff00000 (3072KB)
[0.000000] vmalloc:0xd0800000 - 800000000
(0.752MB) 0xC0000000 - 0xd0000000 (256 MB)
[0.000000] pkmap:bbfe00000 - 0xC0000000 (2 MB)
[0.000000]模块:bbf000000 - bbbbfe00000 (14 MB)
[0.000000].text:0xc0008000 - 0xc08ca01c (8969 KB)
[0.0900000].init:0xc000- 0xc268
KB 0xc090e000 - 0xc095d3d0 (317 KB)
[0.000000].bss:0xc095d3d0 - 0xc09a78d8 (298 KB)
[0.000000] slub:HWalign=64、ording=0-3、MinObjects=0、CPU=1、Nodes=1
[0.000000]可抢占分层实现。
[0.000000]叶扇出的生成时间调整为32。
[0.000000] NR_IRQ:16 nr_IRQ:16
16 [0.000000] IRQ:在0xfa200000 (修订版本5.0)处找到 INTC、具有128个中断
[0.000000] OMAP 时钟事件源:timer2为250000Hz
[0.000019] sched_clock:32位为25MHz、分辨率40ns、每85899345900ns 换行
一次 TimerFFFF 时钟源:0x0000FFFF 时钟源:0x0000_max:0x0000FFFF 时钟源:0x0000.FFFF:0x0000.FFFF 76450417870 ns
[0.000058] OMAP 时钟源:25000000 Hz
时钟发生器1 [0.000263]时钟源:未找到匹配的时钟源
[0.000485]控制台:彩色虚拟设备80x30
[0.000519]警告:'console=ttyO0'已被'ttyS0'
[0.000527]取代,这可确保您仍能看到内核消息。 请
[0.000534]更新您的内核命令行。
[0.000555]校准延迟环路... 623.41 BogoMips (lpj=3117056)
[ 0.048855] pid_max:默认值:32768最小值:301
[ 0.049013]安装高速缓存散列表条目:1024 (顺序:0、4096字节)
[ 0.049029]安装点高速缓存散列表条目:1024 (顺序: 0、4096字节)
[0.049906]初始化 cgroup 子系统 IO
[0.049946]初始化 cgroup 子系统存储
器[0.049994]初始化 cgroup 子系统器件
[0.050013]初始化 cgroup 子系统冰箱
[0.050031]

一致性化 cgroup 子系统 perf_event [0.050047]初始化 cgroup 子系统 PID:CPU 写入缓冲区[0.086] OK
[ 0.050586]为0x80008200 - 0x80008258
[ 0.053314] devtmpfs 设置静态标识映射:已初始化
[ 0.068635] VFP 支持 v0.3:Implementor 41架构3第30部分型号 c 3
[ 0.087373] OMAP-hwmod:debugss:_wait_target_disable failed
[ 0.145280] source rev 3 dlevFFFF:0xFFFF cycles:0xFF_max_cludes:0xFFFF cycludes:0xFFFF:0xFFFF cycles:0xFFFF 19112604462750000 ns
[0.148028] pinctrl 内核:已初始化的 pinctrl 子系统
[0.149870] NET:注册协议系列16
[0.152553] DMA:预分配的256 KiB 池用于原子相干分配
[0.178849] cpuidle:使用调速器梯
[0.208837] cpudle:使用

HW 菜单[0.277296]硬件断点[0.577]硬件[0.2770.96] 不支持调试架构0x4。
[0.269755] EDMA 49000000.EDMA:TI EDMA DMA 引擎驱动程序
[0.274825] OMAP_i2c 44e0b000.i2c:找不到节点/ocp/l4_wkup@44c000000000-SCM@210000/pinmux@800/pinmux_i2c0_pins 的 pctldev、推迟探测器
[0.275005pv]
Linux 媒体接口[0.2750ps][Linux v2.00p]:v2.00pps:v2.00px v10000/pps:v10000/pps:v800/pinmux_pps API v2786]
1寄存
式[0.275168] pps_core:软件版本。 5.3.6 -版权所有2005-2007 Rodolfo Giometti 
[0.275213] PTP 时钟支持已注册
[0.275292] EDAC MC:版本:3.0.0
[0.276764] OMAP-mailbox 480c8000.mailbox:OMAP 邮箱版本0x400
[0.278671]源:切换到时钟源1
[0.292684] NET:已注册协议系列2 [0.29359]
TCP 建立哈希表条目: 1、8192字节)
[0.293720] TCP 绑定哈希表条目:2048 (顺序:1、8192字节)
[0.293755] TCP:配置哈希表(建立2048 BIND)
[0.293849] UDP 哈希表条目:256 (顺序:0、4096字节)
[0.293873] UP-Lite 表:256 (顺序:0、4096字节
)[0.294065 注册协议系列1
[0.294589] RPC:注册后命名为 UNIX 套接字传输模块。
[0.294607] RPC:注册的 UDP 传输模块。
[0.294616] RPC:注册的 TCP 传输模块。
[0.294624] RPC:注册的 TCP NFSv4.1反向通道传输模块。
[0.295815]硬件性能事件:通过 armv7_cortex_A8 PMU 驱动程序启用、提供5个计数器
[0.298279] futex 散列表条目:256 (顺序:-1、3072字节)
[0.309372] squashfs:4.0版(2009/01/31) Phillip Lougher
[0.31055] NFS: 注册 id_resolver 密钥类型
[0.310678]注册的密钥类型 id_resolver
注册[0.310690]密钥类型 id_legacy 注册
[0.310786] NTFS:驱动程序2.1.32[标志:R/O]。
[0.311156] jffs2:版本2.2。 (NAND)Copyright2001-2006 Red Hat, Inc.
[0.316030]块层 SCSI 通用(BSG)驱动程序0.4版已加载(主要248)
[0.316071]已注册 IO 调度程序 NOP
[0.316089]已注册 IO 调度程序截止日期
[0.316143]已注册 IO 调度程序 cfq (默认值)
[0.317892] pinctrl-single 44e10800.pinmux:142引脚 at PA f999568]
串行大小[0.399568] 825401 16550驱动程序、10个端口、禁用 IRQ 共享
[0.404952] 44e09000.serial: tmio 0x44e09000处的 ttyS0 (IRQ = 158、base_baud = 3000000)是启用的8250
[0.975282]控制台[ttyS0]
[0.980348] 48022000.serial: tmio 0x48022000处的 ttyS1 (IRQ = 159、base_baud = 3000.990250)
[ 48024000.serial: 3000250] MMIO 0x48024000 (IRQ = 160、base_baud = 3000000)处的 ttyS2是
一
个8250 [ 1.000257][DRM]初始化的 DRM 1.1.0 20060810 [ 1.014464]循环:加载的模块
[ 1.023895] libphy:固定 MDIO 总线:探测
[ 1.08669] DaVinci_MDIO 4a101000修订版1.091000 DMDIO [DMDIO] DMDIO 1.071] DMDIO 修订版
1:DMDIO 1.091000:DMDIO 1.71 DMDIO 无实时 phy、扫描所有
[1.100814] DaVinci_MDIO:4a101000.MDIO 的探头失败、错误-5
[1.121631] cpsw 4a100000.ethernet: 检测到的 MACID = 98:5d:AD:4e:D2:5e
[ 1.145739] 47401300.usb-phy 电源 VCC 未找到、使用虚拟稳压
器[ 1.182988]未找到47401b00.usb-phy 电源 VCC、使用虚拟稳压
器[ 1.229804]使用随机自以太网地址
[ 1.234123]使用随机主机以太网地址
[ 1.239323] usb0:主机 MAC
:1.96:b96:96:b96 MAC be:f1:5e:18:f1
[1.247341]使用随机自以太网地址
[1.251682]使用随机主机以太网地址
[1.256084] g_ether 小工具:以太网小工具、版本:2008年阵亡将士纪念日
[1.262556] g_ether 小工具:g_ether ready
[1.267137] mousedev: 所有鼠标通用的 PS/2鼠标设备
[1.273557] i2c /dev/entries 驱动程序
[1.278476] cputidle: enable-method 属性'ti、am3352'找到的操作
[1.286363] omap_hmc 48060000.mmc:获取 CD GPIO
[1.365962] mmc0:主机不支持只读开关,假设
启用 mmc5734] 1.3734] 地址59b4
[1.382004] mmcblk0:mmc0:59b4 1.84GiB
[1.388054] mmcblk0:P1 p2[1.450884]
ledtrig-CPU:注册以指示 CPU 上的活动
[1.468847]:注册协议系列10[1.479845]
IPv4驱动程序:1.48309[1.48309]
已注册协议系列17
[1.509007]注册的密钥类型 DNS_旋 变传感器
[1.513348] OMAP_VOLTAGE_LARD_INIT:未添加电压驱动器支持
[1.556366] tps65217 0-0024:TPS65217 ID 0xe version 1.2
[1.568955] at24 0-0050:32768字节24c256 EEPROM、可写、1字节/i5738]
i57024c 400kHz 时的总线0 rev0.11
[1.599875] cpufreq:cpufreq_online:cpu0:在未列出的频率下运行:625000 KHz
[1.606987] CPU CPU0:DEV_pm_opp_domain_set_rate:无法找到 freq 625000000 (-34)的当前 OPP
[ 1.6400KHz:1.6400KHz:未列出的 CPfuq]
无法打开 RTC 设备(rtc0)
[ 1.694139] EXT4-FS (mmcblk0p2):已安装文件系统、具有已排序的数据模式。 opts:(null)
[ 1.708676] VFS:在器件179:2上安装根(ext4文件系统)。
[1.729576] devtmpfs:mounted
[1.732931]释放未使用的内核内存:268K (c08cb000 - c090e000)
[1.748582]此架构没有内核内存保护。
初始化已启动:Busybox v1.24.1 (2017-02-09 12:59:11 AEDT)
[1.926299] EXT4-FS (mmcblk0p2):已重新安装。 opts:data=有序
、起始 pid 61、tty '':'/etc/init.d/rcS
、起始 pid 93、tty '/dev/ttyS0:'/sbin/getty 115200 ttyS1' 

我从这种情况中得到的印象是、它几乎可以正确地提高人们的认识

问题是我的 Windows PC 无法识别设备
-甚至不足以将其传递到我用于开发的 Virtual Linux Box

我可以看到:

- 从设备管理器:

Windows 已停止此设备,因为它报告了问题。 (代码43)
对 USB 设备描述符的请求失败。

USB 设备树查看器提供的信息的子集:

=================================== USB Port10 ================================================
连接状态:0x02 (设备枚举失败)
设备说明:未知 USB 设备(设备描述符请求失败)
设备路径:\\.\USB#vid_0000&pid_0002#5&33eb7b70&0&10#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
设备 ID:USB_60_b0&b0&b0&10#{ausb0&b0&b0&b0&b0&b0&b0&b0&b0&b0&b0&b0&b0&b0&b0&b0&b0&b0&dcs)0&b0&b0&b0&b0&b0&b0&b0&b0&b0&b

为了进行比较、当我运行 am335xEVM 或 BeagleBone 时、我可以看到一个集线器同时连接到复合器件和串行器件

我很可能已经泄露了通过 USB 呈现的电路板的 VID?

如果能就如何进一步调试这一问题提出任何建议,我将不胜感激

感谢你的任何帮助。
此致、
Richard

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

    你(们)好

    内核引导的完整调试输出如下所示:

    [0.000000]在物理 CPU 上引导 Linux 0x0
    [0.000000]正在初始化 cgroup 子系统 CPU
    [0.000000]正在初始化 cgroup 子系统 cpuacct
    [0.000000] Linux 版本4.4.4.4.19-gdb0b54cdd (Richard@Richard Ubvm)(gcc 版本5.3.1 Jun 60113 (Linaro 2015.3-2016.02))))#gcc 2010年6月12:13 t.153]
    CPU [0.153] ARMv7处理器[413fc082]修订版2 (ARMv7)、CR=10c5387d
    [0.000000] CPU:PIPT/VIPT 非混叠数据高速缓存、VIPT 指令高速缓存
    [0.0000]机器模型:Compumedics Argo
    [0.0000M]
    :保留24、位于0x8d000000 [ 0.000000
    、0、0、2、0、2、2、2、2、2、2、2、3、3、3、000、000、000、000、000、000、000、000、000、000 65000000
    [ 0.000000] free_area_init_node:节点0、pgc0dat 94ac0c、node_mem_map cfdad000
    [ 0.000000]正常区域:576页用于 memmap
    [ 0.000000]正常区域:0页保留
    [0.000000]正常区域:65SVC 页、LIFO 批处理:15 [0.536]
    CPU:所有 CPU 启动模式。
    [0.000000] AM335X ES2.1 (NEON)
    [0.000000] pcpu-alloc:s0 r0 d32768 u32768 alloc=1*32768
    [0.000000] pcpu-alloc:[0] 0
    [0.000000]在区域顺序中构建了1个区域列表,移动分组打开。 总页数:64960
    [0.000000]内核命令行:console=ttyO0、115200n8 debug root=PARTUUUUUID=b2422e7c-02 RW rootfstype=ext4 rootwait
    [0.000000] PID 哈希表条目:1024 (顺序:0、4096字节)
    [0.000000]条目高速缓存哈希表条目:32768 (顺序:5、1372字节
    ) 4、65536字节)
    [0.000000]内存:224984K/262144K 可用(6575K 内核代码、316K rwdata、2332K rodata、264K init、296K BSS、 12584K 保留、24576K CMA 保留、0K HIGHMEM)
    [0.000000]虚拟内核内存布局:
    [0.000000] 向量:0xffffff0000 - 0xffffff1000 (4KB)
    [0.000000] Fixmap:0xc00000 - 0xc00000 (3072 KB)
    [0.000000] vmalloc:0xd0800000 - 0x0x800000 (752MB)
    低内存:0xC0000000 - 0xd0000000 (256 MB)
    [0.000000] pkmap:bfe00000 - 0xC0000000 (2 MB)
    [0.000000] 模块:bbbf000000 - bbfe00000 (14 MB)
    [0.000000] .text:0xc0008000 - 0xc08bb01c (8909KB)
    [0.000000] init:0xc08bc000 - 0xc08fe000 (264KB)
    [0.000000] .data:0xc08fe000 - 0xc094d050 (317 KB)
    [0.000000] .bss:0xc094d050 - 0xc0997258 (297KB)
    [0.000000] slub:HWalign=64、order=0-3、MinObjects=0、CPU=1、Nodes=1
    [0.000000]可抢占分层 RCU 实现。
    [0.000000]叶扇出的生成时间调整为32。
    [0.000000] NR_IRQ:16 nr_IRQ:16
    16 [0.000000] IRQ:在0xfa200000 (修订版本5.0)处找到 INTC、具有128个中断
    [0.000000] OMAP 时钟事件源:timer2为250000Hz
    [0.000019] sched_clock:32位为25MHz、分辨率40ns、每85899345900ns 换行
    一次 TimerFFFF 时钟源:0x0000FFFF 时钟源:0x0000_max:0x0000FFFF 时钟源:0x0000.FFFF:0x0000.FFFF 76450417870 ns
    [0.000061] OMAP 时钟源:25000000 Hz
    时钟发生器1 [0.000282]时钟源探头:未找到匹配的时钟源
    [0.000507]控制台:彩色虚拟设备80x30
    [0.000540]警告:'console=ttyO0'已被'ttyS0'
    [ 0.000548]取代,这可确保您仍然看到内核消息。 请
    [0.000555]更新您的内核命令行。
    [0.000577]校准延迟环路... 623.41 BogoMips (lpj=3117056)
    [ 0.048852] pid_max:默认值:32768最小值:301
    [0.049011]安装高速缓存散列表条目:1024 (顺序:0、4096字节)
    [0.049027]安装点高速缓存散列表条目:1024 (顺序: 0、4096字节)
    [0.049907]初始化 cgroup 子系统 IO
    [0.049947]初始化 cgroup 子系统存储
    器[0.049996]初始化 cgroup 子系统器件
    [0.050016]初始化 cgroup 子系统冷冻库
    [0.050034]
    
    一致性初始化 cgroup 子系统 perf_event [0.050049]初始化 cgroup 子系统 PID:CPU 写入缓冲区[0.050091]:CPU 写入: OK
    [ 0.050588]为0x80008200 - 0x80008258
    [ 0.053326] devtmpfs 设置静态标识映射:已初始化
    [ 0.069055] VFP 支持 v0.3:Implementor 41体系结构3第30部分型号 c rev 3
    [ 0.087456] OMAP-hwmod:debugss:_wait_target_disable failed
    [ 0.145364] ff_clocks:0xFFFFFF:max_clocks:0xFFFF:0xFFFF:0xFFFF cycludes:0xFFFF:0xFFFF 19112604462750000 ns
    [0.148088] pinctrl 内核:初始化 pinctrl 子系统
    [0.149906] NET:注册协议系列16
    [0.152631] DMA:预分配256 KiB 池用于原子相干分配
    [0.178844] cpuidle:使用调节器梯
    [0.208832] cpudle:使用调节器菜单
    [0.214goO 添加器片上寄存器[0.248_gpio0: GPIO
    [0.214648] OMAP GPIO 硬件版本0.1[0.215618]
    gpiochip_add:在器件上注册的 GPIO 32至63:GPIO
    [0.216628] gpiochip_add:在器件上注册的 GPIO 64至95:GPIO
    [0.217597] gpiochip_add:在器件上注册的 GPIO96至127:
    不支持的 GPIO 调试架构[0x2154 284]。
    [0.269746] EDMA 49000000.EDMA:TI EDMA 引擎驱动程序
    [0.270233] of_get_named_gpiod_flags:无法解
    析节点'/fixedregulator@@
    @@@0[0]的'GPIO'属性[0.2702c] of_get_named_gpiod_flags:无法解析节点'/fixedregulator '/iptin2000_mc000[0.27000][0x_mu000_mu000_ipc000](/ocp/l4_wkup
    ) v0.10
    [0.275153] Linux 视频捕捉接口:v2.00
    [0.275227] pps_core:LinuxPPS API 版本。 1寄存
    式[0.275238] pps_core:软件版本。 5.3.6 -版权所有2005-2007 Rodolfo Giometti 
    [0.275278] PTP 时钟支持已注册
    [0.275358] EDAC MC:版本:3.0.0
    [0.276835] OMAP-mailbox 480c8000.mailbox:OMAP 邮箱版本0x400
    [0.278667]来源:切换至时钟源1[0.292797]
    NET:已注册协议系列2[0.293789]
    TCP 建立哈希表条目:2048 (订单: 1、8192字节)
    [0.293836] TCP 绑定哈希表条目:2048 (顺序:1、8192字节)
    [0.293871] TCP:配置哈希表(建立2048 BIND)
    [0.293972] UDP 哈希表条目:256 (顺序:0、4096字节)
    [0.293997] UP-Lite 表条目:256 (顺序:0、44096字节)[0.2994]
    注册协议系列1
    [0.294701] RPC:注册后命名为 UNIX 套接字传输模块。
    [0.294719] RPC:注册的 UDP 传输模块。
    [0.294727] RPC:注册的 TCP 传输模块。
    [0.294736] RPC:注册的 TCP NFSv4.1反向通道传输模块。
    [0.294777] PCI:CLS 0字节、默认64
    [0.295941]硬件性能事件:通过 armv7_cortex_A8 PMU 驱动程序启用、5个可用计数
    器[0.298421] futex 哈希表条目:256 (顺序:-1、3072字节)
    [0.309529] squarfs:4.0版(2009/01/31) Phillip L310723]
    注册 id_resolver 密钥类型
    [0.310809]注册的密钥类型 id_resolver
    [0.310819]注册的密钥类型 id_legacy
    [0.310917] NTFS:驱动程序2.1.32[标志:R/O]。
    [0.311297] jffs2:版本2.2。 (NAND)Copyright2001-2006 Red Hat, Inc.
    [0.316219]块层 SCSI 通用(BSG)驱动程序0.4版已加载(主要248)
    [0.316259]已注册的 IO 调度程序通知
    [0.316278]已注册的 IO 调度程序截止日期
    [0.316330]已注册的 IO 调度程序 cfq (默认)
    [0.318084] pinctrl-single10800.pinmux:PA f9e10800的142个引脚
    串行大小[0.400067] 8250/16550驱动程序、10个端口、禁用 IRQ 共享
    [0.405443] 44e09000.serial: tmio 0x44e09000处的 ttyS0 (IRQ = 158、base_baud = 3000000)是启用的8250
    [ 0.976348]控制台[ttyS0]
    [0.981381] 48022000.serial: tmio 0x48022000处的 ttyS1 (IRQ = 159、9964]
    是48024000.serial:[基础30048] MMIO 0x48024000 (IRQ = 160、base_baud = 3000000)处的 ttyS2是8250
    [ 1.001345][DRM]初始化的 DRM 1.1.0 20060810
    [ 1.007037]面板:用于耗电元件启用的 GPIO 查找
    [1.007059]面板:使用器件树进行 GPIO 查找
    [1.007077] of_get_pio_named gflags: 无法解析节点'/panel[0]的'ENABLE-GPIO'属性
    [1.007091] of_get_named_gpio_FLAGS:无法解析节点'/panel[0]的'ENABLE-GPIO'属性
    [1.007103]面板面板:使用 GPIO 查找表
    [1.007117]面板:无法解析节点'/panel[1.015405
    
    固件的'ENABLE-GPIO'属性[1.015405]面板:无法启用 GPIO 循环[1.015405:固件:固件 GPIO 查找:固件库[1.015405] 探测
    [ 1.088758] DaVinci_MDIO 4a101000.MDIO:达芬奇 MDIO 修订版本1.6
    [ 1.094661] DaVinci_MDIO 4a101000.MDIO:无实时 phy、扫描所有
    [ 1.100914] DaVinci_MDIO:4a101000.MDIO 的探测失败、错误-5
    [ 1.121774] cpsw 4a56x:phy =
    47401300.usb-phy:
    47401300.usb-phy: 3a1439]用于以太网驱动程序重置的 AM35x:mcybid:4a5a3d2:mcyb.phy:4a56d2:4a5a5a3a3a3a64x 使用器件树进行 GPIO 查找
    [1.1456593] of_get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401300[0]的'set-GPIO'属性
    [1.145708] of_get_named_gpio_FLAGS:无法解析节点/ocp/usb
    
    '47401300.usb-phy:@@1435x-phy'驱动程序查找表的'set-gpio'属性[1.5735x-by][1.5735x-gphy] 47401300.usb-phy:驱动程序查找[1.5735x-phy][1.57phy
    47401300.usb-phy: 用于消费类 VBUS-DETECT
    [ 1.145762] AM335x-phy-driver 47401300.usb-phy:
    
    
    47401300.usb-phy:使用器件树进行 GPIO 查找[1.145774] of_get_named_gpio_flags:无法解析节点'/ocp/usb
    47401300.usb-phy:@47400000/USB-phy@47401300[0]的'VBUS-DETECT GPIO'属性[1.35008]_gphy@@1.3500842_gphy 属性/ocp/usb、不能解析节点'/g335713'gphy 属性[1.5713]-phy_guni4by-by-se-natn_g4[1.35x_g4by-s'/g335bphy 属性[1.5713 查找 GPIO VBUS-DETECT 失败
    [1.145889]使用虚拟稳压
    器未找到47401300.usb-phy 电源 VCC [1.181098] musb-hdrc:ConfigData=0xde (UTMI-8、dyn FIFO、大容量组合、大容量分离、HB-ISO Rx、 HB-ISO Tx、SoftConn)
    [ 1.181123] musb-hdrc:MHDRC RTL 版本2.0
    [ 1.181134] musb-hdrc:设置 fifo_mode 4
    [ 1.181161] musb-hdrc:28/31 max EP、16384/16384 memory
    [ 1.182813] AM335x-mode 4 [ 1.181161] musb-hdrc 47401b00.usb-phy:
    
    :使用名为 gpphy_rep_gphy 的47401b00.usb-phy:驱动程序查找[1.281842] gpphy_rphy_rphy [1.35x_gphy_rep_gphy_rphy_repsepsepsep]用于查找驱动程序[1.2860] 无法解析节点'/ocp/usb
    
    
    47401b00.usb-phy:@47400000/USB-phy@47401b00[0]的[1.182875] of _get_named_gpio_FLAGS:无法解析节点'/ocp/usb
    47401b00.usb-phy:@47400000/USB-phy@47401b00[0]的'set-gpio'属性使用47401b00.usb-phy:驱动程序查找功能[1.35x-phy 驱动程序查找能力[1.35x-vbphy]
    47401b00.usb-phy:驱动程序查找能力查找功能失败[1.35x-vb183-phy 使用器件树进行 GPIO 查找
    [1.182942] of_get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401b00[0]的'VBUS-detect-GPIO'属性[1.182955]
    of_get_named_gpio_FLAGS:无法解析节点/ocp/usb
    
    '47401b00.usb-phy:@47400000/USB-phy@47401b00]'[1.18182955]的'bphy'属性[1.1835x-gpphy'属性、并使用47401b00.usb-phy:驱动程序查找[AM335bphy'驱动程序[1.35x-bphy][1.1835x-phy][1.1835x-phy]引脚4bphy]引脚4b33 查找 GPIO VBUS-DETECT 失败
    [1.183049]未找到47401b00.usb-phy 电源 VCC、使用虚拟稳压
    器[1.220956] musb-hdrc:ConfigData=0xde (UTMI-8、dyn FIFO、大容量组合、大容量分离、HB-ISO Rx、 HB-ISO Tx、SoftConn)
    [1.220981] musb-hdrc:MHDRC RTL 版本2.0
    [1.220992] musb-hdrc:设置 fifo_mode 4
    [1.221013] musb-hdrc:28/31 max EP、16384/16384 memory
    [1.229787] UDC musb-hdrc.0.auto:使用
    
    随机以太网地址注册 UDC [ 1.221013] musb][1.922335
    ] 主机 MAC 72:05:bb:DE:A6:C2
    [1.243708] usb0:Mac 66:A4:1e:49:EC
    [1.247453]使用随机自以太网地址
    [1.251794]使用随机主机以太网地址
    [1.256111] g_bet 小工具:添加配置#2'R5c'/c093ceedr[1.25640]
    
    将
    NDIS r_r_rn rn rn rn 配置为1:1.25640rn rn r_rn rn r245cr:rn rn r245cr:rn rn r2424242424185cr:rn 0
    0 [ 1.256210] g_ether 小工具:rNDIS:双速 IN/ep1in OUT/ep1out notify/ep2in
    [1.25723] g_ether 小工具:cfg 2/c093ce5c 速度:高全速
    [1.256234] g_NDIS 小工具:接口0 = rcf482b40
    [1.2561g] g_get r224g] g_g_get
    添加配置#1 'CDC 以太网(ECM)'/c093cdb0
    [1.256279] g_g_g_g_g_g_gadget:添加'CDC_Ethernet'cf482c00以配置'CDC 以太网(ECM)'/c093cdb0
    [1.256315] g_ether g_gadget:双速率 in/ep1in out/ep1g_g_g_g_g_g_g_g_gb
    
    :1.523g_g_g_g_g_g_g_g_g_g_g_g/通知 g_g_gether g_g_g_g_g_g_g_g_g_g_g_gether g_g/
    接口1 = CDC_ETHERNET/CF482c00
    [ 1.256369] g_ETHERe 小工具:以太网小工具、版本:2008阵亡将士纪念日
    [1.262834] g_ETHERe 小工具:g_ready
    [ 1.266709] g_ether musb-hdrc.0.auto: USB_gadget_UDC_start
    [ 1.267421] mousedev:ps/2 device battered [ 1.2782]
    对于所有
    闲置的鼠标驱动程序条目[1.2782] enable-method 属性"ti、am3352"找到操作
    [ 1.286450] omap_hmc 48060000.mmc:用于消费类 CD
    的 GPIO 查找[ 1.286473] omap_hmc 48060000.mmc:使用器件树进行 GPIO 查找
    [1.286514] of_get_named_gpio_FLAGS:已解析'cd-hmc 48060000.mmc [1.2860000.mmc][1.28480mc] gos 属性[1.2860000_mmc](/ocp/mmc)[gmc_gmc_gmc_gmc_gmc_gmc_gmc_gmc_gmc'(gmc_gmcr@
    
    )[ 消费类产品 WP
    [1.291215] omap_hsmmc 48060000.mmc:使用器件树进行 GPIO 查找
    [1.291230] of_get_named_gpio_FLAGS:无法解析节点'/ocp/mmc@
    /ocp/mmc@48048060000[0]的'wP-gpio'属性[1.291243] of_get_named_gpio_gpipod_gpio]不能解析"mmc"1.2960000_mc"属性[1.2960000_mc_mc][mmc_mc_mc_gpio_gpio][1.2960000_mc_mc_mc]、
    不能解析"mmc_gp_gp_gpio_gp_g
    GPIO WP 查找失败
    [1.329571] OMAP_hmc 481d8000.MMC:消费类 CD
    [1.329601] OMAP_hmc 481d8000.MMC:使用器件树进行 GPIO 查找
    [1.329619] of_get_named_gpiod_flags:无法解析"cd-gpios" 481d8000.mmc [1.329619]/ocp/mmc
    的"gm_node_flags"属性[1.48d8000_g_g_g_gm6480][1.48dmm_g_g_g_g_g_g_g_g_g_g_g64000]属性[1.32_gmc_g_g_g_g_g64000][1.32_g_g_g_gp_g_gp_@/ocp/mmc@
    使用查找表进行 GPIO 查找
    [1.329659] omap_hmc 481d8000.mmc:查找 GPIO CD 失败
    [1.329675] omap_hmc 481d8000.mmc:针对消费类 WP
    的 GPIO 查找[1.329687] omap_hmc 481d8000.mmc:使用器件树进行 GPIO 查找[1.3294]_pio_g_gode_flags[1.3294]_gs_gods_gs_gs_gods_gs_gods_gs'gs'ses'
    的属性[1.329719000]@/ocp/mmc
    无法解析节点'/ocp/mmc@481d8000[0]的'wP-GPIO'属性
    [1.330803] OMAP-hmc 481d8000.MMC:使用查找表进行 GPIO 查找
    [1.330817] OMAP-hsmmc 481d8000.MMC:查找 GPIO WP 失败
    [1.366065] mmc0:主机不支持只读开关
    [1.3741] 地址为59b4
    [1.382121] mmcblk0:mmc0:59b4的新高速 SDHC 卡 1.84 GiB
    [ 1.387879] mmcblk0:P1 P2
    [ 1.449603] of _get_named_gpio_FLAGS:解
    /leds/led
    析了节点'/leds/led@2[0]的'GPIO'属性-状态(0)[ 1.449934] of _get_named_gpio_FLAGS:解析的'GPIO'属性'__LW_AT__@/leds/led@2'-status'-[gpio_0][gpio_status][1.449934] of 'gpio_gpio_gpio_flags[1.248_g](g_gpio_g_gpio_gpio_g[1.248_status][g_g_g_gp[gp[g_gpio]
    已解析节点'/leds/led@5[0]
    
    
    
    
    
    的'GPIO'属性-状态(0)[1.450973] ledtrig-CPU:已注册以指示 CPU 上的活动[1.458645] NET:注册协议系列10[1.479891] Sit:IPv6 over IPv4隧道驱动程序[1.485337]:注册协议系列17[1.499130]注册协议类型 NET_VOLTAGE_INIT [1.492] 未添加电压驱动器支持
    [1.556453] tps65217 0-0024:TPS65217 ID 0xe 版本1.2
    [1.569035] at24 0-0050:32768字节24c256 EEPROM、可写、1字节/写入
    [1.575717] OMAP-i2c 44e0b000。i2c:总线0 rev0.11、400 kHz、可
    在线运行[CP99985kHz][1.5717] CPU 频率
    :unlist_freq:1.5kHz] DEV_PM_OPP_DOMAIN_SET_RATE:无法找到 FREQ 625000000 (-34)
    的当前 OPP [1.640137] cpufreq:cpufreq_online:CPU0:未列出的初始频率更改为:600000 KHz
    [ 1.649378] hctosys:无法打开 RTC 器件(rtc0)
    [ 1.6924kfs:未列出的初始频率已按命令安装的文件系统(ct4)[1.6924kfs:ct4)(ctrl 2) opts:(null)
    [ 1.708770] VFS:在设备179:2上安装根(ext4文件系统)。
    [1.729695] devtmpfs:mounted
    [1.733044]释放未使用的内核内存:264K (c08bc000 - c08fe000)
    [1.748673]此架构没有内核内存保护。
    [1.926162] EXT4-FS (mmcblk0p2):已重新安装。 opts:data=ordered
    [ 3.376853] FAT-FS (mmcblk0p1):卷未正确卸载。 某些数据可能已损坏。 请运行 fsck。
    [3.480548] g_ether 小工具:暂停 

    因此、看起来 USB 和 g_ethere 周围有一些活动、没有引发任何明显的错误:

    它还显示有一个可用的接口

    root@elle-board:~# IP link show
    1:Lo: MTU 65536 qdisc noop qlen 1.
    链接/环回00:00:00:00:00:00返修00:00:00:00:00
    2:eth0: MTU 1500 qdisc noop qlen 1000
    链路/以太网98:5d:ad:4e:D2:5e 返修:ff:ff:ff:ff:ff
    :ff 3:USB0: MTU 1500 qdisc noop qlen 1000
    链接/以太网66:A4:A3:1e:49:EC 返修:ff:ff:ff:ff:ff
    :ff 4:sit0@无: MTU 1480 qdisc noop qlen 1.
    Link/sit 0.0.0.0 brd 0.0.0.0
    root@elle-board:~ 

    root@elle-board:~# ifconfig usb0 192.168.1.2 netmask 255.255.255.0 up
    root@elle-board:~# ifconfig
    USB0链路连接:以太网 HWaddr 66:A4:A3:1E:49:EC
    iNet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
    上广播多播 MTU:1500公制:1
    RX 数据包:0错误:0丢弃:0超限:0帧:0
    TX 数据包:0错误:0丢弃:0超限:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)

    这让我想到 USB 堆栈中的问题较低、而不是小工具配置本身中的问题?

    • 我将尝试寻找注入一些进一步调试的位置
    • 如果有人对尝试什么有任何建议、我将不胜感激

    祝你一切顺利、

    Richard

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我还找到了此页面: processors.wiki.ti.com/.../MUSB_Linux_Driver_Configuration

    最后是注释:
    "已知问题:内置小工具驱动程序无法正常工作。"

    此页面在这方面是否过期?

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

    这看起来像旧的 wiki。 但不确定它是否已修复。 但您的 g_ether 模块是对的吗? 没有内核内核构建? 您能否检查 PC 端的 dmesg 日志是什么?

    dmesg 中有 g_ether:挂起日志。

    您是否需要复合设备? 您能否尝试仅启用 g_ether 而不启用鼠标/HID 等其他 USB 小工具设备
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Dwarakesh

    感谢您的快速回复

    我正在尝试将 g_ether 构建到内核中- dmesg 输出正在使用此配置运行

    [引用 user="Dwarakesh R"]

    您是否需要复合设备? 您能否尝试仅启用 g_ether 而不启用鼠标/HID 等其他 USB 小工具设备

    [/报价]
    我认为我已经这样做了:
    <*>USB 小工具驱动程序(以太网小工具(支持 CDC 以太网))-->
    以太网小工具(支持 CDC 以太网) 

    我希望只能让 g_ether 正常工作

    目前、我的 Linux 开发环境作为 VM 在 Windows 10 PC 上运行:
    -我的主板上显示的 USB 设备没有进行足够的枚举,无法将其传递给 VM

    就主机而言、我所掌握的有关该主机的信息是:

    =================================== USB Port10 ================================================
    
    连接状态 :0x02 (设备枚举失败)
    端口链 :1-10
    属性 :0x01
    IsUserConnectable :是
    的 PortIsDebugCapable : No
    PortHasMultiCompanions : no
    PortConnectorIsTypeC : no
    
    =========================== USB 设备=================================
    
    ++++++++++++++ 器件信息++++++++++++++++++
    器件描述 :未知 USB 设备(设备描述符请求失败)
    设备路径 :\..\USB#vid_0000&pid_0002#5&33eb7b70&0&10#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    设备 ID :USB\VID_0000&PID_0002\5&33EB7B70&0&10
    硬件 ID :USB\device_descriptor_Failure
    Driver KeyName :{36fc9e60-c465-11CF-8056-444553540000}\0022 (GUID_DEVCLASS_USB)
    驱动程序 INF :C:\Windows\inf\usb.inf
    Legacy BusType :PNPBus
    Class :USB
    类 GUID :{36fc9e60-c465-11CF-8056-444553540000}(GUID_DEVCLASS_USB)
    接口 GUID :{a5dcbf10-6530-11d2-901f-00c04fb951ed}(GUID_DEVINTERFACE_USB_DEVICE)
    枚举符 :USB
    位置信息 :Port_#0010.Hub_#0001
    Manufacturer Info (端口_#0010.Hub_#0001制造商信息) :(标准 USB 主机控制器)
    功能 :0x64 (可移动、SilentInstall、RawDeviceOK)
    状态 :0x01806400 (DN_HAS_Problem、DN_DISABLEABLE、DN_REMOVable、DN_NT_Enumerator、DN_NT_DRIVER)
    问题代码 :43
    (CM_PROB_FAILED_POST_START)地址 :10
    功率状态 :D3 (支持:D0、D3,从 D0唤醒)
    
    -------- 连接信息--------------------------------------------------------
    连接索引 :0x0A (10)
    连接状态 :0x02 (DeviceFailedEnumeration)
    Current Config 值 :0x00
    设备地址 :0x00 (0)
    是集线器 :0x00 (NO)
    开放管道数 :0x00 (0)
    设备总线速度 :0x02 (高速)
    
    -------- 连接信息 V2-----------
    连接索引 :0x0A (10)
    长度 :0x10 (16字节)
    SupportedUsbProtocols:0x03
    Usb110 :1 (是)
    Usb200 :1 (是)
    Usb300 :0
    (否)被保留的 MBZ :0x00
    标志 :0x00
    DevIsOpAtSsOrHigher :0 (未在超高速或更高速度下运行)
    DevIsSsCapOrHigher 0 (不支持超高速或更高)
    DevIsOpAtSsPlusOrHigher:0 (不在 SuperSpeedPlus 或更高版本上运行)
    DevIsSsPlusCapOrHigher:0 (不支持 SuperSpeedPlus 或更高版本)
    被保留的 MBZ :0x00
    
    ------------ 设备描述符-------------------------------------------------------
    b 长度 :0x00 (0字节)
    
    ---------- 字符串描述符---
    字符串描述符不可用(因为器件有问题代码 CM_PROB_FAILED_POST_START) 

    因此、我将尝试隔离负责执行此 USB 引导过程的内核部分、以查看是否有任何线索

    目前我还不知道我还能尝试什么

    谢谢

    Richard

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

    如果您可以将其连接到 Linux 计算机、这将非常有用、因为我们将获得更多日志。 我不确定 Windows 方面。 但有一点看起来很奇怪、那就是"VID_0000"。 为什么供应商 ID 是0x000? 您能检查一下吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Dwarakesh  

    我将放入一个带电引导 USB、以便查看连接到本机 Linux 系统时会发生什么情况。

    VID 是0000、这是我在原始帖子中注意到的;您知道在内核中的配置位置吗?
    我一直在尝试遵循 SDK 上的启动过程、但使用复合小工具(而不是 g_ether)时、我对其差异进行了旁路跟踪

    我将看到我还能挖掘出什么。

    再次感谢

    Richard

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

    可能需要禁用复合并尝试仅启用 g_ether、这是值得尝试的。

    您能否检查 drivers/USB/gadget/scompose.c 文件中的 idVendor 是否正确? 看起来是从那里来的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Dwarakesh R"]
    可能需要禁用复合并尝试仅启用 g_ether、这是值得尝试的。
    [/报价]

    我认为我在这个内核中只启用了 g_ether

    • "复合"驱动程序是 EVM SDK 的工作方式:这是我唯一的"成功"参考框架

    [引用 user="Dwarakesh R"]

    您能否检查 drivers/USB/gadget/scompose.c 文件中的 idVendor 是否正确? 看起来是从那里来的。

    [/报价]

    谢谢! 我将尝试在此处插入一些日志记录、以确定 VID 为空的原因;其定义的宏似乎包括在内(此处和 ete.c 中)

    将主板连接到 PC 并在 Ubuntu 中实时引导后、我可以在主机日志中看到以下内容:

    [781.025966] USB 1-10:使用 xhci_hcd 的新型高速 USB 器件编号11
    [781.138015] USB 1-10:器件不响应设置地址。
    [781.342081] USB 1-10:器件不响应设置地址。
    [781.545867] USB 1-10:器
    
    件不接受地址11、错误-71 [781.657858] USB 1-10:使用 xhci_hcd 的新高速 USB 器件编号12 [781.770190] USB 1-10:器件不响应设置地址。
    [781.974096] USB 1-10:器件不响应设置地址。
    [782.177938] USB 1-10:器
    
    件不接受地址12、错误-71 [782.289955] USB 1-10:使用 xhci_hcd 的新高速 USB 器件编号13 [782.290121] USB 1-10:器件不响应设置地址。
    [782.494072] USB 1-10:器件不响应设置地址。
    [782.697844] USB 1-10:器
    
    件不接受地址13、错误-71 [782.810050] USB 1-10:使用 xhci_hcd 的新高速 USB 器件编号14 [782.810210] USB 1-10:器件不响应设置地址。
    [783.014039] USB 1-10:器件不响应设置地址。
    [783.217926] USB 1-10:器件不接受地址14、错误-71
    [783.217999] USB USB1-port10:无法枚举 USB 器件 

    它至少会提供一个错误代码  

    • 尽管它看起来有点通用、但"#define EPROTO 71 //协议错误*/"
    • 如果插入后"lsusb"、则不会报告条目、因此报告的 VID 的事实是隐藏的

    是时候继续挖掘了!

    祝你一切顺利、

    Richard

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

    我目前可以在 ete.c 中说明的内容

    静态结构 USB_device_descriptor device_desc; 

    在 eth_bind 函数期间正确填充。

    但 在 结构 USB_compose_dev *cdev 中输入的值

     传递给 eth_bind 函数的变量看起来是伪的。

    这些是从通过宏( USB_gadget_composit_options();)声明的"coverwrite"获取的

    我还无法确定使用的值是在哪里被分割。

    从我对注释的阅读中可以看到、这些注释在加载驱动程序时应该在运行时传递吗?

    在哪种情况下、对于静态包含的驱动器、应使用等效或默认值?

    g_ether 的启动以及一些调试来比较 device_desc 和 cdev 的内容

    [1.580980] musb-hdrc:ConfigData=0xde (UTMI-8、dyn FIFO、大容量组合、大容量分离、HB-ISO Rx、 HB-ISO Tx、SoftConn)
    [1.591218] musb-hdrc:MHDRC RTL 版本2.0
    [1.595422] musb-hdrc:设置 fifo_mode 4
    [1.599239] musb-hdrc:28/31 max EP、16384/16384 memory
    [ 1.613219] UDC musb-hdrc.0.auto:使用
    
    随机以太网地址注册 UDC [ 1.6397]主机地址1.6b]
    主机 MAC 2a:02:8f:D5:78:6e
    [ 1.633135] usb0: MAC A2:70:84:34:d0:8f
    [ 1.63684] RM - drivers/USB/gadget/legal/gadete.c:eth_bind 375 ECM
    [1.642961]使用随机自以太网地址
    [1.647254]使用随机主机以太网地址
    [1.651571] RM - drivers/USB/gadget/legal/gete.c:r.c:vid_bed/r.c:1.66384g/ rg/ r206g/ getr.c:vidr.c = 1.65384g/ g/ g/ g/ r.c
    
    添加配置#2 'RNDIS'/c0940e9c
    [ 1.671937] RNDIS_register:configNr = 0
    [ 1.675725] g_ether 小工具:添加'RNDIS'/CF482b40以配置'RDISE'/c0940e9c
    [ 1.682771] Rspees_set_param_medium:添加'RNDIST'/CF482b40以配置'red'/ced'/c0941g_g_g_g/
    快速
    输出 nDISE:1.691g_g]小工具1.691g_g_g_g:1.691g_g/快速[1.693g_g_g_g_g_g_g_g_g_g_g:
    接口0 = RNDIS/CF482b40
    [ 1.704263] g_ether 小工具:接口1 = RNDIS/CF482b40
    [ 1.709578] g_ether
    
    小工具:添加配置#1 'CDC Ethernet (ECM)'/c0940df0 [ 1.716216] g_ether 小工具:添加'CDC_ether g_adether 小工具1以太网[CF24788]/以太网[1.092471]/输出:
    CFG 1/c0940df0速度:高全
    [ 1.737930] g_ether 小工具:接口0 = CDC_ETHERNET/CF482c00
    [ 1.743823] g_ether 小工具:接口1 = CDC_ETHERNET/CF482c00
    [ 1.749720] RM - drivers/USB/USB/legal/ete.c:vid_gether gadgents/gadetr.c:v0=80_ga0_ga0_mc0[1.7430] mc0_mc0_mc0_mc0_magetr.microcontrollers/vid_mc0_
    CDEV cf49aa80代码驱动程序 c0991804
    [1.768442] RM - drivers/USB/gadget/compose.c:USB_compose_overwrite_options 2297:CDEV->vendor 0
    [1.777265] RM - drivers/USB/gadget/compose.c:USB_compose_overy_option_2301:CDEV0->product 0 [1.777265] RM [USB_gadether
    /gr 1.78393r/
    
    g/ g/ gadether v/g.3r.3r.microdrivers/g.c:v/g/g/g/vdegr.microetr.c:v1.53303r.micro-v/g/g/g/g/g/ g.microetr.microdrivers/g/ g/ g.microetr.micro 阵亡将士纪念日2008
    [1.810530] RM - drivers/USB/gadget/legal/ete.c:eth_bind 447 VID 0525 PID a4a2 1 2
    [1.818082] g_ether g_ether 小工具:g_ether ready
    [1.821972] g_ether musb-hdrc.0.auto: usb_gadget_UDC_start
    

    谢谢阅读-我将继续挖掘

    Richard

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

    是的、这些可以在插入模块时提供、也可以通过一些 proc/sysfs 条目从用户空间提供。

    是否可以尝试在 USB_compose_overwrite_options 中对这些值进行硬编码,以检查其是否正在进行中?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢

    是的、我已经尝试过-从我插入的覆盖函数返回后、很快就完成了

    cdev->desc.idVendor = device_desc.idVendor;
    cdev->desc.idProduct = device_desc.idProduct;
    cdev->desc.bcdDevice = device_desc.bcdDevice; 

    我已经确认了 device_desc 中的值看起来可信  

    但是这没有什么影响-主机报告的信息仍然是无效的

    器件 ID         :USB\VID_0000&PID_0002

    我可以确认硬件本身是否正常、因为如果我尝试在没有代码的情况下引导、我将获得一个串行端口

    器件 ID         :USB\VID_0451&PID_6141

    看起来我需要向下爬入 USB 处理、以查看其中的内容

    再次感谢、

    Richard

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

    Richard、

    [引用用户="Richard McAleer"]

    我使用的电路板来自当前运行 ti-processor-sdk-linux-am335x-evm-03.02.00.05-Linux-x86-Install.bin 的 BeagleBoneBlack (使用内核 linux-4.4.4.19+gitAUTOINC+db0b54cdad-gdb0b54cdad)

    [/报价]

    此处出现问题、处理器 SDK v3.2使用内核 v4.4.3.2、而不是 v4.4.4.19。 处理器 SDK v3.1中使用了内核 v4.4.19。 但这与您的问题无关、因此让我们继续、请按照以下步骤操作。

    -请使用您使用的 Processor SDK v3.x 附带的预构建二进制文件启动电路板;
    -在 UART 控制台上运行'modprobe g_ether '和'ifconfig usb0 ';
    -将主板 USB 设备端口连接到 Windows 主机、UART 控制台应显示一条消息"g_g_gadget:high-speed config #2:RNDIS"、Windows 网络适配器列表应显示一条消息"Linux USB ethernet/RNDIS gadget..."; 如果不是、您的电路板 USB 设计或布局可能会出现硬件问题;
    -如果所有操作都在此处进行,则只需让系统在引导时自动加载 g_ether.ko 并为其分配 ipaddress。 这些可以在文件系统中完成、您不必更改内核配置。

    如果您必须为定制板重建内核、请使用 tisdk_AM335x-evm_defconfig 作为 defconfig、并且不要更改任何与 USB 相关的配置选项。

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

    你好,刘斌

    感谢您发帖。

     当我下一次接触硬件时、我将按照您的建议进行尝试:我相信 USB 跟踪在没有任何代码运行的情况下已经正常工作、我可以看到 COM 端口枚举。

    我可能还不清楚的一个方面是我尝试在内核中静态包含此驱动程序:这就是为什么我在 TI Wiki 中遵循了这样做的说明

    鉴于您对这一领域有着良好的了解、如果您能评论一下这是否可行、我将不胜感激。 (有关这方面的一些文档似乎令人困惑、可能已过时)

    感谢你的帮助。

    此致、

    Richard

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

    我已使用 zImage 的预构建二进制文件和随附的新解压的 rootfs 进行引导。
    我需要为电路板提供合适的 DTB (否则、引导将挂起和看门狗)

    启动序列如下所示:下面我将介绍一些内容

    内核映像@ 0x82000000 [ 0x000000 - 0x34a9d8 ]##
    平展设备树 blob,88000000使用
    0x88000000的 FDT blob 启动
    正在将设备树加载到8ef19000,结束8ef25531... 确定
    
    启动内核...
    
    [0.000000]在物理 CPU 上引导 Linux 0x0
    [0.000000]初始化 cgroup 子系统 CPU
    [0.000000]初始化 cgroup 子系统 cpuacct
    [0.000000] Linux 版本4.4.4.1.19-gdb0b54cdad (gtbldadm@Uubuntu-16)(gcc 版本5.3.1 GCC 20160113 (Linaro 5.3-2016.02)
    10月1日[0.43] CPU:1月3日[0.46]:1日):1月1日(10月3日):E6月1日(CPU:1日) ARMv7处理器[413fc082]修订版2 (ARMv7)、CR=10c5387d
    [0.000000] CPU:PIPT/VIPT 非混叠数据高速缓存、VIPT 指令高速缓存
    [0.0000]机器模型:Compumedics Argo
    [0.0000M]
    :保留24、位于0x8d000000 [ 0.000000
    、0、0、2、0、2、2、2、2、2、2、2、3、3、3、000、000、000、000、000、000、000、000、000、000 65546d4
    、node_mem_map cfdad000 [0.000000]
    正常区域:576页用于 memmap
    [0.000000]正常区域:0页保留
    [0.000000]正常区域:65SVC 页、LIFO 批处理:15 [0.536]
    CPU 启动所有 CPU 模式。
    [0.000000] AM335X ES2.1 (NEON)
    [0.000000] pcpu-alloc:s0 r0 d32768 u32768 alloc=1*32768
    [0.000000] pcpu-alloc:[0] 0
    [0.000000]在区域顺序中构建了1个区域列表,移动分组打开。 总页数:64960
    [0.000000]内核命令行:console=ttyO0、115200n8 loglevel=10 root=PARTUUUID=1eb3b9b3-02 RW rootfstype=ext4
    
    
    hash 等待[0.000000] PID 哈希表条目:1024 (顺序:0、4096字节)[0.000000]条目1072条目哈希表:32768个(缓存条目:0.384个) 4、65536字节)
    [0.000000]内存:224976K/262144K 可用(6551K 内核代码、314K rwdata、2396K rodata、264K init、265K BSS、 12592K reserved,24576K CMA-reserved,)
    [0.000000]虚拟内核内存布局:
    [0.000000] vector:0xffffff0000 - 0xffffff1000 (4KB)
    [0.000000] fixmap:0xc00000 - 0xfff00000 (3072KB)
    [0.000000] vmalloc:0xd0800000 - 0x800000 (0x000000 MB)[0.752m]
    0xC0000000 - 0xd0000000 (256 MB)
    [0.000000] pkmap:bbfe00000 - 0xC0000000 (2 MB)
    [0.000000]模块:bbf000000 - bbbbbfe00000 (14 MB)
    [0.000000].text:0xc0008000 - 0xc08c5004 (8949
    6000 KB)[0.0900000].init:0xc8000 - 0xc08264 KB
    0xc0908000 - 0xc0956b10 (315KB)
    [0.000000].bss:0xc0956b10 - 0xc0999258 (266KB)
    [0.000000] slub:HWALIG=64、order=0-3、MinObjects =0、CPU=1、Nodes=1
    [0.000000]可抢占式 RCU 分层实现。
    [0.000000]叶扇出的生成时间调整为32。
    [0.000000] NR_IRQ:16 nr_IRQ:16
    16 [0.000000] IRQ:在0xfa200000 (修订版本5.0)处找到 INTC、具有128个中断
    [0.000000] OMAP 时钟事件源:timer2为250000Hz
    [0.000016] sched_clock:32位为25MHz、分辨率40ns、每85899345ns 换行
    一次 TimerFFFF 时钟源:0x0000_max:0x0000FFFF 时钟源:0x0000_FFFF:0x0000.FFFF 时钟源:0x0000.FFFF 76450417870 ns
    [0.000059] OMAP 时钟源:25000000 Hz
    时钟发生器1 [0.000272]时钟源探头:未找到匹配的时钟源
    [0.000500]控制台:彩色虚拟设备80x30
    [0.000531]警告:'console=ttyO0'已被'ttyS0'
    [ 0.000540]取代,这可确保您仍然看到内核消息。 请
    [0.000546]更新您的内核命令行。
    [0.000570]校准延迟环路... 623.41 BogoMips (lpj=3117056)
    [ 0.048855] pid_max:默认值:32768最小值:301
    [ 0.049014]安装高速缓存散列表条目:1024 (顺序:0、4096字节)
    [ 0.049030]安装点高速缓存散列表条目:1024 (顺序: 0、4096字节)
    [0.049900]初始化 cgroup 子系统 IO
    [0.049945]初始化 cgroup 子系统存储
    器[0.049991]初始化 cgroup 子系统器件
    [0.050011]初始化 cgroup 子系统冰箱
    [0.050030]
    
    一致性化 cgroup 子系统 PERF_EVENT [0.050047]初始化组子系统 PID [0.050084] CPU 初始化:写入缓冲区 OK
    [ 0.050589]为0x80008200 - 0x80008258
    [ 0.053341] devtmpfs 设置静态标识映射:已初始
    化[ 0.069084] VFP 支持 v0.3:Implementor 41体系结构3第30部分版本 C 版本3
    [ 0.087449] OMAP-hwmod:debugss:_wait_target_disable 失败
    [ 0.144238] Idle cyclock_ff_clocks:0xFFFF:0xFFFFFF:max_clocks:0xFFFF:0xFFFF:0xFFFF cyclus_max:0xFFFF 19112604462750000 ns
    [0.146955] pinctrl 内核:初始化 pinctrl 子系统
    [0.148583] NET:注册协议系列16
    [0.151487] DMA:预分配256 KiB 池用于原子相干分配
    [0.178848] cpuidle:使用调节器梯
    [0.208837] cpudle:使用调节器菜单
    [0.2431]片上的 GPIO 添加寄存器 gio0: GPIO
    [0.214650] OMAP GPIO 硬件版本0.1[0.215599]
    gpiochip_add:器件上已注册的 GPIO 32至63:GPIO
    [0.216590] gpiochip_add:器件上已注册的 GPIO 64至95:GPIO
    [0.217553] gpiochip_add:器件上已注册的 GPIO96至127:
    [0.802256硬件结构:不支持的 GPIO 调试中断点0x804。
    
    
    
    
    [ 0.269707] EDMA 49000000.EDMA:TI EDMA 引擎驱动程序[0.270185] of _get_named_gpiod_flags:无法解析节点"/fixedregulator@0[0]的'GPIO'属性[0.270647] of _get_named_gpiod_flags:无法解析节点'/fixedregulator@@@@0[0.2764]的'gpinc/ipc000[0x2764]引脚0_mu28](/ocp/l4_wkup) v0.10
    [0.275039] Linux 视频捕捉接口:v2.00
    [0.275109] pps_core:LinuxPPS API 版本。 1寄存
    式[0.275119] pps_core:软件版本。 5.3.6 -版权所有2005-2007 Rodolfo Giometti 
    [0.275156] PTP 时钟支持已注册
    [0.275222] EDAC MC:版本:3.0.0
    [0.276699] OMAP-mailbox 480c8000.mailbox:OMAP mailbox 版本0x400
    [0.277105]已初始化高级 Linux 声音架构驱动程序。
    [0.278654]时钟源:切换到时钟源 Timer1
    [0.292728] NET:注册协议系列2[0.293741]
    TCP 建立哈希表条目:2048 (顺序:1、8192字节)
    [0.293790] TCP 绑定哈希表条目:2048 (顺序:1、8192字节)
    [0.293826] TCP: 配置的哈希表(建立2048 BIND 2048)
    [ 0.293919] UDP 哈希表条目:256 (顺序:0、4096字节)
    [ 0.293944] UP-Lite 哈希表条目:256 (顺序:0、4096字节)
    [ 0.294139] NET:注册的协议系列1
    [0.294645] RPC:注册的命名的 UNIX 套接字传输模块。
    [0.294666] RPC:注册的 UDP 传输模块。
    [0.294674] RPC:注册的 TCP 传输模块。
    [0.294683] RPC:注册的 TCP NFSv4.1反向通道传输模块。
    [0.294715] PCI:CLS 0字节、默认64
    [0.295905]硬件性能事件:通过 armv7_cortex_A8 PMU 驱动程序启用、5个计数器可用
    [0.298427] futex 散列表条目:256 (顺序:-1、3072字节)
    [0.309264] squars:4.0版(2009/01/31) 0.43] lfuler phillipe]
    注册 id_resolver 密钥类型
    [0.310512]注册的密钥类型 id_resoler
    [0.310524]注册的密钥类型 id_legacy
    [0.310623] NTFS:驱动程序2.1.32 [Flags:R/O]。
    [0.315217]块层 SCSI 通用(BSG)驱动程序0.4版已加载(主要248)
    [0.315259]已注册的 IO 调度程序通知
    [0.315279]已注册的 IO 调度程序截止日期
    [0.315487]已注册的 IO 调度程序 cfq (默认)
    [0.317250] pinctrl-single 44e10800.pinmux:PA f9e10800的142个引脚数[0.398507]
    串行大小[0.8568] 8250/16550驱动程序、10个端口、禁用 IRQ 共享
    [0.403997] 44e09000.serial: tmio 0x44e09000处的 ttyS0 (IRQ = 158、base_baud = 3000000)是启用的8250
    [1.052924]控制台[ttyS0]
    [1.057924] 48022000.serial: tmio 0x48022000处的 ttyS1 (IRQ = 159、base_baud = 1.0670000]
    是启用的[1.0579250] 48024000.serial: MMIO 0x48024000 (IRQ = 160、base_baud = 3000000)处的 ttyS2是8250
    [ 1.077845][DRM]已初始化 DRM 1.1.0 20060810
    [ 1.083834]面板:GPIO 查找用于消费者启用
    [ 1.089066]面板:使用器件树用于 GPIO 查找
    [ 1.094369] of _get_named_pio_flags: 无法解析节点'/panel[0]的'ENABLE-GPIO'属性
    [1.102619] of _get_named_gpio_FLAGS:无法解析节点'/panel[0]的'ENABLE-GPIO'属性
    [1.110777]面板:使用查找表进行 GPIO 查找
    [1.116241]面板:查找 GPIO 启用
    环[ 1.8916]已加载
    的模块[ 1.110777]面板:已加载的 lib13phy] 探测
    [1.208743] DaVinci_MDIO 4a101000.MDIO:达芬奇 MDIO 修订版本1.6
    [1.214648] DaVinci_MDIO 4a101000.MDIO:无活动物理层、扫描所有
    [1.2220885] DaVinci_MDIO:4a101000.MDIO 的探头失败、错误-5
    [1.241730] cpsw 4a64:dac:d2:
    dac 40d2:d2:4a64eDb:db:db:mac 40d2:db:db: 所有鼠标通用的 PS/2鼠标设备
    [1.270457] i2c /dev/entries 驱动程序
    [1.275145] cputidle: enable-method 属性'ti、am3352'找到的操作
    [1.282795] omap_hmc 48060000.mmc:gpio_lookup for consumer CD
    [1.288606] omap_hmc 48060000.mmc:god_g_gapps_gapps_g_gapps_mc 48060000.mmc
    为 g_gapps_gap_g_gapps_g_g_ 已解析节点'/ocp/mmc@
    
    
    
    /ocp/mmc@48060000[0]的'CD-GPIO'属性-状态(0)[1.304642] OMAP_hmc 48060000.MMC:获取 CD GPIO [1.309129] OMAP_hmc 48060000.MMC:耗电元件的 GPIO 查找[1.314924] OMAP-hsmmc 48060000.mmc 的'god_g0_g@g@gmc_g24_g@g@g@g@gmc@g@g@gmc@g@g@g@gmc@g@g@g@gm@gm@gm@gm@gm@gm@gm@gm@gm@gm@gm@gm@gm@gm@gm@gm@
    无法解析节点'/ocp/mmc@48060000[0]的'wP-GPIO'属性
    [1.338812] omap_hsmmc 48060000.mmc:使用查找表进行 GPIO 查找
    [1.345279] omap_hsmmc 48060000.mmc:查找 GPIO WP 失败
    [1.389527] omap_hsmmc 481dmmc_g1d8000
    
    :使用 omap_gap_g_g64d8000 gmc_gmc_gap_g_gmc [1.40d8000.mmc g_g_g_g_g_g_gmc_g_gmc_g_gmc.mmc [1.481d8001.48 无法解析节点'/ocp/mmc@481d8000[0]
    的'CD-GPIO'属性[1.413664] of _get_named_gpio_FLAGS:无法解析节点'/ocp/mmc@481d8000[0]的'CD-GPIO'属性
    [1.422462] OMAP-hsmmc 481d8000.mmc:无法解析
    
    用于查找 OMAP-4m648.mmc 的"48d8000的'CD-gpio.mmc [1.48d8000.mmc][1.48m64b_mc][1.48m64b_mmc:无法使用 OMAP 48d4m8000 gpio.mmc 查找表1.48d4m8000:48d4mc]
    使用器件树进行 GPIO 查找
    [1.446876] of_get_named_gpio_FLAGS:无法解析节点'/ocp/mmc@481d8000[0]
    的'wP-GPIO'属性[1.456736] of_get_named_gpio_506:无法解析节点'/ocp/mmc@481d8000[1.48dmmc]
    的'wP-gpio_gpio'属性 对于 OMAP
    查找表:1.48d8000[1.48dmmc_mc][1.48mc_mc_gpio_gpio_gelsm:1.48d8002]1.48d4mc_mc_mc]:1.48d4mc_gpio_gwp:无法解析'wp
    主机不支持读取只读开关、假设写入启用
    [ 1.515916] mmc0:地址59b4
    [ 1.522064]的新高速 SDHC 卡 mmcblk0:mmc0:59b4 1.84GiB
    [ 1.528261] mmcblk0:P1 p2
    [ 1.599521] of _get_named_god_g]@
    (gpio_status_1.524])、"gpio_[1.52821]、"g_god_status_[1.528]、"pio_status_[1.70]、"pio_[1.524_[1.524]、则为/leds/led 节点'/leds/led@3[0]的'GPIO'属性-状态(0)
    [1.638884] of_get_named_gpio_FLAGS:解析了节点'/leds/led@
    @4[0]的'GPIO'属性-状态(0)[1.647794] of_get_named_gpio_FLAGS:解析了'gpio'属性[/leds/led -
    注册的[1.675]属性[1.73]
    注册协议系列10
    [1.70994] SIT:IPv4隧道驱动程序[1.715105]
    NET:注册协议系列17
    [1.729087]注册的关键类型 DNS_旋 变传感器
    [1.733452] OMAP-VOLTAGE_LARD_INIT:未添加电压驱动程序支持
    [1.786409] tps65217 0-0024:TPS65217 ID 0x9900e 版本1.750]
    32768字节24c256 EEPROM、可写、1字节/写入
    [ 1.805655] omap_i2c 44e0b000。i2c:总线0版本0.11、频率为400kHz
    [ 1.829958] cpufreq:cpufreq_online:cpu0:在 unlisted freq:370kHz
    [ 1.862567] CPU CPU0:cpufreq_unline_freq:
    无法找到 nomap_cpu000_freq (对于未列出的域:1.8009_cpupr_opp_opp_unline) 未列出的初始频率更改为:600000 KHz
    [ 1.879440] hctosys:无法打开 RTC 设备(rtc0)
    [ 1.899221] ALSA 设备列表:
    [ 1.902119]找不到声卡。
    [2.840634] EXT4-FS (mmcblk0p2):恢复完成
    [2.925140] EXT4-FS (mmcblk0p2):已安装文件系统、具有有序数据模式。 opts:(null)
    [ 2.933084] VFS:在设备179:2上安装根(ext4文件系统)。
    [2.942502] devtmpfs:mounted
    [2.945850]释放未使用的内核内存:264K (c08c6000 - c0908000)
    [2.952273]此架构没有内核内存保护。
    [3.245507] systemd[1]:生成时间之前的系统时间、提前时钟。
    [3.328421]随机:systemd:未初始化 urandom 读取(16字节读取、21位熵可用)
    [3.347944]随机:systemd:未初始化 urandom 读取(16字节读取、21位熵可用)
    [3.384952] systemd[1]:systemd 229在系统模式下运行。 (+pam -audit -selinux +ima -AppArmor +smack +sysvinit +utmp -LIBCRYPTSETUP -GCRYPT +GNUTLS +)
    [3.405431] systemd[1]:检测到的架构 ARM。
    
    欢迎来到 Arago 2016.08!
    
    [3.430478] systemd[1]:将主机名设置为 。
    [3.531530]随机:systemd-sysv-ge:未初始化的 urandom 读取(16字节读取、25位熵可用)
    [3.574933]随机:systemd-gpT-aut:未
    初始化的 urandom 读取(16字节读取、25位熵可用)[3.586174]随机:systemd-gpT-aut-random:
    3.5082]随机读取(16字节和25字节) 未初始化的 urandom 读取(读取16字节、可用26位熵)
    [3.630547]随机:systemd-sysv-ge:未初始化的 urandom 读取(读取16字节、可用27位熵)
    [3.741792]随机:systemd:未初始化的 urandom 读取(读取16字节、可用31位熵)
    [3.751785]随机:systemd: 未初始化的 urandom 读取(读取16个字节、可用31位熵)
    [3.762913]随机:systemd:未初始化的 urandom 读取(读取16个字节、可用31位熵)
    [3.990540] systemd[1]:[/lib/systemd/system/gadget-init.service:15]未知 lvalue 'Exchs'部分中的'ExecStopPre'
    [4.323108][4.234.1]:basic started.systemd[basic systemd]
    已找到对 sysinit.target/start
    的依赖关系[4.337914] systemd[1]:basic.target:找到对 alignment.service/start 的依赖
    关系[4.345295] systemd[1]:basic.target:找到对 basic.target/start
    [4.352150] systemd[1]:basic.target:通过删除作业 alignment.service/start
    来中断订购周期[4.361091]:alignment.service: systemd[1] 删除了作业 alignment.service/start 以断开从 basic.target/start
    [ skip ]订购周期开始的订购周期,跳过 alignment.service
    [4.406623] systemd[1]:侦听 udev 内核套接字。
    [确定]正在侦听 udev 内核套接字。
    [4.432590] systemd[1]:创建的层用户和会话层。
    [确定]已创建层用户和会话层。
    [4.459205] systemd[1]:已达到目标远程文件系统。
    [确定]已到达目标远程文件系统。
    [4.508320] systemd[1]:侦听网络服务 Netlink 套接字。
    [确定]侦听网络服务 Netlink 套接字。
    [4.539756] systemd[1]:在 Journal Socket 上收听。
    [确定]收听日志套接字。
    [4.569645] systemd[1]:侦听 udev 控制套接字。
    [确定]正在侦听 udev 控制套接字。
    [4.601940] systemd[1]:侦听名为 Pipe 的/dev/initctl 兼容性。
    [确定]收听/dev/initctl 兼容性命名管道。
    [4.630371] systemd[1]:已开始将密码请求转发到 Wall Directory Watch。
    [确定]已开始将密码请求转发到 Wall Directory Watch。
    [4.660180] systemd[1]:已开始向控制台目录监视发送密码请求。
    [确定]已开始向控制台目录监视发送密码请求。
    [4.689421] systemd[1]:已达到目标路径。
    [确定]已到达目标路径。
    [4.719871] systemd[1]:Listening on Journal Socket (/dev/log)。
    [确定]收听 Journal Socket (/dev/log)。
    [4.749426] systemd[1]:已达到目标交换。
    [确定]已达到目标交换。
    [4.782215] systemd[1]:创建了层系统层。
    [确定]已创建切片系统切片。
    [4.809639] systemd[1]:已达到目标层。
    [确定]已到达目标层面。
    [4.851230] systemd[1]:正在安装临时目录...
    正在安装临时目录...
    [4.915465] systemd[1]:正在启动安装虚拟控制台...
    正在启动设置虚拟控制台...
    [5.031145] systemd[1]:正在启动加载内核模块...
    正在启动加载内核模块...
    [5.118064] systemd[1]:正在开始重新装载根和内核文件系统...
    正在开始重新装载根文件系统和内核文件系统...
    [5.179926] cryptodev:已加载驱动程序1.8。
    [5.214899] systemd[1]:正在安装调试文件系统...
    正在安装调试文件系统...
    [5.271415] systemd[1]:创建的片系统序列\x2dgetty.slice。
    [5.310268] EXT4-FS (mmcblk0p2):已重新安装。 opts:(空)
    [确定]创建的片系统-串行\x2dgetty.slice。
    [5.341320] systemd[1]:创建的层 system-Getty.slice。
    [确定]已创建片 system-Getty.slice。
    [5.375447] systemd[1]:开始为当前内核创建所需的静态设备节点列表...
    正在开始创建所需 st 的列表... 当前内核的节点...
    [5.435568] systemd[1]:安装 POSIX 消息队列文件系统...
    正在安装 POSIX 消息队列文件系统...
    [5.479720] systemd[1]:侦听 Syslog 套接字。
    [确定]侦听 Syslog 套接字。
    [5.514983] systemd[1]:正在启动日志服务...
    正在启动日记账服务...
    [5.623418] systemd[1]:已挂载 POSIX 消息队列文件系统。
    [确定]已挂载 POSIX 消息队列文件系统。
    [5.66967] systemd[1]:已安装调试文件系统。
    [确定]已安装调试文件系统。
    [5.689600] systemd[1]:挂载的临时目录。
    [确定]已挂载的临时目录。
    [5.720267] systemd[1]:已启动日志服务。
    [确定]已启动日志服务。
    [确定]已启动设置虚拟控制台。
    [确定]已开始加载内核模块。
    [确定]已开始重新装载根和内核文件系统。
    [确定]已开始为当前内核创建所需的 sta...ce 节点列表。
    正在开始在/dev/中 创建静态设备节点...
    正在启动 udev 冷插拔所有设备...
    正在开始应用内核变量...
    正在开始将日志刷新到持久存储...
    [确定]已开始在/dev/中 创建静态设备节点。
    [确定]已开始应用内核变量。
    [7.791152] systemd-journale[99]:已收到从 PID 1刷新运行时日志的请求
    [确定]已将刷新日志启动到永久存储。
    正在启动 udev 内核设备管理器...
    [确定]已达到目标本地文件系统(预)。
    安装/var/volatile...
    安装/media/ram...
    [确定]已安装/var/volatile.
    [确定]已安装/media/ram.
    [确定]已启动 udev 冷插拔所有设备。
    [确定]已启动 udev 内核设备管理器。
    [ 9.830499] AM335x-phy-driver 47401300.usb-phy:
    
    
    /ocp/usb 用于消费者复位的 GPIO 查找[ 9.8375101] AM335x-phy-driver 47401300.usb-phy:
    /dev/ttyS0.使用器件树进行 GPIO 查找[9.999019] of_get_named_gpiod_flags:无法解析节点'/ocp/usb@47400000/USB-'的'reset_gphy'属性[10.474021][gpio]@@@未找到[gphy_une_s'[g100_gpy'属性[gpy'属性[g100_gpy'属性[29][gpy][gpy_gpy][g100_gpy][gpy][gum_gpy][gpy
    [10.278941]使用查找表进行 GPIO 查找的 AM335x-phy-driver 47401300.usb-phy:
    [10.286374] AM335x-phy-driver 47401300.usb-phy:查找 GPIO 复位失败
    启动加载/保存随机种子...
    [确定]已到达目标本地文件系统。
    [10.458221] AM335x-phy-driver 47401300.usb-phy:用于消费者 VBUS-Detect 的 GPIO 查找
    开始创建易失性文件和目录...
    [10.567689] AM335x-phy-driver 47401300.usb-phy:使用器件树进行 GPIO 查找
    [10.688892] of_get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401300[0]的'VBUS-detect-GPIO'属性
    [确定]启动加载/保存随机种子。
    [10.769089] of _get_named_gpio_FLAGS:无法使用
    GPIO 查找表分析节点'/ocp/usb
    
    47401300.usb-phy@47400000/USB-phy@47401300[0]'[10.862215] AM335x-phy-driver 47401300.usb-phy:使用 GPIO 查找表[10.938841] AM335x-phy vcc-v46289[10.4]r 未使用虚拟 GPIO 查找表查找47401300.usb-phy: vcc-vr242phy]
    DEV (254:0)[
    确定]已开始创建易失性文件和目录。
    [11.228952] OMAP_RTC 44e3e000.RTC:RTC 内核:将44e320.RTC 注册为 rtc0
    [11.314078] OMAP_WDT:OMAP 看门狗计时器修订版0x01:初始超时60秒
    [11.393734] OMAP_rng 48310010.rng:OMAP 随机数发生器版本。 20
    [11.447615] OMAP-SHIM 53100000.sham:OMAP 版本4.3上的硬件加速器
    [11.704557] remoteproc0:wkup_m3可用
    [ 11.767913] remoteproc0:注意:remoteproc 仍在开发中、并被视为实验。
    [11.865148] remoteproc0:二进制格式尚未最终确定,并且尚不能保证向后兼容性。
    [12.081340] remoteproc0:加电 wkup_m3
    [12.086994] remoteproc0:启动 FW 映像 AM335x-pm-firmware.elf、大小217148
    [12.213811] remotecutel0:远程处理器 wkup_m3_m3现已加电
    [12.849] wkup_omap_ipc 44e11324.wel.wv [12.2838]
    
    找到 AES 固件[12.35bup_m3_v_amp3:/dev/ttyS3.
    [12.744519] omap_hwmod:pruss:_wait_target_ready 失败:-16
    [12.818976] ti-pruss 4a300000.pruss:无法启用 pruss
    [12.824431] ti-pruss:4a300000.pruss 的探测器失败,错误-16[12.974849]
    omap_hwmod:gf rfr
    无法重置[13.24430.gx gx rgx rfr。
    [13.266317] OMAP-hwmod:GFX:_WAIT_TARGET_READY 失败:-16
    [ 13.398910] PVR_K:(错误):EnableSGXClocks:Pm_Runtime_get_sync 失败(16)
    [13.405674] PVR_K:(错误):SysInitialize:无法启用系统
    同步(175)启动网络时钟...
    [13.60970] PM:引导加载程序不支持仅 RTC!
    正在开始更新 utmp 关于系统引导/关机...
    [14.341828] FAT-FS (mmcblk0p1):卷未正确卸载。 某些数据可能已损坏。 请运行 fsck。
    [确定]已开始网络时间同步。
    [确定]已开始更新关于系统引导/关机的参数。
    [确定]找到设备/dev/mmcblk0p1.
    [确定]侦听加载/保存射频终止开关状态/dev/rfkill 观察。
    正在开始同步系统和硬件时钟...
    [确定]已同步达到目标系统时间。
    [确定]已开始同步系统和硬件时钟。
    [17.376510] usbcore:注册的新接口驱动程序 usbfs
    [17.480582] usbcore:注册的新接口驱动程序集线
    器[17.517937] usbcore:注册的新设备驱动程序 USB
    [17.663459] musb-hdrc:ConfigData=0xde (UTMI-8、dyn FIFOs、大容量组合、大容量组合、HB-ISO、分离 Rx HB-ISO Tx、SoftConn)
    [17.739189] musb-hdrc:MHDRC RTL 版本2.0
    [17.7434344] musb-hdrc:设置 fifo_mode 4
    [17.747239] musb-hdrc:28/31 max EP、16384/16384 memory
    [17.79974] musb-hdrc:设置 USB fifo-mode 4 [17.747239239] musb-hdrc-hdrc:281/31 drc musb-hdrc.0.auto:
    :配置的 USB 总
    线驱动程序、musb-hdr1:r1:musb-hdrc.0.auto: 找到 USB 集线器
    [17.837299]集线器1-0:1.0:检测到1个端口
    [确定]已达到目标系统初始化。
    [确定]正在收听 dropbear.socket。
    [确定]正在侦听 RPCbind 服务器激活套接字。
    [确定]侦听 Avahi mDNS/DNS-SD 堆栈激活套接字。
    [确定]开始每日清理临时目录。
    [确定]达到目标计时器。
    [ OK ]正在收听 D 总线系统消息总线插座。
    [确定]已达到目标套接字。
    [确定]已到达目标基本系统。
    正在启动 USB 小工具...
    [确定]已启动系统日志服务。
    正在启动 Avahi mDNS/DNS-SD 堆栈...
    正在开始打印有关 GPLv3封装的通知...
    正在启动电话服务...
    [确定]启动了 D-Bus 系统消息总线
    [19.546409]使用随机自以太网地址
    [19.561082]使用随机主机以太网地址
    [19.586387]使用主机以太网地址:98:5D:AD:4E:D2:60
    [19.59999998]使用随机自以太网地址
    [19.6154]使用随机主机以太网地址
    [19.638855]使用主机以太网地址:98:5D:4E:60D:66D2:604E
    : 主机 MAC 98:5d:AD:4e:D2:60
    [ 19.692215] usb0:Mac 22:be:E7:08:0f:d0
    [ 19.791237]大容量存储功能、版本:2009/09/11
    [ 19.796238] LUN:
    随机可移动文件:(无媒体)[ 19.860525]
    :非阻塞池已启动[已初始化]电话服务[正常]。
    [19.901265] LUN:可移动只读文件:/dev/mmcblk0p1
    [确定]启动 Avahi mDNS/DNS-SD 堆栈。
    正在启动网络服务...
    [19.947811] LUN 数=1
    [确定]启动内核日志记录服务。
    [19.990067] g_multigadget:多功能复合小工具
    [20.038472] g_multigadget:g_multiready
    [20.070716]蓝牙:核心版本2.21
    开始允许用户会话...
    [20.134255] NET:注册协议系列31[20.1388586]
    蓝牙:HCI 设备和连接管理器已初始
    化正在启动登录服务...
    [确定]使用 ipsec.conf 启动 StrongSwan IPsec IKEv1/IKEv2守护程序。
    [20.275362]蓝牙:HCI 套接字层已初始化
    [20.307416]蓝牙:已初始化 L2CAP 套接字层
    、从 uim-sysfs.service 开始...
    [20.397334]蓝牙:SCO 套接字层已初始化
    [ OK ]已开始允许用户会话。
    [确定]已启动网络服务。
    [20.724894] IPv6:ADDRCONF (NETDEV_UP):USB0:链路未就绪
    [21.000877] net eth0:初始化 cpsw 版本1.12 (0)
    [21.006066] net eth0:已初始化 cpsw ale 版本1.4
    [21.049579] net eth0:ale Table size 1024
    [ 21.089664]
    net 1043phy:未找到[21.0943phy PHY:21.04936] PHY "4a101000.mdio:00"未在从器件0上找到、错误-19[
    确定]找到器件/dev/ttyGS0.
    [ 21.198938] libphy:PHY 4a101000.mdio:01未找到
    [ 21.227760] net eth0:PHY "4a101000.mdio:01"未找到从站1、错误-19
    [ 21.333127] IPv6:ADDRCONF (NETDEV_UP):eth0:链路未就绪
    [ 21.535054]
    启动注册的 USB 小工具系列[ 21.333127]。
    [22.479325]正在初始化 XFRM netlink 套接字
    安装配置文件系统...
    [确定]已到达目标网络。
    正在启动具有轻量级系统要求的 Lightning Fast Webserver ...
    正在开始网络名称解析...
    [确定]已在 tty1上启动 Getty。
    [确定]已在 ttyS0上启动串行 Getty。
    [确定]已在 ttyS3上启动串行 Getty。
    [确定]已在 ttyGS0上启动串行 Getty。
    [确定]已挂载配置文件系统。
    [确定]已开始网络名称解析。
    [确定] Lightning 启动了具有轻量级系统要求的 Fast Webserver。
    [确定]启动登录服务。
    [确定]已启动 uim-sysfs.service。
    正在启动 rc.pvr.service ...
    (小部分
    (小部分
    注意:此文件系统包含以下 GPLv3软件包:
    autobbinutils
    
    bibus-dev
    bison
    cpp-symlinks
    cpp
    dosfwk
    g++-symlinks
    g++
    gawg-dev gcc-symlinks
    
    
    gcc
    gdb
    gdbserver
    gstreamer1.0-libav
    hidapi
    libo-perf-utils cairgmp10
    
    libbidn11
    libmpc3
    frmp4
    make
    netswig
    
    
    
    组件如果您不希望在
    分发之前分发 libwlsdk 组件、请删除 libmb。 这可以使用
    opkg remove 命令来完成。 即
    :拆下 Okg 
    其中 是上面列表中打印的名称
    
    注:如果软件包是另一个软件包的依赖
    项,则会通知您相关软件包。 您还应
    使用--force-remove-of dependent-packages 选项
    来删除依赖包以及
    *********
    (小部分
    [确定]已开始打印有关 GPLv3封装的通知。
    [确定]已启动 rc.pvr.service。
    正在启动 weston.service ...
    [确定]已启动 weston.service。
    正在启动 telnetd.service ...
    [确定]已启动 telnetd.service。
    正在启动 thttpd.service ...
    正在启动 busybox-udhcpd.service ...
    [确定]已启动 thttpd.service。
    [确定]已启动 busybox-udhcpd.service。
    正在启动 rng-tools.service ...
    [确定]已启动 rng-tools.service。
    正在启动 matrix-gui-2.0.service ...
    [确定]已启动 matrix-gui-2.0.service。
    正在启动 parse-ip.service ...
    正在启动 thermal-zone-init.service ...
    
    _________ _________ _
    |_|_|_______|_|_|_|_|_
    ||.|。 |. ||_|_|. |||-||||
    ||||||、||||||||||||||||||||||||||||||||||||||||||||||||||________________________________||
    
    
    || Arago Project http://arago-project.org AM335x-EVM ttyS0 Arago
    
    2016.08 EVM
    
    AM335x EVM AM335x AM335x EVM 登录: root
    root 用户@AM335x-EVM:
    
    SHA512_generic 9903使用的~# lsmod 模块大小0
    SHA512_arm 12079 0
    drbg 13425 1
    DES_generic 17736 0
    CBC 2324 0
    xfrm_user 22406 2
    xfrm4_tunnel 2040 0
    ipcomp 2257 0
    xtc_ipcomp 4311 1 xfrm_user
    
    
    
    644 xfrm、rfr 4、rf 4 ipfr 4、af 4 ipfr 4 ipf 4、ipf 4 iptunc、rf 4 ipf 4、rf 2 xtunc
    2
    USB_f_ACM 5404 1
    u_serial 11555 3 USB_f_ACM
    USB_f_ECM 6620 1
    g_multi6330 0
    USB_f_mass_storage 37916 2 g_multiUSB_f_rNDIS
    15406 2 g_multiu_config13577
    USB_f_ECM、USB_f_rmasset_mc_mus_dsp、g_mus_mus_mus_mc+
    
    
    
    
    、mus_mus_mcus_mcus_mc+、mus_mcus_mcus_mcus_mcus_m64f dsp、mc_mc_mus_mc_mcus_mcus_mcf dsp、mcus_mcus_mcus_mcus_mcus_mcus_mcus_mcf、mcus_mcus_mcus_mcus_mcus_mcus_mcf dsp
    
    5577 0
    PRU_rproc 11582 0
    pruss_INTC 7163 1 PRU_rproc
    ECB 1909 0
    ti_EMIF_SRAM 6242 1 pm33xx
    SHA256_generic 9503 1
    wkup_m3/IPC SH7715 1 pm33xx
    HMAC 2735
    1 MD5 1897 0
    w1897_m3_r3669 1 a1_generic
    
    
    
    
    ssc 40621_rfon_a1 p2861_rproc
    19430 0
    omap_sham 21513 0
    remoteproc 26901 4 pruss,wkup_m3_rproc、pru_rproc、wkup_m3_IPC
    virtio 7742 1 crypt处理器
    virtio_ring 12035 1 remotether
    omap_rng 4482 0
    rng_core 7794 1 omap_rng
    RTC_82721 amt_g_dtus_rg3
    mus_mus_rg3
    
    
    
    
    :musb_mcusb_proc 3b_dp 3@~ musb_musb_probe 0 无此类器件
    
    

    根据该粘贴中的最后一行、我无法启动 g_ether、被告知:无此类设备

    我可以看到该模块  

    root@AM335x-EVM:/lib/modules/4.4.19-gdb0b54cdad/kernel/drivers/usb/gadget/legacy # ls g_etels.ko -l
    
    -r-r--r-1 1000 pulse 12376 oct 3 2016 g_etel.ko
    

    那么,也许这是一个缺失的依赖关系吗?

    root@am335x-evm:/lib/modules/4.4.19-gdb0b54cdad/kernel/drivers/usb/gadget/legacy modprobe --show-depends g_ether
    insmod /lib/modules/4.4.19-gdb0b54cdad/kernel/drivers/usb/gadget/udc/udc-core.ko
    insmod /lib/modules/4.4.19-gdb0b54cdad/kernel/fs/configfs/configfs.ko
    insmod /lib/modules/4.4.19-gdb0b54cdad/kernel/drivers/usb/gadget/libcomposite.ko
    insmod /lib/modules/4.4.19-gdb0b54cdad/kernel/drivers/usb/gadget/function/u_ether.ko
    insmod /lib/modules/4.4.19-gdb0b54cdad/kernel/drivers/usb/gadget/function/usb_f_rndis.ko insmod
    /lib/modules/4.4.19-gdb0b54cdad/kernel/drivers/usb/gadget/legacy/g_ether.ko 

    但这些文件存在

    root@AM335x-EVM:/lib/modules/4.4.19-gdb0b54cdad/kernel 查找。 -name udC-core.ko
    ./drivers/usb/gadget/udc/udc-core.ko
    root@AM335x-evm:/lib/modules/4.4.19-gdb0b54cdad/kernel 查找。 -name configfs.ko
    ./fs/configfs/configfs.ko
    root@AM335x-evm:/lib/modules/4.4.19-gdb0b54cdad/kernel 查找。 -name libcomposy.ko
    /drivers/usb/gadget/libcomposite.ko
    root@AM335x-EVM:/lib/modules/4.4.19-gdb0b54cdad/kernel 查找。 -name u_ether.ko
    /drivers/usb/gadget/function/u_ether.ko
    root@AM335x-EVM:/lib/modules/4.4.19-gdb0b54cdad/kernel 查找。 -name USB_f_RNDIS.ko
    /drivers/usb/gadget/function/usb_f_rndis.ko
    root@AM335x-EVM:/lib/modules/4.4.19-gdb0b54cdad/kernel 查找。 -name g_ether.ko
    /drivers/usb/gadget/legacy/g_ether.ko
    

    如果我尝试删除 g_multi(以便可以加载 g_ehter),系统将挂起

    root@
    ^AM335x-EVM:/lib/modules/4.4.19-gdb0b54cdad/kernel/drivers/usb/gadget/legacy modprobe -r g_multi_C 

    -不允许任何输入,我需要重新启动


    如果我尝试在 g_multigadget 运行时通过 USB 进行连接、我会看到以前发生过的相同 USB 设备故障

    =========================== USB 设备=================================
    
    ++++++++++++++ 器件信息++++++++++++++++++
    设备说明
    
    
    
    
    usb.in
    
    
    
    :未知 USB 设备(设置地址失败)设备路径:\\.\USB#vid_0000&pid_0004#5&33eb7b70&0&10#{a5dcbf10-6530-11d2-901f-00c04fb951ed}设备 ID:USB\vid_0000&PID_0004\USB_100b54610\USB_b5b6410\USB_b0_b100b5b0_eUSb5b0_b5b6410\USB_b0_e100b0_b0_e100b0_e100b6413b0_b0_b0_b0_b0_b0_e100b0_b0_b0&b)设备地址:{\USB_b64b0_b0_eUSB_e100b0_e100b0_e100b0_e100b5b5b0_e100b0_e100b0_e100b6413b0_e100_e100_e100_e100_e100_e100_e
    USB
    位置信息:Port_#0010.Hub_#0001
    制造商信息:(标准 USB 主机控制器)
    功能:0x64 (可移动、SilentInstall、RawDeviceOK)
    状态:0x01806400 (DN_HAS_Problem、DN_DISABLEABD3、DN_可 移动、DN_NT_枚 举器、DN_NT_DRIVER)
    问题代码:43_WHEN (DN_WK_WHEN:D0)
    
    支持的启动地址:DACK_0 (DACK_0) 

    我已经能够使用运行此小工具的 EVM_SDK 进行连接(因此希望这会缩小可能存在任何问题的位置)

    如果我在没有任何代码的情况下为电路板加电、我可以看到有效的 USB 串行 COM 端口

    ++++++++++++++ 器件信息++++++++++++++++++
    友好名称:USB 串行设备(COM3)
    设备说明:USB 串行设备
    路径:\\.\USB#vid_0451&pid_6141#5&33eb7b70&0&10#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    设备 ID:USB\VID_0481UB0131\UCD3\UB0451B0B0171B0B0B0171U\UCD_IDS\UB046141B0B017141U\UB0B0B0B0B0B0B017141Ur
    
    0B0B0B0B0B0B0B0B0B0B0B0B0B0B0171Ur 0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0171Ur
    0B0B0B0B0B0B0B0
    usbser.in
    
    端口
    类 GUID:{4d36e978-E325-11CE-BFC1-08002BE10318}(GUID_DEVCLASS_PORTs)接口
    GUID:{a5dcbf10-6530-11d2-901f-00c04fb951ed}(GUID_DEVCLACE_USB_DEVICE)接口 GUID:{a5dcbf10-6530-11d2-901f2-901f-0001f_USB_USB_USB_IDS)048b0_USB_USB_IDS(USB_USB_DPORT)018)0_IDS0_USB_018_USB_USB018_USB_IDS018_USB_USB018_USB018_USB_IDENTS
    
    
    
    
    
    (USB_USB_IDENTS
    
    :018_USB_USB_USB018_USB_USB018_USB_IDENTS 018_USB_018_USB_IDENTS 018_USB_018_USB018_USB018_USB_IDENTS DN_NT_DRIVER)
    问题代码:0
    电源状态:D0 (支持:D0、D3、从 D0唤醒)
    COM 端口:COM3 (\Device\USBSER000) 

    虽然硬件可能有问题、但如果它可以使用芯片 ROM 中的代码启动该器件、那么它似乎并不重要

    看看 debugfs 中的 USB/器件

    root@am335x-evm:/proc/sys/debug/usb cat 设备
    
    T:bus=01 lev=00 Prnt=0 Port=00 Cnt=00 Dev=1 spd=480 MxCh=1
    B:Alloc=0/800 us (0%)、#Int=0、#ISO=0
    D:ver=2.00 CLS=09 (hub) Sub=00 Prod=00 msp=064
    msp=4 md
    
    :1 md vender=064 mb db db:r2 mb 0db rgb 4 mb d4 md 驱动程序=4 bd4 mcb:vender=4 mb 4 mb 4 mb 4 mcr 1 d4 md 2 md
    SerialNumber=musb-hdrc.0.auto
    C:*#IFS=1 Cfg#= 1 ATR=e0 MxPwer= 0mA
    I:* If = 0 Alt=0 #EPS=1 CLS=09 (集线器) Sub=00 Prot=00 Driver=HUB
    E: AD=81(I) ATR=03 (内部) MxPS= 4 IVL=256ms
    root@AM335x-EVM:/proc/sys/debug/usb
    

    这与我在工作的 EVM_SDK 上看到的 musb-hdrc.0条目相同

    但是、我可以看到 musb-hdrc.0的 regdump 中的差异(尽管我不确定它们是什么意思)

    CAT musb-hdrc.0.auto/regdump  
    EVM SDK 定制板
        

    MUSB (M) HDRC 寄存器转储
    地址:00
    功率:20
    帧: 0000
    索引:0f
    测试模式:00
    TxMaxPp:2000
    TxCSRp:0000
    RxMaxPp : 0000
    RxCSR:0000
    RxCount:0000
    IntrRxE:0000
    IntraxE:0000
    IntrausbE:00
    DevCtl:98
    VControl:00000000
    HWVers:0000
    链接信息: 5c.
    VPLen:3c
    HS_EOF1:80
    FS_EOF1:77
    LS_EOF1:72
    SOFT_RST:00
    DMA_CNTLch0:0000
    DMA_ADDRch0:00000000
    DMA_COUNTch0:00000000
    DMA_CNTLch1:0000
    DMA_ADDRch1:00000000
    DMA_COUNTch1:00000000
    DMA_CNTLch2:0000
    DMA_ADDRch2:00000000
    DMA_COUNTch2:00000000
    DMA_CNTLch3:0000
    DMA_ADDRch3:00000000
    DMA_COUNTch3:00000000
    DMA_CNTLch4:0000
    DMA_ADDRch4:00000000
    DMA_COUNTch4:00000000
    DMA_CNTLch5:0000
    DMA_ADDRch5:00000000
    DMA_COUNTch5:00000000
    DMA_CNTLch6:0000
    DMA_ADDRch6:00000000
    DMA_COUNTch6:00000000
    DMA_CNTLch7:0000
    DMA_ADDRch7:00000000
    DMA_COUNTch7:00000000
    ConfigData:00
    BabbleCtl:44.
    TxFIFOSz:07
    RxFIFOSz:07
    TxFIFOADD:0780
    RxFIFOADD:0780
    EPInfo:ff
    RAMInfo:0d.

            
      

    MUSB (M) HDRC 寄存器转储
    地址:00
    电源:f0
    帧:0336
    索引:00
    测试模式:00
    TxMaxPp:F000
    TxCSRp:0000
    RxMaxPp : 0000
    RxCSR:FFFF
    RxCount:FFFE
    IntrRxE:FFFE
    IntraxE:FFFF
    IntrausbE:F7
    DevCtl:99
    VControl:00000000
    HWVers:0000
    链接信息: 5c.
    VPLen:3c
    HS_EOF1:80
    FS_EOF1:77
    LS_EOF1:72
    SOFT_RST:00
    DMA_CNTLch0:0000
    DMA_ADDRch0:00000000
    DMA_COUNTch0:00000000
    DMA_CNTLch1:0000
    DMA_ADDRch1:00000000
    DMA_COUNTch1:00000000
    DMA_CNTLch2:0000
    DMA_ADDRch2:00000000
    DMA_COUNTch2:00000000
    DMA_CNTLch3:0000
    DMA_ADDRch3:00000000
    DMA_COUNTch3:00000000
    DMA_CNTLch4:0000
    DMA_ADDRch4:00000000
    DMA_COUNTch4:00000000
    DMA_CNTLch5:0000
    DMA_ADDRch5:00000000
    DMA_COUNTch5:00000000
    DMA_CNTLch6:0000
    DMA_ADDRch6:00000000
    DMA_COUNTch6:00000000
    DMA_CNTLch7:0000
    DMA_ADDRch7:00000000
    DMA_COUNTch7:00000000
    ConfigData:00
    BabbleCtl:44.
    TxFIFOSz:00
    RxFIFOSz:00
    TxFIFOADD:0000
    RxFIFOADD:0000
    EPInfo:ff
    RAMInfo:0d.

      

    我将继续沿着这些线挖掘、以确定两个系统之间的差异所在。

    如果有任何进一步的建议,将不胜感激。

    祝你一切顺利、

    Richard

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

    Richard、

    您无法加载 g_ether、这是因为 g_multi_multi-is already loaded (g_ether 已加载)。 我不知道为什么卸载 g_multi-会挂起系统、我已经很久没有使用 g_multi-了。 但是、为了防止 Linux 自动加载 g_multi,您可以删除/lib/systemd/system/gadget-init.service.

    您提到的 wiki 页面仍适用于当前处理器 SDK。 我已更新页面以反映这一点。 因此、在 USB 小工具中构建的已知问题仍然存在、但您有一种权变措施-禁用 CPPI41 DMA 以使用 PIO 模式。 注意此变通办法会影响 USB 吞吐量、因此您是否有任何特定的理由要在内核中构建 USB 驱动程序?

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

    谢谢

    我已按照建议删除小工具服务、现在可以尝试启动 g_ether。

    root@AM335x-EVM:~ modprobe g_ether
    [ 49.238444]使用随机自以太网地址
    [49.259286]使用随机主机以太网地址
    [49.325913] usb0:主机 MAC de:F8:73:8a:7a:d0
    [49.343747] usb0:Mac
    
    
    小工具:91:ef:50:d863]使用随机以太网地址[ 49.4943]获取主机地址:44943] 2008
    
    ~纪念日[49.489212] g_ether 小工具:g_ether ready root@AM335x-EVM:#[49.604101] IPv6:ADDRCONF (NETDEV_UP):USB0:链接未就绪 

    但是、结果是相同的-因为它不能为我的 PC 正确枚举

    我已经与布置电路板的硬件设计人员进行了交谈。
    USB 方面的功能基于 USB0的 Beagle Bone Black 实施(我们根本不使用 USB1)
    原理图是相同的。

    支持此功能的 DTS 设置包括:

    &USB{
    status ="确定";
    };
    
    &USB_CTRL_mod{
    status ="确定";
    }
    
    ;&usb0_phy{
    status ="确定";
    };
    
    &USB1_phy{
    status ="禁用";
    };
    
    &usb0{
    status ="确定";
    dr_mode ="外围设备"
    ;};&USb1b1
    
    {
    status ="禁用
    
    
    ";}
    
    

    我注意到、如果我使用此器件树引导、我在发出 lsusb 命令时会得到以下内容:

    root@AM335x-EVM:~# lsusb
    无法初始化 libusb:-99 

    如果我更改器件树以启用 USB1作为主机、将 USB0作为外设(根据 BeagleBoneBlack)
    由于 USB1_DRVVBUS 和 USB1_VBUS 连接在一起、在引导时报告错误

    [20.576705]集线器1-0:1.0:找到 USB 集线器
    [20.607812]集线器1-0:1.0:检测到1个端口
    [20.806757] musb-hdr musb-hdrc.1.auto:在 a_wait_vrise 中出现 VBUS_ERROR (81、<SessEnd)、重试#1、port1 00000104
    [ 20.953090] musb-hdrc.1.auto: mus_rise 中出现 VBUS_error (81、<SessEnd
    )、musb-hdrc.1.auto: v000411_mus_hrrrrise () a_wait_vrise 中的 VBUS_ERROR (81、<SessEnd)、retry #3、port1 00000104
    [ 21.245761] musb-hdr musb-hdrc.1.auto:;a_wait_vrise 中的 VBUS_ERROR (80、<SessEnd)、retry #3、port1 0008010c
    
    root@~ AM335x-EVM:
    Linux 器件 ID:1d001:ldb 

    在每种情况下、g_ether 小工具的枚举都失败。

    我知道 BeagleBoneBlack 使用的是以太网小工具-因此、当我使用 fdtdump 检查 USB 激励时、我的器件树看起来非常相似

    USB@47400000{
    兼容="ti、am33xx-usb";
    REG =<0x47400000 0x000001db>;
    范围;
    #address-cells = 0x00000001>;
    大小单元格= 0x00000001>;
    ti、hwmonds ="USB_OTG_hs";
    状态="正常";
    控制@44e10620{
    兼容="ti、am335x-usb-ctrl-module";
    REG =<0x44e10620 0x00000003 0x6374726c 0x00000005>;
    reg-names ="phy_ctrl"、"wakeup";
    状态="正常";
    linux、phandle = 0x00000045>;
    相位= 0x00000045>;
    };
    USB-phy@47401300{
    兼容="ti、AM335x-USB-phy";
    REG =<0x47401300 0x000001e2>;
    reg-names ="phy";
    状态="正常";
    TI、CTRL_mod = 0x00000045>;
    linux、phandle = 0x00000046>;
    相位= 0x00000046>;
    };
    USB@47401000{
    兼容="ti、musb-am33xx";
    状态="正常";
    REG =<0x47401400 0x00000003 0x6f6e7472 0x000001c1>;
    reg-names ="mC"、"control";
    中断= 0x00000012>;
    中断名称="MC";
    DR_MODE ="外设";
    Mentor、多点= 0x00000001>;
    Mentor、num-eps = 0x00000010>;
    Mentor、ram-bits =<0x0000000c>;
    Mentor、power =<0x000001f4>;
    PHY = 0x00000046>;
    DMAE = 0x00000047 0x00000001 0x00000000 0x00000047 0x00000005 0x00000000 0x00000047 0x00000009 0x00000000 0x00000047 0x0000000D 0x00000000 47 0x00000002 0x00000001 0x00000006 0x00000001 0x0000000A 0x00000001 0x00000001 0x0000000A 0x00000001 0x0000000E 0x00000003b0 0x72783400 0x000000031 0x000000031 0x00000007780003 0x000000031 0x000000031 0x000000031 0x000000077800031 0x000000031 0x000000031 0x000000031 0x000000031 0x00007800031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000000031 0x000 0x47401800 0x000001e2 0x00000003 0x00000003 0x00000000 0x00000003 0x00000000 0x00000001 0x0000000c 0x00000001f4 0x00000000 0x00000047 0x00000000 0x00000014 0x00000000 0x00000047 0x00000000 0x00000047 0x0000000x00000000 0x0000000x00000000 0x00000047 0x0000000x00000001 0x00000047 0x00000047 0x0000000x00000001 0x000000015 0x00000071 0x00007831 0x00000007270001 0x000000077831 0x00000007 0x000000047 0x00000007 0x00003000 0x000000031 0x000000077831 0x00000000x000000047 0x00000047 0x00000047 0x00000047 0x00000000x00000000x00000000x00000000x00000000x00000000x00003000
    dma-names ="rx1"、"rx2"、"rx3"、"RX4"、"rx5"、 "rx6"、"rx7"、"rx8"、"rx9"、"RX10"、 "rx11"、"rx12"、"rx13"、"rx14"、"rx15"、 "TX1"、"TX2"、"TX3"、"TX4"、"TX5"、 "TX6"、"Tx7"、"Tx8"、"Tx9"、"Tx9"、"TX10"、 "tx11"、"tx12"、"tx13"、"tx14"、"Tx15";
    };
    USB-phy@47401b00{
    兼容="ti、AM335x-USB-phy";
    REG =<0x47401b00 0x000001e2>;
    reg-names ="phy";
    STATUS ="禁用";
    TI、CTRL_mod = 0x00000045>;
    linux、phandle = 0x00000048>;
    phandle = 0x00000048>;
    };
    USB@47401800{
    兼容="ti、musb-am33xx";
    STATUS ="禁用";
    REG =<0x47401c00 0x00000003 0x6f6e7472 0x000001c1>;
    reg-names ="mC"、"control";
    中断= 0x00000013>;
    中断名称="MC";
    DR_MODE ="主机";
    Mentor、多点= 0x00000001>;
    Mentor、num-eps = 0x00000010>;
    Mentor、ram-bits =<0x0000000c>;
    Mentor、power =<0x000001f4>;
    PHY = 0x00000048>;
    DMA =<0x00000047 0x00000000 0x00000047 0x00000014 0x00000000 0x00000018 0x00000000 0x0000001c 0x00000000 0x00000047 0x00000011 0x00000001 0x00000001 0x00000047 0x00000001 0x00000001 0x00000001 0x000047 0x00000001 0x0000001d 0x000003b0 0x72783400 0x72783800 0x31007278 0x00007277270x00000000x7650x000000064631 0x0000000640000x00000000x0000000640000x0000000640000x00000000x0000000640000x0000x0000000640000x0000000640000x0000x0006478370000x000000060x0000x0000000D 0x00000006400064000D 0x0000000640000x00000000x0000000640000x0000000640000x000000064000D 0x0000000640000x00000000x000000064000D 0x0000000640000x4000x00000006 0x00000004 0x00000004 0x00000002 0x3833300x0000001b 0x6d737300 0x48300000 0x000001cc 0x00000004 0x00000004 0x00000009 0x00000000 0x48300100 0x48300180 0x303130 0x0000001b 0x61700000 0x00000003 0x48300100 0x000000010x00000004 0x00000004 0x00000000004 0x00000000004 0x00000000004 0x00000000000004 0x00000000004 0x00000000000004 0x00000000000004 0x00000000004 0x00000000000000004 0x00000000004 0x00000000000000004 0x000000061 0x00000000004 0x00000000004 0x00000000000000004 0x00000004 0x00000000003 0x00000000000004 0x00000004 0x00000003 0x00000004 0x00000004 0x0000000
    dma-names ="rx1"、"rx2"、"rx3"、"RX4"、"rx5"、 "rx6"、"rx7"、"rx8"、"rx9"、"RX10"、 "rx11"、"rx12"、"rx13"、"rx14"、"rx15"、 "TX1"、"TX2"、"TX3"、"TX4"、"TX5"、 "TX6"、"Tx7"、"Tx8"、"Tx9"、"Tx9"、"TX10"、 "tx11"、"tx12"、"tx13"、"tx14"、"Tx15";
    };
    DMA 控制器@47402000{
    兼容="ti、am3359-cppi41";
    REG =<0x47400000 0x47403000 0x00000003 0x00636f6e 0x64756c65 0x00000003 0x00000003 0x0000000000000000000000000000>;
    reg-names ="cule"、"controller"、"scheduler"、"queuemgr";
    中断= 0x00000011>;
    中断名称="胶合";
    dma-cells =<0x00000002>;
    dma-channels =<0x0000001e>;
    dma-requests =<0x00000100>;
    状态="正常";
    linux、phandle = 0x00000047>;
    相位= 0x00000047>;
    };
    }; 

    鉴于裸片将成功枚举为 COM 端口、我认为一定会有一些微不足道的事情我会丢失

    再次感谢您的帮助。

    此致、

    Richard

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

    在电路板旁边运行 Beagle Bone Black、我注意到 debugfs 列表在 MUSB 区域中有所不同

    BeagleBoneBlack 定制板

    root@AM335x-EVM://proc/sys/debug # ls -l
    drwxr-xr-x 3根根,0年1月1日,ASOC
    drwxr-xr-x 15根根,0年1月1日,1970年 BDI
    drwxr-xr-x 2 root 用户0 ocT 3 21:05蓝牙
    drwxr-xr-x 85根根,0年1月1日,1970克
    drwxr-xr-x 2根根根,0年1月1日,1970 dma_Buf
    drwxr-xr-x 6根根,0年1月1日 dri
    drwxr-xr-x 2 root 用户0 Jan 1 1970 extrag
    -rw-r--r-- 1根根根根,0年1月1日 FAULT_arn_bytes
    -r--r--r-- 1根根根根,0年1月1日,1970年 GPIO
    drwxr-xr-x 2根根根,0年1月1日,1970 hid
    drwxr-xr-x 2根根根,0年1月1日,1970 IIO
    drwxr-xr-x 2 root 用户0 jan 1 1970 memblock
    drwxr-xr-x 3根根,0年1月1日,1970 mmc0
    drwxr-xr-x 3根根,0年1月1日,1970 mmc1
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 musb-hdrc.1.auto
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 musb-hdrc.1.auto.dsps
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 musb-hdrc.2.auto
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 musb-hdrc.2.auto.dsps
    drwxr-xr-x 3 root 用户0 Jan 1 1970 omap_mux
    drwxr-xr-x 3根根,0年1月1日,1970 opp
    drwxr-xr-x 3根根,0年1月1日,1970 pinctrl
    drwxr-xr-x 8根根,0年1月1日,1970 pm_debug
    drwxr-xr-x 2根根根,0年1月1日,1970 pm_qos
    -r--r--r-- 1根根根,0年1月1日 PWM
    drwxr-xr-x 2根根,0年1月1日,RAS
    drwxr-xr-x 3根根,0年1月1日,1970 regmap
    drwxr-xr-x 11 root root 0 jan 1 1970电脑控制器
    drwxr-xr-x 5 root 用户0 ocT 3 21:05 remoteproc
    -rw-r--r-- 1根根根根0 1970年1月1日 sched_features
    -r--r--r-- 1根根根,0年1月1日,SLEEP_TIME
    -r--r--r-- 1根根根根,0 1970年1月1日 SUSPEND_STATS
    drwxr-xr-x 2根根根,0年1月1日,1970 ubi
    drwxr-xr-x 2根根根,0年1月1日,1970年子框架
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 usb
    -r--r--r-- 1根根根根,1970年1月1日 WAKEUP_Sources

    root@AM335x-EVM:/proc/sys/debug ls -l
    drwxr-xr-x 2根根根,0年1月1日,1970年 ASOC
    drwxr-xr-x 12根根,0年1月1日,1970年 BDI
    drwxr-xr-x 2 root 用户0 ocT 3 21:05蓝牙
    drwxr-xr-x 83根,0年1月1日,1970克
    drwxr-xr-x 2根根根,0年1月1日,1970 dma_Buf
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 dri
    drwxr-xr-x 2 root 用户0 Jan 1 1970 extrag
    -rw-r--r-- 1根根根根,0年1月1日 FAULT_arn_bytes
    -r--r--r-- 1根根根根,0年1月1日,1970年 GPIO
    drwxr-xr-x 2根根根,0年1月1日,1970 hid
    drwxr-xr-x 2根根根,0年1月1日,1970 IIO
    drwxr-xr-x 2 root 用户0 jan 1 1970 memblock
    drwxr-xr-x 3根根,0年1月1日,1970 mmc0
    drwxr-xr-x 2 root 用户0 jan 1 1970 mmc1
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 musb-hdrc.0.auto
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 musb-hdrc.0.auto.dsps
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 musb-hdrc.1.auto
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 musb-hdrc.1.auto.dsps
    drwxr-xr-x 3 root 用户0 Jan 1 1970 omap_mux
    drwxr-xr-x 3根根,0年1月1日,1970 opp
    drwxr-xr-x 3根根,0年1月1日,1970 pinctrl
    drwxr-xr-x 8根根,0年1月1日,1970 pm_debug
    drwxr-xr-x 2根根根,0年1月1日,1970 pm_qos
    -r--r--r-- 1根根根,0年1月1日 PWM
    drwxr-xr-x 2根根,0年1月1日,RAS
    drwxr-xr-x 3根根,0年1月1日,1970 regmap
    drwxr-xr-x 12 root 用户0 jan 1 1970电脑控制器
    drwxr-xr-x 3 root 用户0 ocT 3 21:05 remoteproc
    -rw-r--r-- 1根根根根0 1970年1月1日 sched_features
    -r--r--r-- 1根根根,0年1月1日,SLEEP_TIME
    -r--r--r-- 1根根根根,0 1970年1月1日 SUSPEND_STATS
    drwxr-xr-x 2根根根,0年1月1日,1970 ubi
    drwxr-xr-x 2根根根,0年1月1日,1970年子框架
    drwxr-xr-x 2 root 用户0 ocT 3 21:05 usb
    -r--r--r-- 1根根根根,1970年1月1日 WAKEUP_Sources

    我想不出这些分歧的任何原因

     -它们运行的内核相同  

     - Linux 版本4.4.4.19-gdb0b54cdd (gtbldadm@ubuu-16)(gcc 版本5.3.1 20160113 (Linaro GCC 5.3-2016.02))#1挤占监视器10月3日17:43:466

    谢谢

    Richard

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

    将电路板附件中的 USB 迹线与 BeagleBone Black 的 USB 迹线进行比较

    我可以看到信息的格式合理
    -只是包含错误的信息

    hexdump failed_枚 举

    00000000:A0 00 5C 00 3F 00 3F 00 - 5C 00 55 00 53 00 42 00 |\? ? \ U S B |
    00000010:23 00 56 00 49 00 44 00 - 5F 00 30 00 30 00 30 00 30 00 |# V I D _ 0 0 |
    00000020: 30 00 26 00 50 00 49 00 - 44 00 5F 00 30 00 30 00 |0 & P I D _ 0 |
    00000030: 30 00 34 00 23 00 35 00 - 26 00 33 00 33 00 65 00 |0 4 # 5和3 3 e |
    00000040: 62 00 37 00 62 00 37 00 - 30 00 26 00 30 00 26 00 |b 7 b 7 0 & 0 &|
    00000050: 31 00 30 00 23 00 7B 00 - 61 00 36 00 37 00 38 00 |1 0 #{A 6 7 8 |
    00000060: 32 00 62 00 63 00 65 00 - 2D 00 34 00 33 00 37 00 |2 b c e - 4 3 7 |
    00000070: 36 00 2D 00 34 00 64 00 - 65 00 32 00 2D 00 38 00 |6 - 4 d e 2 - 8 |
    00000080: 39 00 65 00 38 00 66 00 - 65 00 64 00 31 00 39 00 |9 e 8 f e d 1 9 |
    00000090:7D -||
    00000091; 

    hexdump success_枚 举

    00000000:9A 00 5C 00 3F 00 3F 00 - 5C 00 55 00 53 00 42 00 |\? ? \ U S B |
    00000010:23 00 56 00 49 00 44 00 - 5F 00 31 00 44 00 36 00 |# V I D _ 1 D 6 |
    00000020: 42 00 26 00 50 00 49 00 - 44 00 5F 00 30 00 31 00 | B & P I D _ 0 1 |
    00000030: 30 00 34 00 23 00 30 00 - 35 00 31 00 34 00 42 00 |0 4 # 0 5 1 4 B |
    00000040: 42 00 42 00 4B 00 33 00 - 34 00 39 00 30 00 23 00 | B B K 3 4 9 0 #|
    00000050: 7B 00 61 00 36 00 37 00 - 38 00 32 00 62 00 63 00 |{A 6 7 8 2 b c |
    00000060: 65 00 2D 00 34 00 33 00 - 37 00 36 00 2D 00 34 00 | e - 4 3 7 6 - 4 |
    00000070: 64 00 65 00 32 00 2D 00 - 38 00 30 00 39 00 36 00 | d e 2 - 8 0 9 6 |
    00000080: 2D 00 37 00 30 00 61 00 - 61 00 39 00 65 00 38 00 |- 7 0 A 9 e 8 |
    00000090: 66 00 65 00 64 00 31 00 - 39 00 7D 00 43 02 EB 2A | f e d 1 9}C *|
    000000a0:6e 6A 6B 48 82 FC D8 15 - F6 B9 70 06 28 00 01 00 | njkH p (|
    000000b0: BB 00 00 C0 00 00 00 00 00 - 00 00 00 43 02 EB 2A | C *|
    000000c0:6e 6A 6B 48 82 FC D8 15 - F6 B9 70 06 28 00 01 00 |njkH p (|
    000000d0: BB 00 00 C0 00 00 00 00 - 00 00 00 00 88 00 0B 00 || 

    在 Linux 引导时、是否会根据在 BeagleBoneBlack 上运行的检测来实现某种神奇功能、这可能会导致差异?

    谢谢

    Richard

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

    [引用用户="Richard McAleer"]

    我已按照建议删除小工具服务、现在可以尝试启动 g_ether。

    (笑声) 

    但是、结果是相同的-因为它不能为我的 PC 正确枚举

    [/报价]

    请使用 USB 协议分析器捕获计数跟踪、它可能会给出失败的原因。 如果您没有分析仪、请将电路板连接到 Linux PC、然后在 PC 上运行 usbmon 以捕获 USB 流量。 不过、usbmon 跟踪比分析仪跟踪更难读取。

    有关如何使用 usbmon 的信息、请查看内核文档:documentation/usb/usbmon.txt。

    [引用用户="Richard McAleer"]

    我注意到、如果我使用此器件树引导、我在发出 lsusb 命令时会得到以下内容:

    root@AM335x-EVM:~# lsusb
    无法初始化 libusb:-99 

    [/报价]

    让我们首先关注 usb0、然后弄清楚如何禁用电路板上的 USB1。

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

    [引用用户="Richard McAleer"]

    在电路板旁边运行 Beagle Bone Black、我注意到 debugfs 列表在 MUSB 区域中有所不同

    (笑声)

    我想不出这些分歧的任何原因

    [/报价]

    MUSB 节点的索引不同、MUSB 节点的命名基于内核全局索引、因此根据每个系统上是否存在其他外设、MUSB 节点的索引可能不同。 这种差异不会影响 USB 功能。

    供参考、为了避免这种混淆、内核 v4.9中更改了该 MUSB 命名、其中 MUSB 节点将为"musb-hdrc.0"和"musb-hdrc.1"。

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

    [引用用户="Richard McAleer"]

    将电路板附件中的 USB 迹线与 BeagleBone Black 的 USB 迹线进行比较

    我可以看到信息的格式合理
    -只是包含错误的信息

    hexdump failed_枚 举

    (笑声)

    
    

    [/报价]

    您是如何获得此转储的? 从 Windows 主机? 我不熟悉 Windows USB 子系统、请按照上面的建议、使用 Linux 主机 PC 对其进行调试。

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

    [引用用户="Richard McAleer"]

    支持此功能的 DTS 设置包括:

    1
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.
    15.
    16.
    17.
    18
    19.
    20.
    21.
    22.
    23
    24
    25
    26
    27.
    28.
    &usb {
    status = "okay";
    };
    &usb_ctrl_mod {
    status = "okay";
    };
    &usb0_phy {
    status = "okay";
    };
    &usb1_phy {
    status = "disabled";
    };
    &usb0 {
    status = "okay";
    dr_mode = "peripheral";
    };
    &usb1 {
    status = "disabled";
    };
    &cppi41dma {
    status = "okay";
    };

    我注意到、如果我使用此器件树引导、我在发出 lsusb 命令时会得到以下内容:

    1
    2.
    root@am335x-evm:~# lsusb
    unable to initialize libusb: -99

    [/报价]

    上面的 DTS 更改可以禁用 USB1。 由于系统中没有 USB 主机配置、因此可以忽略 lsusb 错误。 我在 AM335x GP EVM 上验证了此 DTS 更改、并且可以在 Linux PC 上枚举 g_ether。

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

    你(们)好

    DTS 更改基于 AM335x-bone-common.dtsi  
    -如果我删除了该 dr_mode 设置,它将从 am33xx.dtsi 中拾取 dr_mode="OTG"  
    我认为这不符合 Beagle Bone Black 的原理图要求(对 VBUS 没有控制权)

    不过,我已经尝试过,结果是一样的:

    -我发出 lsub 时,它声称是一个中心
    -设备枚举失败

    [645.717692]使用随机自以太网地址
    [645.723205]使用随机主机以太网地址
    [645.767520] usb0:主机 MAC 06:44:9a:50:15:18
    [645.774714] usb0:Mac B6:aa:7d:F5:97:63
    [645.791986]使用随机自以太网地址
    [645.805681]使用随机主机以太网地址
    [645.814053] g_ether 小工具:以太网小工具、版本:2008年阵亡将士纪念日
    [645.838987] g_ether 小工具:g_ether 就绪

    root@am335x-evm:/proc/sys/debug cat USB/设备
    
    T:bus=01 lev=00 Prnt=0 Port=00 Cnt=00 Dev=1 spd=480 MxCh=1
    B:alloc=0/800 us (0%)、#Int=0、#ISO=0
    D:dbs=2.00 cls=09 (hub) Sub=480 MxCh=1
    
    b:ald=064 msp=4 md
    :fd4 md vd=1 md 4 md 4 mb:1 md vd4 md r=4 mc4 md vd4 mb:1 md vd4 md 4 md 4 md vd4 md 4 mb:fd4
    SerialNumber=musb-hdrc.1.auto
    C:*#IFS=1 Cfg#= 1 ATR=e0 MxPwer= 0mA
    I:* If = 0 Alt=0 #EPS=1 CLS=09 (集线器) Sub=00 Prot=00 Driver=HUB
    E: AD=81(I) ATR=03 (内部) MxPS= 4 IVL=256ms
    root@AM335x-EVM:/proc/sys/debug
    

    我感到惊讶的是、USB 总线上的 Beagle Bone Black 中似乎还有其他一些东西:
     -我曾从原理图和器件树中期望这两个子系统在电路板之间应该是相同的。

    (查看文件系统中的设备树、例如通过

    root@AM335x-EVM:/proc/device-tree/ocp/usb@47400000#查找。 -type f -print -exec hexdump -C{}\; 

    唯一的区别是相位条目内的值

    例如  

    /USB-phy@47401b00/Linux、phandle
    00000000 00 00 00 00 48 || 

    /USB-phy@47401b00/Linux、phandle
    00000000 00 00 00 41 

     -是否可以确定在 Beagle Bone Black 的情况下,为缺少枚举索引提供了什么?  我想知道如何找出导致分歧的原因

    我将尝试实时引导至 Linux 以捕获更适合您的 usbtrace

    希望我很快就能得到结果

    感谢您的帮助

    此致、

    Richard

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

    你(们)好

    我希望已在随附的 txt 文件中捕获失败的枚举

    通过 dmesg 记录此故障  

    [157.064860] USB 1-10:使用 xhci_hcd 的新高速 USB 器
    
    
    件编号5 [157.193213] USB 1-10:器件描述符读取/全部、错误-71 [157.304849] USB 1-10:使用 xhci_hcd 的新高速 USB 器件编号6 [157.420990] USB 器件地址1:设置无响应。
    [157.625043] USB 1-10:器件不响应设置地址。
    [157.828914] USB 1-10:器件不接受地址6、错误-71
    [157.940946] USB 1-10:新的高速 USB 器件编号7使用 xhci_hcd
    [157.957942] USB 1-10:器件描述符读取/全部、错误-71
    [158.124980] USB 1-10:新的高速 USB 编号
    x12101] USB hcd 1:使用 x1252c_hcd 1: 器件未响应设置地址。
    [158.329113] USB 1-10:器件不响应设置地址。
    [158.532947] USB 1-10:设备不接受地址8、错误-71
    [158.533043] USB USB1-port10:无法枚举 USB 设备
    
    Ubuntu@Ubuntu:~ uubuntu 

     

    当时连接的设备是

    Ubuntu@Ubuntu:~$ lsusb
    
    总线002设备001:ID 1d6b:0003 Linux Foundation 3.0根集线器
    总线001设备004:ID 0781:5567 SanDisk Corp. Cruzer Blade
    Bus 001 Device 003:ID 413c:2113 Dell Computer Corp.
    总线001设备002:ID 413c:301A Dell Computer Corp.
    总线001设备001:ID 1d6b:0002 Linux Foundation 2.0根集线器
    
    Ubuntu@Ubuntu:~ 

    我事先从系统中尽可能多地删除了内容、以便尽可能少地提供虚假信息:  
    -只有键盘、鼠标和闪存驱动器(包含实时引导发行版)

    希望数据中有一两个线索

    e2e.ti.com/.../4428.usb_5F00_dump.txt

    感谢你的帮助

    祝你一切顺利、

    Richard

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

    Richard、

    我读取 usbmon 转储跟踪、它基本上与 Linux 主机 dmesg 日志中的相同-器件(AM335x g_ether 小工具)不发送描述符、枚举失败。

    我怀疑您的电路板上存在信号完整性问题、因此请检查以下各项。

    -确保您遵循了 USB 布局准则;

    -如果可能,请使用不同的 USB 电缆查看症状是否发生变化;

    -检查您是否使用了与 BeagleBone Black (我认为是24MHz)不同的晶体,请确保您已修改了 uboot 的配置;

    -测量眼图;

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

    Richard、

    这些与您的 USB 问题无关、但我正在尝试回答您的问题。

    [引用 user="Richard McAleer">DTS 更改基于 AM335x-bone-common.dtsi  
    -如果我删除了该 dr_mode 设置,它将从 am33xx.dtsi [/quot]中拾取 dr_mode="OTG"

    正确。

    [引用 user="Richard McAleer"-我认为这不能符合 Beagle Bone Black 原理图的要求(对 VBUS 没有控制权)[/quot]

    在电路板上设置 DR_MODE ="OTG"不会产生任何问题、该设置仅告知驱动器处理"OTG"操作、但由于您的电路板仅具有迷你 B 或微型 B 插座、USB 端口仅在器件模式下工作、这是 OTG 的一部分。

    [引用 USER="Richard McAleer]root@AM335x-EVM:/proc/sys/debug # cat USB/设备
    (笑声)

    [/报价]

    此信息不相关、而是针对主机端口而不是器件。

    [引用用户="Richard McAleer"]我感到惊讶的是,在 Beagle Bone Black 中 USB 总线上似乎有其他东西:[/引用]

    这是因为 BBB 上的 USB1是主机端口、您看到的是该 USB 总线上的虚拟根集线器。

    [报价用户="Richard McAleer"]唯一的区别是相位条目中的值[/报价]

    范德是一个指针、因此在每个系统上都可能不同。

    [引用 user="Richard McAleer"] -是否可以确定在 Beagle Bone Black 的情况下为缺少的枚举索引提供了什么?  我想知道如何找出导致差异的原因[/引述]

    当然、请在您的电路板上运行以下命令

    #查找/sys -name '*.0.auto'

    您将找到一个名称包含'0.auto' surfix 但与 USB 无关的器件。 基本上、任何使用内核全局索引命名方案的内核器件驱动程序<index> 都会在其器件名称中包含".index.auto" Surfix、该索引是全局索引。

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

    谢谢 Bin

    我非常感谢您的努力-了解正在发生的事情与让它正常工作一样重要

    我将了解我可以做些什么来调查信号完整性、并就您的观点与我们的硬件设计人员联系。

    我可以让自己动手使用 GHz 示波器来尝试和捕获眼图、但我不确定在失败枚举期间会有多少数据允许我查看它?
    我很快就会给它一个机会

    同时、我设法找到了专用的 HW USB 分析仪。
    这显示了裸芯片(成功的串行端口枚举)和发生故障的内核 g_ethere 之间的枚举过程的差异。

    文件名:failed_g_ether 枚举.UFO 文件名:bare_board_枚 举.UFO

    重置持续时间<55.1毫秒>时间<10.363 339 933>
    ________________________________________________________________
    HighSpeedHandshake 状态 时间<10.418 145 983>
    ________________________________________________________________
    安全计数<263>时间<10.418 433 933>
    ________________________________________________________________
    容器标题 设备<0>端点<0>状态
    速度 时间<10.451 257 550>
    事务类型 设备<0>端点<0>状态 速度
    时间<10.451 257 550>错误
    ________________________________________________________________
    容器标题 设备<0>端点<0>状态
    速度 时间<10.451 261 850>
    事务类型 设备<0>端点<0>状态 速度
    时间<10.451 261 850>错误
    ________________________________________________________________

    复位持续时间<54.8毫秒>时间<0.311 983 933>
    ________________________________________________________________
    HighSpeedHandshake 状态 时间<0.321 996 600>
    ________________________________________________________________
    安全计数<33>时间<0.367 219 217>
    ________________________________________________________________
    容器标题 设备<0 (64)>端点<0>状态
    速度 时间<0.400 080 883>
    事务类型 设备<0 (64)>端点<0>状态 速度
    时间<0.400 080 883>
    事务类型 设备<0 (64)>端点<0>状态 速度
    时间<0.400 107 267>
    事务类型 设备<0 (64)>端点<0>状态 速度
    时间<0.400 133 400>
    事务类型 设备<0 (64)>端点<0>状态 速度
    时间<0.400 164 717>
    ________________________________________________________________
    StartOfFrame 帧数<2,045>速度 时间<0.400 220 867>
    ________________________________________________________________

    实际上、裸片枚举似乎有效、因为它保持在全速模式(忽略指示 HS 运行的线性调频脉冲)

    虽然这 也指向了可能的信号完整性问题、但它提出了这样一个问题:当内核运行时、我是否可以使 PHY 保持在全速率?

    -我不关心 g_ether 小工具的吞吐量,很高兴能缓慢连接
    -是否有配置可用于执行此操作? (或者、我能否直接修补代码使 g_ether 能够运行?)

    感谢你的所有帮助。

    此致、

    Richard

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

    [引用用户="Richard McAleer"]我真的很感谢您的努力-了解所发生的事情与使其正常工作一样是我的动机[/引述]

    不用客气。 我尽力帮助解决问题。

    [引用用户="Richard McAleer"]

    我可以让自己动手使用 GHz 示波器来尝试和捕获眼图、但我不确定在失败枚举期间会有多少数据允许我查看它?
    我很快就会给它一个机会

    [/报价]

    对于人眼图测试、您无需等到故障发生、只需连接示波器并捕获信号、眼睛就会知道信号质量。  

    但请不要忘记像我提到的那样首先检查晶体、否则可能会被忽略。

    [引用用户="Richard McAleer"]

    虽然这 也指向了可能的信号完整性问题、但它提出了这样一个问题:当内核运行时、我是否可以使 PHY 保持在全速率?

    [/报价]

    是的、这是可能的。 只需将最大速度="全速"添加 到 DTS usb0节点即可。 例如

    
    
    @@@@-git a/arch/arm/boot/dts/AM335x-evm.dts b/arch/arm/boot/dts/AM335x-evm.dts 索引 e8c1edcac9e9..245e6934ed7e 100644 -- aarch/arm/boot/dts/AM335x-evm.dts +6b/b6+/evms/b6426/ds/bx+m Ω b6+/b6&trans/b6&trans/b6&trans/b6&trans/b6&trans/b6&trans/b.6&trans/b6&trds.
    
    
    状态="确定";
    + 最大速度="全速";
    };
    
    &USB1{
    
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    我错过了您之前对 Crystal 的评论-这确实是个问题!

    感谢您指引我的方向。

    是否可以从用户空间检查或设置中使用的寄存器/存储器?
    我想检查一下、以便我们的应用能够知道它运行的电路板是否配置正确;这将有助于防止在通过不同路径到达我们的内核时出现类似的未来挫折。

    再次感谢您的所有帮助。

    祝你一切顺利、

    Richard

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

    [引用 user="Richard McAleer"]我之前没有收到您对 Crystal 的评论-这确实是个问题!

    您的电路板晶体不是24MHz 吗? 您不确定您的 uboot 是否已相应更改?

    我明天要出差、因此我将此主题转发给 uboot 专家、帮助您检查时钟配置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    两者都有!
    -正确配置它可以解决问题;允许以适当的速度成功枚举 USB 小工具
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Richard、

    感谢您的确认。 您是否想知道您使用的晶体频率是多少?

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

    我们使用的是25MHz
    具体来说是 kc2016k25部件。

    再次感谢您的帮助。
    祝你一切顺利、
    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的更新。 很高兴您解决了这个问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没问题

    最好在论坛中尽可能更新信息、以帮助下一个遇到相同问题的人!

    最后一个问题-您知道是否可以从 AM335x 的 u-boot 获取 g_ether 样式功能?
    -能够通过 USB 通过 NFS 通过 rootfs 进行引导将非常有用

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

    Richard、

    是的、Uboot 中也支持 USB 以太网小工具。 虽然我已经使用过它很长时间、但不确定它是否在默认的构建配置中启用。
    在下载任何 tftp 之前、您必须使用 uboot 命令'setenv ethact USB_ether '切换到 USB 以太网接口。

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

    你(们)好

    它在我的配置中看起来是启用的;它  是所需的 setenv etcact USB_ether 、看起来工作正常

    感谢你的所有帮助。

    此致、

    Richard