Assorted color lego blocks

Using Entware on Synology NAS

What is Entware?

Entware is a software repository for embedded devices like routers or network attached storages. It is a modern alternative to Optware and was originally designed for use on OpenWRT but has been adapted for use on other distributions.

Why use Entware?

On a Synology NAS you can use so-called Synology add-on packages or Docker to run applications. Just like the Entware packages itself. So why should you use Entware?

  • It will allow you to install over 2500+ packages many of which are not available as a Synology add-on package.
  • In some cases it is a more lightweight and convenient alternative to Docker. You can use it for example to install the easy to use Nano editor that we will use as an example later on.
  • Synology announced the end-of-life for a lot of Synology packages. That could also be a reason to take a look at Entware.

Install Entware on Synology NAS

Entware can be installed on ARM and Intel based Synology NAS models.

You can also check the processor and architecture of your Synology NAS with the following script.

cat /proc/cpuinfo | grep "model name" | uniq
uname -mCode language: Markdown (markdown)

In the case of my Synology NAS model, the output shows an Intel(R) Celeron(R) CPU N3150 processor and x86_64 architecture.

Create the directories on your volume and mount the filesystem.

mkdir -p /volume1/@Entware/opt /opt
mount -o bind /volume1/@Entware/opt /optCode language: Markdown (markdown)

Run install script depending on the architecture (see uname -m output).

For x64.

wget -O - http://bin.entware.net/x64-k3.2/installer/generic.sh | /bin/shCode language: Markdown (markdown)

For armv5.

wget -O - http://bin.entware.net/armv5sf-k3.2/installer/generic.sh | /bin/shCode language: Markdown (markdown)

For armv7.

wget -O - http://bin.entware.net/armv7sf-k3.2/installer/generic.sh | /bin/shCode language: Markdown (markdown)

For armv8 (aarch64).

wget -O - http://bin.entware.net/aarch64-k3.10/installer/generic.sh | /bin/shCode language: Markdown (markdown)

Create a triggered user-defined task in Task Scheduler.

  • DiskStation Manager > Control Panel > Task Scheduler
  • Create > Triggered Task > User Defined Script
    • General
      • Task: Entware
      • User: root
      • Event: Boot-up
      • Pretask: none
    • Task Settings
      • Run Command: (see bellow)
#!/bin/sh

# Mount/Start Entware
mkdir -p /opt
mount -o bind "/volume1/@Entware/opt" /opt
/opt/etc/init.d/rc.unslung start

# Add Entware Profile in Global Profile
if grep  -qF  '/opt/etc/profile' /etc/profile; then
	echo "Confirmed: Entware Profile in Global Profile"
else
	echo "Adding: Entware Profile in Global Profile"
cat >> /etc/profile <<"EOF"

# Load Entware Profile
. /opt/etc/profile
EOF
fi

# Update Entware List
/opt/bin/opkg updateCode language: Bash (bash)

Finally, reboot you Synology NAS.

For more information you can consult the Entware documentation.

Entware package management

Package management is done with opkg.

Run opkg without arguments to see the opkg commands that can be used.

opkgCode language: Markdown (markdown)

You can for example install the Nano editor with the following command.

opkg install nanoCode language: Markdown (markdown)

Start the Nano editor.

nanoCode language: Markdown (markdown)
Nano editor

Remove the Nano editor.

opkg remove nanoCode language: Markdown (markdown)

List available packages.

opkg listCode language: Markdown (markdown)

List installed packages:

opkg list-installedCode language: Markdown (markdown)

And something else you probably do not want to miss out on… 😀

opkg install vitetrisCode language: Markdown (markdown)

Start vitetris.

vitetrisCode language: Markdown (markdown)
Tetris game

And much, much more for you to try.