1垮斯、Network配置
https://wiki.openwrt.org/doc/uci/network
在openwrt中network的默認(rèn)值一般在/package/base-files/files/bin/config_generate
里面設(shè)置,如下:
case "$protocol" in
static)
local ipad
case "$1" in
lan) ipad=${ipaddr:-"192.168.1.1"} ;;
*) ipad=${ipaddr:-"192.168.$((addr_offset++)).1"} ;;
esac
netm=${netmask:-"255.255.255.0"}
uci -q batch <<-EOF
set network.$1.proto='static'
set network.$1.ipaddr='$ipad'
set network.$1.netmask='$netm'
set network.$1.ip6assign='60'
EOF
;;
dhcp)
# fixup IPv6 slave interface if parent is a bridge
[ "$type" = "bridge" ] && ifname="br-$1"
uci -q batch <<-EOF
set network.$1.proto='dhcp'
delete network.${1}6
set network.${1}6='interface'
set network.${1}6.ifname='$ifname'
set network.${1}6.proto='dhcpv6'
EOF
;;
2逗载、Network撥號
有兩種撥號方式,一種是使用pppd撥號,使用開源包如ppp-2.4.7。
2.1睡腿、pppd手動(dòng)撥號
這時(shí)候就是使用pppd調(diào)用的配置文件來生效的康谆,如pppd call sim0_pppdial
,sim0_pppdial位于/etc/ppp/peers/下面嫉到。
1.sim0_pppdial
root@OpenWrt:/# cat etc/ppp/peers/sim0_pppdial
/dev/ttyS0
115200
nocrtscts
nocdtrcts
#nobsdcomp
#+pap
modem
#noauth
#auth
#user card
#nodetach
#debug
logfile /var/sim0_ppplog
usepeerdns
defaultroute
noipdefault
0.0.0.0:0.0.0.0
ipcp-accept-remote
noccp
#persist
lock
connect "chat -s -v -f /etc/ppp/peers/sim0_pppup"
2.sim0_pppup
root@OpenWrt:/# cat etc/ppp/peers/sim0_pppup
ABORT 'BUSY'
ABORT 'NO CARRIER'
ABORT 'ERROR'
ABORT '+CME ERROR:100'
TIMEOUT 3
"" AT
#OK ATE0V1
#OK AT+CGACT=0,1
OK AT+CGDCONT=1,"IP","3gnet"
#OK ATS0=0
OK ATDT*99#
CONNECT ''
撥號后會(huì)將撥號的log放在/var/sim0_ppplog
里面,內(nèi)容如下:
abort on (BUSY)
abort on (NO CARRIER)
abort on (ERROR)
abort on (+CME ERROR:100)
timeout set to 3 seconds
send (AT^M)
Device ttyS0 is locked by pid 2710
expect (OK)
^M^M
OK
-- got it
send (AT+CGDCONT=1,"IP","3gnet"^M)
expect (OK)
^M^M
OK
-- got it
send (ATD*99#^M)
expect (CONNECT)
^M^M
CONNECT
-- got it
send (^M)
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS0
Device ttyS0 is locked by pid 2710
Device ttyS0 is locked by pid 2710
local IP address 10.167.107.242
remote IP address 192.168.254.254
primary DNS address 211.136.20.203
secondary DNS address 211.136.17.107
判斷撥號是否成功可以判斷該文件的primary DNS address 211.136.20.203
是否存在來判斷月洛,或者使用ifconfig
來看是否ppp0撥號端口出現(xiàn)
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.167.107.242 P-t-P:192.168.254.254 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:2938 errors:0 dropped:0 overruns:0 frame:0
TX packets:4944 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:216176 (211.1 KiB) TX bytes:377095 (368.2 KiB)
2.1何恶、ifup后臺(tái)自動(dòng)撥號
另一種使用ifup wan
啟動(dòng),使用的是/etc/config/network
下面的配置信息
cat /etc/config/network
config interface 'wan'
option proto '3g'
option auto '1'
option device '/dev/ttyUSB3'
uci set network.wan.ifname=ppp0
uci set network.wan.proto=3g
uci set network.wan.username=$username
uci set network.wan.password=$password
uci set network.wan.apn=$apn
uci set network.wan.auto=1
uci set network.wan.device=/dev/ttyUSB3
uci commit
ifup wan
/etc/init.d/network restart
如果撥號成功在ifconfig下面會(huì)生成3g-wan的接口
root@OpenWrt:/# ifconfig
3g-wan Link encap:Point-to-Point Protocol
inet addr:10.171.64.120 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:68 errors:0 dropped:0 overruns:0 frame:0
TX packets:95 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:11864 (11.5 KiB) TX bytes:8400 (8.2 KiB)
使用ubus去讀取wan口ip
root@OpenWrt:/# ubus call network.interface.wan status | grep "address" | grep -
oE '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'
10.171.64.120
ifup實(shí)際也是一個(gè)撥號腳本嚼黔,位于/sbin/ifup细层,可以通過logread進(jìn)行查看撥號的過程,與上面pppd撥號時(shí)指定的sim0_ppplog文件的內(nèi)容類似唬涧。
如果需要自己加一個(gè)設(shè)備節(jié)點(diǎn)疫赎,如ppp2
config interface 'ppp2'
option ifname 'ppp2'
option proto '3g'
option auto '1'
option device '/dev/ttyUSB3'
則還需要在/etc/config/firewall里面添加ppp2的支持
config zone
option name wan
list network 'wan'
list network 'wan6'
list network 'ppp2'
option input REJECT
option output ACCEPT
option forward REJECT
option masq 1
option mtu_fix 1
最后調(diào)用ifup ppp2即可,在ifconfig下面會(huì)生成3g-ppp2的接口碎节,
root@OpenWrt:/# ifconfig
3g-ppp2 Link encap:Point-to-Point Protocol
inet addr:10.171.64.120 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:68 errors:0 dropped:0 overruns:0 frame:0
TX packets:95 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:11864 (11.5 KiB) TX bytes:8400 (8.2 KiB)
可以ping通自己捧搞,但上不了外網(wǎng)
arm開發(fā)板的網(wǎng)絡(luò)配置MAC-IP-GW-DNS
//配置MAC
ifconfig eth0 down
ifconfig eth0 hw ether D6:53:5D:EA:1C:09 //更改MAC地址
ifconfig eth0 up
//配置IP-GW-DNS
ifconfig eth0 192.168.1.88 netmask 255.255.255.0 up //配置IP地址
ifconfig eth0 up //激活,關(guān)閉設(shè)備eth0
route add default gw 192.168.1.1 //配置默認(rèn)網(wǎng)關(guān)
暫時(shí)配置dns解析
echo "nameserver 192.168.1.1">> /etc/resolv.conf
ifconfig lo up
ping 127.0.0.1
ping localhost