涉及的文件
/etc/init.d/rcS :开机后会启动的脚本文件,里面会设置全局变量,挂载文件,创建目录和启动一些脚本和进程等
/etc/init.d/ifconfig-eth0 :通过文件名就可以知道这个文件是设置网口eth0相关的mac地址,ip (eth0-setting中设置的)等
/etc/eth0-setting ;这文件真正是设备网口相关信息的配置源文件,它会被ifconfig-eth0调用的。
设置和分析
也就是说:rcS调用ifconfig-eth0, ifconfig-eth0调用eth0-setting,按照这样推理直接把网卡的信息设置到eth0-setting里面,再开机后就会设置网口的信息了。但是这样做了后,会发现,当你在开机后立即执行命令ifconfig,可能能看见Ip被正确的设置了,但是,随后ip又变成了自动获取的ip,好奇怪啊。看一下rcS文件中的三个执行句:
1
2
3
|
/sbin/ifconfig
lo 127.0.0.1
/etc/init
.d
/ifconfig-eth0
fa-network-service
|
前两个已经很清晰了,fa-network-service是干什么用的,ps一下,发现有这个进程,看着肯定是设置网络的,把它注掉,不让它启动,开机重启Ok
fa-network-service:网络服务,包括以太网,3G网络的后台支持
fa-network-service后台服务程序的好处是,可以统一维护USB3G的网络状态,同时,可以方便地实现开机自动进行3G拨号的功能。拨号程序与fa-network-service后台程序之间通过本地Socket来进行通讯交互。
Linux平台使用标准的SocketAPI与fa-network-service建立连接即可,Socket的地址为fa-network-service,与后台服务程序建议Socket连接后,就可以使用标准的I/O指令给后台服务程序发送拨号指令。
配置文件 /etc/fa_ethernet.conf
内容控制以太网开机时的行为:
------------------------------
开机自动DHCP:
REQUEST ETHERNETCONNECT DHCP 0.0.0.0 0.0.0.0
开机自动STATIC IP:
REQUEST ETHERNETCONNECT STATICIP ipAddress netmask gateway dns1 dns2
开机禁用以太网:
REQUEST ETHERNETDISCONNECT
总上所述:
修改ip可以有两种方法:
1:屏蔽掉rcs启动脚本中fa-network-service语句,修改eth0-setting中ip地址。
这样可能会影响3g等其他网络服务(未验证)
2:修改/etc/fa_ethernet.conf
开机自动DHCP:
REQUEST ETHERNETCONNECT DHCP 0.0.0.0 0.0.0.0
开机自动STATIC IP:
REQUEST ETHERNETCONNECT STATICIP ipAddress netmask gateway dns1 dns2
经验证在这里设置ipaddr是无效的(验证不符的可以留言指正),为了和上边DHCP看上去一致,还是加上吧,所以应该在eth0-setting中设置静态ip
开机禁用以太网:
REQUEST ETHERNETDISCONNECT