openwrt接入usb 4g网络

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厂商信息,以及零包处理等。。。


仅此记录

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注