From NAS-Central Zyxel Wiki
Jump to: navigation, search


This is a software repository for embedded devices like routers or network attached storages. About 1800 packages are available at moment of writing this article. Feel free to ask new packages here, if your request will be supported by one or more users, it will be added to repo. Be ready to provide a feedback about package you asked before.


It was founded as Entware project to offer an alternative to very outdated Optware packages. Within five years of development a several Entware forks was born to run on NASes, PCs and new ARM routers. Now x86, x64, MIPS, ARMv5 and ARMv7 forks are merged into Entware-ng. It's maintained by the same team as Entware before.


As installable zypkg

Install MetaRepository, and Entware-ng will show up in the list of installable packages

As self containing USB stick

Download the latest zipfile here, unzip it to a FAT formatted USB stick, plug it in the NAS, and boot the box. After a few minutes Entware-ng will be installed on the stick. During install the NAS needs to have internet access.


  • For the NSA325(-v2) you'll have to use a back USB port.
  • For the NSA-310 Rename nsa310_check_file_C0.Zy_Private to nsa310_check_file_C0, overwriting the original nsa310_check_file_C0.

Loginless telnet daemon

The self containing stick starts a login-less telnet daemon, in case you need it to access a box where the webinterface doesn't start. It's good practise to disable this for security reasons. Make sure you have other shell access, for instance by installing the ssh package, and then disable the telnet daemon:

/opt/etc/init.d/S95LoginlessTelnet stop
chmod a-x /opt/etc/init.d/S95LoginlessTelnet

Shell access

To use Entware-ng you need shell access. You'll need to enable a telnet or ssh service on the NAS for that.

Firmware 5.10

You can do that on the desktop, in 'Control panel->Network->Terminal'.

Firmware 4.80

There is an installable package SSH.


You can use the 3th party package 'Tweaks' to enable the telnet service, or Dropbear to get an ssh server. (You can even install Anyterm, which will give you a shell in a browser.)

If you plan to install the Entware-ng ssh server, you can choose to use the Telnet Backdoor to get one-off access.

Entware-ng Stick

The stick has a loginless telnet daemon running

Client side

On the client you need telnet or ssh client software. For Windows you can use PuTTY for both purposes.

Login as admin or root, using your admin password.

Old kernel support

Entware-ng targets kernel 2.6.32 and newer. Firmware 4.x (or 1.x for the Medion) has an older kernel. To solve that a special set of libc files is available here, which has 2.6.24 support. This is automatically installed, when the installer detects an older kernel. If you ever reinstall (parts of) libc, the 2.6.24 symlinks wil be overwritten, and you'll get 'Kernel too old' messages. In that case you'll have to run /opt/sbin/kernel-2.4.24-support.sh to restore the symlinks. (This script is always run on start of Entware-ng, so you can also reboot the box).

ARMv5 vs. ARMv7

The installer script automatically detects ARMv7 (by executing 'uname -r') and then installs that branch. This means that a self containing stick created on an ARMv5 device can be used on an ARMv7 device, but not the other way around. ARMv5 code can run on an ARMv7 processor, but ARMv7 code cannot run on an ARMv5 processor.

Start time

The zypkg is started by the package manager, at the end of the boot process. The stick is started by usb_key_func.sh early in the boot process. When the stick is started, the harddisk(s) and the /usr tree are not yet mounted.

Release notes


  • Added a 'wait for disks to be mounted' option

20160131zypkg005, 20160131-stick

  • Added a 'self containing usb stick'
  • Solved a minor bug in the zypkg regarding an already existing /opt directory


  • Enhanced logging.
  • Enhanced webinterface. (Dedicated to sos)
  • Added support for the 300 series and the Medion


  • Initial release. (Yes really. The 5.10 firmware doesn't accept a '001' package, because it would be 'too old')