Convert Figma logo to code with AI

openwrt logoopenwrt

This repository is a mirror of https://git.openwrt.org/openwrt/openwrt.git It is for reference only and is not active for check-ins. We will continue to accept Pull Requests here. They will be merged via staging trees then into openwrt.git.

22,214
11,097
22,214
3,300

Top Related Projects

30,604

Lean's LEDE source

An opensource OpenWrt variant for mainland China users.

Openwrt for Nanopi R1S R2S R4S R5S 香橙派 R1 Plus 固件编译 纯净版与大杂烩

Quick Overview

OpenWrt is an open-source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic. It provides a fully writable filesystem with package management, allowing users to customize the device software completely.

Pros

  • Highly customizable and flexible for various networking needs
  • Large community support and active development
  • Wide range of supported devices and hardware platforms
  • Extensive package repository for additional functionality

Cons

  • Steep learning curve for beginners
  • Potential for bricking devices if not installed or configured correctly
  • Some advanced features may require technical networking knowledge
  • Not all hardware features may be supported on all devices

Getting Started

To get started with OpenWrt:

  1. Check if your device is supported: https://openwrt.org/supported_devices
  2. Download the appropriate firmware image for your device
  3. Flash the firmware to your device (method varies by device)
  4. Access the OpenWrt web interface (LuCI) at 192.168.1.1 (default IP)
  5. Configure basic settings and install additional packages as needed

For detailed instructions, visit: https://openwrt.org/docs/guide-user/start

Competitor Comparisons

30,604

Lean's LEDE source

Pros of LEDE

  • More frequent updates and active development
  • Includes additional packages and features not found in OpenWrt
  • Optimized for Chinese users with region-specific improvements

Cons of LEDE

  • Less stable than OpenWrt due to rapid development cycle
  • May have compatibility issues with some hardware due to modifications
  • Documentation primarily in Chinese, which can be challenging for non-Chinese users

Code Comparison

OpenWrt:

static int default_preinit(void)
{
    do_sysinfo();
    sysinit();
    return 0;
}

LEDE:

static int default_preinit(void)
{
    do_sysinfo();
    sysinit();
    set_lede_specific_options();
    return 0;
}

The LEDE code includes an additional function call set_lede_specific_options(), which likely configures LEDE-specific features not present in the original OpenWrt codebase.

Both projects are based on the same core, but LEDE offers more frequent updates and additional features, particularly for Chinese users. However, this comes at the cost of potentially reduced stability and compatibility. OpenWrt remains the more conservative and widely supported option, while LEDE caters to users seeking cutting-edge features and optimizations.

An opensource OpenWrt variant for mainland China users.

Pros of ImmortalWrt

  • More frequent updates and active development
  • Includes additional packages and features not found in OpenWrt
  • Better support for some specific hardware platforms

Cons of ImmortalWrt

  • Potentially less stable due to rapid development cycle
  • Smaller community and less documentation compared to OpenWrt
  • May have compatibility issues with some OpenWrt packages

Code Comparison

OpenWrt:

config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

ImmortalWrt:

config interface 'loopback'
    option device 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

The main difference in this example is the use of 'device' instead of 'ifname' in ImmortalWrt, reflecting a change in network configuration syntax.

Both projects are open-source firmware based on the Linux kernel for embedded devices. ImmortalWrt is a fork of OpenWrt, aiming to provide more features and frequent updates. While ImmortalWrt may offer some advantages in terms of new features and hardware support, OpenWrt generally provides a more stable and well-documented experience with broader community support.

Openwrt for Nanopi R1S R2S R4S R5S 香橙派 R1 Plus 固件编译 纯净版与大杂烩

Pros of nanopi-openwrt

  • Specifically optimized for NanoPi devices, potentially offering better performance
  • May include custom patches and features tailored for NanoPi hardware
  • Likely to have a more focused and streamlined codebase for NanoPi devices

Cons of nanopi-openwrt

  • Smaller community and potentially less frequent updates compared to the main OpenWrt project
  • May lack support for a wider range of devices and features available in the main OpenWrt repository
  • Could have compatibility issues with some packages or extensions designed for standard OpenWrt

Code Comparison

While a detailed code comparison would require in-depth analysis, here's a hypothetical example of how device-specific optimizations might differ:

nanopi-openwrt:

#ifdef CONFIG_TARGET_nanopi
    #define NANOPI_SPECIFIC_FEATURE 1
    // NanoPi-specific optimizations
#endif

openwrt:

#ifdef CONFIG_TARGET_generic
    // Generic device configurations
#endif

The nanopi-openwrt repository likely contains more NanoPi-specific configurations and optimizations, while the main OpenWrt repository maintains a broader, more generic approach to support a wide range of devices.

Pros of helloworld

  • Focused on providing specific network tools and proxy solutions
  • Regularly updated with new features and improvements
  • Easier to integrate into existing OpenWrt setups for advanced users

Cons of helloworld

  • Limited scope compared to the full OpenWrt ecosystem
  • May require more manual configuration and troubleshooting
  • Less comprehensive documentation and community support

Code Comparison

helloworld:

local shadowsocksr = "shadowsocksr"
local sid = arg[1]
local uuid = luci.sys.exec("cat /proc/sys/kernel/random/uuid")

OpenWrt:

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>

The code snippets highlight the different focus areas of the two projects. helloworld's code is more specific to network proxy configurations, while OpenWrt's code demonstrates its broader system-level functionality.

helloworld is a collection of network tools and proxy solutions that can be integrated into OpenWrt systems. It offers specialized features for users who need advanced networking capabilities. However, it has a narrower focus compared to the full OpenWrt project, which provides a complete Linux-based operating system for embedded devices.

OpenWrt offers a more comprehensive solution with wider hardware support, extensive documentation, and a larger community. It's suitable for a broader range of use cases but may require more resources to set up and maintain for specific networking needs.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

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.

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

License

OpenWrt is licensed under GPL-2.0