openwrt 自启动实现4G路由器功能总结
概述
本篇文件总结了通过openwrt自启动,实现4G路由器功能过程,便于以后实现方法追溯和总结。
openwrt自启动方法
步骤1
在/etc/init.d/目录下自定义一个脚本文件,例如test
步骤2
按照下面格式,在start内填写需要增加的自启动代码
#!/bin/sh /etc/rc.common
START=99
start() {
}
注意:START=99 代表该脚本的启动顺序为99,不是第99个执行的脚本,而是一个级别,数字越小,启动的越早。
步骤3
要使脚本在系统启动后自动调用,还需要创建软链接到 ”/etc/rc.d”目录下。
创建软链接有两种方法;
方法1:ln -s /etc/init.d/done /etc/rc.d/S95done
方法2:/etc/init.d/done enable
这里建议选用方法2,因为方法2可以提示出启动脚本中的语法错误。
步骤4
修改脚本的执行权限:chmod 777 test
4G路由器脚本实现
在上述自定义的test启动脚本中,添加如下代码:
#!/bin/sh /etc/rc.common
START=99
start() {
opkg remove example
opkg install /example_1.0.0-1_ramips_24kec.ipk
cd /bin/
touch wzr_log
chmod 777 wzr_log
udhcpc -b -i eth1
echo "step1:udhcp is ok" > wzr_log
./example &
echo "step2:at is ok" >> wzr_log
iptables -F
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE
echo "step3:iptable is ok" >> wzr_log
}
首先,是卸载系统中的自定义的example拨号程序,然后安装最新的拨号程序,只是因为之前在反复下载调试拨号程序,后续可以将拨号程序固化到openwrt系统中。
然后,是通过udhcpc -b -i eth1给4G的eth1通过基站动态获取IP,其中-b表示后台运行,并在后台执行拨号程序,注意:这是先执行DHCP,然后执行拨号程序,因为如果对调后在迟入网时,可以会有问题。
最后,是通过iptables解决计算机通过该路由器无法ping通外网问题,具体见之前的文章。
其中,通过echo记录执行过程的log。