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, 电脑发送,开发板接收:
4. 开发板执行: echo "xxxx" > /dev/ttyGS0, 电脑接收:
最近编辑记录 路人乙 (2019-05-02 18:39:30)
离线
modprobe g_ether 测试 usb IP网络.
离线
离线
【原始问题】
·特别是在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中(并已签名),因此您无需复制任何内容。”
千辛万苦找到这个帖子:
https://www.mobileread.com/forums/showthread.php?p=3283986
下载了这个文件: kindle_rndis_inf_amd64-v1_0_0_1.zip
最近编辑记录 路人乙 (2019-05-02 21:55:51)
离线
终于药到病除了, 经过上面两个步骤驱动装上了.
离线
网络正常了!
离线
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
否则串口终端貌似有点问题.
离线