亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Linux下使用USB網絡

發布時間:2021-08-16 11:15:13 來源:億速云 閱讀:263 作者:chen 欄目:系統運維

這篇文章主要講解了“怎么在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 /* NetChip */  #define RNDIS_PRODUCT_NUM 0xa4a2 /* Ethernet/RNDIS Gadget */

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網絡這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

措勤县| 五大连池市| 明光市| 望谟县| 隆尧县| 南靖县| 宝丰县| 垦利县| 襄汾县| 红桥区| 双流县| 利川市| 穆棱市| 平塘县| 万载县| 金华市| 德昌县| 长岭县| 定西市| 龙海市| 德阳市| 印江| 青浦区| 天等县| 志丹县| 杭锦旗| 平湖市| 永顺县| 双桥区| 武胜县| 辉县市| 凭祥市| 仙游县| 阿尔山市| 鄂托克前旗| 信宜市| 玉环县| 冀州市| 积石山| 平顺县| 黔江区|