Table of Contents
开发者指南
目录
技术手册
全部开发文档
开发者指南
本页面包含了所有 OpenWrt 开发文档的链接。 请使用搜索功能来查找更多详细信息。
目录
概述
OpenWrt 源代码
The OpenWrt source code
Fetching from GitHub
Forking from GitHub
Revision number calculation
构建系统
Build System essentials
系统配置
Linux
MacOS
Windows (WSL)
Setting up a build server in VirtualBox
虚拟机测试OpenWrt
Docker OpenWrt Image Generation
Metarouter Virtualization on Mikrotik RouterBoard
OpenWrt as a Docker Image
OpenWrt as a Xen DomU guest
OpenWrt as Docker container host
OpenWrt as DomU in Debian Xen4 in a private network
OpenWrt as QEMU/KVM host server
OpenWrt in LXC containers
OpenWrt in QEMU
OpenWrt on UTM on Apple Silicon HowTo
OpenWrt on VirtualBox HowTo
OpenWrt on VMware Fusion on Apple Silicon HowTo
OpenWrt on VMware HowTo
OpenWrt running as metarouter on mikrotik routerOS
VirtualBox Advanced
Build system usage
Quick image building guide
Using build environments
Overriding Build Options
Building OpenWrt ON OpenWrt
Using the SDK
Cross Compiling your application
Building a single package
Using External Toolchain
Image Builder frontends
Using the Image Builder
OpenWrt Feeds
增加新的软件包到 OpenWrt
"Hello, world!" package for OpenWrt
Preparing your OpenWrt build system for use
Creating a simple “Hello, world!” application
Creating a package from your application
Including your package feed into OpenWrt build system
Building, deploying and testing your application
Migrating to use GNU make in your application
Patching your application: Adding new files
Patching your application: Editing existing files
Create a sample procd init script
添加现有软件包到 OpenWrt
Autotools packages
Cmake packages
Meson packages
Patching a package
Using Dependencies
Package creation reference manual
BuildPackage variables
Testing a package Makefile
PKG_FIXUP
Package Sourcecode
BuildPackage defines
Building in a subdirectory of the source
Dependency Types
Configure a package source
Adding configuration options
Working on local application source
Creating packages for kernel modules
File installation macros
Packaging a service
Debugging
GNU Debugger
OpenWrt 设备管理
Adding a new device
Adding new device support
Adding new platform support
Device support policies / best practices
Device Tree Usage in OpenWrt (DTS)
Mounting Block Devices
贡献指南
Working with patches
Prepare quilt configuration
Adding a new patch
Edit an existing patch
Adding or editing kernel patches
Adding or editing toolchain patches
Naming patches
Refreshing patches
Iteratively modify patches without cleaning the source tree
Submitting patches
Reporting bugs
Sending patches by git send-email
Working with GitHub
Security
OpenWrt SELinux policy development, customization, and testing
High-level security incident response handling process
技术手册
Networking
Theory
Datagram Structures
Linux network interfaces
Networking in the Linux Kernel
Device Support: MAC address setup
Multicast DNS Daemon
Netifid
Network scripts
Wireless Modes
Network Filesystems
OpenWrt的进阶开发
Write shell scripts in OpenWrt
Init Scripts
procd init scripts
UCI (Unified Configuration Interface)
Ubox
libubox
Ubus (OpenWrt micro bus architecture)
uBus IPC/RPC System
ubus file
ubus iwinfo
ubus network
ubus service
ubus session
ubus system
ubus uci
OpenWrt 版本管理
Making OpenWrt releases
High-level release process
How to create a major release
How to create a service release
How to prepare buildbot for major release
Prepare Nitrokey 3A Mini for build artifact signing
Update package lists
Update wikidata
Release goals
Release goals for 23.XX
Release goals for 22.03
Release goals for 21.XX
Release Goals for 21.02
Release goals for 20.XX
Release goals for 19.07.4
全部开发文档
Documentation
Developer guide
21.02: Major cosmetic changes
Adding a new device
Adding new device support
Adding new elements to LuCI
Adding new platform support
Building image with support for 3g/4g and usb tethering
Building MPD-full with PulseAudio
Building OpenWrt for Netgear WNDR3700
Building OpenWrt Kernel for Debian System
Configuration in scripts
Create a Cmake package in OpenWrt
Create a sample procd init script
Create Meson-based packages in OpenWrt
Creating packages
Debugging
Device support policies / best practices
Device Support: MAC address setup
Device Tree Usage in OpenWrt (DTS)
Drivers
embedding-files-in-image
External Toolchain
Frequent PR mistakes or "How to prevent my PR from getting delayed for sure"
GNU Debugger
Hardware Hacking First Steps
High-level security incident response handling process
Image Builder frontends
iwinfo
jshn: a JSON parsing and generation library in for shell scripts
Links to Libraries
MPD-full building from source
netifid
network
Network scripts
OpenWrt Feeds
OpenWrt on UEFI based x86 systems
OpenWrt packages
OpenWrt SELinux policy development, customization, and testing
Overriding Build Options
Overview
procd
Procd Init Scripts
RPC daemon
Security
Sending patches by git send-email
Setting up a build VM in VirtualBox
uBus IPC/RPC System
UCI defaults
umdns for Local Device Discovery
Using Dependencies
Using the SDK
Working with GitHub
Write shell scripts in OpenWrt
"Hello, world!" for OpenWrt
Building, deploying and testing your application
...
Creating a package from your application
Creating a simple “Hello, world!” application
Including your package feed into OpenWrt build system
Migrating to use GNU make in your application
Patching your application: Adding new files
Patching your application: Editing existing files
Preparing your OpenWrt build system for use
Networking
Datagram Structures
Linux network interfaces
Networking in the Linux Kernel
Theory
Making OpenWrt releases
High-level release process
How to create a major release
How to create a service release
How to prepare buildbot for major release
Prepare Nitrokey 3A Mini for build artifact signing
Update package lists
Update wikidata
Release goals
20.xx
Release goals for 19.07.4
Release goals for 21.XX
Release goals for 22.03
Release goals for 23.xx
Roadmap and Release Goals for 21.02
security
Security
The OpenWrt source code
Revision number calculation
🚀 OpenWRT Github Fork Setup For Your Development
Toolchain
Build system as systemd-container
Build system essentials
Build system setup
Build system setup macOS
Build system setup of WSL2
Build System Usage
Building a single package
Building OpenWrt ON OpenWrt
Cross compiling
Quick image building guide
Using build environments
Using the SDK
Working with patches
ubus
ubus file
ubus iwinfo
ubus network
ubus service
ubus session
ubus system
ubus uci
Documentation
Technical Reference
BCM63xx Firmware Image Information
Boot/Init Requirements
BusyBox
DFS
EasyCwmp (CPE WAN Management Protocol daemon)
External Documentation
Filesystems
Flash memory
Hotplug -- Legacy
Image formats
image/Makefile Details
Init (User space boot) reference for Chaos Calmer: procd
Init Scripts
Internal Layout D-Link DIR-825
libnl and libnl-tiny – Technical Reference
libubox
lldpd
LuCI – Technical Reference
LuCI2 (OpenWrt web user interface)
mountd – Technical Reference
Mounting Block Devices
MTD
netifd (Network Interface Daemon) – Technical Reference
Network Filesystems
odhcp6c
odhcpd
OpenWrt Buildroot – Technical Reference
OpenWrt File System Hierarchy / Memory Usage
OpenWrt – operating system architecture
Preinit and Root Mount and Firstboot Scripts
Procd system init and daemon management
rpcd: OpenWrt ubus RPC daemon for backend server
swconfig
Sysupgrade – Technical Reference
The Boot Process
The Bootloader
The OpenWrt Flash Layout
TRX vs. TRX2 vs. BIN
ubox
ubus (OpenWrt micro bus architecture)
UCI (Unified Configuration Interface) – Technical Reference
unetd
Wireless Modes
Wireless Standards
Xenomai - real-time framework inside OpenWrt
bootloader
ADAM2
ARMBoot
bl-mt798x: ATF and u-boot for mt798x-based routers
Breed
brnboot
CFE
Das U-Boot
Das U-Boot Environment
EVA
kboot
kwboot
MyLoader
pepe2k-u-boot_mod
PP Boot
PSPBoot
RealTek
RedBoot
RouterBOOT
TcBoot
YAMON
cfe
Changing CFE defaults
WLAN drivers
ath10k
ath10k-ct
ath10k-ct-smallbuffers
ath11k
ath5k
ath9k
b43
b43 legacy
brcmfmac
brcmsmac
mt76
mwlwifi
none
rt2500pci
rt2800pci
rt2800usb
rtl819x
Unknown Wi-Fi driver
Hardware
Antennas
Buffered Cable, Wiggler
Cryptographic Hardware Accelerators
Ethernet Network Switch
GPIO
Hardware Ports
I2C
Index of hardware pages
Integrated Circuit
Internet access technologies
JTAG
JTAG Cables
JTAG utilization
Mobile Wireless
OpenWrt Hardware List
Serial Cables
Serial Console
SoC (System on a Chip)
Soldering
The CPU (Intellectual property core)
TP-Link TL-WR1043ND performance
Unbuffered Cable, Xilinx DLC5 Cable III
...
xDSL (Digital subscriber line)
port.gpio
1-wire Bus
soc
Allwinner D1 (sun20i)
Allwinner Sun4i/5i/6i/7i/9i (sunxi)
AR7 SoCs
Broadcom BCM33xx
Broadcom BCM47xx
Broadcom BCM53xx
Broadcom BCM63xx
Freescale i.MX
Freescale MPC
Hisilicon hi35xx
Lantiq SoCs
Marvell Technology Group SoCs
MediaTek / Ralink
MediaTek-Ralink ramips
oxnas
Qualcomm Atheros
Qualcomm Atheros AR5xxx (atheros)
Qualcomm Atheros AR7xxx, AR9xxx and QCA9xxx boards
Realtek
SiFive RISC-V SoCs
SoC (Sytem on Chip)
StarFive RISC-V SoCs
soc.broadcom.bcm47xx
OpenWrt image conversion
soc.broadcom.bcm63xx
BCM6348 GPIO pinmux
SMP/CMT Broadcom 63xx
soc.hisilicon.hi35xx
IVG-HP203Y-AY
switch
Atheros Switches
Targets
adm5120
adm8668
Airoha
apm821xx
ar7
ar71xx
ar71xx-ath79
at91
ath25
ath79
atheros
au1000
avr32
bcm27xx
bcm47xx
bcm4908
bcm53xx
bcm63xx
bmips
brcm-2.4
brcm2708
brcm47xx
brcm63xx
cns21xx
cns3xxx
cobalt
d1
ep93xx
gemini
imx
imx6
iop32x
ipq40xx
ipq806x
ixp4xx
Kernel versions
kirkwood
lantiq
layerscape
loongarch64
magicbox
malta
mcs814x
mediatek
mpc85xx
mvebu
mxs
octeon
octeontx
omap
orion
oxnas
pistachio
ppc40x
ppc44x
ps3
pxa
qoriq
qualcommax
ramips
rb532
rdc
realtek
realview
rockchip
Samsung
sibyte
sifiveu
siflower
starfive
stm32
sunxi
tegra
uml
x86
xburst
zynq