Skip to content
MC Pat edited this page Jan 29, 2022 · 2 revisions

Welcome to the UI-Ware wiki!

Table of Contents

UI-Ware is a software repository for embedded devices which use the Linux kernel, primarily routers and network attached storages. It has long been the practice of manufacturers for these devices to "overpower" them relative to the functions they are designed to perform. (It's generally more profitable to provide the extra computational margin than bear the cost of increased support for those who more heavily tax them.) Installing Entware can allow users to take advantage of this extra computing power by adding software to the device which permits it to perform new tasks or provide other features besides those they were marketed for, or simply to perform those functions better.


Over 2,500 packages are currently available, ranging from language interpreters like Python v3 and Perl v5 to the most fundamental Unix-like tools such as grep, awk and sed. All packages are compiled for use on eight of the most commonly used architecture toolchains to the extent which they are compatible; expand the collapsed section below to see a table which lists all of the architecture and toolchain combinations with links to a searchable package index for each.

Table of Entware-supported architectures with package index links
Architecture Kernel Version GNU C Library Version Package Index
armv7sf 2.6 2.23 https://bin.entware.net/armv7sf-k2.6/Packages.html
x86 2.6 2.23 https://bin.entware.net/x86-k2.6/Packages.html
x86_64 3.2 2.27 https://bin.entware.net/x64-k3.2/Packages.html
armv5sf 3.2 2.27 https://bin.entware.net/armv5sf-k3.2/Packages.html
armv7sf 3.2 2.27 https://bin.entware.net/armv7sf-k3.2/Packages.html
mipssf 3.4 2.27 https://bin.entware.net/mipssf-k3.4/Packages.html
mipselsf 3.4 2.27 https://bin.entware.net/mipselsf-k3.4/Packages.html
aarch64 3.10 2.27 https://bin.entware.net/aarch64-k3.10/Packages.html

History

Entware began from a desire to produce an alternative to what, even then, was already a very outdated project named Optware. Not even five years later, thanks to steady development on the tooling that built the packages and the natural progression of device hardware, several additional forks were born to run on NASes, PCs and newer ARM routers. In time, the x86, x86_64, MIPS, ARMv5 and ARMv7 forks merged back together into Entware-ng, while the repositories serving devices with kernels newer than 2.6 remained separate as Entware-ng-3x. Once it was feasible to build all the packages using the same tools, the project finally came full circle with the merger of Entware-ng and Entware-ng-3x back into a single, unified Entware. Despite the various name changes, the projects have always been maintained by the same team of developers.

New package requests

Feel free to open a new package request if you think there is an open-source project that isn't included in the repository that would make a worthwhile addition. We do ask that you search first to see if it's been requested before, and if so and a reason was given for it not being possible or within the scope of the project, not to duplicate it. Provided your request can successfully meet the project requirements shown below without requiring extensively customizing the upstream build system, it likely will be added at the next package refresh. Please watch for updates on your request and be ready to answer questions and provide feedback about it as needed.

  • No similar package is current in the repository, and/or this one has some noteworthy new features.
  • The project is actively developed (or at the very least had commits added in the last five years).
  • There are obvious use cases for it by the userbase at-large besides my own.
  • I'm ready to beta test the package on my platform [e.g. mipselsf-k3.4] and provide feedback on it prior to its release.

Installation

See the Platform-specific installation guides section in the sidebar on the right for available documentation on using Entware on your device. If you are using a device which is not covered there, make sure these most basic requirements are met:

  • The output of running uname -m on your device's default shell is one of: armv5, armv7l, aarch64, mips, mipsel, x86 or x86_64.
  • The output of stat -c '%a' /opt is greater than or equal to 600 (either as a part of the rootfs or an external drive).
  • A mechanism exists for the device to automatically execute /opt/etc/init.d/rc.unslung start each time it boots and /opt/etc/init.d/rc.unslung stop before any shutdowns.
  • The ability to source /opt/etc/profile when connecting to interactive ssh/telnet sessions. (recommended, but not required)

Usage

Entware uses the opkg package manager (a fork of Optware's ipkg), developed and utilized by the OpenWrt open-source router firmware, and who also offer some in-depth documentation for it.

Example

Here's a step-by-step walkthrough of finding and installing the packages for the Transmission BitTorrent client's web interface (along with its dependencies) from the Entware repositories, to give you an idea of how to use it. The steps below are indicative of the following thought process on the part of the user:

  1. Start by fetching the current package list from the repository to make sure that the information we're about to base our decisions on is accurate and complete.
  2. Display a list of all packages in the repository that begin with the word transmission.
  3. Present the details of the transmission-web package, notably its size, status and list of dependencies so we can be relatively sure of the result of choosing to install it.
  4. Install the package and any of its dependencies which aren't already installed (in this case, the transmission-daemon package).
# opkg update
  Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz.
  Updated list of available packages in /opt/var/opkg-lists/entware.

# opkg list transmission*
  transmission-cfp-cli - 2.77plus-20210309-1 - CLI utilities for transmission.
  transmission-cfp-daemon - 2.77plus-20210309-1 - Transmission is a simple BitTorrent client.
   It features a very simple, intuitive interface
   on top on an efficient, cross-platform back-end.
   This package contains the daemon itself.
  transmission-cfp-remote - 2.77plus-20210309-1 - CLI remote interface for transmission.
  transmission-cfp-web - 2.77plus-20210309-1 - Webinterface resources for transmission.
  transmission-cli - 3.00-17 - CLI utilities for transmission.
  transmission-daemon - 3.00-17 - Transmission is a simple BitTorrent client.
   It features a very simple, intuitive interface
   on top on an efficient, cross-platform back-end.
   This package contains the daemon itself.
  transmission-remote - 3.00-17 - CLI remote interface for transmission.
  transmission-web - 3.00-17 - Webinterface resources for transmission.
  transmission-web-control - 2021-09-25-4b2e1858-2 - Transmission Web Control is a custom Web UI for Transmission.

# opkg info transmission-web
  Package: transmission-web
  Version: 3.00-17
  Depends: libc, libssp, librt, libpthread, transmission-daemon
  Status: unknown ok not-installed
  Section: net
  Architecture: all
  Size: 223710
  Filename: transmission-web_3.00-17_all.ipk
  Description: Webinterface resources for transmission.

# opkg install transmission-web
  Installing transmission-web (3.00-17) to root...
  Downloading http://bin.entware.net/mipselsf-k3.4/transmission-web_3.00-17_all.ipk.
  Installing transmission-daemon (3.00-17) to root...
  Downloading http://bin.entware.net/mipselsf-k3.4/transmission-daemon_3.00-17_mipselsf.ipk.

See the Application-specific tips pages from the sidebar at right to explore other popular use cases.

⚠️ Package upgrade notes

In some rare cases you can fall into issue when new package wont start:

# opkg update
# opkg upgrade
# minidlna
  minidlna: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

Unfortunately, opkg isn't sophisticated enough to react to the fact that the minidlna dependencies have changed and that minidlna should be re-installed too. Instead, you have to do that manually:

opkg --autoremove remove minidlna
opkg install minidlna

Also, some new packages can provide the same content as installed one:

# opkg upgrade
  Installing libiconv-full2 (1.11.1-4) to root...
  Downloading http://bin.entware.net/mipselsf-k3.4/libiconv-full2_1.11.1-4_mipsel-3.4.ipk
  Collected errors:
   * check_data_file_clashes: Package libiconv-full2 wants to install file /opt/lib/libiconv.so.2
          But that file is already provided by package  * libiconv-full
   * check_data_file_clashes: Package libiconv-full2 wants to install file /opt/lib/libiconv.so.2.4.0
          But that file is already provided by package  * libiconv-full

Remove it manually and run opkg upgrade again:

# opkg --force-depends remove libiconv-full
  Removing package libiconv-full from root...
# opkg upgrade
  Installing libiconv-full2 (1.11.1-4) to root...
  Downloading http://bin.entware.net/mipselsf-k3.4/libiconv-full2_1.11.1-4_mipsel-3.4.ipk
  Configuring libiconv-full2.

Internals

Entware uses OpenWrt buildroot to compile packages. Some of packages came from OpenWrt, others are unique. We sync our sources with OpenWrt feeds and update our own packages approx. once per month, catching bugs and adding some enhancements all other time.

See how to Compile packages from sources if you wish to edit or add packages.

Every binary from the repo uses no library from outside the /opt folder. No kernel modules are provided as long as they may be (and will be!) incompatible with current firmware.

Contacts

There is no any central forum for UI-Ware users, different devices are discussed in separate threads: