Linux RNDIS驱动

作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

Linux 下使用USB 网络
Linux下启用RNDIS host端与device端

host端

内核代码配置,

  │ Symbol: USB_NET_RNDIS_HOST [=n]                                                                     │  
  │ Type  : tristate                                                                                    │  
  │ Prompt: Host for RNDIS and ActiveSync devices                                                       │  
  │   Location:                                                                                         │  
  │     -> Device Drivers                                                                               │  
  │       -> Network device support (NETDEVICES [=y])                                                   │  
  │         -> USB Network Adapters (USB_NET_DRIVERS [=y])                                              │  
  │ (5)       -> Multi-purpose USB Networking Framework (USB_USBNET [=n])                               │  
  │   Defined at drivers/net/usb/Kconfig:369                                                            │  
  │   Depends on: NETDEVICES [=y] && USB_NET_DRIVERS [=y] && USB_USBNET [=n]                            │  
  │   Selects: USB_NET_CDCETHER [=n]                                                                    │  
  │   Selected by: USB_NET_RNDIS_WLAN [=n] && NETDEVICES [=y] && WLAN [=y] && USB [=y] && CFG80211 [=y]

使能Host for RNDIS and ActiveSync devices

  │ │       --- USB Network Adapters                                       │ │  
  │ │       < >   USB CATC NetMate-based Ethernet device support           │ │  
  │ │       < >   USB KLSI KL5USB101-based ethernet device support         │ │  
  │ │       < >   USB Pegasus/Pegasus-II based ethernet device support     │ │  
  │ │       < >   USB RTL8150 based ethernet device support                │ │  
  │ │       < >   Realtek RTL8152/RTL8153 Based USB Ethernet Adapters      │ │  
  │ │       <*>   Multi-purpose USB Networking Framework                   │ │  
  │ │       <*>     Host for RNDIS and ActiveSync devices                  │ │  

查看ubuntu18.04,

$ find /lib/modules/$(uname -r)/ -name "rndis*"
/lib/modules/5.3.0-62-generic/kernel/drivers/net/wireless/rndis_wlan.ko
/lib/modules/5.3.0-62-generic/kernel/drivers/net/usb/rndis_host.ko
$ modinfo /lib/modules/5.3.0-62-generic/kernel/drivers/net/usb/rndis_host.ko
filename:       /lib/modules/5.3.0-62-generic/kernel/drivers/net/usb/rndis_host.ko
license:        GPL
description:    USB Host side RNDIS driver
author:         David Brownell
srcversion:     A9FBEA008EA5BDB759FB1F4
alias:          usb:v*p*d*dc*dsc*dp*icEFisc04ip01in*
alias:          usb:v*p*d*dc*dsc*dp*icE0isc01ip03in*
alias:          usb:v*p*d*dc*dsc*dp*icEFisc01ip01in*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ipFFin*
alias:          usb:v1630p0042d*dc*dsc*dp*ic02isc02ipFFin*
depends:        usbnet,cdc_ether
retpoline:      Y
intree:         Y
name:           rndis_host
vermagic:       5.3.0-62-generic SMP mod_unload 
signat:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   md4
$ modinfo /lib/modules/5.3.0-62-generic/kernel/drivers/net/usb/cdc_ether.ko 
filename:       /lib/modules/5.3.0-62-generic/kernel/drivers/net/usb/cdc_ether.ko
license:        GPL
description:    USB CDC Ethernet devices
author:         David Brownell
srcversion:     56252FE5DB3B2F06C2B0E13
alias:          usb:v12D1p*d*dc*dsc*dp*ic02isc06ipFFin*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc0Aip00in*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v1E2Dp0055d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v1E2Dp0061d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v1546p1104d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v1546p1143d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v19D2p*d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v12D1p15C1d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v413Cp81BAd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v1BC7p*d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v19D2p1181d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v19D2p1177d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v19D2p1173d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v19D2p1015d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v19D2p1003d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v1C04p0015d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v20F4pE05Ad*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0B95p2791d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0B95p2790d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v2ECApC101d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v2357p0601d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v045Ep07C6d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v045Ep07ABd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0955p09FFd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFpA387d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp7214d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp720Cd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp7205d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp3082d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp3069d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp3062d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v13B1p0041d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v04E8pA101d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0BDAp8153d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0BDAp8152d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v12D1p14ACd*dc*dsc*dp*ic*isc*ip*in01*
alias:          usb:v16D5p650Ad*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v03F0p421Dd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v1410p9011d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v413Cp819Bd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v413Cp8196d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v413Cp8195d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v1410p9010d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v1410pB001d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v046DpC11Fd*dc*dsc*dp*ic02isc0Aip00in*
alias:          usb:v1004p61AAd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v07B4p0F02d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v04DDp9050d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v04DDp9032d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v04DDp9031d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v04DDp8007d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v04DDp8006d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v04DDp8005d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v04DDp8004d*dc*dsc*dp*ic02isc06ip00in*
depends:        usbnet
retpoline:      Y
intree:         Y
name:           cdc_ether
vermagic:       5.3.0-62-generic SMP mod_unload 
signat:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   md4       
$ modinfo /lib/modules/5.3.0-62-generic/kernel/drivers/net/usb/usbnet.ko 
filename:       /lib/modules/5.3.0-62-generic/kernel/drivers/net/usb/usbnet.ko
license:        GPL
description:    USB network driver framework
author:         David Brownell
srcversion:     C706C43DEC7354FAA9EDC16
depends:        mii
retpoline:      Y
intree:         Y
name:           usbnet
vermagic:       5.3.0-62-generic SMP mod_unload 
signat:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   md4
parm:           msg_level:Override default message level (int)

需要4个ko,

$ find /lib/modules/$(uname -r)/ -name "rndis_host*"
/lib/modules/5.3.0-62-generic/kernel/drivers/net/usb/rndis_host.ko
$ find /lib/modules/$(uname -r)/ -name "usbnet*"
/lib/modules/5.3.0-62-generic/kernel/drivers/net/usb/usbnet.ko
$ find /lib/modules/$(uname -r)/ -name "cdc_ether*"
/lib/modules/5.3.0-62-generic/kernel/drivers/net/usb/cdc_ether.ko
$ find /lib/modules/$(uname -r)/ -name "mii.ko"
/lib/modules/5.3.0-62-generic/kernel/drivers/net/mii.ko

Android

USB共享死活不能用,后来打开开发者选项,使能调试就可以了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值