3dbdfed2c4
Remove upstreamed patch: - 100-build-add-Libs.private-field-in-libnl-pkg-config-file.patch cacaa5f libnl-3.6.0 release 855c02f route/mdb: merge branch 'troglobit:mdb-dump-fixes' 930fc11 route/mdb: add support for MAC multicast entries 2d68caf route/mdb: add missing detils and stats dump callbacks d9ed99b nl-monitor: support for setting libnl debug level 4c41e0d nl-monitor: add missing --help to long_opts[] 7e96356 Check validation type against end of enum 4e153bc route/link: add VLAN bridge binding flag b7256d3 github: build unit tests also with "clang" 8111933 route: assert that "rtnl_link_info_ops" refcount does not drop below zero 4f5c846 lib: merge branch 'th/object-clone-fixes' d23fb81 lib: make nl_object_clone() out-of-memory safe 7f7452c route: fix ref counting for l_info_ops and io_clone() 620d024 route: drop unnecessary oo_clone() implementation from netconf 93a02eb netfilter: make log-msg,queue-msg setters robust against ENOMEM 23902d0 xfrm/sa: clone user_offload in xfrm_sa_clone() 29e5092 xfrm/sa: style cleanup xfrm_sa_clone() 14a9ebc utils: add internal _nl_memdup() helper 2e0d7f8 lib: add rtnl_link_info_ops_get() and take lock for rtnl_link_info_ops's io_refcnt e884286 lib: include <netlink-private/utils.h> in <netlink-private/netlink.h> 7d43191 tests: merge branch 'th/tests-netns' a7bbdab tests: add unit test for nl_object_clone() and nl_object_diff() fdb0121 tests: add new "netns" test suite 9102872 tests: add fixture/teardown for tests to run in separate netns 9a42798 tests: cleanup creating test suites 1fc3e07 tests: refactor tests and add n-test-util helper library 7a3d6e2 netlink: add _NL_N_ELEMENTS() macro 3da4f7d netlink: add _nl_streq()/_nl_streq0() helper 1ad8555 netlink: add _nl_auto_nl_socket cleanup macro c8a5729 lib: add _nl_close() helper 80868e6 clang-format: add ".clang-format" from linux kernel 2782ed3 github: build tests with "-std=gnu11" af59b9a github: split tests in separate steps c8f7902 build: add "check-progs" make target to build unit tests 23b4d33 route/cls: add TCA_FLOWER_KEY_VLAN_ETH_TYPE to "flower_policy" policy 1f8dc89 route/cls: return -NLE_INVAL in case rtnl_tc_data_peek() fails |
||
---|---|---|
.github | ||
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!
Development
To build your own firmware you need a GNU/Linux, BSD or MacOSX 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.6+ 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