Rebased onto dssp5-base. Baseline is: ss, tc, stubby, irqbalance, usbutils, ethtool, tcpdump, mtr, bmon, zram-swap, parted, e2fsprogs, gdisk, block-mount, kmod-fs-ext4, kmod-fs-f2fs, kmod-usb-storage, f2fs-tools-selinux, kmod-usb-storage-uas, kmod-usb3, wireguard-tools, openssh-sftp-server, luci-light, resolveip, blockd Changes since v2.0: 3dcc957 three issues: 434bad8 /new_root related 04d18a5 README armsr combined-efi 506d8c1 /efi is not a thing in armsr combined-efi c0db1ed efivarfs remove these filecons 4eb35b7 adds efivars noseclabelfs for armsr combined-efi bbc6a6b adds /dev/ttyS3 to tty serialtermdev 1467206 README local logins 6ae3185 rename eficapsulemiscnodedev d43ded0 rename to vportserialtermdev a47d2f8 fixes virtio port serialtermdev 03aec70 blockmount: make it a bit more robust 70f1ed3 hotplugcall not sure what config triggers this 3338764 boarddetect: i was expecting this d97548a deal with /dev/tty and /dev/vcs c6ba4a5 adds virtio block device d03e216 adds virtio vport serialtermdev for qemu guest agent 2dc0291 validatefirmwareimage: allow getattr of *all* dev chr files fdfb3a7 adds /dev/efi_capsule_loader for armsr combined target b129fb9 validatefirmwareimage ordering b5e81b4 validatefirmwareimage clean up 0932dc5 README typo fixes a1f88f0 README fix e6c68be README typo fixes a232c21 hvcloginserialtermdev: macro not used d7edd95 support /usr/local and update README c0d2947 validatefirmwareimage comment 7dbc9b3 validatefirmwareimage: allow find to getattr of dev.except char f647175 platformtmpfile: elaborate a bit in comment 52f32c1 reintroduce misc.cil 320d77f validatefirmwareimage: /lib/upgrade/platform.sh 365fc65 deal with /efi for combined images 183b412 adds hvc logserialtermdev 20cd42a sshdsysagent: limited support for legacy scp -O with firmware images 1ccee8d validatefirmwareimages: some events related to "combined" images 9b47fc3 jshn reads /dev/urandom f86def7 adds /tmp/log/apk.log f1247b3 these are relative to the current namespace 32c0cc8 hotplugcall qemu virtio-console-helper 5cc41f5 uclient-fetch for manually downloading sysupgrade related c8140bd cgi-io creates firmware and backup atomically edf517b factoryreset deal with firstboot compatibility f5116b5 pppd: redundant, is implied with shell client type 86be72c updates README 8c08ca1 luci-mod-system: a bit of speculation here 417f4a5 adds /dev/autofs 1ed537c misc.cil: remove 01d014a selinuxsecfile: be more specific 53fca71 rename blockd module b4c9b15 ttyloginserialtermdev: ordering 016c3c1 sysagent traversal of /root is enough d0d7c91 hotplugcall: net/00-sysctl 2821746 adds ttyAMA0 and some incomplete rules for board-detect Run-tested: ilogic-openwrt_one, ipq40xx-generic-linksys_mr8300 Tested-by: Stefan Hellermann <stefan@the2masters.de> Signed-off-by: Dominick Grift <dominick.grift@defensec.nl> Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250116092312.1350223-1-dominick.grift@defensec.nl/ 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