The underlying operating system for DifuseHQ's embedded routing devices
Find a file
Konstantin Demin c1cbcd35e7
toolchain: glibc: Update glibc 2.38 to recent HEAD
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>
2025-05-01 19:26:53 +02:00
.devcontainer/ci-env devcontainer: Add development environment for gihub codespace 2023-10-30 23:34:26 +01:00
.github CI: labeler: Add qualcommbe target 2025-02-09 21:04:19 +01:00
.vscode meta: VS Code: add "Git: Always Sign Off" setting 2024-10-03 17:18:51 +02:00
config config: add new options for 6.12 kernel 2025-04-30 16:26:37 +02:00
include kernel: Fix patch folders setting for test kernel 2025-04-23 10:29:14 +02:00
LICENSES LICENSES: include all used licenses in LICENSES directory 2021-02-14 19:21:38 +01:00
package kernel/drm-ttm-helper: 6.12: fix missing dependency 2025-04-30 16:26:50 +02:00
scripts qualcommax: ipq50xx: add support for GL.iNET GL-B3000 2025-04-20 16:11:29 +02:00
target ramips: make Genexis EX400 factory image dependent on initramfs 2025-05-01 14:58:15 +02:00
toolchain toolchain: glibc: Update glibc 2.38 to recent HEAD 2025-05-01 19:26:53 +02:00
tools mold: update to 2.37.1 2025-04-23 22:01:06 +02:00
.gitattributes .gitattributes: ignore some whitespace "violations" in .patch files 2024-12-12 11:01:56 +01:00
.gitignore gitignore: ignore local APK keys 2024-05-17 22:03:06 +03:00
BSDmakefile build: use SPDX license tags 2021-02-05 14:54:47 +01:00
Config.in build: scripts/config - update to kconfig-v5.14 2022-02-19 13:10:01 +01:00
COPYING COPYING: add COPYING file to specify project licenses 2021-02-14 19:21:38 +01:00
feeds.conf.default feeds.conf.default: enable video feed by default 2024-12-05 01:34:01 +00:00
Makefile build: include tests/Makefile if available 2024-06-17 17:51:31 +02:00
README.md README: replace "MacOSX" with "macOS" 2024-04-01 18:46:30 +02:00
rules.mk build: use lazy evaluation for NPROC to speed up metadata dump 2025-01-14 14:04:53 +01:00

OpenWrt logo

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

  1. Run ./scripts/feeds update -a to obtain all the latest package definitions defined in feeds.conf / feeds.conf.default

  2. Run ./scripts/feeds install -a to install symlinks for all obtained packages into package/feeds/

  3. Run make menuconfig to select your preferred configuration for the toolchain, target system & firmware packages.

  4. 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.

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

License

OpenWrt is licensed under GPL-2.0