一、基础概念
usb - networking
二、优势
三、类型
四、应用场景
五、可能遇到的问题及解决方法
chmod
chmod 755 /path/to/shared/directory
iptables
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。
安装成功 网络适配器这里是这样的 说是安装的驱动叫这个名字,我不知道了 当然了,Github上面有一个项目是帮你完成这个事情的,更加的简单 可以看到实现了一个简单的以太网服务 这里就再加一个文件共享...,SMB 先看自己的IPv4地址 net user "share" "1234" /add 设置一个共享账号,Apple文件管理器链接就行 OK 但是我推荐这个 美观大方 安卓也可以,一锅端了 郁金香真的太好看啦
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...注册 usb_device usb_device 被"drivers\usb\core\generic.c" 驱动认领后,会选择、设置某个配置 这个配置下面的接口,都会分配、设置、注册一个 usb_interface...左边的 usb_driver 和右边的 usb_interface 如果匹配,则调用 usb_driver.probe 2....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。
打开电脑端微信登录; 使用数据线连接电脑和手机; 以华为手机 HarmonyOS-2.0.0.165 系统为例,进入手机设置 → 移动网络 → 个人热点 → 更多共享设置 → 点击启用 USB 共享网络
gadget 功能前关闭 adb 功能时却报异常的解决办法 4 附录 4.1 Linux-4.x/Linux-5.4 Gadget 配置示例 4.1.1 小机做 mass storage 4.1.2...1.3 适用范围 表 1-1: 适用产品列表 内核版本 驱动文件 Linux-4.9 drivers/usb/* Linux-5.4 drivers/usb/* 2 模块介绍 2.1 模块功能介绍...USB 总线采用树形结构,在一条总线上只能有唯一的主机设备。Linux 内核从主机和设备两个角度观察 USB 总线结构。...Linux 有原生 gadget 框架,通用的配置流程可参考下文。...图 2-11: linux-4.x usb gadget 配置选择 2.6.2 linux-4.x/linux-5.4 USB Gadget 配置流程 Linux-4.x/Linux-5.4 使用 configfs
有些客户需求添加USB网络共享功能,安卓本身是支持USB网络共享的,但需要我们配置才有。...目前USB网络共享功能主要用于将车机网络共享给手机或平板使用,手机平板使用的操作系统一般也是安卓或者IOS,那我们需要添加两种配置。...安卓系统USB网络共享需要驱动支持rndis host,而苹果USB网络共享需要驱动支持ipheth,可以分如下步骤添加USB网络共享功能:1,驱动支持USB网络共享在linux内核配置中增加CONFIG_USB_NET_RNDIS_HOST...=m和CONFIG_USB_IPHETH=m两个定义编译出rndis_host.ko和ipheth.ko两个驱动文件2,设置中增加网络共享开关,init.rc中增加是否启动USB网络共享如下:#add...网络共享则可以设置属性property:persist.tw.ipheth为1,关闭USB网络共享则将属性设置为0,打开网络共享时分别加载rndis_host.ko和ipheth.ko两个驱动,关闭时卸载驱动需要注意的时苹果手机
文件共享服务快速配置 1、yum install samba 2、修改/etc/smb.conf [global] workgroup = WORKGROUP server string = Samba
四、 linux内核下USB相关的API函数与数据结构 前面介绍了USB相关一些基础概念与重要的数据结构,接下来就分析在linux内核中如何编写一个USB 驱动程序,编写与一个USB设备驱动程序的方法和其他总线驱动方式类似.../usb.h> 4.2 USB设备注册框架示例 #include linux/init.h> #include linux/module.h> #include linux/usb.h> //定义...鼠标驱动(中断传输方式) 5.1 USB驱动注册框架代码 #include linux/init.h> #include linux/module.h> #include linux/usb.h>...#include linux/init.h> #include linux/module.h> #include linux/usb.h> #include linux/usb/input.h>.../init.h> #include linux/module.h> #include linux/usb.h> #include linux/sched.h> #include linux/slab.h
通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下..."level": 1, "manufacturer": "QEMU", "port": 0, "prodid": "0001", "product": "QEMU USB...: 产品 serial: USB 硬件设备序列号 ,例如 0000:00:01.2 定位方法# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct...设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice By...USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
[ 0.513302] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 0.513303] usb usb1...Controller [ 0.513304] usb usb1: Manufacturer: Linux 3.10.0-327.el7.x86_64 xhci-hcd [ 0.513305...] usb usb1: SerialNumber: 0000:00:14.0 [ 0.518700] usb usb2: New USB device found, idVendor=1d6b,...0.518702] usb usb2: Product: xHCI Host Controller [ 0.518702] usb usb2: Manufacturer: Linux 3.10.0...] usb 1-4: New USB device found, idVendor=413c, idProduct=301a [ 1.040348] usb 1-4: New USB device
通过USB Tethering方式共享Android的Internet连接 ?...选择“网络共享和便携式热点” 选中“ USB绑定”框。它应该闪烁一次,然后进行稳定检查。...注解 启用了 USB tethering 之后,虽然电脑能够通过共享Internet上网,但是,对于 手机的VPN连接是无法直接共享给电脑使用的。...注解 Linux内核需要编译 USB Network Adapters 驱动支持,启用 Host for RNDIS and ActiveSync devices 才可以使用Android USB Tethering...请参考: Gentoo linux - Android USB Tethering 参考 How To Configure Android USB Tethering on Mac OS X How to
在上一章分析完USB总线驱动程序后, 接下来开始写一个USB驱动: 本节目的: 将USB鼠标的左键当作L按键,将USB鼠标的右键当作S按键,中键当作回车按键 参考/drivers/hid/usbhid/...: usb_deregister(struct usb_driver *driver); 注册一个usb_driver驱动,然后内核会通过usb_driver的成员.id_table函数匹配一次USB设备...释放input_device 3.5在出口函数中 1)通过usb_deregister ()函数注销usb_driver结构体 4.代码如下: #include linux/kernel.h> #include...linux/slab.h> #include linux/module.h> #include linux/init.h> #include linux/usb/input.h> #include...linux/hid.h> static struct input_dev *myusb_mouse_dev; //input_dev static char *myusb_mouse_buf
Linux3.11版本引入了基于configfs的usb gadget configfs。.../bcdDevice # USB 1.1: 0x0110 # USB 2.0: 0x0200, USB 2.1: 0x0210, USB 2.5: 0x0250 # USB 3.0: 0x0300...(gadget_strings, gadget_info); [include/linux/usb/gadget_configfs.h] #define USB_CONFIG_STRINGS_LANG(...主要的工作流程为: 分配一个config_usb_cfg1结构体,该结构体包含了usb_configuration结构体,保存了该USB设备的配置信息。 设置USB设备的配置描述符的某些选项。...调用UDC驱动接口usb_udc_connect_control连接USB主机控制器,这样USB主机就能识别并枚举USB设备。
Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。...ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。 但是,如果需要用到的共享库在非标准路经,ld.so 怎么找到它呢?...目前,Linux 通用的做法是将非标准路经加入 /etc/ld.so.conf,然后运行 ldconfig 生成 /etc/ld.so.cache。...ld.so 加载共享库的时候,会从 ld.so.cache 查找。 传统上,Linux 的先辈 Unix 还有一个环境变量:LD_LIBRARY_PATH 来处理非标准路经的共享库。...在linux下,还 提供了另外一种方式来完成同样的功能,你可以把这些目录加到/etc/ld.so.conf中,然后调用ldconfig。
配置网络 IPADDR=192.168.100.10 PREFIX=24 GATEWAY=192.168.100.2 DNS1=114.114.114.114 ...
我们通过这个图,引出我们今日的话题: 在Linux中,万物皆是文件的概念已经深深的刻入到了我们的大脑里面,在文件系统里面我们介绍了进程,介绍了地址空间,介绍了页表,介绍了物理内存之间的映射关系,知道了代码和数据的地址通过页表...在Linux源码里面是有共享内存对应的结构体的,这里因为不介绍,所以不放出对应的源码了,肯定就有人说了,怎么又又又是结构体?...因为Linux就是C语言写的呀,并且,C语言想要对某个对象管理,结构体不是最好的选择吗? 所以我们得出一个结论,共享内存 = 共享内存的数据 + 共享内存的属性!!...话不多说,我们先创建一个,并且打印出来看看: const char *pathname = "/home/lazy/linux/lower_code/shm"; const int proj_id =...> #include #include #include const char* pathname = "/home/lazy/linux
是因为windows自带了USB总线驱动程序, USB总线驱动程序负责: 识别USB设备,给USB设备找到对应的驱动程序 新接入的USB设备的默认地址(编号)是0,在未分配新编号前,PC主机使用0地址和它通信...然后USB总线驱动程序都会给它分配一个地址(编号) PC机想访问USB总线上某个USB设备时,发出的命令都含有对应的地址(编号) USB是一种主从结构。...主机叫做Host,从机叫做Device,所有的USB传输,都是从USB主机这方发起;USB设备没有"主动"通知USB主机的能力。..., 比如:鼠标的数据是从鼠标传到PC机, 对应的端点称为"中断输入端点" 其中端点0是设备的默认控制端点, 既能输出也能输入,用于USB设备的识别过程 同样linux内核也自带了USB总线驱动程序,框架如下...其中usb_bus_type是一个全局变量, 它和我们之前学的platform平台总线相似,属于USB总线, 是Linux中bus的一种.
为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。 在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。...方法 2:删除 USB 驱动 这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。...方法 3:将 USB 存储器纳入黑名单 我们也可以通过 /etc/modprobe.d/blacklist.conf 文件将 usb-storage 纳入黑名单。...usb-storage 保存文件并退出。...usb-storage 就在就会被系统阻止加载,但这种方法有一个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块, $ sudo modprobe usb-storage
Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件 , 由服务器及客户端程序构成 ; SMB (Server Messages Block , 信息服务块) 是一种在局域网上共享文件和打印机的一种通信协议..., 它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务 ; SMB 协议是 客户机/服务器 型协议 , 客户机通过该协议可以访问服务器上的共享文件系统 , 打印机及其他资源 ; 通过设置 NetBIOS...printing = cups printcap name = cups load printers = yes cups options = raw [homes] #共享默认会将用户的主目录共享...Windows 访问共享目录 直接 Windows + R , 在运行界面输入 \\192.168.0.150 , 也就是你的 Linux 主机地址 , 会弹出用户名密码输入界面 , 输入刚刚设置的用户名密码就可以访问...常见问题 如果 Windows 下访问 Linux 下共享目录 , 提示没有权限 确保 Linux 下防火墙关闭或者是开放共享目录权限 确保 Samba 服务器配置文件 smb.conf 设置没有问题
一、实现SMB共享 1、在服务器安装软件包 yum -y install samba 2、创建samba用户和组 groudadd -r admins user alfa -G admins -s /sbin...不挂载情况访问:smbclient -U alfa //192.168.239.70/share (3)用bmw用户挂载smb共享并访问 二、多用户挂载和共享目录文件权限 samba共享默认支持同时用一个用户挂载...SMB共享 CentOS7中可启用多用户挂载功能 客户端挂载samba共享目录后,在客户端登录的不同用户访问同一个samba的挂载点,可获得不同权限 1、创建用户、创建组 同时将用户设置为samba用户...smbpasswd -a smbadmin ——->需要建立进入samba服务器的一个账号 smbpasswd -a apple smbpasswd -a banana 2、创建共享目录,并修改/etc.../samba/smb.conf配置文件 每个[ ]内都是一项共享名称,共享名称下部的功能选项 3、创建目录,并设置权限 mkdir -p /share/sharegrp1 setfacl -m u:
领取专属 10元无门槛券
手把手带您无忧上云