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.
如何在 SDK9.1中启用 USB CDC?
客户在 defconfig 和 DTS 中进行了更改、但在内核启动时出现错误
e2e.ti.com/.../am62x_5F00_vh600_5F00_defconfig
e2e.ti.com/.../k3_2D00_am62_2D00_main.dtsi
e2e.ti.com/.../k3_2D00_am62x_2D00_vh600_2D00_common.dtsi
尊敬的 Tony:
这些"未知符号..."内核消息意味着根文件系统中的内核映像和模块不是来自同一个内核构建。
重新编译内核和模块时、确保将内核映像和模块更新到根文件系统。
容器、
我尝试根据用户指南在 SK-AM62B 上进行验证、并在模块以外的内核中编译 USB Gadget 函数。
启用 USB1至 OTG。
重新编译 DTB 和内核、更新到 SD 卡、启动后、将 USB1连接到 PC、任一侧都无响应。
使 SD 卡与默认.wic 文件, insmod rndis.ko 也返回以下错误。
它是否是 Win10 PC 的驱动程序、以支持 AM62x RNDIS?
尊敬的 Tony:
客户似乎已经取得了一些进展。
在这里您还需要解答吗?
我没有使用默认的 FS、今晚我离开我的桌面构建 SDK、也许他重新构建后可以正常工作。
qi yu1 说:Enable USB1 to OTG[/报价]这是 SK 还是定制电路板? SK 上的 USB1是仅主机端口、它在 OTG 模式下不工作。 如果是定制电路板、它的 USB1是否设计为双角色端口? DTS 显示 USB0已经是双角色端口。
您好、Bin、
从 SK-AM62B 原理图中、USB1应该可以是主机或从机。 您是说板载连接器是主机类型吗?
我重新编译内核和模块、并复制了所有 sudo cp -rf ./drivers/usb /*/media/tony/rootfs/lib/modules/6.1.33-rt11-g685e771524/kernel/drivers/usb /"
然后 insmod usb_f_rndis.ko 或 g_ether.ko 都返回错误。 应该是依赖问题。
root@am62xx-evm:/lib/modules/6.1.46-rt13-gb871cdee8c/kernel/drivers/usb/gadget/function# insmod usb_f_rndis.ko [ 96.292580] usb_f_rndis: Unknown symbol usb_os_desc_prepare_interf_dir (err -2)ction# insmod usb_f_rndis.ko [ 96.292612] usb_f_rndis: Unknown symbol usb_interface_id (err -2) [ 96.292626] usb_f_rndis: Unknown symbol usb_assign_descriptors (err -2) [ 96.292654] usb_f_rndis: Unknown symbol gether_disconnect (err -2) [ 96.292670] usb_f_rndis: Unknown symbol config_ep_by_speed (err -2) [ 96.292675] usb_f_rndis: Unknown symbol gether_set_dev_addr (err -2) [ 96.292690] usb_f_rndis: Unknown symbol gether_register_netdev (err -2) [ 96.292702] usb_f_rndis: Unknown symbol usb_function_register (err -2) [ 96.292709] usb_f_rndis: Unknown symbol gether_get_host_addr_u8 (err -2) [ 96.292714] usb_f_rndis: Unknown symbol gether_set_qmult (err -2) [ 96.292729] usb_f_rndis: Unknown symbol gether_get_host_addr (err -2) [ 96.292855] usb_f_rndis: Unknown symbol gether_set_gadget (err -2) [ 96.292868] usb_f_rndis: Unknown symbol usb_ep_autoconfig (err -2) [ 96.292889] usb_f_rndis: Unknown symbol usb_put_function_instance (err -2) [ 96.292898] usb_f_rndis: Unknown symbol gether_connect (err -2) [ 96.292906] usb_f_rndis: Unknown symbol gether_get_dev_addr (err -2) [ 96.292910] usb_f_rndis: Unknown symbol gether_set_host_addr (err -2) [ 96.292925] usb_f_rndis: Unknown symbol usb_function_unregister (err -2) insmod: ERROR: could not insert module usb_f_rndis.ko: Unknown s[ 96.292931] usb_f_rndis: Unknown symbol gether_cleanup (err -2) ymbol in module [ 96.292941] usb_f_rndis: Unknown symbol gether_get_ifname (err -2) [ 96.292946] usb_f_rndis: Unknown symbol gether_set_ifname (err -2) [ 96.292961] usb_f_rndis: Unknown symbol gether_setup_name_default (err -2) root@am62xx-evm:/lib/modules/6.1.46-rt13-gb871cdee8c/kernel/driv[ 96.292974] usb_f_rndis: Unknown symbol gether_get_qmult (err -2) ers/usb/gadget/function# [ 96.292987] usb_f_rndis: Unknown symbol usb_free_all_descriptors (err -2) [ 96.292996] usb_f_rndis: Unknown symbol usb_gstrings_attach (err -2)
root@am62xx-evm:/lib/modules/6.1.46-rt13-gb871cdee8c/kernel/drivers/usb/gadget/legacy# insmod g_ether.ko [ 2183.268468] g_ether: Unknown symbol usb_get_function_instance (err -2) [ 2183.268501] g_ether: Unknown symbol usb_string_ids_tab (err -2) [ 2183.268511] g_ether: Unknown symbol usb_get_function (err -2) [ 2183.268518] g_ether: Unknown symbol usb_composite_unregister (err -2) [ 2183.268539] g_ether: Unknown symbol gether_set_dev_addr (err -2) [ 2183.268545] g_ether: Unknown symbol usb_put_function (err -2) [ 2183.268563] g_ether: Unknown symbol rndis_borrow_net (err -2) [ 2183.268577] g_ether: Unknown symbol usb_add_function (err -2) [ 2183.268581] g_ether: Unknown symbol usb_composite_probe (err -2) [ 2183.268587] g_ether: Unknown symbol gether_register_netdev (err -2) [ 2183.268594] g_ether: Unknown symbol usb_composite_overwrite_options (err -2) [ 2183.268599] g_ether: Unknown symbol gether_set_qmult (err -2) [ 2183.268605] g_ether: Unknown symbol usb_otg_descriptor_alloc (err -2) insmod: ERROR: could not insert module g_ether.ko: Unknown symbo[ 2183.268610] g_ether: Unknown symbol gether_set_gadget (err -2) l in module [ 2183.268617] g_ether: Unknown symbol usb_put_function_instance (err -2) [ 2183.268623] g_ether: Unknown symbol gether_set_host_addr (err -2) [ 2183.268628] g_ether: Unknown symbol usb_otg_descriptor_init (err -2) [ 2183.268634] g_ether: Unknown symbol usb_add_config (err -2) root@am62xx-evm:/lib/modules/6.1.46-rt13-gb871cdee8c/kernel/drivers/usb/gadget/legacy#
尊敬的 Tony:
您是说板载连接器类型为主机吗?
可以。
USB1总线具有150uF 的电容、这对于器件模式来说太多了。 即使您使用了非法的 A 类到 A 类 USB 电缆、USB1也不能用作设备端口。
我重新编译内核和模块、并复制了所有 sudo cp -rf ./drivers/usb /*/media/tony/rootfs/lib/modules/6.1.33-rt11-g685e771524/kernel/drivers/usb /"
然后 insmod usb_f_rndis.ko 或 g_ether.ko 都返回错误。 应该是依赖问题。
[/报价]您仅复制了内核模块、而没有复制内核映像。 您必须将两者更新到 SD 卡:
- sudo cp arch/arm64/boot/image /引导/
- sudo make modules_install install_MOD_path=
您好、Bin、
作为客户在 VMware 下的 Ubantu,无法检测到它,但无法确定它是由 PC 系统或板造成的。
我想验证 RNDIS 功能在我的示例,我使映像,模块和 DTB 再次,CP 和安装了新的构建映像和模块,仍然相同的错误。
root@am62xx-evm:/lib/modules# ls -l total 8 drwxr-xr-x 4 root root 4096 Mar 9 2018 6.1.46-rt13-gb871cdee8c drwxr-xr-x 3 root root 4096 Jan 15 2024 6.1.46-rt13-gb871cdee8c31-dirty root@am62xx-evm:/lib/modules# root@am62xx-evm:/lib/modules/6.1.46-rt13-gb871cdee8c31-dirty/kernel/drivers/usb/gadget/legacy# uname -a Linux am62xx-evm 6.1.46-rt13-gb871cdee8c31-dirty #3 SMP PREEMPT Mon Jan 15 11:49:11 CST 2024 aarch64 aarch64 aarch64 GNU/Linux root@am62xx-evm:/lib/modules/6.1.46-rt13-gb871cdee8c31-dirty/kernel/drivers/usb/gadget/legacy# insmod g_ether ko [ 848.974869] g_ether: Unknown symbol usb_get_function_instance (err -2) [ 848.974929] g_ether: Unknown symbol usb_string_ids_tab (err -2) [ 848.974964] g_ether: Unknown symbol usb_get_function (err -2) [ 848.974993] g_ether: Unknown symbol usb_composite_unregister (err -2) [ 848.975041] g_ether: Unknown symbol gether_set_dev_addr (err -2) [ 848.975069] g_ether: Unknown symbol usb_put_function (err -2) [ 848.975111] g_ether: Unknown symbol rndis_borrow_net (err -2) insmod: ERROR: could not insert module g_ether.ko: Unknown symbo[ 848.975140] g_ether: Unknown symbol usb_ad d_function (err -2) l in module [ 848.975167] g_ether: Unknown symbol usb_composite_probe (err -2) [ 848.975202] g_ether: Unknown symbol gether_register_netdev (err -2) [ 848.975232] g_ether: Unknown symbol usb_composite_overwrite_options (err -2) [ 848.975260] g_ether: Unknown symbol gether_set_qmult (err -2) [ 848.975289] g_ether: Unknown symbol usb_otg_descriptor_alloc (err -2) [ 848.975317] g_ether: Unknown symbol gether_set_gadget (err -2) [ 848.975344] g_ether: Unknown symbol usb_put_function_instance (err -2) root@am62xx-evm:/lib/modules/6.1.46-rt13-gb871cdee8c31-dirty/ker[ 848.975373] g_ether: Unknown symbol gether _set_host_addr (err -2) [ 848.975400] g_ether: Unknown symbol usb_otg_descriptor_init (err -2) nel/drivers/usb/gadget/legacy# [ 848.975429] g_ether: Unknown symbol usb_add_config (err -2) root@am62xx-evm:/lib/modules/6.1.46-rt13-gb871cdee8c31-dirty/kernel/drivers/usb/gadget/legacy#
使用 modprobe g_ether 命令、可以成功启用 RNIDS、并且可以在我的 Ubuntu 22上识别。
root@am62xx-evm:~# modprobe g_ether [ 80.696108] using random self ethernet address [ 80.696125] using random host ethernet address [ 80.697098] usb0: HOST MAC 86:a5:80:d7:80:dc [ 80.697115] usb0: MAC e6:8e:da:b3:a8:3e [ 80.697180] using random self ethernet address root@am62xx-evm:~# [ 80.697186] using random host ethernet address [ 80.697290] g_ether gadget.0: Ethernet Gadget, version: Memorial Day 2008 [ 80.697298] g_ether gadget.0: g_ether ready [ 80.938067] IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready
连接到 Window 笔记本电脑、可以在右下角的屏幕上看到检测过程并成功完成、但找不到 ipconfig 和设备管理器。 您可以在设备管理器中看到 USB 串行。
BTW、我的硬件设置:SK-AM62B USB1 A 型连接到 PC。 最新的 Linux SDK
root@am62xx-evm:~# uname -a
Linux am62xx-evm 6.1.46-rt13-gb871cde8c31-Dirty #4 SMP 抢占 Tue Jan 16 19:17:15 CST 2024 Aarch64 Aarch64 Aarch64 GNU/Linux
尊敬的 Tony:
作为客户在 VMware 下的 Ubantu,无法检测到它,但无法确定是由于 PC 系统或主板。
我很长时间没有使用过 VMware, 但我认为默认情况下、PC USB 控制器不会路由到 VMware 中的操作系统、您必须手动将 USB 控制器分配给 VMware、以便 VMware 中的 Ubuntu 可以看到 USB 控制器和连接的 USB 设备。
使用 modprobe g_ether 命令可以成功启用 RNIDS,并且可以在我的 Ubuntu 22上识别。
"modprobe g_ether"是正确的命令,不应使用 insmod 命令。 G_ether (和其他 USB 小工具驱动程序)取决于其他 USB 驱动程序。 modprobe 命令会自动加载所有从属驱动程序,但 insmod 命令不会。
BTW、我的硬件设置:SK-AM62B USB1 A 型连接到 PC。 最新的 Linux SDK
[/报价]我想您设置 USB1 dr_mode ="otg"、然后您需要设置 USB0 dr_mode ="host"。 在"OTG"模式下使用两个 USB 端口有点复杂。
您好、Bin、
将 SK-AM62B USB0连接到 PC 上,安装客户从互联网下载的 RNDIS Window 10驱动程序,Win10现在可以检测到 RNDIS。
BTW,在安装 RNDIS 驱动程序之前,它将在 Win10上被识别为 COM。
尊敬的 Tony:
感谢您更新和共享解决方案。 很有帮助。
我不使用 Windows、也不知道它没有现成安装 RNDIS 主机驱动程序。