openwrt 学习常用命令及备注( 二 )


openWrt典型编译脚本功能:
scripts/download.pl // 下载编译软件包源代码
scripts/patch-kernel.sh // 打补丁脚本
scripts/feeds // 收集扩展包的工具(该命令在编译前需要执行)
scripts/diffconfig.sh // 收集和默认配置不同之处的工具
scripts/kconfig.pl // 处理内核的配置
scripts/deptest.sh // 自动软件包依赖项检查
scripts/metadata.pl // 检查metadata
scripts/rstrp.sh // 丢弃目标文件中的符号
scripts/timestamp.pl // 生成文件的时间戳
scripts/ipkg-make-index.sh // 生成软件包的ipkg索引
scripts/ext-toolchain.sh // 工具链
scripts/strip-kmod.sh // 删除内核模块的符号信息,使文件变小
feeds脚本功能扩展:
通过feeds安装软件包后,在后面执行 make menuconfig 命令时,才可以对相关软件包选择是否编译 。
例如安装 luci-App-firewall 软件包的命令为:./scripts/feeds install luci-app-firewall
【openWrt包管理系统】
软件包管理:
$:' opkg update
// 更新可以安装的软件包列表
$:' opkg install
// 安装软件包,需要第三个参数传递一个软件包的名称 。如 opkg install file
$:' opkg remove
// 卸载安装包,需要第三个参数传递一个软件包的名称 。autoremove可以将不需要的安装包也删除 。如 opkg remove file --autoremove
$:' opkg upgrade
// 升级软件包,需要第三个参数传递一个软件包的名称 。一般只用来升级应用(非内核软件) 。
查询信息:
$:' opkg list
// 列出所有可使用的软件包
$:' opkg list-installed
// 列出系统中已经安装的软件包
$:' opkg list-changed-conffiles
// 列出用户修改过的配置文件
$:' opkg files <pkg>
// 列出属于这个软件包中的所有文件
$:' opkg search <file>
// 列出提供file的软件包,需要传递文件的绝对路径
$:' opkg find <regexp>
// 列出软件包名称和regexp匹配的软件包
$:' opkg info [pkg]
// 显示已安装pkg软件包的信息
$:' opkg download <pkg>
// 将软件包pkg下载到当前目录
$:' opkg print-architecture
// 列出安装包的架构
$:' opkg whardepends [-A] [pkg]
// 针对已安装的软件包,输出依赖这个软件包的软件包
opkg命令选项:
-A 查询所有软件包
-d <dest_name> 使用dest_name作为软件包安装的根目录
-f <conf_file> 使用conf_file作为opkg的配置文件
--nodeps 不按照依赖来安装,只安装软件包自己
--autoremove 卸载软件包时自动卸载不再使用的软件包
--force-reinstall 强制重新安装软件包
【openWrt系统配置】2017.05.16
MVC(Model-View-Control)模式是经典的Web开发编程模式 。
openWrt也是采用该设计模式,模型层采用统一配置接口UCI(Unified Configuration Interface) 。
>>UCI简介
配置文件由配置节(section)组成,语法如下:
config <type> ["<name>"] #section
option <name> "<value>" #option
错误的UCI文件语法:
option 'example" "value' (引号没有配对)
option example some value with space (带有空格的值缺少引号)
>>统一配置原理
openWrt系统的核心配置文件,都位于/etc/config/ 目录下 。
例如修改网络ip:
$:' uci set network.lan.ipaddr=192.168.6.1
$:' uci commit network
通过运行以下命令修改生效:
$:' /etc/init.d/network restart
常用功能配置文件含义:
/etc/config/dhcp // DNSmasq软件包配置,包含dhcp和dns设置
/etc/config/dropbear // SSH服务器选项
/etc/config/firewall // 防火墙设置,包含网络地址转换、包过滤、端口转发等
/etc/config/network // 网络配置,包含桥接、接口、路由配置
/etc/config/system // 系统配置,包含主机名称、网络时间同步等
/etc/config/timeserver // rdate的时间服务列表
/etc/config/luci // 基本的LuCI配置
/etc/config/wireless // 无限设置和wifi网络定义
/etc/config/uhttpd // web服务器选项配置
/etc/config/upnpd // miniupnpd UPnP服务设置
/etc/config/qos // 网络服务质量的配置文件定义
UCI命令可以写入配置文件配置信息,格式如下:
$:' uci [<options>] <command> [<arguments>]
$:' uci
// 直接输入uci可以查看uci的帮助信息和具体参数
UCI命令含义:
add // 增加指定配置文件类型为 section-type 的匿名区段
add_list // 对已存在的list选项增加字符串


推荐阅读