首页 > 其他分享 >usb gadget配置记录

usb gadget配置记录

时间:2024-06-16 22:11:41浏览次数:13  
标签:usb seq 记录 gadget bytes 192.168 64 ttl

linux 配置

Device Drivers > Network device support  > USB Network Adapters
     [*]  Multi-purpose USB Networking Framework
     [*] Simple USB Network Links (CDC Ethernet subset)

Device Drivers > USB support > USB Gadget Support
     [*]   Serial gadget console support 
     <*>   USB Gadget functions configurable through configfs
        [*]     Abstract Control Model (CDC ACM) 
        [*]     Ethernet Control Model (CDC ECM) 
        [*]     Ethernet Control Model (CDC ECM) subset
        [*]     Mass storage
        [*]     HID function

其余默认就行

usb网口

目标板

#mount configfs
> mount -t configfs none /sys/kernel/config

# config usb g_ecm
> cd /sys/kernel/config/usb_gadget
> mkdir g_ecm
> cd g_ecm/
> ls
UDC              bMaxPacketSize0  functions        os_desc
bDeviceClass     bcdDevice        idProduct        strings
bDeviceProtocol  bcdUSB           idVendor
bDeviceSubClass  configs          max_speed
> echo "64" > bMaxPacketSize0
> echo "0x200" > bcdUSB
> echo "0x100" > bcdDevice
> echo "0x03FD" > idVendor
> echo "0x0502" > idProduct
> mkdir functions/ecm.0
[  208.169899] using random self ethernet address
[  208.174733] using random host ethernet address
> ls functions/ecm.0/
dev_addr   host_addr  ifname     qmult

# add configs
> mkdir configs/c1.1
> ls configs/c1.1
MaxPower      bmAttributes  strings
> ln -s functions/ecm.0 configs/c1.1
> ls configs/c1.1/
MaxPower      bmAttributes  ecm.0         strings

# enable usb-eth
> ls /sys/class/udc/
b0016000.usbdev
> echo "b0016000.usbdev" > UDC
[  456.256633] usb0: HOST MAC 0e:f6:64:33:06:fe
[  456.263799] usb0: MAC 42:16:61:a2:25:a2
> ifconfig -a
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

usb0      Link encap:Ethernet  HWaddr 42:16:61:A2:25:A2
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


# config ip address
> ifconfig usb0 192.168.1.37

# plug to usb-host
[  586.181841] IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready

> ping 192.168.1.222
PING 192.168.1.222 (192.168.1.222): 56 data bytes
64 bytes from 192.168.1.222: seq=0 ttl=64 time=1.642 ms
64 bytes from 192.168.1.222: seq=1 ttl=64 time=1.758 ms
64 bytes from 192.168.1.222: seq=2 ttl=64 time=1.825 ms
64 bytes from 192.168.1.222: seq=3 ttl=64 time=1.666 ms
64 bytes from 192.168.1.222: seq=4 ttl=64 time=1.659 ms



# close usb-ethernet
# echo "" > UDC

linux主机端配置比较简单,插上USB后

[ 2572.014146] usb 1-1: new high-speed USB device number 4 using ehci-pci
[ 2572.349019] usb 1-1: New USB device found, idVendor=03fd, idProduct=0502, bcdDevice= 1.00
[ 2572.349025] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 2572.365879] cdc_ether 1-1:1.0 usb0: register 'cdc_ether' at usb-0000:02:03.0-1, CDC Ethernet Device, 0e:f6:64:33:06:fe
[ 2572.371630] cdc_ether 1-1:1.0 enx0ef6643306fe: renamed from usb0

> ifconfig
enx0ef6643306fe: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 0e:f6:64:33:06:fe  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 105  bytes 8428 (8.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 105  bytes 8428 (8.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

> sudo ifconfig enx0ef6643306fe 192.168.1.222

> ping 192.168.1.37
PING 192.168.1.37 (192.168.1.37) 56(84) bytes of data.
64 bytes from 192.168.1.37: icmp_seq=1 ttl=64 time=1.52 ms
64 bytes from 192.168.1.37: icmp_seq=2 ttl=64 time=1.50 ms
64 bytes from 192.168.1.37: icmp_seq=3 ttl=64 time=1.95 ms
64 bytes from 192.168.1.37: icmp_seq=4 ttl=64 time=1.44 ms
64 bytes from 192.168.1.37: icmp_seq=5 ttl=64 time=0.968 ms
64 bytes from 192.168.1.37: icmp_seq=6 ttl=64 time=1.45 ms
64 bytes from 192.168.1.37: icmp_seq=7 ttl=64 time=0.945 ms
64 bytes from 192.168.1.37: icmp_seq=8 ttl=64 time=1.43 ms
64 bytes from 192.168.1.37: icmp_seq=9 ttl=64 time=1.53 ms

USB串口

以下为创建3个USB虚拟串口的示例

#mount configfs
> mount -t configfs none /sys/kernel/config

# config usb g_acm
> cd /sys/kernel/config/usb_gadget
> mkdir g_serial
> cd g_serial/
> mkdir functions/acm.gs0
> mkdir functions/acm.gs1
> mkdir functions/acm.gs2

# make configs
> mkdir configs/c1.1
> ln -s functions/acm.gs0 configs/c1.1
> ln -s functions/acm.gs1 configs/c1.1
> ln -s functions/acm.gs2 configs/c1.1

# enable
> echo "b0016000.usbdev" > UDC

完成后,插到电脑主机,可以看到新出现的三个串口

标签:usb,seq,记录,gadget,bytes,192.168,64,ttl
From: https://www.cnblogs.com/celticzy/p/18251239

相关文章

  • Git学习记录v1.0
    1、常用操作gitclonegitconfiggitbranchgittcheckoutgitstatusgitaddgitcommitgitpushgitpullgitloggittag1.1gitclone从git服务器拉取代码gitclonehttps://gitee.com/xxx/studyJava.git1.2gitconfig配置开发者用户名和邮箱gitconfiguser.......
  • 帮猪猪修修改的代码2016年的代码记录
    这是一个图片轮播的代码,但是它们的是css动画,当时代码运行不了,我花了二天才修改,现在记录一下,凭回忆用。<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>网易科技</title><metaname="viewport"content="width=de......
  • 代码随想录刷题记录(7)| 字符串(344.反转字符串,541. 反转字符串II,卡码网:54.替换数字)
    目录(一)反转字符串1.题目描述2.思路3.解题过程(二)反转字符串Ⅱ1.题目描述2.思路3.解题过程(三)替换数字1.题目描述2.思路3.解题过程(一)反转字符串344.反转字符串-力扣(LeetCode)1.题目描述        编写一个函数,其作用是将输入的字符串反转过......
  • 代码随想录刷题记录(8)| 字符串(151.反转字符串里的单词,卡码网:55.右旋转字符串,28. 找出字
    目录(四)反转字符串里的单词1. 题目描述2.思路3.解题过程(1)使用额外空间存储(2)原地反转 (五)右旋转字符串1.题目描述2.思路3.解题过程 (六)找出字符串中第一个匹配项的下标1.题目描述2.思路3.解题思路(七)重复的子字符串1.题目描述2.思路3.解题过程(八)......
  • 题解 | #查找薪水记录超过15条的员工号以及其记录次数t#
    高德Java后端一面(秒挂)百度算法岗面经上海网易互娱游戏策划sp一二三面面经(已OC)网易互娱/阿里互娱游戏策划一面面经【网易互娱】游戏设计师校招实习面试(已OC)[已oc]网易互娱游戏设计师(系统关卡数值)面经[已oc]网易互娱游戏设计师(系统关卡数值)面经网易互娱游戏设计师(系统......
  • 记录一次curl错误的经历(没找到具体的原因)
    起因:在开发环境的a项目中,curl请求一个第三方接口失败,查了一会没找到原因就没管了,此时知道的信息就是:curl_curl_exec返回null,curl_error返回空字符串。后面发现每个第三方接口都失败,直接在服务器上curl就是成功的,我试着在代码里curl我们自己的官网首页,curl还是失败但信息和之前的......
  • Linux下基于USB的WiFi(RTL8723DU):驱动、wpa_supplicant配置、hostapd配置等
    1WiFi基本概念WLAN(WirelessLAN)是无线局域网的意思。IEEE802.11是现今无线局域网通用的标准。关于802.11协议介绍参考《80211协议介绍》。信道也就是频段,是以无线信号作为传输载体的数据信号传送通道。802.11工作组划分了4个独立的频段:2.4GHz、3.6GHz、4.9GHz和5.8......
  • 上位机图像处理和嵌入式模块部署(h750 mcu和usb虚拟串口)
    【 声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:[email protected]】    对于mcuusb而言,大部分情况下,它和上位机之间的关系都是device的关系。一般usb,可以成成host和device。如果mcu是host,那么意味着它可以主动访问别的usb设备,比如u盘、相机之类的设备。如......
  • ATcoder ABC 358 补题记录(A~D,G)
    A直接模拟即可。#pragmaGCCoptimize(3)#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=1000100,mod=998244353;inta[N];signedmain(){strings,t;cin>>s>>t;if(s=="AtCoder"&&t==&qu......
  • CLFS驱动程序(clfs.sys)是Windows操作系统中的一个组件,它提供了日志记录和恢复功能,以增
    clfs.sys是Windows操作系统中的一个系统文件,它是CLFS(CommonLogFileSystem)驱动程序的一部分。CLFS是Windows操作系统中用于管理日志文件的文件系统,它提供了日志记录和恢复功能。CLFS驱动程序(clfs.sys)具有以下功能和作用:日志记录:CLFS可以记录系统的操作、事件和错误等信息到......