0d0fac30075f dhcpv4: bump problem scenario up to warn bf6137092346 config: properly set log level from uci 7956f4271b4e dhcpv6: RFC4833 timezones 7000557cd8f6 dhcpv6-ia: respect prefix assigned to interface (>= /64) e1e60601ffeb odhcpd: improve odhcpd_urandom() c2eb4b59f107 config: fix erroneous clamp message if clamp value == max 54b9e729b00d dhcpv4: bail earlier on release/decline 417f4b11d352 dhcpv4: don't hardcode options array length d63fa3c3612c dhcpv4: shrink struct dhcpv4_message 9653b43617e3 dhcpv4: use iovec for forcereconf messages, fix hash bf41f4edfbe3 dhcpv4: fix padding of iovec message in dhcpv4_handle_msg() be68f423c528 dhcpv4: some minor cleanups post-iovec e24a371ef714 dhcpv4: use iovec for forcerenew opts bd353e891ae6 dhcpv4: use iovec for router and DNS server b81cfaa7859e dhcpv4: use iovec for DNS search and MTU 578a9289440b dhcpv4: use iovec for netmask/hostname/broadcast 5bafc17b79d8 dhcpv4: use iovec for leasetime/renew/rebind b63448ffe447 dhcpv4: introduce a reply_opts array 0533eaea0a94 dhcpv4: use iovec for DNR 6329e37d595d dhcpv4: use iovec for NTP 87fee619205d dhcpv4: use iovec for message and serverid 2f97bf0b56de dhcpv4: reorder some more variables in dhcpv4_handle_msg() 18c1b02bdc20 dhcpv4: remove one more variable from dhcpv4_handle_msg() 6fd691ff29cd dhcpv4: move dest handling from dhcpv4_handle_msg() 1f803caf9a1f dhcpv4: don't copy reqopts around b1be3984ebf8 dhcpv4: more refactoring of dhcpv4_handle_msg() 85717bedf8ce dhcpv4: clarify variable names in dhcpv4_handle_msg() be864ccf9919 dhcpv4: some more cleanups to dhcpv4_handle_msg() f87464520564 dhcpv4: preparations for iovec usage f48e1c205af3 odhcdp: use a more suitable clock 7e78caac4eae dhcpv6: change dhcpv6 message type check in relay 288abd9c4046 dhcpv6: move dhcpv6 message type check for early exit d504458ef515 odhcpd: add a simple build script 4ee309a54011 github: improve CI ff3a241ccc98 odhcpd: shrink binary size by creating a logging function e2ecf7ba6d72 odhcpd: support stderr logging 5de3b0d5b509 odhcpd: add log helpers 398d03a1a236 config: cap dhcpv6_pd_min_len to max instead of only logging error 4f54738d3ae7 config: clamp dhcpv6_hostid_len instead of only logging an error 465f19c9c2e3 config: clamp ra_mtu into 1280-65535 range 434b06133997 config: cap ra_retranstime and warn instead of only logging an error e5f58a90a147 config: cap ra_hoplimit to maximum and warn instead of logging an error 208eb10307c1 config: cap ra_reachabletime to RFC maximum instead of logging error 93449f1513b4 config: drop double size lease times; they are all UINT32_MAX; 439c0ceab131 router: redefine ra_mininterval and ra_maxinterval as uint32_t 84b4dfe81363 config: clamp ra_mininterval, ra_maxinterval, ra_lifetime at load time aa4f26232e05 router: refactor calc_ra_lifetime; redefine ra_lifetime as uint32_t 6ece28ffd475 config: do MaxRtrAdvInterval init at (ra_maxinterval) init time dc03e02d973e router: Apply updated values from RFC9096 (updates RFC4861) to RA/ND cc7766c12abe router: Apply updated values from RFC8319 (updates RFC4861) to RA/ND 964da13e758c config: refactor parse_leasetime() - branch amount remains same 9646c749467b github: fix CMAKE_SYSTEM_PROCESSOR copy&paste 288206c9a2ed github: add CI build 30780debd691 odhcpd: fix a compilation error e0b2c3cf9476 odhcpd: allow assignments to be reassigned 01e5e311b0db odhcpd: support multiple per-client DUIDs aebc647a6b7b odhcpd: support assignments on the basis of IAID cc3ec9c20c61 odhcpd: support IAIDs for static DHCPv6 leases e42c62725942 odhcpd: break up complex matching logic e1123906a4bc odhcpd: document the ubus interface c69200195263 dhcpv4: generate dbus events on lease expiry dd7a2d474d0d dhcpv4: fix ubus events 22481d848e0d odhcpd: remove mac_len argument to ubus_bcast_dhcp_event() d31d64efd56c odhcpd: fix ubus support flag in help msg 9bc1b4e26e10 odhcpd: reduce use of WITH_UBUS defines in code d402cdae4316 ndp: fix macOS IPv6 compatibility by using link-local source addresses Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> |
||
|---|---|---|
| .devcontainer/ci-env | ||
| .github | ||
| .vscode | ||
| config | ||
| include | ||
| LICENSES | ||
| package | ||
| scripts | ||
| target | ||
| toolchain | ||
| tools | ||
| .gitattributes | ||
| .gitignore | ||
| BSDmakefile | ||
| Config.in | ||
| COPYING | ||
| feeds.conf.default | ||
| Makefile | ||
| README.md | ||
| rules.mk | ||
OpenWrt Project is a Linux operating system targeting embedded devices. Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developers, OpenWrt is the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned.
Sunshine!
Download
Built firmware images are available for many architectures and come with a package selection to be used as WiFi home router. To quickly find a factory image usable to migrate from a vendor stock firmware to OpenWrt, try the Firmware Selector.
If your device is supported, please follow the Info link to see install instructions or consult the support resources listed below.
An advanced user may require additional or specific package. (Toolchain, SDK, ...) For everything else than simple firmware download, try the wiki download page:
Development
To build your own firmware you need a GNU/Linux, BSD or macOS system (case sensitive filesystem required). Cygwin is unsupported because of the lack of a case sensitive file system.
Requirements
You need the following tools to compile OpenWrt, the package names vary between distributions. A complete list with distribution specific packages is found in the Build System Setup documentation.
binutils bzip2 diff find flex gawk gcc-6+ getopt grep install libc-dev libz-dev
make4.1+ perl python3.7+ rsync subversion unzip which
Quickstart
-
Run
./scripts/feeds update -ato obtain all the latest package definitions defined in feeds.conf / feeds.conf.default -
Run
./scripts/feeds install -ato install symlinks for all obtained packages into package/feeds/ -
Run
make menuconfigto select your preferred configuration for the toolchain, target system & firmware packages. -
Run
maketo build your firmware. This will download all sources, build the cross-compile toolchain and then cross-compile the GNU/Linux kernel & all chosen applications for your target system.
Related Repositories
The main repository uses multiple sub-repositories to manage packages of
different categories. All packages are installed via the OpenWrt package
manager called opkg. If you're looking to develop the web interface or port
packages to OpenWrt, please find the fitting repository below.
-
LuCI Web Interface: Modern and modular interface to control the device via a web browser.
-
OpenWrt Packages: Community repository of ported packages.
-
OpenWrt Routing: Packages specifically focused on (mesh) routing.
-
OpenWrt Video: Packages specifically focused on display servers and clients (Xorg and Wayland).
Support Information
For a list of supported devices see the OpenWrt Hardware Database
Documentation
Support Community
- Forum: For usage, projects, discussions and hardware advise.
- Support Chat: Channel
#openwrton oftc.net.
Developer Community
- Bug Reports: Report bugs in OpenWrt
- Dev Mailing List: Send patches
- Dev Chat: Channel
#openwrt-develon oftc.net.
License
OpenWrt is licensed under GPL-2.0
