Changes: fa05d58e (tag: libnl3_10_0) libnl-3.10.0 release 490ffa07 python: fix flake8 warnings 6fc66dd8 doc: workaround LINK_DOC with empty libnl.dict 914812a9 lib: avoid overflow in computation of s_seq_next 5248e1a4 all: fix and enable "-Wsign-compare" warning 9451842e build: use AC_USE_SYSTEM_EXTENSIONS instead of defining _GNU_SOURCE 20664e1e build: move "-DPGKLIBDIR" and rename 81cab7da build: cleanup defining SYSCONFDIR on command line cf47571c build: drop unnecessary "-Wno-missing-field-initializers" from default CFLAGS 131008f7 build: add "-Wvla" and "-Wdeclaration-after-statement" to default CFLAGS 7e05b622 lib: add internal _nla_len() helper 32688201 route: treat routes with via nexthops as universe scoped as well c36c7faa format: reformat "include/base/nl-base-utils.h" 49f78229 tests: add a very basic test for route cache 2ebbc034 tests: add NLTstSelectRoute test helper d784f2cb tests: set NLTST_IN_CI for not skipping tests accidentally dcb9e2ef route: add missing priority to route_keygen() debug print d44505ed tests: add helper to detect availablility of iproute2 774863b4 tests: add helper functions for tests 45a10f96 route: move "struct rtnl_nexthop" to "nl-priv-dynamic-route" 153f213b build: fix "check-progs" target in "Makefile.am" a1e0b8b2 github: print test-suite.log in case of test failure 3e080631 route: expose nexthop id attribute 401c2488 tests: fix _nltst_object_to_string() to print one line only 529c2ab8 route: drop unused fields from "struct rtnl_route" 71e59e14 build: separate build tests from unit tests 8539b7d3 format: reformat "tests/nl-test-util.h" file 6db85366 route: merge branch 'bisdn:jogo_route_nh_cmp' 861fb809 route: use the new helper function for comparing nexthops 8cf29d7b nexthop: add a identical helper function 7cc72d19 utils: reserve the nl_has_capabiliy numbers for releases 3.10 - 3.12 30da5107 github,clang-format: update fedora version for clang-format 2301992b route: fix IPv6 ecmp route deleted nexthop matching 72e4d73f cache: merge branch 'ievenbach:aurora/cache-mgr-cb' 3381acef cache: use cleanup attribute in nl_cache_mngr_alloc_ex() 32cb9f39 cache: cleanup nl_cache_mngr_alloc_ex() 1dbdc30a cache: allow to allocate cache manager with custom refill socket 18b74e08 tests: test compiling all public headers with C++ compiler 691202bf tests: don't use $COMPILE for building header tests 15d90cbf include: add _NL_NO_WARN_DEPRECATED_HEADER for suppressing warning about deprecated headers 8a5f671a tests: avoid "-Wunused-parameter" warning in build headers test db1a9d7d route: avoid compiler warning about calloc() arguments in rtnl_netem_set_delay_distribution() 3a43faa1 cache: fix new object in callback v2 on updated objects 46cae1bf socket: fix ubsan complaint about incorrect left-shift in generate_local_port() 96ddcd99 all: merge branch 'th/nl-debug' 13ab0122 github: test with --enable-debug=no configure option 264b244e utils: always define nl_debug_dp dbe21b8d core: always define statements for NL_DBG() e592dd89 build: always define NL_DEBUG 58734974 all: use defines for attributes 0c16c9cb route/bison: include "nl-default.h" in lex/yacc files 19d48b0f route: add support for layer 3 filtering on bridges 3646398d route: merge branch 'Cordell-O:main' e21278ed tests: add test for bridge vlan attributes. 4f324f73 route: add support for vlan filtering on bridge ports. bf071f2b route: Add support to set ageing time for dynamic bridge table entries b76c3a5d tests: add unit test for `nl_addr_parse("default", AF_INET6, &addr6)` 8693347f lib/xfrm: add missing #include <time.h> Small size increase: 955 bin/packages/mips_24kc-old/base/libnl200_3.9.0-r1_mips_24kc.ipk 11157 bin/packages/mips_24kc-old/base/libnl-cli200_3.9.0-r1_mips_24kc.ipk 34896 bin/packages/mips_24kc-old/base/libnl-core200_3.9.0-r1_mips_24kc.ipk 7698 bin/packages/mips_24kc-old/base/libnl-genl200_3.9.0-r1_mips_24kc.ipk 25400 bin/packages/mips_24kc-old/base/libnl-nf200_3.9.0-r1_mips_24kc.ipk 148366 bin/packages/mips_24kc-old/base/libnl-route200_3.9.0-r1_mips_24kc.ipk 956 bin/packages/mips_24kc-new/base/libnl200_3.10.0-r1_mips_24kc.ipk 11154 bin/packages/mips_24kc-new/base/libnl-cli200_3.10.0-r1_mips_24kc.ipk 34965 bin/packages/mips_24kc-new/base/libnl-core200_3.10.0-r1_mips_24kc.ipk 7699 bin/packages/mips_24kc-new/base/libnl-genl200_3.10.0-r1_mips_24kc.ipk 25385 bin/packages/mips_24kc-new/base/libnl-nf200_3.10.0-r1_mips_24kc.ipk 149852 bin/packages/mips_24kc-new/base/libnl-route200_3.10.0-r1_mips_24kc.ipk Link: https://github.com/openwrt/openwrt/pull/16592 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
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 -a
to obtain all the latest package definitions defined in feeds.conf / feeds.conf.default -
Run
./scripts/feeds install -a
to install symlinks for all obtained packages into package/feeds/ -
Run
make menuconfig
to select your preferred configuration for the toolchain, target system & firmware packages. -
Run
make
to 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
#openwrt
on oftc.net.
Developer Community
- Bug Reports: Report bugs in OpenWrt
- Dev Mailing List: Send patches
- Dev Chat: Channel
#openwrt-devel
on oftc.net.
License
OpenWrt is licensed under GPL-2.0