WhyCan Forum(哇酷开发者社区)

我们习惯了"有问题百度一下", 感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#1 2019-05-02 17:26:17

路人乙
会员
注册时间: 2017-09-26
累计积分: 57

测试测试 g_serial / g_ether USB Gadget (RNDIS)

1. make menuconfig 勾选对应的 gadget 驱动程序.

然后执行模块安装:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules_install INSTALL_MOD_PATH=/opt/buildroot-2018.08.2/output/target/

2. 开发板执行: modprobe g_serial, 驱动会生成 /dev/ttyGS0 设备

3. 开发板执行: cat /dev/ttyGS0, 电脑发送,开发板接收:
QQ20190502172555.png

4. 开发板执行: echo "xxxx" > /dev/ttyGS0, 电脑接收:
QQ20190502172742.png

可以参考这个帖子: http://guochongxin.github.io/acm/bbb/beaglebone-black/gadget/g_serial/%E5%BC%80%E6%BA%90%E7%A1%AC%E4%BB%B6/2015/02/12/shi_yong_bbb_de_usb_gadget_gong_neng_zhi_g_serial

最近编辑记录 路人乙 (2019-05-02 18:39:30)

离线

#2 2019-05-02 20:32:17

路人乙
会员
注册时间: 2017-09-26
累计积分: 57

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

QQ20190502202930.png


modprobe g_ether 测试 usb IP网络.

离线

#3 2019-05-02 21:35:40

路人乙
会员
注册时间: 2017-09-26
累计积分: 57

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

QQ20190502213413.png

https://www.kernel.org/doc/Documentation/usb/linux.inf

Windows10 被识别成 串口设备了, 根据网上的办法都装不了驱动.

离线

#4 2019-05-02 21:54:32

路人乙
会员
注册时间: 2017-09-26
累计积分: 57

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

【原始问题】
·特别是在Windows 10上(撰写本文时为1511 / TH2版),操作系统识别带USBNetwork的Kindle(Linux USB Gadget productId 0x0525,vendorId 0xA4A2)作为“ 串行USB设备 ”而不是“Linux-USB以太网/ RNDIS小工具”(或需要驱动程序的未知设备)
请参阅:http://answers.microsoft.com/en-us/w...5590447 ?AUTH = 1

引用:
最初由MS论坛上的dlech发表
Linux rndis小工具函数的USB类为2,子类为2,与usbser.inf文件中的“USB \ Class_02&SubClass_02”相匹配。这就是为什么对于某些人来说,他们的设备最初被检测为COM端口而不是RNDIS。
通过一些快速的Google搜索,似乎有些VM用户没有遇到此问题,可能是因为类/子类对在呈现给访客时被篡改了?

无论如何,因此,如果你试图更新它的驱动程序,Windows将只显示兼容的驱动程序,即串口驱动程序


【基本原理】

解决方案是提供一个专门处理USB \ PID_0525和VID_A4A2的驱动程序。它只是一个虚拟驱动程序,告诉操作系统我们的“Linux USB Gadget”应该作为远程NDIS设备处理。Windows已经捆绑了RNDIS驱动程序很长一段时间了,所以它基本上是一个简单的声明问题。

但是,从Vista(编辑:可能是Windows 8,如下所述)开始,Windows一直在执行64位驱动程序的强制签名要求。
这意味着,驱动程序包的每个部分都必须在目录文件(* .cat)中进行散列和引用; 此目录本身经过加密签名,以确保真实性和完整性。
对于WHQL驱动程序,Microsoft是签署目录的人(经过一系列测试后)。
您可以通过运行“pnputil -e”来查看已安装的驱动程序。其中大多数应该由“Microsoft Windows硬件兼容性发布者”签名。
如果您打开计算机证书存储区(运行:certlm.msc)并浏览到“受信任的发布者”,您可能会看到其他人,具体取决于您的PC品牌。

我们的想法是生成代码签名密钥对(私钥+证书),将“自签名”(发行人==主题)。这个想法来找我,因为我使用由Fernando的WinRAID证书颁发机构签名的自定义驱动程序。
如他们的帖子所述:

即使在运行Win8 / 10时也可轻松安装我的所有“mod + signed”驱动程序,而无需禁用“Driver Signature Enforcement”。
这是一个关键点。你不希望随机的人在没有某种检查的情况下安装内核模式驱动程序,无论是稳定性(bsods)还是完整性(篡改/ rootkit)。

在我们的特定情况下,“驱动程序”仅仅是一个.inf文件。
它基本上说的是,“嘿,将这种类型视为RNDIS设备(USB /以太网适配器);驱动程序已经在Windows中(并已签名),因此您无需复制任何内容。”

2019-05-02_215349.png


千辛万苦找到这个帖子:
https://www.mobileread.com/forums/showthread.php?p=3283986

下载了这个文件: kindle_rndis_inf_amd64-v1_0_0_1.zip

最近编辑记录 路人乙 (2019-05-02 21:55:51)

离线

#5 2019-05-02 21:59:03

路人乙
会员
注册时间: 2017-09-26
累计积分: 57

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

QQ20190502215812.png

终于药到病除了, 经过上面两个步骤驱动装上了.

离线

#6 2019-05-02 22:02:20

路人乙
会员
注册时间: 2017-09-26
累计积分: 57

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

QQ20190502220129.png

网络正常了!

离线

#7 2019-05-02 22:05:52

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

感谢分享!!!

离线

#8 2019-05-20 09:55:27

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 257

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

请问楼主用的是荔枝派zero吗,内核是哪个版本

“make menuconfig 勾选对应的 gadget 驱动程序.” ---这句话是设置kernel还是buildroot,能详细说说设置方法吗,我在buildroot里没找到gadget相关的

离线

#9 2019-05-20 10:07:30

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

2019-05-20_100529.png

在linux drivers 这里设置

> Device Drivers > USB support > USB Gadget Support

离线

#10 2019-05-20 11:15:32

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 257

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

晕哥 说:

https://whycan.cn/files/members/3/2019-05-20_100529.png

在linux drivers 这里设置

> Device Drivers > USB support > USB Gadget Support

晕哥,

我昨晚测试荔枝zero,内核也是的用4.13y,USB Gadget Support在官方默认配置下,是CDC Composite Device (Ethernet and ACM) 。

这个配置,在我的电脑上未出现任何USB设备。



看到这个帖子(https://whycan.cn/t_1788.html-Zero通过otg与PC共享网络)里可以改成串口配置,我就改成了Serial Gadget (with CDC ACM and CDC OBEX support) 。电脑上就出现了USB虚拟串口。

经过测试发现虚拟串口不太正常:

1. 开发板可以正常发送到PC端的串口助手:
开发板发送:

echo "125awsdQWEDFffe" > /dev/ttyGS0

2. PC端发送到开发板不正常,开发板可以接收到内容,但是PC串口助手同时也接收到了自己发送的内容:
开发板接收:

cat /dev/ttyGS0

串口助手sscom5.13显示的接收:

[20:21:54.484]收←◆125awsdffe

[20:22:04.544]收←◆125awsdQWEDFffe

[20:22:26.619]发→◇LLLK
□
[20:22:26.620]收←◆LLLK
LLLK

[20:22:31.627]发→◇LLLK
□
[20:22:31.628]收←◆LLLK

遇到的问题就是,PC串口助手发送的同时,也接收到了自己发送的内容

离线

#11 2019-05-20 11:29:01

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 257

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

晕哥 说:

https://whycan.cn/files/members/3/2019-05-20_100529.png

在linux drivers 这里设置

> Device Drivers > USB support > USB Gadget Support


我还测试了荔枝派官方的教程-- Zero通过otg与PC共享网络

说配置后可以看到usb0
zp@ubuntu64:~$ ifconfig
...
usb0 Link encap:Ethernet HWaddr 66:36:e9:13:fd:44

root@Lichee:~# ifconfig
...
usb0 Link encap:Ethernet HWaddr 2e:cf:e1:3f:ad:61

--------------
结果在我的板子上根本看不到usb0

不知道晕哥测试过没

总感觉我这块荔枝派不太稳定,准备再入一块。

离线

#12 2019-05-20 11:32:32

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 257

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

晕哥 说:

https://whycan.cn/files/members/3/2019-05-20_100529.png

在linux drivers 这里设置

> Device Drivers > USB support > USB Gadget Support


晕哥,

找时间出个详细点的教程吧,关于荔枝派zero的usb虚拟串口和虚拟网口的,感觉这两个功能很实用!

救救孩子吧。。。 lol

离线

#13 2019-05-20 11:43:50

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

好, 有空我录个视频.

离线

#14 2019-05-20 15:04:51

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 257

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

晕哥 说:

好, 有空我录个视频.

期待,期待!

离线

#15 2019-06-06 16:22:29

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

# modprobe g_serial
modprobe: can't change directory to '/lib/modules': No such file or directory
# mkdir -p /lib/modules
# modprobe g_serial
modprobe: can't change directory to '4.15.0-rc8-licheepi-nano+': No such file or directory
# 

这是啥问题

离线

#16 2019-06-06 17:00:35

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules_install INSTALL_MOD_PATH=target/


使用上面的命令安装 模块ko文件到 指定的根文件系统目录: target/

离线

#17 2019-06-10 16:03:37

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

已经编译的模块

# find -name *ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/crypto/echainiv.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/usb/gadget/libcomposite.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/usb/gadget/function/u_ether.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/usb/gadget/function/usb_f_ecm.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/usb/gadget/function/usb_f_fs.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/usb/gadget/function/usb_f_acm.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/usb/gadget/function/usb_f_rndis.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/usb/gadget/function/u_serial.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/usb/mon/usbmon.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/video/backlight/lcd.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/net/mii.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/net/usb/rtl8150.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/staging/rtl8723bs/r8723bs.ko
./usr/lib/modules/4.15.0-rc8-licheepi-nano+/kernel/drivers/input/touchscreen/goodix.ko

没有发现 g_serial.ko
insmod u_serial.ko 成功 但没生成 串口节点/dev/ttyGS0

离线

#18 2019-06-10 16:05:46

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

现在 可以了,谢谢晕哥

晕哥 说:

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules_install INSTALL_MOD_PATH=target/


使用上面的命令安装 模块ko文件到 指定的根文件系统目录: target/

离线

#19 2019-06-10 16:06:35

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

可以执行  modpro g_serial 吗?

检查一下 .config 的 CONFIG_MODULES 配置是不是这样:

CONFIG_MODULES=y

离线

#20 2019-06-10 16:08:11

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

再检查一下驱动是否装载了:

lsmod

看看结果如何?

离线

#21 2019-06-10 16:21:36

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

执行lsmod 可以看到安装的模块

晕哥 说:

再检查一下驱动是否装载了:

lsmod

看看结果如何?

离线

#22 2019-06-10 16:24:03

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

没有g_serial 这个东西,只有 u_serial
modpro  执行不了不要紧,insmod 可以执行安装

晕哥 说:

可以执行  modpro g_serial 吗?

检查一下 .config 的 CONFIG_MODULES 配置是不是这样:

CONFIG_MODULES=y

离线

#23 2019-06-10 16:28:31

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

请检查 CONFIG_MODULES

离线

#24 2019-06-10 16:30:11

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.15.0-rc8-licheepi-nano+ (root@221365da42b4) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #4 Mon Jun 10 04:19:27 UTC 2019
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt: Machine model: Lichee Pi Nano
[    0.000000] Memory policy: Data cache writeback
[    0.000000] random: fast init done
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line: console=ttyS0,115200 panic=5 rootwait root=31:03 rw rootfstype=jffs2
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Memory: 22676K/32768K available (6144K kernel code, 235K rwdata, 1404K rodata, 1024K init, 246K bss, 10092K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xc2800000 - 0xff800000   ( 976 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc2000000   (  32 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (7136 kB)
[    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
[    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 236 kB)
[    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 247 kB)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000050] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000121] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000750] Console: colour dummy device 80x30
[    0.000847] Calibrating delay loop... 203.16 BogoMIPS (lpj=1015808)
[    0.070250] pid_max: default: 32768 minimum: 301
[    0.070579] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.070623] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.072213] CPU: Testing write buffer coherency: ok
[    0.074126] Setting up static identity map for 0x80100000 - 0x80100058
[    0.076745] devtmpfs: initialized
[    0.083590] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.083669] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.083950] pinctrl core: initialized pinctrl subsystem
[    0.086224] NET: Registered protocol family 16
[    0.088217] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.090295] cpuidle: using governor menu
[    0.117101] SCSI subsystem initialized
[    0.117476] usbcore: registered new interface driver usbfs
[    0.117670] usbcore: registered new interface driver hub
[    0.117896] usbcore: registered new device driver usb
[    0.118365] pps_core: LinuxPPS API ver. 1 registered
[    0.118394] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.118465] PTP clock support registered
[    0.118984] Advanced Linux Sound Architecture Driver Initialized.
[    0.120636] clocksource: Switched to clocksource timer
[    0.149582] NET: Registered protocol family 2
[    0.151196] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.151285] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.151338] TCP: Hash tables configured (established 1024 bind 1024)
[    0.151716] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.151777] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.152300] NET: Registered protocol family 1
[    0.153671] RPC: Registered named UNIX socket transport module.
[    0.153715] RPC: Registered udp transport module.
[    0.153733] RPC: Registered tcp transport module.
[    0.153750] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.155623] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.157652] Initialise system trusted keyrings
[    0.158240] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[    0.174461] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.176871] NFS: Registering the id_resolver key type
[    0.176978] Key type id_resolver registered
[    0.177002] Key type id_legacy registered
[    0.177122] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.192622] Key type asymmetric registered
[    0.192666] Asymmetric key parser 'x509' registered
[    0.192893] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.192927] io scheduler noop registered
[    0.192945] io scheduler deadline registered
[    0.193777] io scheduler cfq registered (default)
[    0.193816] io scheduler mq-deadline registered
[    0.193837] io scheduler kyber registered
[    0.194927] sun4i-usb-phy 1c13400.phy: Couldn't request ID GPIO
[    0.205141] suniv-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    0.390310] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.397700] console [ttyS0] disabled
[    0.417978] 1c25000.serial: ttyS0 at MMIO 0x1c25000 (irq = 23, base_baud = 6250000) is a 16550A
[    0.897370] console [ttyS0] enabled
[    0.908111] panel-simple panel: panel supply power not found, using dummy regulator
[    0.917551] SCSI Media Changer driver v0.25 
[    0.925771] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.930559] 4 ofpart partitions found on MTD device spi0.0
[    0.936161] Creating 4 MTD partitions on "spi0.0":
[    0.941039] 0x000000000000-0x000000100000 : "u-boot"
[    0.948717] 0x000000100000-0x000000110000 : "dtb"
[    0.956270] 0x000000110000-0x000000510000 : "kernel"
[    0.963915] 0x000000510000-0x000001000000 : "rootfs"
[    0.972368] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.978907] ehci-platform: EHCI generic platform driver
[    0.984569] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.990876] ohci-platform: OHCI generic platform driver
[    0.996527] usbcore: registered new interface driver usb-storage
[    1.003599] i2c /dev entries driver
[    1.070773] sunxi-mmc 1c0f000.mmc: base:0xe85ad070 irq:19
[    1.078495] usbcore: registered new interface driver usbhid
[    1.084208] usbhid: USB HID core driver
[    1.107115] NET: Registered protocol family 17
[    1.112027] Key type dns_resolver registered
[    1.118812] Loading compiled-in X.509 certificates
[    1.135500] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc0739fb8)
[    1.144436] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc073929c)
[    1.152237] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.158843] [drm] No driver support for vblank timestamp query.
[    1.213090] Console: switching to colour frame buffer device 60x34
[    1.236318] sun4i-drm display-engine: fb0:  frame buffer device
[    1.243475] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[    1.252698] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    1.264565] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[    1.270361] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[    1.280520] hub 1-0:1.0: USB hub found
[    1.284578] hub 1-0:1.0: 1 port detected
[    1.290921] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    1.308424] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    1.315268] vcc3v3: disabling
[    1.318256] ALSA device list:
[    1.321308]   #0: Loopback 1
[    1.325083] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    1.333793] cfg80211: failed to load regulatory.db
[    1.437265] random: crng init done
[    2.775786] VFS: Mounted root (jffs2 filesystem) on device 31:3.
[    2.784479] devtmpfs: mounted
[    2.792266] Freeing unused kernel memory: 1024K
mount: /overlay: mount point does not exist.
Starting syslogd: OK
Starting klogd: OK
Initializing random number generator... done.
Configure the USB Gadget: /usr/bin/gadget_init: cd: line 6: can't cd to /config/usb_gadget/: No such file or directory
FAIL
Starting album: [    9.493679] Console: switching to colour dummy device 80x30
OK
/etc/init.d/S36album: cd: line 11: can't cd to /overlay/album: No such file or directory
Starting ntpd: /etc/init.d/S39ntpd: line 9: /usr/sbin/ntpd: not found
FAIL
Starting udhcpd: /etc/init.d/S39udhcpd: line 9: /usr/sbin/udhcpd: not found
FAIL
Starting network: OK
Starting wpa_cli: /etc/init.d/S41wpa_cli: line 9: /usr/sbin/wpa_cli: not found
FAIL

Welcome to Buildroot
buildroot login: 

启动日志如上,Gadget  驱动模块都编译了 没有生成g_serial.ko 而是 u_serial.ko
insmod  u_serial.ko 安装 后没有创建  串口

晕哥 说:

再检查一下驱动是否装载了:

lsmod

看看结果如何?

离线

#25 2019-06-10 16:31:46

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

当前  CONFIG_MODULES=y  没改变

晕哥 说:

请检查 CONFIG_MODULES

离线

#26 2019-06-10 16:36:11

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

# modprobe u_serial
modprobe: module u_serial not found in modules.dep
# modprobe g_serial
modprobe: module g_serial not found in modules.dep
# modprobe g_serial
modprobe: module g_serial not found in modules.dep
# modprobe g_serial
modprobe: module g_serial not found in modules.dep
# modprobe g_serial

tongjinlv 说:

当前  CONFIG_MODULES=y  没改变

晕哥 说:

请检查 CONFIG_MODULES

离线

#27 2019-06-10 16:38:42

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

手动执行:

mdev -s

离线

#28 2019-06-10 16:40:23

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

你的安装方法有误, 导致没有生成这个文件: /lib/modules/4.15.0-rc8-licheepi-nano+/modules.dep

tongjinlv 说:

# modprobe u_serial
modprobe: module u_serial not found in modules.dep
# modprobe g_serial
modprobe: module g_serial not found in modules.dep
# modprobe g_serial
modprobe: module g_serial not found in modules.dep
# modprobe g_serial
modprobe: module g_serial not found in modules.dep
# modprobe g_serial

tongjinlv 说:

当前  CONFIG_MODULES=y  没改变

晕哥 说:

请检查 CONFIG_MODULES

离线

#29 2019-06-10 16:52:59

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

现在 modprobe u_serial  可以,  但modprobe g_serial
u_serial 跟g_serial 是不是一个意思啊

晕哥 说:

手动执行:

mdev -s

离线

#30 2019-06-10 16:56:46

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

我刚刚用这个 https://whycan.cn/t_2449.html 帮你测试了:


modprobe g_serial use_acm=0

# modprobe g_serial use_acm=0
[  459.409116] g_serial gadget: Gadget Serial v2.4
[  459.413806] g_serial gadget: g_serial ready
[  464.212054] g_serial gadget: high-speed config #1: Generic Serial config                                                               ^C
#
#
# ls /dev/ttyGS0 -l
crw-rw----    1 root     root      245,   0 Jan  1 02:25 /dev/ttyGS0

离线

#31 2019-06-10 17:03:23

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

主要是没生成 g_serial  啊    只有u_serial  这两个是一个东西吗

晕哥 说:

我刚刚用这个 https://whycan.cn/t_2449.html 帮你测试了:


modprobe g_serial use_acm=0

# modprobe g_serial use_acm=0
[  459.409116] g_serial gadget: Gadget Serial v2.4
[  459.413806] g_serial gadget: g_serial ready
[  464.212054] g_serial gadget: high-speed config #1: Generic Serial config                                                               ^C
#
#
# ls /dev/ttyGS0 -l
crw-rw----    1 root     root      245,   0 Jan  1 02:25 /dev/ttyGS0

离线

#32 2019-06-10 17:20:34

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

http://trac.gateworks.com/wiki/linux/OTG

u_serial  这个的套路不同, 你先看看上面的链接, 我晚点也研究一下。

离线

#33 2019-06-10 17:25:32

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

为啥有 u_serial 和g_serial 之分啊,我用的主线

晕哥 说:

http://trac.gateworks.com/wiki/linux/OTG

u_serial  这个的套路不同, 你先看看上面的链接, 我晚点也研究一下。

离线

#34 2019-06-10 17:41:52

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

g_serial 可能会在未来版本不支持或者过期, g_ 打头的都是这样吧



tongjinlv 说:

为啥有 u_serial 和g_serial 之分啊,我用的主线

晕哥 说:

http://trac.gateworks.com/wiki/linux/OTG

u_serial  这个的套路不同, 你先看看上面的链接, 我晚点也研究一下。

离线

#35 2019-06-11 10:14:22

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

那u_开头的怎么用呀

晕哥 说:

g_serial 可能会在未来版本不支持或者过期, g_ 打头的都是这样吧



tongjinlv 说:

为啥有 u_serial 和g_serial 之分啊,我用的主线

晕哥 说:

http://trac.gateworks.com/wiki/linux/OTG

u_serial  这个的套路不同, 你先看看上面的链接, 我晚点也研究一下。

离线

#36 2019-06-11 10:16:02

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

应该就是上面那个链接里面,  http://trac.gateworks.com/wiki/linux/OTG

我还没来得及细看

离线

#37 2019-06-11 11:00:40

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

这里没有讲到 u_serial啊

晕哥 说:

应该就是上面那个链接里面,  http://trac.gateworks.com/wiki/linux/OTG

我还没来得及细看

离线

#38 2019-06-11 11:20:38

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

CONFIGFS
Linux Configfs(CONFIG_CONFIGFS_FS)支持允许从用户空间完全动态配置小工具设备,在这种情况下,您可以使用drivers / usb / gadget / udc / functions中提供的一个或多个功能创建单个配置或多配置复合设备:

usb_f_acm - CDC Serial(ACM - 抽象控制模型)
usb_f_ecm - CDC以太网(ECM - 以太网网络控制模型)
usb_f_eem - CDC以太网(EEM - 以太网仿真模型)
usb_f_fs - 文件系统
usb_f_hid - HID接口
usb_f_mass_storage - USB海量存储类
usb_f_midi - MIDI
usb_f_ncm - CDC网络(NCM - 网络控制模型以太网)
usb_f_obex - CDC OBEX(对象交换模型)
usb_f_phonet - CDC Phonet
usb_f_printer - 打印机功能
usb_f_rndis - (远程网络驱动程序接口规范 - 基于USB的Microsoft以太网)
usb_f_serial - 通用串行功能
usb_f_subset - CDC子集(没有控制机制的以太网 - 只是原始数据传输)
usb_f_uac1 - USB音频类
usb_f_uac2 - USB Audio class 2.0
usb_f_uvc - USB视频课程
请注意,并非所有上述内核模块都可用,具体取决于您的内核配置或BSP。

例子:

创建CDC ACM串行设备:
#mount configfs
mount -t configfs none / sys / kernel / config
#load libcomposite module
modprobe libcomposite #cread
a gadget
mkdir / sys / kernel / config / usb_gadget / g1
#cd to configfs node
cd / sys / kernel / config / usb_gadget / g1
#configure it(如果USB Class用于驱动程序compat,vid / pid可以是任何东西)
echo 0xabcd> idVendor
echo 0x1234> idProduct #configure
its serial / mfg / product
mkdir strings / 0x409
echo myserial> strings / 0x409 / serialnumber
echo mymfg> strings / 0x409 / manufacturer
echo myproduct> strings / 0x409 / product #create
config
mkdir configs / c.1
#如果需要,配置属性
echo  120 > configs / c.1 / MaxPower
#确保函数加载
modprobe usb_f_acm
#创建函数(名称必须匹配usb_f_ <name>模块,如'acm')
mkdir functions / acm.0 #assocate
function with config
ln -s functions / acm.0 configs / c.1 #enable
gadget通过绑定到UDC从/ sys / class / udc
echo  0000:01:00.0> UDC
#to unbind it:echo“”UDC; 睡1; rm -rf / sys / kernel / config / usb_gadget / g1

可能是包含关系, 上面链接搜一下 usb_f_serial
我猜 usb_f_serial 应该是调用 u_serial

tongjinlv 说:

这里没有讲到 u_serial啊

晕哥 说:

应该就是上面那个链接里面,  http://trac.gateworks.com/wiki/linux/OTG

我还没来得及细看

离线

#39 2019-06-12 16:03:03

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

谢谢晕哥。/dev/ttyGS0   生成了,但 电脑端没有出现串口

离线

#40 2019-06-12 16:08:06

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

如何解决的?
电脑有没有出现安装驱动?
板子是自己做的,还是别家的? usb id 脚电平有没有拉低?

离线

#41 2019-06-12 16:13:18

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

坑网有个地方 建议不要选中,USB Gadget precomposed configurations
g_serial 就在这个下面

电脑没有提示安装驱动,也没有串口出现,
usb id 需要手动拉低吗
板子是用的nano pi

晕哥 说:

如何解决的?
电脑有没有出现安装驱动?
板子是自己做的,还是别家的? usb id 脚电平有没有拉低?

最近编辑记录 tongjinlv (2019-06-12 16:13:45)

离线

#42 2019-06-12 16:50:50

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

可能你的分支错了,你用哪个 git 仓库哪个分支,有说明的。

离线

#43 2019-06-12 17:01:15

tongjinlv
会员
所在地: 深圳
注册时间: 2018-08-10
累计积分: 58
个人网站

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

荔枝派的 两个分支都试了

usb id  通过什么拉低啊

晕哥 说:

可能你的分支错了,你用哪个 git 仓库哪个分支,有说明的。

离线

#44 2019-06-13 10:29:31

晕哥
管理员
注册时间: 2017-09-06
累计积分: 9,188

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

离线

#45 2019-08-12 11:04:46

路人乙
会员
注册时间: 2017-09-26
累计积分: 57

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

https://stackoverflow.com/questions/24426410/how-to-set-usb-serial-as-debug-port-console

/etc/inittab 加上 下面的配置,轻轻松松用 USB 口作为终端, 倍儿爽,以后去客户那里可以免拆机,免带串口线 ^_^

::respawn:/sbin/getty -L ttyAM0 115200 vt100
::respawn:/sbin/getty -L ttyGS0 115200 vt100




上面记得放这个前面才行:

console::respawn:/sbin/getty -L  console 0 vt100 # GENERIC_SERIAL

否则串口终端貌似有点问题.

离线

#46 2019-08-29 16:19:43

晕哥小弟
会员
注册时间: 2019-04-04
累计积分: 285

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

Jmhh247 说:
晕哥 说:

https://whycan.cn/files/members/3/2019-05-20_100529.png

在linux drivers 这里设置

> Device Drivers > USB support > USB Gadget Support

晕哥,

我昨晚测试荔枝zero,内核也是的用4.13y,USB Gadget Support在官方默认配置下,是CDC Composite Device (Ethernet and ACM) 。

这个配置,在我的电脑上未出现任何USB设备。



看到这个帖子(https://whycan.cn/t_1788.html-Zero通过otg与PC共享网络)里可以改成串口配置,我就改成了Serial Gadget (with CDC ACM and CDC OBEX support) 。电脑上就出现了USB虚拟串口。

经过测试发现虚拟串口不太正常:

1. 开发板可以正常发送到PC端的串口助手:
开发板发送:

echo "125awsdQWEDFffe" > /dev/ttyGS0

2. PC端发送到开发板不正常,开发板可以接收到内容,但是PC串口助手同时也接收到了自己发送的内容:
开发板接收:

cat /dev/ttyGS0

串口助手sscom5.13显示的接收:

[20:21:54.484]收←◆125awsdffe

[20:22:04.544]收←◆125awsdQWEDFffe

[20:22:26.619]发→◇LLLK
□
[20:22:26.620]收←◆LLLK
LLLK

[20:22:31.627]发→◇LLLK
□
[20:22:31.628]收←◆LLLK

遇到的问题就是,PC串口助手发送的同时,也接收到了自己发送的内容

你的是如何配置的,能指导下么?我的g_serial就是在PC上没有任何反应。

离线

#47 2019-09-06 22:37:43

ffplay
会员
注册时间: 2019-08-31
累计积分: 88

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

喜欢 usb rndis 这个大杀器,调试好方便。

离线

#48 2020-05-15 09:06:30

zhang235hai
会员
注册时间: 2020-04-06
累计积分: 75

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

开发板执行: cat /dev/ttyGS0, 电脑发送,开发板接收
我从串口助手发送任何东西,荔枝派接收不到任何东西

开发板执行: echo "xxxx" > /dev/ttyGS0, 电脑接收
这个可以实现,电脑串口助手可以正常接收

请大家指定一下

离线

#49 2020-05-19 14:29:21

macian
会员
注册时间: 2020-05-19
累计积分: 7

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

我在用nuc972页遇到类似的问题 ,试试这种办法可不可以

离线

#50 2020-05-19 14:33:51

touchey
会员
注册时间: 2020-05-18
累计积分: 26

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

是不是可以通过RNDIS实现类似jetson nano的headless玩法模式
参考下面的链接:
https://blog.csdn.net/qq_41185868/article/details/94412709
Headless Device Mode
      For this course, we are running the Jetson Nano Developer Kit in a "headless" configuration. That means you do not hook up a monitor directly to the Jetson Nano Developer Kit. This method conserves memory resources on the Jetson Nano and has the added benefit of eliminating the requirement for extra hardware, i.e. a monitor, keyboard, and mouse.
      在本课程中,我们将以“headless”配置运行Jetson Nano开发人员工具包。这意味着您不需要将监视器直接连接到Jetson Nano开发人员工具包。这种方法节省了Jetson Nano上的内存资源,而且还有一个额外的好处,那就是不需要额外的硬件,比如显示器、键盘和鼠标。

      In addition, we will further simplify the configuration by using "USB Device Mode". In this mode, your Jetson Nano Developer Kit connects directly to your computer through a USB cable. This eliminates the need for a network connection on the Jetson Nano, as well as the need to determine the IP address on your network. It is always 192.168.55.1:8888 in this mode.
      此外,我们还将使用“USB设备模式”进一步简化配置。在这种模式下,您的Jetson Nano开发工具包通过USB电缆直接连接到您的计算机。这样就不需要在Jetson Nano上建立网络连接,也不需要确定网络上的IP地址。在这种模式下,地址一直是192.168.55.1:8888。
————————————————
版权声明:本文为CSDN博主「一个处女座的程序猿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41185868/java/article/details/94412709

路人乙 说:

1. make menuconfig 勾选对应的 gadget 驱动程序.

然后执行模块安装:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules_install INSTALL_MOD_PATH=/opt/buildroot-2018.08.2/output/target/

2. 开发板执行: modprobe g_serial, 驱动会生成 /dev/ttyGS0 设备

3. 开发板执行: cat /dev/ttyGS0, 电脑发送,开发板接收:
https://whycan.cn/files/members/313/QQ20190502172555.png

4. 开发板执行: echo "xxxx" > /dev/ttyGS0, 电脑接收:
https://whycan.cn/files/members/313/QQ20190502172742.png

可以参考这个帖子: http://guochongxin.github.io/acm/bbb/beaglebone-black/gadget/g_serial/%E5%BC%80%E6%BA%90%E7%A1%AC%E4%BB%B6/2015/02/12/shi_yong_bbb_de_usb_gadget_gong_neng_zhi_g_serial

离线

#51 2020-05-19 15:39:18

xiaoqinhu2020
会员
注册时间: 2020-05-14
累计积分: 7

Re: 测试测试 g_serial / g_ether USB Gadget (RNDIS)

我的可以生成 /dev/ttyGS0 设备,但是电脑端一直识别不到设备,不知道是什么原因

离线

页脚

工信部备案:粤ICP备20025096号-1 Powered by FluxBB