openwrt 稍加配置可以接入usb 4G网卡,进行上网。本节利用手机usb网络共享功能,进行配置操作
usb 网络共享、usb 4G网卡、pcie 4G网卡,其实本质上透过rndis驱动进行网络转发
openwrt版本19.07
openwrt rndis驱动配置,开启kmod-usb-net-rndis
.config - OpenWrt Configuration> Kernel modules > USB Support ────────────────────────────────────────────────────────────────┌────────────────────────────────────── USB Support ───────────────────────────────────────┐│ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----). │ │ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes │ │ features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] │ │ built-in [ ] excluded <M> module < > module capable │ │ ┌────────^(-)──────────────────────────────────────────────────────────────────────────┐ │ │ │ <*> kmod-usb-net............... Kernel modules for USB-to-Ethernet convertors │ │ │ │ < > kmod-usb-net-asix...... Kernel module for USB-to-Ethernet Asix convertor│ │ │ │ < > kmod-usb-net-asix-ax88179 │ │ │ │ < > kmod-usb-net-cdc-eem..................... Support for CDC EEM connection│ │ │ │ -*- kmod-usb-net-cdc-ether.............. Support for cdc ethernet connection│ │ │ │ < > kmod-usb-net-cdc-mbim..................... Kernel module for MBIM Device│ │ │ │ < > kmod-usb-net-cdc-ncm..................... Support for CDC NCM connection│ │ │ │ < > kmod-usb-net-cdc-subset...... Support for CDC Ethernet subset connection│ │ │ │ < > kmod-usb-net-dm9601-ether........ Support for DM9601 ethernet connection│ │ │ │ < > kmod-usb-net-hso.. Kernel module for Option USB High Speed Mobile Device│ │ │ │ < > kmod-usb-net-huawei-cdc-ncm....... Support for Huawei CDC NCM connection│ │ │ │ < > kmod-usb-net-ipheth..................... Apple iPhone USB Ethernet drive│ │ │ │ < > kmod-usb-net-kalmia................... Samsung Kalmia based LTE USB mode│ │ │ │ < > kmod-usb-net-kaweth.. Kernel module for USB-to-Ethernet Kaweth convertor│ │ │ │ < > kmod-usb-net-mcs7830 │ │ │ │ < > kmod-usb-net-pegasus │ │ │ │ < > kmod-usb-net-pl.................. Prolific PL-2301/2302/25A1 based cable│ │ │ │ < > kmod-usb-net-qmi-wwan.................................... QMI WWAN drive│ │ │ │ <*> kmod-usb-net-rndis......................... Support for RNDIS connection│ │ │ │ < > kmod-usb-net-rtl8150 │ │ │ └────────v(+)──────────────────────────────────────────────────────────────────────────┘ │ ├──────────────────────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > < Save > < Load > │ └──────────────────────────────────────────────────────────────────────────────────────────┘
手机接入usb host,并开启usb网络共享功能,查看网络接口
root@OpenWrt:~# ifconfig -a
br-lan Link encap:Ethernet HWaddr 12:34:56:78:90:01inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0inet6 addr: fd03:43b7:d448::1/60 Scope:Globalinet6 addr: fe80::1034:56ff:fe78:9001/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:1261 errors:0 dropped:0 overruns:0 frame:0TX packets:432 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:104083 (101.6 KiB) TX bytes:53131 (51.8 KiB)eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:01UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:1454 errors:0 dropped:0 overruns:0 frame:0TX packets:440 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:141662 (138.3 KiB) TX bytes:55733 (54.4 KiB)Interrupt:5lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:96 errors:0 dropped:0 overruns:0 frame:0TX packets:96 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:6528 (6.3 KiB) TX bytes:6528 (6.3 KiB)usb0 Link encap:Ethernet HWaddr 2A:F1:BF:AE:3C:5ABROADCAST MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)wlan0 Link encap:Ethernet HWaddr 12:34:56:78:90:00inet6 addr: fe80::1034:56ff:fe78:9000/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:564 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:0 (0.0 B) TX bytes:69320 (67.6 KiB)
usb0 ,即为手机网络端口。但此时用ifconfig 是无法查看到!
需要执行如下:
root@OpenWrt:~# udhcpc -i usb0
udhcpc: started, v1.31.1
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending select for 192.168.42.3
udhcpc: lease of 192.168.42.3 obtained, lease time 3600
udhcpc: ifconfig usb0 192.168.42.3 netmask 255.255.255.0 broadcast 192.168.42.255
udhcpc: setting default routers: 192.168.42.129
此时,用ifconfig可查看到usb0网络端口。
虽然usb 网络端口已经加载,但WLAN 和 LAN都是无法上网的,同时也是无法ping网络
root@OpenWrt:~# ping www.baidu.com
ping: bad address 'www.baidu.com'
进入luci,添加usb0物理网络接口,并将usb0,映射到wlan 和 lan后,才可以接通网络
配置之前,先看下/etc/config/network,和/etc/config/wireless 两个文件,以便修改后,进行对比
network:
config interface 'loopback'option ifname 'lo'option proto 'static'option ipaddr '127.0.0.1'option netmask '255.0.0.0'config globals 'globals'option ula_prefix 'fd03:43b7:d448::/48'config interface 'lan'option type 'bridge'option ifname 'eth0'option proto 'static'option ipaddr '192.168.1.1'option netmask '255.255.255.0'option ip6assign '60'config device 'lan_eth0_dev'option name 'eth0'option macaddr '12:34:56:78:90:01'config switchoption name 'switch0'option reset '1'option enable_vlan '0'
wireless:
config wifi-device 'radio0'option type 'mac80211'option channel '11'option hwmode '11g'option path 'platform/10300000.wmac'option htmode 'HT20'option disabled '0'config wifi-iface 'default_radio0'option device 'radio0'option network 'lan'option mode 'ap'option ssid 'OpenWrt'option encryption 'none'
添加网络接口usb0
进入luci->网络->接口,选择usb0接口,命名为4g
保存应用后,网络可以ping
root@OpenWrt:~# ping www.baidu.com
PING www.baidu.com (180.101.49.11): 56 data bytes
64 bytes from 180.101.49.11: seq=0 ttl=51 time=15.264 ms
64 bytes from 180.101.49.11: seq=1 ttl=51 time=21.160 ms
64 bytes from 180.101.49.11: seq=2 ttl=51 time=21.360 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 15.264/19.261/21.360 ms
但无线还没有网络
进入luci->网络->无线,添加无线网络4g
保存并应用,,之后无线就可以进行上网了
此时,再查看network 和 wireless 配置文件
network:
config interface 'loopback'option ifname 'lo'option proto 'static'option ipaddr '127.0.0.1'option netmask '255.0.0.0'config globals 'globals'option ula_prefix 'fd03:43b7:d448::/48'config interface 'lan'option type 'bridge'option ifname 'eth0'option proto 'static'option ipaddr '192.168.1.1'option netmask '255.255.255.0'option ip6assign '60'config device 'lan_eth0_dev'option name 'eth0'option macaddr '12:34:56:78:90:01'config switchoption name 'switch0'option reset '1'option enable_vlan '0'config interface '4g'option ifname 'usb0'option proto 'dhcp'option type 'bridge'
wireless:
config wifi-device 'radio0'option type 'mac80211'option channel '11'option hwmode '11g'option path 'platform/10300000.wmac'option htmode 'HT20'option disabled '0'config wifi-iface 'default_radio0'option device 'radio0'option mode 'ap'option ssid 'OpenWrt'option encryption 'none'option network 'lan 4g'
对比配置之前,
network 中,多了物理网络接口4g(usb0)
wireless中,无线的网络来源多了新增加的 4g.
如果将这部分配置,在编译openwrt的时候就加入进去,则无需再手动进行配置
修改源码文件,openwrt/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
在对应的板子配置下面(这里用的板子为mediatek,linkit-smart-7688)添加
ucidef_set_interface_wan “usb0”
mediatek,linkit-smart-7688|\onion,omega2p|\onion,omega2|\ravpower,rp-wd009|\tama,w06|\tplink,re200-v2|\tplink,re220-v2|\tplink,re305-v1|\tplink,tl-mr3020-v3|\tplink,tl-wr802n-v4|\tplink,tl-wa801nd-v5|\widora,neo-16m|\widora,neo-32m)ucidef_add_switch "switch0"ucidef_add_switch_attr "switch0" "enable" "false"ucidef_set_interface_lan "eth0"# eric++ucidef_set_interface_wan "usb0";;
编译完成,再次进入系统查看ifconfig,usb0网络已经自动加入☺
root@OpenWrt:/etc/config# ifconfig
br-lan Link encap:Ethernet HWaddr 12:34:56:78:90:01inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0inet6 addr: fe80::1034:56ff:fe78:9001/64 Scope:Linkinet6 addr: fd34:edd9:e34f::1/60 Scope:GlobalUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:3962 errors:0 dropped:4 overruns:0 frame:0TX packets:2775 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:557195 (544.1 KiB) TX bytes:1618571 (1.5 MiB)eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:01UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:2394 errors:0 dropped:0 overruns:0 frame:0TX packets:1530 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:323501 (315.9 KiB) TX bytes:695464 (679.1 KiB)Interrupt:5lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:338 errors:0 dropped:0 overruns:0 frame:0TX packets:338 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:29303 (28.6 KiB) TX bytes:29303 (28.6 KiB)usb0 Link encap:Ethernet HWaddr 12:34:56:78:90:00inet addr:192.168.42.149 Bcast:192.168.42.255 Mask:255.255.255.0inet6 addr: fe80::1034:56ff:fe78:9000/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:1855 errors:0 dropped:0 overruns:0 frame:0TX packets:2228 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:1050610 (1.0 MiB) TX bytes:459302 (448.5 KiB)wlan0 Link encap:Ethernet HWaddr 12:34:56:78:90:00inet6 addr: fe80::1034:56ff:fe78:9000/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:1767 errors:0 dropped:0 overruns:0 frame:0TX packets:2248 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:310018 (302.7 KiB) TX bytes:1090399 (1.0 MiB)
查看network,已经多出了WLAN部分
config interface 'loopback'option ifname 'lo'option proto 'static'option ipaddr '127.0.0.1'option netmask '255.0.0.0'config globals 'globals'option ula_prefix 'fd34:edd9:e34f::/48'config interface 'lan'option type 'bridge'option ifname 'eth0'option proto 'static'option ipaddr '192.168.1.1'option netmask '255.255.255.0'option ip6assign '60'config device 'lan_eth0_dev'option name 'eth0'option macaddr '12:34:56:78:90:01'config interface 'wan'option ifname 'usb0'option proto 'dhcp'config device 'wan_usb0_dev'option name 'usb0'option macaddr '12:34:56:78:90:00'config interface 'wan6'option ifname 'usb0'option proto 'dhcpv6'config switchoption name 'switch0'option reset '1'option enable_vlan '0'
此时无线也是可以上网的哦~~~~~,不明所以然…
以上操作只是保证能够正常上网,但是如若是4GPCIE网卡,比如用的是EC20等,还需要对内核进行配置,使能ttyUSB或者ttyACM。用于模块AT配置。
- make kernel_menuconfig
- Device Drivers > USB support > USB Modem (CDC ACM) support
.config - Linux/mips 4.14.195 Kernel Configuration > Device Drivers > USB support ───────────────────────────────────────────── ┌───────────────────────────── USB support ─────────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus ---> (or │ │ empty submenus ----). Highlighted letters are hotkeys. Pressing │ │ <Y> includes, <N> excludes, <M> modularizes features. Press │ │ <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] │ │ ┌────^(-)───────────────────────────────────────────────────────────┐ │ │ │ < > SL811HS HCD support │ │ │ │ < > R8A66597 HCD support │ │ │ │ [ ] HCD test mode support │ │ │ │ *** USB Device Class drivers *** │ │ │ │ <*> USB Modem (CDC ACM) support │ │ │ │ < > USB Printer support │ │ │ │ < > USB Wireless Device Management support │ │ │ │ < > USB Test and Measurement Class support │ │ │ │ *** NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may │ │ │ │ *** also be needed; see USB_STORAGE Help for more info **│ │ │ │ *** USB Imaging devices *** │ │ │ │ < > USB Mustek MDC800 Digital Camera support │ │ │ │ < > USB/IP support │ │ │ │ < > Inventra Highspeed Dual Role Controller (TI, ADI, AW, ...│ │ │ └────v(+)───────────────────────────────────────────────────────────┘ │ ├───────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > < Save > < Load > │ └───────────────────────────────────────────────────────────────────────┘
- Device Drivers > USB support > USB Serial Converter support > USB driver for GSM and CDMA modems
.config - Linux/mips 4.14.195 Kernel Configuration > Device Drivers > USB support > USB Serial Converter support ────────────── ┌──────────────────── USB Serial Converter support ─────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus ---> (or │ │ empty submenus ----). Highlighted letters are hotkeys. Pressing │ │ <Y> includes, <N> excludes, <M> modularizes features. Press │ │ <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] │ │ ┌────^(-)───────────────────────────────────────────────────────────┐ │ │ │ < > USB Sierra Wireless Driver │ │ │ │ < > USB Symbol Barcode driver (serial mode) │ │ │ │ < > USB TI 3410/5052 Serial Driver │ │ │ │ < > USB REINER SCT cyberJack pinpad/e-com chipcard reader │ │ │ │ < > USB Xircom / Entrega Single Port Serial Driver │ │ │ │ <*> USB driver for GSM and CDMA modems │ │ │ │ < > USB ZyXEL omni.net LCD Plus Driver │ │ │ │ < > USB Opticon Barcode driver (serial mode) │ │ │ │ < > Xsens motion tracker serial interface driver │ │ │ │ < > USB-Wishbone adapter interface driver │ │ │ │ < > USB Quatech SSU-100 Single Port Serial Driver │ │ │ │ < > USB Quatech Serial Driver for USB 2 devices │ │ │ │ < > USB Renesas uPD78F0730 Single Port Serial Driver │ │ │ │ < > USB Debugging Device │ │ │ └───────────────────────────────────────────────────────────────────┘ │ ├───────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > < Save > < Load > │ └───────────────────────────────────────────────────────────────────────┘
- Device Drivers > Network device support > USB Network Adapters > Host for RNDIS and ActiveSync devices
.config - Linux/mips 4.14.195 Kernel Configuration > Device Drivers > Network device support > USB Network Adapters ─────────── ┌──────────────────────── USB Network Adapters ─────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus ---> (or │ │ empty submenus ----). Highlighted letters are hotkeys. Pressing │ │ <Y> includes, <N> excludes, <M> modularizes features. Press │ │ <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] │ │ ┌────^(-)───────────────────────────────────────────────────────────┐ │ │ │ < > SMSC LAN75XX based USB 2.0 gigabit ethernet devices │ │ │ │ < > SMSC LAN95XX based USB 2.0 10/100 ethernet devices │ │ │ │ < > GeneSys GL620USB-A based cables │ │ │ │ < > NetChip 1080 based cables (Laplink, ...) │ │ │ │ < > Prolific PL-2301/2302/25A1/27A1 based cables │ │ │ │ < > MosChip MCS7830 based Ethernet adapters │ │ │ │ <*> Host for RNDIS and ActiveSync devices │ │ │ │ < > Simple USB Network Links (CDC Ethernet subset) │ │ │ │ < > Sharp Zaurus (stock ROMs) and compatible │ │ │ │ < > Conexant CX82310 USB ethernet port │ │ │ │ < > Samsung Kalmia based LTE USB modem │ │ │ │ < > QMI WWAN driver for Qualcomm MSM based 3G and LTE modems │ │ │ │ < > Option USB High Speed Mobile Devices │ │ │ │ < > Intellon PLC based usb adapter │ │ │ └────v(+)───────────────────────────────────────────────────────────┘ │ ├───────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > < Save > < Load > │ └───────────────────────────────────────────────────────────────────────┘
- 此时可以看到设备下面模拟串口ttyACM
root@OpenWrt:/dev# ls tty*
tty ttyACM0 ttyACM1 ttyS0 ttyS1 ttyS2
另外,还要根据4g模块手册,按需添加相应的USB厂商信息,以及零包处理等。。。
仅此记录