Sitio web oficial de openWrt en inglés: https://openwrt.org/ Sitio web oficial en chino: http://www.openwrt.org.cn/
1. Entorno de desarrollo y compilación.
Hay dos códigos fuente en github que se usan más,
uno es lede, la dirección es: https://github.com/coolsnowwolf/lede
El otro es el código fuente oficial de OpenWrt: https://github.com/lede -project
Descargar lede El método del código fuente es:
git clone https://github.com/coolsnowwolf/lede
El método de código fuente oficial para descargar OpenWrt es:
git clone https://github.com/openwrt/openwrt.git
2. Compile el módulo
Compile un módulo por separado, tome myapp_test como ejemplo
make package/myapp_test/clean // 清除编译生成的文件
make package/myapp_test/prepare // 编译准备,下载、解压缩、打补丁
make package/myapp_test/configure // 根据设置选项配置生成Makefile
make package/myapp_test/compile // 根据Makefile进行编译
make package/myapp_test/install // 生成安装包
3. Directorio fuente
Significado del directorio de nivel superior OpenWrt:
config/ // 编译选项配置文件
docs/ // 文档目录
include/ // 包含准备环境脚本、下载脚本、编译Makefile以及编译指令
package/ // 各种功能的安装包
scripts/ // 包含准备环境脚本、下载脚本、编译Makefile以及编译指令
target/ // 嵌入式平台
toolchain/ // 编译器和C库等
tools/ // 通用命令,用来生成固件的辅助工具
En el firmware openWrt, casi todo es un paquete, que se puede compilar en un paquete de instalación que termina en .ipk, para que se pueda instalar, actualizar y desinstalar fácilmente.
El significado del directorio generado por la compilación openWrt:
dl/ // 编译时下载软件代码包临时目录
feeds/ // 扩展软件包目录
bin/ // 编译完成后的最终成果目录
build_dir/ // 编译中间文件目录
staging_dir/ // 编译安装目录
log/ // 如果打开了log选项,则编译log保存在该目录下
Cuatro, gestión de paquetes del sistema openWrt
Después de instalar e ingresar al sistema openWrt, el método de administración del paquete openWrt es:
4.1 Gestión de paquetes de software
opkg update // 更新可以安装的软件包列表
opkg install // 安装软件包,需要第三个参数传递一个软件包的名称。如 opkg install file
opkg remove // 卸载安装包,需要第三个参数传递一个软件包的名称。autoremove可以将不需要的安装包也删除。如 opkg remove file --autoremove
opkg upgrade // 升级软件包,需要第三个参数传递一个软件包的名称。一般只用来升级应用(非内核软件)。
4.2 Información de consulta:
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] // 针对已安装的软件包,输出依赖这个软件包的软件包
Opciones del comando opkg:
-A Consultar todos los paquetes de software
-d <nombre_destino> Usar nombre_destino como directorio raíz de instalación del paquete
-f <archivo_conf> Usar archivo_conf como archivo de configuración de opkg
--nodeps No instale según las dependencias, solo instale el paquete en sí
--autoremove desinstala automáticamente los paquetes no utilizados al desinstalar paquetes
--force-reinstall fuerza la reinstalación de paquetes
Cinco, configuración del sistema openWrt (interfaz UCI)
El patrón MVC (Modelo-Vista-Control) es un patrón de programación de desarrollo web clásico. openWrt también adopta este patrón de diseño y la capa de modelo adopta la interfaz de configuración unificada UCI (Interfaz de configuración unificada).
Los archivos de configuración principales del sistema openWrt se encuentran en el directorio /etc/config/.
Por ejemplo, modifique la ip de la red:
uci set network.lan.ipaddr=192.168.6.1
uci commit network
Los cambios entran en vigor ejecutando el siguiente comando:
/etc/init.d/network restart
Como se muestra en la figura:
significado del archivo de configuración de funciones comunes:
/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 // 网络服务质量的配置文件定义
Seis, configuración del kernel openWrt
6.1 、 sysctl
sysctl.conf es el archivo de configuración del kernel precargado por el sistema. La ubicación del archivo de sysctl.conf está en el directorio del archivo de código fuente openwrt: paquete/base-files/files/etc/sysctl.conf. Después de compilar, genere /etc/sysctl.d/* en el sistema openwrt.
En el sistema openwrt, se puede leer y configurar mediante el comando sysctl. Por ejemplo:
/sbin/sysctl -a # 显示所有的内核配置
/sbin/sysctl -n kernel.hostname # 查询kernel.hostname的值
/sbin/sysctl -w kernel.hostname="zhangsan" # 修改系统主机名称为zhangsan
/sbin/sysctl -p /etc/sysctl.conf # 加载配置
6.2, directorio /proc/sys/
La mayoría de los parámetros del kernel disponibles se encuentran en el directorio /proc/sys/. Por ejemplo:
consultar si se debe habilitar el reenvío de ruta:
cat /proc/sys/net/ipv4/ip_forward
Abra la configuración de reenvío de rutas:
echo "1" > /proc/sys/net/ipv4/ip_forward
6.3 Archivos de configuración del sistema
Introducción al archivo de configuración del sistema:
/etc/rc.local // 想要在开机后就执行的命令可以写入该文件
/etc/profile // 为系统的每个登陆用户设置环境变量
/etc/shells // openWrt采用的shell是 /bin/ash
/etc/fstab // 各种文件系统的描述信息
/etc/services // 互联网网络服务类型列表
/etc/protocols // 协议定义描述文件