Roger Pueyo Centelles
This patch removes CONFIG_MTD_SPI_NOR_USE_4K_SECTORS from the default symbols for the ath79/mikrotik target. MikroTik devices hold some of their user-configurable settings in the soft_config partition, which is typically sized 4 KiB, of the SPI NOR flash memory. Previously, in the ar71xx target, it was possible to use 64 KiB erase sectors but also smaller 4 KiB ones when needed. This is no longer the case in ath79 with newer kernels so, to be able to write to these 4 KiB small partitions without erasing 60 KiB around, the CONFIG_MTD_SPI_NOR_USE_4K_SECTORS symbol was added to the defaults. However, this ended up making sysupgrade images which were built with 64 KiB size blocks not to keep settings (e.g., the files under /etc/config/) over the flashing process. Using 4 KiB erase sector size on the sysupgrade images (by setting BLOCKSIZE = 4k) allows keeping settings over a flashing process, but renders the process terribly slow, possibly causing a user to mistakenly force a manual device reboot while the process is still on- going. Instead, ditching the 4 KiB erase sectors for the default 64 KiB erase size provides normal SPI write speed and sysupgrade times, at the expense of not being able to modify the soft_config partition (which is rarely a required thing). An OpenWrt patch for MTD_SPI_NOR_USE_4K_SECTORS_LIMIT may once have allowed to use different per-partition erase sector sizes. Due to changes on recent kernels it now only works on a per-device basis. Also, partial eraseblock write can be performed in ath79 with kernels 5.4 and lower, by copying the blocks from the 64 KiB, erasing the whole sector and restoring those blocks not meant to be modified. A kernel bump had that patch broken for a long time, but got fixed in
|2 months ago|
|.github||3 years ago|
|LICENSES||8 months ago|
|config||7 days ago|
|include||2 days ago|
|package||1 day ago|
|scripts||2 weeks ago|
|target||4 hours ago|
|toolchain||3 days ago|
|tools||1 day ago|
|.gitignore||4 months ago|
|BSDmakefile||9 months ago|
|COPYING||8 months ago|
|Config.in||9 months ago|
|Makefile||8 months ago|
|README.md||3 days ago|
|feeds.conf.default||6 months ago|
|rules.mk||1 month ago|
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.
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.
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
./scripts/feeds update -ato obtain all the latest package definitions defined in feeds.conf / feeds.conf.default
./scripts/feeds install -ato install symlinks for all obtained packages into package/feeds/
make menuconfigto select your preferred configuration for the toolchain, target system & firmware packages.
maketo 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
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).
For a list of supported devices see the OpenWrt Hardware Database
- Forum: For usage, projects, discussions and hardware advise.
- Support Chat: Channel
- Bug Reports: Report bugs in OpenWrt
- Dev Mailing List: Send patches
- Dev Chat: Channel
OpenWrt is licensed under GPL-2.0