当学会了搭建openwrt编译环境,肯定是想编译有一些自己想要的东西固件,要知道官方给的固件是很简洁的,不仅没有web界面(Luci-web),连无线默认都不是开启的,这也太不像个无线路由器的样子了。 我们会使用make kernelconfig和make menuconfig这种方法来自定义软件包,不过,这样编译出来的固件仍然不具个性化,因为,无线仍然没有开启,像SSID、路由主机名、默认网关等等这些还是openwrt官方的默认值。那么现在,我们就通过接下来的步骤做些个性化的修改。 1.个性化修改方式 一般有两种方式可以实现这种个性化的修改:修改源代码或覆盖配置文件。(假设编译目录是/openwrt/trunk/) 修改源代码:openwrt的各种包的源代码基本上是在/openwrt/trunk/pachages下面,修改对应的源代码(配置文件)后,就会同步编译到固件里了。最直接,最酷,最显得自己”牛掰”的,就是修改源代码了。 2.修改源代码 2.1.开启无线及修改SSID 编辑这个文件:/openwrt/trunk/package/mac80211/files/lib/wifi/mac80211.sh。跳到文本最下面,最下面那些代码,就基本上是无线的配置文件的样子了,作如下修改。 要默认开启无线,把disabled后的参数改成数字0,表示不禁用无线,如下: option disabled0 至于SSID,你爱怎么改就怎么改,比如: optionssid OpenWrt-zou 2.2.配置网络服务 在/openwrt/trunk/package/network/目录下,有很多与网络相关的配置,比如firewall,dhcp,dns, dnsmasq等,一部分在config目录下,一部分在service目录,改这些软件目录下的files下的conf文件,这些都是配置文件。 还有一部分是在/openwrt/trunk/package/base-files/files/etc下,比如/openwrt/trunk/package/base-files/files/etc/confit/network,这个就是网络的核心配置文件了,可以新增接口,配置接口ip等。 若有时间,这些代码就多研究研究,自会收益。 2.3.其他配置 很多的luci-app,其代码多放在/openwrt/trunk/package目录下,一些系统应用的配置文件在/openwrt/trunk/package/base-files/files/etc下,多翻看翻看,自有惊喜,譬如: /openwrt/trunk/package/base-files/files/etc/config/system 这里配置路由主机名、时区、NTP及LED等 注意:trunk版本的源代码一直在变化,目录结构也有可能在变化,修改源码之后,更新官方源码就有可能出现问题,所以,我的建议是,能不动源码就不要动源码,要是这些源码“玩坏了”,再配置一次太费功夫。而下面的“覆盖配置文件”的方式不仅安全,而且简单。 3.覆盖配置文件 在编译目录下新建一个名为files的目录,openwrt在编译的时候,会把files文件夹里的文件覆盖到其根目录,简而言之,就是/openwrt/trunk/files目录,这相当于是openwrt的根目录/(这个和上面提及的/openwrt/trunk/package/base-files/files目录作用相似),所以能在这个目录下能干的事情就多了,基本上涵盖了所有你能改动的东西。 这里只要模仿openwrt的/etc目录修改配置文件就可以了,下面对这些目录及文件作简单说明: · /www/ | | | | | | | | | | | | | | | | | | · /openwrt/trunk/package/base-files/files/etc/config/system | | | |
注意:编译openwrt是不能使用root账户的,别忘记配置好/openwrt/trunk/files目录属组及权限,不然编译时会出现各种奇葩的问题。最懒得方法是把权限改成777,命令:chmod 777 /openwrt/trunk/files -R 4.最佳操作建议 要记下这些目录下的配置文件如何修改,绝对不是一件容易的事情,就算记得,也还会有一定的概率改错,除非有特殊要求——比如编译自己的软件包,最佳的方法是用“覆盖配置文件”的方法,只要维护/openwrt/trunk/files目录就可以了,这样既不影响源代码更新,又能有效安全的进行个性化。 然后对于这些files目录下的众多文件,要手动一一修改也是个麻烦,最大的问题是,找不到相关的配置文件,及配置文件的正确格式。同时,由于openwrt一直在更新,不敢保证其配置文件的内容没有变化,为了保证安全,我的一般做法是: 1. 编译出一个默认配置的固件,并刷上固件 2. 登录openwrt,做个性化配置 3. 备份并保存配置文件 4. 把配置文件解压到/openwrt/turnk/files中 5. 删除不必要的文件,修改某些文件——如果有需求的话,然后配置文件属性属性。 6. 执行完makemenuconfig后,开始编译 隔段时间更新源码后都重新做这样一次操作,不要偷懒。 编译固件其实有很多事情要处理,但是,很多地方基本还是有规律或者方法可循,openwrt的编译还算方便,个人觉得比dd-wrt好多了。多动手,多动脑,在openwrt的代码里多翻看,始终是件好事,总会有发现的。
|