OpenWRT的ROM固件内置软件包修改与定制
2016-01-16 14:36
1951 查看
转载自:http://my.oschina.net/lvsin/blog/392813
1、下载Feeds
Feeds是OpenWrt环境所需要的软件包(opk)资源管理组件,在make menuconfig中配置built-in的软件包时会依赖Feeds。Feeds需要连接互联网才能执行更新操作。在执行更新之前可以通过查看’feeds.conf.default’文件,来检查哪些文件需要包含在环境中,例如:
?
下载或更新feeds,执行如下命令:
?
?
执行完下载更新操作后,会在/feeds文件夹下出现与feed名称对应的文件夹,例如:
?
2、配置要Built-in的软件包
使用make menuconfig进行配置,通过文本对话框进行选项配置,最主要的配置项有:?
[M]表示:这个软件包选中编译,但并不安装在firmware中。
在退出Menuconfig的时,会提示是否保存配置,选择保存退出。
3、修改默认配置文件
防火墙firewall初始化配置及其他相关文件位置:package/network/config/firewall/files/package/base-files/files/lib/functions/uci-defaults.sh文件是用来初始化设置网络参数的脚本,可以根据需要修改初始化的网络参数。target/linux/ar71xx/base-files/etc/uci-defaults/02_network脚本文件为编译系统时放在系统/etc/uci-defaults/路径下的网络初始化执行脚本。
4、编译
执行make V=s,进行编译。编译到软件包阶段时会经历如下过程:
根据menuconfig中的软件包配置,并参考Feeds相关配置,下载软件源码;
解压源码到/builtd_dir/相应的Platform文件夹中;
执行/feeds/中指定feed文件夹下对应软件名的Makefile,该路径下一般包含/files,Makefile,/patches
/files文件夹下一般包含某些配置文件,或者被Makefile所使用的文件,例如安装php5软件包时,php.init文件就在这个文件夹下,如果需要在软件built-in时就指定php.ini文件,就可以在这里进行修改。
/patchs包含对软件相关调整的patch文件。
框架计划
5、固件完全定制示例
现以生成ar9331平台的OpenWRT内置安装lighttpd、php5的最小系统固件为例:下载并更新feeds;
在menuconfig中选择以下软件包:
?
?
修改feeds/packages/net/lighttpd/files/lighttpd.conf文件,找到如下几项,并按需求修改:
?
?
这一步也可以跳过,根据需要修改下面两个文件:
target/linux/ar71xx/image/Makefile
?
tools/firmware-utils/src/mktplinkfw.c
?
默认的wifi参数设置,在文件package/kernel/mac80211/files/lib/wifi/mac80211.sh件中,有这样一段代码:
?
目录package/base-files/files/下的文件是文件系统中最基本的组成文件,这些文件都可以根据需要进行修改与ding
源码中package/base-files/files/lib/functions/uci-defaults.sh,该脚本包含了系统设置的默认值,根据需要修改值
比如修改默认的LAN口IP设置:
?
编译后生成的镜像文件保存在开发目录bin文件夹下
OpenWRT编译后的rootfs目录在“build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/”,可以直接在该目录下看到编译完的文件系统中的所有文件。
相关文章推荐
- nginx相应的命令-启动等
- 修改tomcat项目的图标
- Nginx重写规则
- Linux bash常用测试判断选项
- win10下php5.6.17+apache2.4.18+mysql5.7.10配置 --- apache2.4.18
- Apache通过配置.htaccess文件禁止访问.git、.svn等目录
- Linux 查看CPU信息,机器型号,内存等信息
- Function Set in OPEN CASCADE
- OPEN CASCADE Multiple Variable Function
- 使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样
- opencv 图像腐蚀
- 10-Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
- 管理员必备的20个Linux系统监控工具
- 管理员必备的20个Linux系统监控工具
- Tomcat简介及组成
- ubuntu系统下Linux禁止MySQL开机自启动的小技巧
- 嵌入式linux多进程编程
- ubuntu系统下Linux禁止MySQL开机自启动的小技巧
- Hadoop有关的网站
- Hadoop有关的网站