f510d75f nscd: Use time_t for return type of addgetnetgrentX 5aa4bb67 resolv: Fix some unaligned accesses in resolver [BZ #30750] 249646f1 Force DT_RPATH for --enable-hardcoded-path-in-tests 697ab62d i386: Disable Intel Xeon Phi tests for GCC 15 and above (BZ 31782) c8cb4d2b misc: Add support for Linux uio.h RWF_NOAPPEND flag 71245363 s390x: Fix segfault in wcsncmp [BZ #31934] 7bfc3595 nptl: fix potential merge of __rseq_* relro symbols d9d019d6 elf: Make dl-rseq-symbols Linux only bb30bd21 Linux: Make __rseq_size useful for feature detection (bug 31965) dc512364 resolv: Allow short error responses to match any query (bug 31890) 6cad0f54 resolv: Do not wait for non-existing second DNS response after error (bug 30081) 1bed6acf resolv: Track single-request fallback via _res._flags (bug 31476) 0301637b linux: Update the mremap C implementation [BZ #31968] f0e21145 mremap: Update manual entry 6bb75212 Add mremap tests 3ac7ba61 Update syscall lists for Linux 6.5 9184c136 resolv: Fix tst-resolv-short-response for older GCC (bug 32042) 059f82c3 Fix name space violation in fortify wrappers (bug 32052) c005d1bd x86: Fix bug in strchrnul-evex512 [BZ #32078] 28f358bc support: Add FAIL test failure helper 99ffa84b stdio-common: Add test for vfscanf with matches longer than INT_MAX [BZ #27650] 87a1968a Make tst-ungetc use libsupport 804d3c8d ungetc: Fix uninitialized read when putting into unused streams [BZ #27821] b9f72bd5 ungetc: Fix backup buffer leak on program exit [BZ #27821] 15ca6630 posix: Use <support/check.h> facilities in tst-truncate and tst-truncate64 f30501ca nptl: Use <support/check.h> facilities in tst-setuid3 370be858 libio: Attempt wide backup free only for non-legacy code 4dd86414 Add crt1-2.0.o for glibc 2.0 compatibility tests fa4ad104 elf: Change ldconfig auxcache magic number (bug 32231) 9423cc53 nptl: initialize rseq area prior to registration 37ded328 nptl: initialize cpu_id_start prior to rseq registration cf067723 x86: Avoid integer truncation with large cache sizes (bug 32470) 5c9be512 x86_64: Sort fpu/multiarch/Makefile 49016f21 x86_64: Add log2 with FMA b2a45f1e x86_64: Add expm1 with FMA c92946d9 x86_64: Add log1p with FMA 58822f95 x86: Check the lower byte of EAX of CPUID leaf 2 [BZ #30643] 7772f935 elf: Fix slow tls access after dlopen [BZ #19924] 5a64f933 x86: Only align destination to 1x VEC_SIZE in memset 4x loop 0d14bf07 sysdeps/x86/Makefile: Split and sort tests dc176211 x86_64: Fix missing wcsncat function definition without multiarch (x86-64-v4) 04b8d484 x86: Improve large memset perf with non-temporal stores [RHEL-29312] 12fec8aa x86/string: Fixup alignment of main loop in str{n}cmp-evex [BZ #32212] 48642ef1 elf: Avoid some free (NULL) calls in _dl_update_slotinfo 549e7f7c elf: Support recursive use of dynamic TLS in interposed malloc c32fd593 Fix underallocation of abort_msg_s struct (CVE-2025-0395) 650a0aaa stdlib: Test using setenv with updated environ [BZ #32588] f984e2d7 assert: Add test for CVE-2025-0395 9ca74b8a AArch64: Improve generic strlen 95aa2143 AArch64: Optimize memset 5fe151d8 AArch64: Remove zva_128 from memset 3de51123 math: Improve layout of expf data 52c2b155 AArch64: Add SVE memset 097299ff AArch64: Use prefer_sve_ifuncs for SVE memset 5a08d049 math: Improve layout of exp/exp10 data Signed-off-by: Konstantin Demin <rockdrilla@gmail.com> Link: https://github.com/openwrt/openwrt/pull/18648 Signed-off-by: Christian Marangi <ansuelsmth@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 -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