转载自:http://www.joming.com/sharing/182.shtml
当学会了搭建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 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
  • 无线配置文件
注意:编译openwrt是不能使用root账户的,别忘记配置好/openwrt/trunk/files目录属组及权限,不然编译时会出现各种奇葩的问题。最懒得方法是把权限改成777,命令:chmod 777 /openwrt/trunk/files -R

4.最佳操作建议

要记下这些目录下的配置文件如何修改,绝对不是一件容易的事情,就算记得,也还会有一定的概率改 错,除非有特殊要求——比如编译自己的软件包,最佳的方法是用“覆盖配置文件”的方法,只要维护/openwrt/trunk/files目录就可以了, 这样既不影响源代码更新,又能有效安全的进行个性化。
然后对于这些files目录下的众多文件,要手动一一修改也是个麻烦,最大的问题是,找不到相关的配置文件,及配置文件的正确格式。同时,由于openwrt一直在更新,不敢保证其配置文件的内容没有变化,为了保证安全,我的一般做法是:
  • 编译出一个默认配置的固件,并刷上固件
  • 登录openwrt,做个性化配置
  • 备份并保存配置文件
  • 把配置文件解压到/openwrt/turnk/files中
  • 删除不必要的文件,修改某些文件——如果有需求的话,然后配置文件属性属性。
  • 执行完make menuconfig后,开始编译
隔段时间更新源码后都重新做这样一次操作,不要偷懒。
编译固件其实有很多事情要处理,但是,很多地方基本还是有规律或者方法可循,openwrt的编译还算方便,个人觉得比dd-wrt好多了。多动手,多动脑,在openwrt的代码里多翻看,始终是件好事,总会有发现的。

编译个性化的openwrt固件相关推荐

  1. 2021自编译NEWIFI3最新openwrt固件

    仅添加了自己常用的功能,具体如下.另外还有一些注意事项,请务必阅读 另:2021版本与之前版本不通用,如需升级请清除数据或仅备份部分overlay文件,在刷入后覆盖 功能(针对最新版) 计划任务 LE ...

  2. 求助编译lede的openwrt固件是云编译出错

    在github上编译时报错 tools/v8_gypfiles/v8_base_without_compiler.target.mk:13: warning: overriding recipe fo ...

  3. 极路由刷个人编译的openwrt固件全过程

    说明 以下是极1s刷机的整个流程,包括openwrt 极路由固件的编译和升级流程,主要是为了方便发烧友或者开发人员. 准备工作 极壹S(型号HC5661)一台 串口板和串口线(如果是高级玩家) 电脑. ...

  4. openwrt固件的下载编译流程

    openwrt官方wiki http://wiki.openwrt.org/doc/howto/start Ubuntu环境: Linux wilson-virtual-machine 4.10.0- ...

  5. 解决方法:MT7628编译OpenWrt固件时quilt错误

    一.问题 执行命令 make V=99 报以下错误: make[1]: Entering directory `/home/alm/openwrt` make[2]: Entering directo ...

  6. OpenWrt固件编译

    OpenWrt固件编译 编译OpenWrt需要Linux环境或mac环境,不支持Windows,如果要在Windows上开发,那么肯定是要装虚拟机的.(根据云隐技术7688开发板) 若不想折腾,下载虚 ...

  7. 初玩OpenWRT之编译TP-Link WR841N V8固件

    0x00 安装依赖 安装git以下载OpenWrt源码.安装编译工具以进行交叉编译: sudo apt-get update sudo apt-get install build-essential ...

  8. 从零开始编译OpenWrt固件

    从零开始编译OpenWrt固件 前言 进来阅读这篇文章的相信都是对OpenWrt有一定的了解的,对于OpenWrt的介绍这里就不再赘述,可以自行查找相关百科了解. OpenWrt是适合于嵌入式设备的一 ...

  9. 2020.07.24日自编译L大源码openwrt固件x86软路由精简版

    自编译,精简了大部分功能,保留部分功能,适合旁路拓展性网络使用.默认管理地址192.168.1.1,账户root,密码password. 只适用于x86软路由,普通硬路由不可用,功能与我之前文章编译的 ...

最新文章

  1. bootstrap之 formgroup表单布局样式
  2. VS2013 VS2015 VS2017调试出现无法启动iis express web服务器
  3. 命令行用pip命令安装mysql_使用pip install mysqlclient命令安装mysqlclient失败?(基于Python)...
  4. 面部识别 vs 情绪状态,你还能守住自己的秘密吗?
  5. 超囧的图片链接批量获取和下载
  6. Coprime Sequence
  7. 《操作系统》学习辅导
  8. 《算法的乐趣》终于出版了
  9. java 缓存队列_双缓冲队列的java实现
  10. Java学习笔记分享之Dubbo篇
  11. simulink电机仿真学习 - park变换,输入交流输出仍然是交流问题解决
  12. 6个最值得Down的社交网络图标矢量素材集
  13. 计算机网络技术计划书,开设计算机网络技术专业项目可研计划书5喜欢就下吧(样例3)...
  14. aliyun资源编排 介绍和实例
  15. portknocking(端口试探)简介
  16. Unity5.x 灯光烘焙GI和LightingMap
  17. Sqlite 索引的使用、索引的优缺点
  18. PC浏览器无法浏览网页的解决教程
  19. 项目代码中魔法值的优雅处理
  20. SNPE教程一:基本概念

热门文章

  1. 最全排列组合算法详解以及套路总结一文突破
  2. FancyBox参数详解
  3. mysql call_mysql CALL语法使用详解
  4. python 绘制lift曲线_洛伦兹曲线(Lorenz curve)提升指数、提升表和提升图
  5. java最大公约数最小公倍数的逆问题
  6. 学儿歌听故事android源码,宝宝学儿歌听故事
  7. Java教程:百度开发者平台注册人脸信息至百度账号中
  8. 硬纪元干货|暴风集团王刚:VR2.0即将到来,行业逐步开始理性成长
  9. discuz实现百度站内搜索论坛样式(辅助插件)
  10. 中国区块链公司探访沙特,与当地政企展开深入交流