iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >怎么在Linux下使用USB网络
  • 568
分享到

怎么在Linux下使用USB网络

2023-06-16 14:06:45 568人浏览 独家记忆
摘要

这篇文章主要讲解了“怎么在linux下使用USB网络”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux下使用USB网络”吧!在介绍USB的驱动开发时,我通常会用用Linux的的U

这篇文章主要讲解了“怎么在linux下使用USB网络”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux下使用USB网络”吧!

在介绍USB的驱动开发时,我通常会用用Linux的的USB网络来演示,它兼容RNDIS网络,一台Linux即可充当USB的device端,也可以由另一台Linux来充当USB的Host端,Host端的也可以由安装的微软的标准的Rndis驱动来充当.

这种网络有相当强的实用价值,而且完整实现的Linux USB Slave驱动和Linux USB Gadget两种驱动,因此有很强演示效果.

应用场景:

一、智能手机共享网络

现在智能手机采用3G网络,通过Linux/Android手机上安装相关驱动,可以用USB线在主机和手机建一个共享网络,这样智能手机充当一个无线路由器的功能.现在手机一般都有这个功能,windows安装Rndis驱动即可.而且就是用的我们后面提到的g_ether.ko驱动。

这种方式,远远优于把手机当成3G的modem,用USB来拨号这种方式,共享网络相当于手机和电脑都上网不误。

这种方式跟用手机WIFI作无线热点的功能一样,但是APN的实现的要求较高,很多手机不一定能支持,而且USB还有同时供电.还是有其优点.

二、增加第二个有线网络.

在教室上课时,很多时候服务器和学生用机只有一个网络口接口,我把网线接到局域网时,我的开发板就无法用NFS接我的机器,学生机也是如此,现在服务器上把有线网络接入局域网,而我的开发板与服务器则直接相连.

(1)USB 网络的结构

在与以太网不同,在USB网络里各终端不是对等的,即USB Host端和USB Device端的所需要软件和硬件接口不一样.

USB网络有很多种,其中用得最多是RNDIS网络。它的全称是

Remote Network Device Interface Specification.

它是由微软制定的规范,因为手机使用用得较多,因此LINUX也在驱动中兼容这个规范

(PS:Android手机这个功能几乎是标配,而手机需要支持的功能FAT,RNDIS,MTP(媒体传输协议),都是MS的专利,这几张牌成了MS向Android手机制造产家收取专利费的重要武器,三星已经交了钱了)

一般象PC机充当USB Host角色,带USB Host的接口的Linux开发板也可以充当这个角色.

如果是LINUX主机,需要安装安装 rndis_host.ko 这个驱动。一般发行版均已经编译好,直接运行即可。

如果嵌入式开发板可以配置内核的rndis_host为动态模块

它位于

│ Prompt: Host for RNDIS and ActiveSync devices (EXPERIMENTAL) │

│ Defined at drivers/net/usb/Kconfig:234 │

│ Depends on: NETDEVICES && USB && NET && USB_USBNET  && EXPERIMENTAL │

│ Location: │

│ -> Device Drivers │

│ -> Network device support (NETDEVICES [=y]) │

│ -> USB Network Adapters │

│ -> Multi-purpose USB Networking Framework (USB_USBNET [=m]) │

怎么在Linux下使用USB网络

如果是WINDOWS主机,则需要安装MS的Generic RNDIS驱动。

在USB的另一端,一般是嵌入式设备,以嵌入式LINUX为例,需要安装USB Gadget驱动g_ether.ko  来进行通讯。g_ether.ko在配置菜单位置如下

Symbol: USB_ETH_RNDIS [=n] │

│ Prompt: RNDIS support │

│ Defined at drivers/usb/gadget/Kconfig:609 │

│ Depends on: <choice> && USB_ETH │

│ Location: │

│ -> Device Drivers │

│ -> USB support (USB_SUPPORT [=y]) │

│ -> USB Gadget Support (USB_GADGET [=y]) │

│ -> USB Gadget Drivers (<choice> [=m]) │

│ -> Ethernet Gadget (with CDC Ethernet support) (USB_ETH [=n │

怎么在Linux下使用USB网络

因此一个完整RNDIS网络结构如下

怎么在Linux下使用USB网络

二、Linux USB 网络搭建

USB Host安装,以RHEL5为例,直接运行如下命令即可安装 rndis_host.ko

modprobe rndis_host

它将安装 rndis_host.ko和usbnet.ko

[root@hxy]# find /lib/modules/2.6.18-194.el5/ -name "rndis*"  /lib/modules/2.6.18-194.el5/kernel/drivers/usb/net/rndis_host.ko  [root@hxy]# modprobe rndis_host  [root@hxy]# lsmod | grep rndis_host  rndis_host 10433 0  cdc_ether 9793 1 rndis_host  usbnet 19913 2 rndis_host,cdc_ether

在开发板上编译好内核模块,g_ether.ko.执行如下命令

# insmod g_ether.ko  g_ether gadget: ing random self ethernet address  g_ether gadget: using random host ethernet addr  usb0: Mac de:5e:8b:3D:84:db  usb0: HOST MAC 32:90:92:52:a9  g_ethethernet Gadget, morial Day 2008  g_ether gadget: g_ether ready  ReGIStered gadget driver 'g_ether'

分别在主机和开发板之间抽入USB线,其中开发板使用D型的Slave端接口(不要插在HOST接口上!) 让USB网卡结点生效,这里一般是usb0

ifconfig usb0 192.168.3.101 up     hub 1-0:1.0: unable to enumerate USB device 2     g_ether gadget: high speed config #1: Chernet (ECM)

在主机端做类似配置,配成另一个IP即可

ifconfig usb0 192.168.3.120 up         # ifconfig usb0 192.168.3.120 up      usb 1-1: new high speed USB device using ehci_hcd and address 5      usb 1-1: configuration #1 chosen from 2 choices      usb0: register 'cdc_ether' at usb-0000:00:1d.7-1, CDC Ethernet Device, 32:90:26:92:52:a9

这时在两端即可以互相 ping 通。

三、与Windows 建立联接。

如果希望与Windows 建立RNDIS网络联接,需要下载RNDIS驱动,并且根据g_ether.ko的产商号和设备号调整安装INF文件。

1.确定VID和PID

首先确认g_ether.ko的RNDIS的vendor号和product号.它的定义在 drivers/usb/gadget/ether.c中

#define RNDIS_VENDOR_NUM 0x0525   #define RNDIS_PRODUCT_NUM 0xa4a2 

2.下载WINDOWS的RNDIS驱动.

Http://www.microsoft.com/china/whdc/device/network/NDIS/rndis.mspx

http://gp2x.generation.free.fr/public/Autres/

如果不成功,去找一下RNDIS-USB-Kit_05.exe  这个文件。它是一个压缩文件,其中的rndismpy.sys,usb8023y.sys就是驱动文件.

3.修改安装inf文件

以其中的RNDIS_Template.inf为蓝本修改安装文件。主要修改两个地方:

把 mm/dd/yyyy,x.y.v.z 修改成任意的时间和版本号,我修改是 09/28/2011,1.0.0.0

(注意有两处)

把 USB\VID_vvvv&PID_pppp 修改成查到的数字,这里必须是Linux定义的  USB\VID_0525&PID_A4A2

把inf和两个sys放在一起,随意取个名字,我取名 hxy_rndis.inf

4.安装驱动

在开发板与WINDOWS之间插入USB线。这时WINDOWS会提示安装驱动,选择手功安装,并且选择上一步的 sys所在目录即可安装

怎么在Linux下使用USB网络

怎么在Linux下使用USB网络

安装后系统会出现一个RNDIS的网卡,配置IP即可与开发板通讯

怎么在Linux下使用USB网络

感谢各位的阅读,以上就是“怎么在Linux下使用USB网络”的内容了,经过本文的学习后,相信大家对怎么在Linux下使用USB网络这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么在Linux下使用USB网络

本文链接: https://www.lsjlt.com/news/283973.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在Linux下使用USB网络
    这篇文章主要讲解了“怎么在Linux下使用USB网络”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux下使用USB网络”吧!在介绍USB的驱动开发时,我通常会用用Linux的的U...
    99+
    2023-06-16
  • Linux下怎么使用minicom USB串口
    这篇文章主要介绍Linux下怎么使用minicom USB串口,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux下查看串口信息查看串口是否可用,可以对串口发送数据比如对com1口,echo helloworld...
    99+
    2023-06-16
  • 在Linux下怎么格式化USB设备
    这篇文章主要介绍了在Linux下怎么格式化USB设备,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。很多时候,您的 USB 设备会出现一些错误。大多数时候这些错误可以通过重新格...
    99+
    2023-06-16
  • 怎么在Linux命令行下收听网络电台
    这篇文章主要讲解了“怎么在Linux命令行下收听网络电台”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux命令行下收听网络电台”吧!在Linux中安装Pianobar在Debia...
    99+
    2023-06-16
  • 怎么在Linux下使用TCP封装器来加强网络服务安全
    这篇文章将为大家详细讲解有关怎么在Linux下使用TCP封装器来加强网络服务安全,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在开始之前,我们必须澄清 TCP 封装器并不能消除对于正确配置防火墙的需要。就...
    99+
    2023-06-16
  • Linux下如何使用Evilscan扫描网络
    小编给大家分享一下Linux下如何使用Evilscan扫描网络,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Evilscan 是一个网络扫描器,它运行在 Node...
    99+
    2023-06-27
  • Linux系统下怎么制作Live USB
    这篇文章主要为大家展示了“Linux系统下怎么制作Live USB”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统下怎么制作Live USB”这篇文章吧。1、UNetbootin这是...
    99+
    2023-06-12
  • 在linux下core怎么使用
    这篇“在linux下core怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“在lin...
    99+
    2023-03-24
    linux core
  • 怎么在Linux下使用rsync
    这篇文章主要介绍“怎么在Linux下使用rsync”,在日常操作中,相信很多人在怎么在Linux下使用rsync问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在Linux下使用rsync”的疑惑有所帮助!...
    99+
    2023-06-16
  • Linux下怎么查看网络带宽
    这篇文章主要为大家展示了“Linux下怎么查看网络带宽”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下怎么查看网络带宽”这篇文章吧。网络带宽是指在单位时间(一般指的是1秒钟)内能传输的...
    99+
    2023-06-27
  • linux下怎么监控网络流量
    本篇内容主要讲解“linux下怎么监控网络流量”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux下怎么监控网络流量”吧!我看了下,linux下的/proc/net/dev记录了每块网卡发送...
    99+
    2023-06-09
  • Linux下怎么隐藏网络连接
    本篇内容介绍了“Linux下怎么隐藏网络连接”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!直接inline hook住get_tcp4_so...
    99+
    2023-06-17
  • linux下怎么用python监控usb设备信号
    今天小编给大家分享一下linux下怎么用python监控usb设备信号的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. l...
    99+
    2023-06-28
  • Linux下如何使用tvtime看网络电视
    小编给大家分享一下Linux下如何使用tvtime看网络电视,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!tvtime是一个在Linux平台上运作的电视软件,主要作为Linux平台上的电视卡前端播放接口。该软件与PPStr...
    99+
    2023-06-27
  • Linux下如何使用nmap扫描网络IP
    小编给大家分享一下Linux下如何使用nmap扫描网络IP,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!nmap全称为Network Mapper。是一款网络扫描...
    99+
    2023-06-27
  • 在Linux系统中怎么使用iptraf进行网络监控
    这篇文章主要讲解了“在Linux系统中怎么使用iptraf进行网络监控”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Linux系统中怎么使用iptraf进行网络监控”吧!iptraf是一个...
    99+
    2023-06-12
  • 如何使用Linux下NFS网络文件系统
    本篇内容主要讲解“如何使用Linux下NFS网络文件系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Linux下NFS网络文件系统”吧!0.什么是NFS(Network FileSys...
    99+
    2023-06-12
  • Linux平台下使用AdventNet ManageEngine OpUtils监控网络
    要在Linux平台下使用AdventNet ManageEngine OpUtils监控网络,可以按照以下步骤进行操作:1. 下载和...
    99+
    2023-09-12
    Linux
  • 怎么在Linux系统下使用tespeed应用测试网速
    本篇内容介绍了“怎么在Linux系统下使用tespeed应用测试网速”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!许多电脑呆子知道可以用sp...
    99+
    2023-06-13
  • 怎么在Linux系统下使用TUN/TAP虚拟网卡
    这篇文章主要讲解了“怎么在Linux系统下使用TUN/TAP虚拟网卡”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux系统下使用TUN/TAP虚拟网卡”吧!在计算机网络中,TUN...
    99+
    2023-06-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作