Changelog: 039a994 Bump version to v1.7.0 3f29d6d pylibfdt: add size_hint parameter for get_path 2022bb1 checks: Update #{size,address}-cells check for 'dma-ranges' abbd523 pylibfdt: Work-around SWIG limitations with flexible arrays a41509b libfdt: Replace deprecated 0-length arrays with proper flexible arrays 2cd89f8 dtc: Warning rather than error on possible truncation of cell values 55778a0 libfdt: tests: add get_next_tag_invalid_prop_len 7359034 libfdt: prevent integer overflow in fdt_next_tag 035fb90 libfdt: add fdt_get_property_by_offset_w helper 98a0700 Makefile: fix infinite recursion by dropping non-existent `%.output` a036cc7 Makefile: limit make re-execution to avoid infinite spin c6e9210 libdtc: remove duplicate judgments e37c256 Don't generate erroneous fixups from reference to path 5045465 libfdt: Don't mask fdt_get_name() returned error e64a204 manual.txt: Follow README.md and remove Jon f508c83 Update README in MANIFEST.in and setup.py to README.md c2ccf8a Add description of Signed-off-by lines 90b9d9d Split out information for contributors to CONTRIBUTING.md 0ee1d47 Remove Jon Loeliger from maintainers list b33a73c Convert README to README.md 7ad6073 Allow static building with meson fd9b8c9 Allow static building with make fda71da libfdt: Handle failed get_name() on BEGIN_NODE c7c7f17 Fix test script to run also on dash shell 01f23ff Add missing relref_merge test to meson test list ed31080 pylibfdt: add FdtRo.get_path() c001fc0 pylibfdt: fix swig build in install 26c54f8 tests: add test cases for label-relative path references ec7986e dtc: introduce label relative path references 651410e util: introduce xstrndup helper 4048aed setup.py: fix out of tree build ff5afb9 Handle integer overflow in check_property_phandle_args() ca72944 README: Explain how to add a new API function c0c2e11 Fix a UB when fdt_get_string return null cd5f69c tests: setprop_inplace: use xstrdup instead of unchecked strdup a04f690 pylibfdt: add Property.as_*int*_array() 8310271 pylibfdt: add Property.as_stringlist() d152126 Fix Python crash on getprop deallocation 17739b7 Support 'r' format for printing raw bytes with fdtget 45f3d1a libfdt: overlay: make overlay_get_target() public c19a4ba libfdt: fix an incorrect integer promotion 1cc41b1 pylibfdt: Add packaging metadata db72398 README: Update pylibfdt install instructions 383e148 pylibfdt: fix with Python 3.10 23b56cb pylibfdt: Move setup.py to the top level 69a7607 pylibfdt: Split setup.py author name and email 0b106a7 pylibfdt: Use setuptools_scm for the version c691776 pylibfdt: Use setuptools instead of distutils 5216f3f libfdt: Add static lib to meson build 4eda259 CI: Cirrus: bump used FreeBSD from 12.1 to 13.0 0a3a9d3 checks: Add an interrupt-map check 8fd2474 checks: Ensure '#interrupt-cells' only exists in interrupt providers d8d1a9a checks: Drop interrupt provider '#address-cells' check 52a16fd checks: Make interrupt_provider check dependent on interrupts_extended_is_cell 37fd700 treesource: Maintain phandle label/path on output e33ce1d flattree: Use '\n', not ';' to separate asm pseudo-ops d24cc18 asm: Use assembler macros instead of cpp macros ff3a30c asm: Use .asciz and .ascii instead of .string 5eb5927 fdtdump: fix -Werror=int-to-pointer-cast 0869f82 libfdt: Add ALIGNMENT error string 69595a1 checks: Fix bus-range check 72d09e2 Makefile: add -Wsign-compare to warning options b587787 checks: Fix signedness comparisons warnings 69bed6c dtc: Wrap phandle validity check 9102211 fdtget: Fix signedness comparisons warnings d966f08 tests: Fix signedness comparisons warnings ecfb438 dtc: Fix signedness comparisons warnings: pointer diff 5bec74a dtc: Fix signedness comparisons warnings: reservednum 24e7f51 fdtdump: Fix signedness comparisons warnings Remove upstreamed: - 0001-Support-r-format-for-printing-raw-bytes-with-fdtget.patch Signed-off-by: Nick Hainke <vincent@systemli.org>
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 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