编译个性化的openwrt固件
2013-05-26 22:00
295 查看
当学会了搭建openwrt编译环境,肯定是想编译有一些自己想要的东西固件,要知道官方给的固件是很简洁的,不仅没有web界面(Luci-web),连无线默认都不是开启的,这也太不像个无线路由器的样子了。
我们会使用make kernelconfig和make menuconfig这种方法来自定义软件包,不过,这样编译出来的固件仍然不具个性化,因为,无线仍然没有开启,像SSID、路由主机名、默认网关等等这些还是openwrt官方的默认值。那么现在,我们就通过接下来的步骤做些个性化的修改。
一般有两种方式可以实现这种个性化的修改:修改源代码或覆盖配置文件。(假设编译目录是/openwrt/trunk/)
修改源代码:openwrt的各种包的源代码基本上是在/openwrt/trunk/pachages下面,修改对应的源代码(配置文件)后,就会同步编译到固件里了。最直接,最酷,最显得自己”牛掰”的,就是修改源代码了。
编辑这个文件:/openwrt/trunk/package/mac80211/files/lib/wifi/mac80211.sh。跳到文本最下面,最下面那些代码,就基本上是无线的配置文件的样子了,作如下修改。
要默认开启无线,把disabled后的参数改成数字0,表示不禁用无线,如下:
option disabled 0
至于SSID,你爱怎么改就怎么改,比如:
option ssid OpenWrt-zou
在/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等。
若有时间,这些代码就多研究研究,自会收益。
很多的luci-app,其代码多放在/openwrt/trunk/package目录下,一些系统应用的配置文件在/openwrt/trunk/package/base-files/files/etc下,多翻看翻看,自有惊喜,譬如:
/openwrt/trunk/package/base-files/files/etc/config/system
这里配置路由主机名、时区、NTP及LED等
注意:trunk版本的源代码一直在变化,目录结构也有可能在变化,修改源码之后,更新官方源码就有可能出现问题,所以,我的建议是,能不动源码就不要动源码,要是这些源码“玩坏了”,再配置一次太费功夫。而下面的“覆盖配置文件”的方式不仅安全,而且简单。
在编译目录下新建一个名为files的目录,openwrt在编译的时候,会把files文件夹里的文件覆盖到其根目录,简而言之,就是/openwrt/trunk/files目录,这相当于是openwrt的根目录/(这个和上面提及的/openwrt/trunk/package/base-files/files目录作用相似),所以能在这个目录下能干的事情就多了,基本上涵盖了所有你能改动的东西。
这里只要模仿openwrt的/etc目录修改配置文件就可以了,下面对这些目录及文件作简单说明:
注意:编译openwrt是不能使用root账户的,别忘记配置好/openwrt/trunk/files目录属组及权限,不然编译时会出现各种奇葩的问题。最懒得方法是把权限改成777,命令:chmod 777 /openwrt/trunk/files -R
要记下这些目录下的配置文件如何修改,绝对不是一件容易的事情,就算记得,也还会有一定的概率改错,除非有特殊要求——比如编译自己的软件包,最佳的方法是用“覆盖配置文件”的方法,只要维护/openwrt/trunk/files目录就可以了,这样既不影响源代码更新,又能有效安全的进行个性化。
然后对于这些files目录下的众多文件,要手动一一修改也是个麻烦,最大的问题是,找不到相关的配置文件,及配置文件的正确格式。同时,由于openwrt一直在更新,不敢保证其配置文件的内容没有变化,为了保证安全,我的一般做法是:
编译出一个默认配置的固件,并刷上固件
登录openwrt,做个性化配置
备份并保存配置文件
把配置文件解压到/openwrt/turnk/files中
删除不必要的文件,修改某些文件——如果有需求的话,然后配置文件属性属性。
执行完make menuconfig后,开始编译
隔段时间更新源码后都重新做这样一次操作,不要偷懒。
编译固件其实有很多事情要处理,但是,很多地方基本还是有规律或者方法可循,openwrt的编译还算方便,个人觉得比dd-wrt好多了。多动手,多动脑,在openwrt的代码里多翻看,始终是件好事,总会有发现的。
本文固定链接: http://www.zoublog.com/compile-customized-openwrt.html | 小邹先森博客
我们会使用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 disabled 0
至于SSID,你爱怎么改就怎么改,比如:
option ssid 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/ | luci web页面的目录。 |
/etc/banner | 命令行登陆Openwrt的欢迎信息 |
/etc/opkg.conf | Openwrt的opkg更新源配置文件 |
/etc/profile | 系统环境变量 |
/etc/dnsmasq.conf | Dns解析配置文件 |
/etc/config/dhcp | Dhcp服务配置文件 |
/etc/config/firewall | 防火墙配置文件 |
/etc/config/fstab | 文件系统挂载配置文件 |
/etc/config/luci | Luci界面配置文件 |
/openwrt/trunk/package/base-files/files/etc/config/system | 系统主机名、时区、NTP及LED配置文件 |
/etc/config/wireless | 无线配置文件 |
4.最佳操作建议
要记下这些目录下的配置文件如何修改,绝对不是一件容易的事情,就算记得,也还会有一定的概率改错,除非有特殊要求——比如编译自己的软件包,最佳的方法是用“覆盖配置文件”的方法,只要维护/openwrt/trunk/files目录就可以了,这样既不影响源代码更新,又能有效安全的进行个性化。然后对于这些files目录下的众多文件,要手动一一修改也是个麻烦,最大的问题是,找不到相关的配置文件,及配置文件的正确格式。同时,由于openwrt一直在更新,不敢保证其配置文件的内容没有变化,为了保证安全,我的一般做法是:
编译出一个默认配置的固件,并刷上固件
登录openwrt,做个性化配置
备份并保存配置文件
把配置文件解压到/openwrt/turnk/files中
删除不必要的文件,修改某些文件——如果有需求的话,然后配置文件属性属性。
执行完make menuconfig后,开始编译
隔段时间更新源码后都重新做这样一次操作,不要偷懒。
编译固件其实有很多事情要处理,但是,很多地方基本还是有规律或者方法可循,openwrt的编译还算方便,个人觉得比dd-wrt好多了。多动手,多动脑,在openwrt的代码里多翻看,始终是件好事,总会有发现的。
本文固定链接: http://www.zoublog.com/compile-customized-openwrt.html | 小邹先森博客
相关文章推荐
- 编译个性化的openwrt固件
- 编译个性化的OPENWRT固件(openWRT源码修改)
- 编译个性化的openwrt固件
- 编译个性化的openwrt固件
- 编译openwrt官方不支持的路由型号固件——以WR720N为例
- 对openwrt包编译进固件的记录
- 编译属于自己的openwrt固件
- openwrt编译修改固件
- 给openwrt增加sftp,方便传输文件 并编译进固件
- Openwrt的S3C6410的编译固件生成过程研究
- 编译openwrt官方不支持的路由型号固件——以WR720N为例
- 编译自写程序smustar到openwrt固件中去
- openwrt编译x86固件 VMware安装镜像
- [整理]编译适用于TP-Link WR703N的OpenWRT固件
- 将vsftpd编译进openwrt的固件中去
- openwrt固件编译过程
- openwrt笔记:libzlog 库编译进 openwrt 固件的 Makefile
- 第二十三期 基于hg255d的OpenWrt固件编译《路由器就是开发板》
- 编译rt3052的openwrt固件出现的错误解决方法
- 编译自己的程序到openwrt固件