本文提到的github仓库看起来很久没更新了,许多问题也没有修复,因此**不建议**刷入那个仓库的固件。关于刷入最新版OpenWRT的问题可以看我的这篇文章。
固件是从网上扒来的,而且为了省事起见,直接用了编译好的固件。
插网线,获取极路由开发者模式,ssh连接到路由器,sysupgrade刷入上传到路由器中的固件,这些都不再话下。
刷完之后发现手机间歇性不能获取到IP地址,而且,电脑连无线网,从Luci控制面板看,只能得到DHCPv6分配的地址(很奇怪,手机没办法获取DHCPv6分配的地址)
猜测可能是软件的bug,遂更新软件。
opkg update opkg list-upgradable opkg upgrade ... # ...处是上一个命令列出的可以升级的软件包的名字
这个“…”处有两个包:dnsmasq和dnsmasq-full。OpenWrt的Wiki上没细说这两个包什么关系。但是升级的时候实际碰到的问题是这两个包提供的一部分文件时重复的,安装另一个会导致另一个安不上(所以ROM作者到底是怎么把这两个包都塞进来的……)
想了一个workaround,虽然不知道对不对:
opkg remove dnsmasq dnsmasq-full #两个包都删掉 opkg install dnsmasq-full #重装dnsmasq-full
然后屏幕提示说软件包中的dhcp文件和现有的/etc/config/dhcp不一样,保留了原来的。想着升级的我连dhcp配置文件也替换了
原来的DHCP配置文件是这个样子的:
config dnsmasq option domainneeded '1' option boguspriv '1' option filterwin2k '0' option localise_queries '1' option rebind_protection '1' option rebind_localhost '1' option local '/lan/' option domain 'lan' option expandhosts '1' option nonegcache '0' option authoritative '1' option readethers '1' option leasefile '/tmp/dhcp.leases' option resolvfile '/tmp/resolv.conf.auto' config dhcp 'lan' option interface 'lan' option start '100' option limit '150' option leasetime '12h' option ra 'server' option dhcpv6 'server' option ra_management '1' config dhcp 'wan' option interface 'wan' option ignore '1' config odhcpd 'odhcpd' option maindhcp '0' option leasefile '/tmp/hosts/odhcpd' option leasetrigger '/usr/sbin/odhcpd-update'
dnsmasq-full包里面的DHCP配置文件则是这个样子的
config dnsmasq option domainneeded 1 option boguspriv 1 option filterwin2k 0 # enable for dial on demand option localise_queries 1 option rebind_protection 1 # disable if upstream must serve RFC1918 add resses option rebind_localhost 1 # enable for RBL checking and similar service s #list rebind_domain example.lan # whitelist RFC1918 responses for domai ns option local '/lan/' option domain 'lan' option expandhosts 1 option nonegcache 0 option authoritative 1 option readethers 1 option leasefile '/tmp/dhcp.leases' option resolvfile '/tmp/resolv.conf.auto' #list server '/mycompany.local/1.2.3.4' #option nonwildcard 1 #list interface br-lan #list notinterface lo #list bogusnxdomain '64.94.110.11' config dhcp lan option interface lan option start 100 option limit 150 option leasetime 12h config dhcp wan option interface wan option ignore 1
原来ROM中的配置文件的
config odhcpd 'odhcpd'0
似乎是和DHCP6有关系的。
但是这么一换,连间歇性获取IP地址都不能了。郁闷。遂恢复原始的DHCP的配置文件。并且采取了静态DHCP地址分配的方法。(而且这样又有一个问题啦,就是没办法恢复原来dnsmasq和dnsmasq-full包并存的局面了。)
目前还在测试中,偶尔会出现手机、电脑都没办法分配到任何合法的IP地址的情况。因为条件所限,问题出现时没能抓取到系统日志。抓到日志的时候我会Update本文的。