blob: 161cb003ea015bc39f28e84913af8946926e6622 [file] [log] [blame]
How to create a dual APN and use the second APN to access the outer network
========================================
Here we take 1802s (i.e. NezhaS) as example, 1826 (i.e. Nezha3) is similar.
1, Create a dual APN
In the openwrt top dir,
1) Modify the following contents in “target/Linux/MMP/asr1802s/config-3.10”
CONFIG_USB_ETH_RNDIS_ECM=y
2) Modify the following contents in “target/linux/mmp/asr1802s/NEZAS201/base-files/etc/init.d/usb_init”
echo rndis,acm,marvell_diag,adb,ecm > /sys/class/android_usb/android0/functions
echo rndis,acm,marvell_diag,adb,ecm > /sys/class/android_usb/android0/win7
echo rndis,acm,marvell_diag,adb,ecm > /sys/class/android_usb/android0/win8
echo rndis,acm,marvell_diag,adb,ecm > /sys/class/android_usb/android0/olinux
3) Modify the following contents in “package/network/config/firewall/Makefile”
DUAL_APN_FLAG=1
4) Choose the profile config
make defconfig_asr1802sp201
and build
make -j8 V=99
5) Use SWDownloader to burn all bin files into the board
6) Switch to pipe mode by AT command and reboot
AT+ACONFIG="PIPE=1"
7) Use the AT command to dial-up Internet
AT+CGDCONT=2,"IP","cmwap"
AT+CGACT=1,2
and query the IP of CMWAP
AT+CGDCONT?
for example, you might get something like this:
+CGDCONT: 1,"IP","cmnet.mnc007.mcc460.gprs","10.36.148.238",0,0,,,,
+CGDCONT: 2,"IP","cmwap.mnc007.mcc460.gprs","100.74.21.147",0,0,0,2,0,0
8) Configure the network
ifconfig ccinet1 100.74.21.147 netmask 255.255.255.0 up
9) Test whether ccinet1 can ping the external network
ping -I ccinet1 8.8.8.8
2, Access the external network through the lan
1) Configure the Intranet network
Connect the usb to your PC, You can see two new network adapters by "ifconfig" command,
which corresponding to the virtual network cards usbnet0 and usbnet1 on 1802s. For example:
enp0s26u1u1 Link encap:Ethernet HWaddr 06:83:32:53:f7:0b
inet addr:10.36.148.238 Bcast:10.36.148.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1823 (1.8 KB) TX bytes:8933 (8.9 KB)
enp0s26u1u1i6 Link encap:Ethernet HWaddr 26:b9:7a:b6:be:4a
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
We need to configure the adapters enp0s26u1u1i6 and usbnet1 in the same small segment.
OpenWrt:
ifconfig usbnet1 192.168.20.1 netmask 255.255.255.0 up
Linux PC:
ifconfig enp0s26u1u1i6 192.168.20.100 netmask 255.255.255.0 up
2) Configure the Router
OpenWrt:
route add default gw 100.74.21.147 (the IP address of ccinet1)
Linux PC:
route add default gw 192.168.20.1
3) Configure the firewall
Linux PC:
iptables -F
iptables -X
iptables -Z
iptables -A INPUT -j ACCEPT
iptables -A FORWARD -j ACCEPT
iptables -A OUTPUT -j ACCEPT
4) Test whether enp0s26u1u1i6 can ping the external network
Linux PC:
ping -I enp0s26u1u1i6 8.8.8.8