Anything and everything.
Entware-ng on TS-251+
I’ve had a bit more time to mess around with my NAS as I try to make it less just a storage device and more a private home server. Most of the included server software works just fine, and is even fairly up to date (PHP’s only a few minor rev’s out of date, while Apache is the latest 2.2.*).
I’m still a bit annoyed about the SSH daemon restricting logins to the admin account only. Like most *nix users, I’m not overly fond of the idea of working in the root account, where one typo can hose the system. While it somewhat makes sense given the nature of the device, I’d still prefer the ability to log in as any user I like. Assigned to the proper groups, and with the appropriate security considerations and judicious use of account elevation, there’s no reason not to allow it (although neither
sudo seem to be available in the default firmware).
Enter Entware-ng. I feel like I’m more than a little late to the party, but from what I understand there have been several methods of getting software onto QNAP hardware outside of the QNAP provided Applications installer – Qnapware, Optware, and now Entware-ng.
Entware-ng is a “software repository for embedded devices like routers or network attached storages” that uses the OpenWrt buildroot to bring many (about 1,800) software packages to numerous Linux devices and architectures.
Installing Entware-ng on my TS-251+ was as simple as downloading one package and installing it via the QTS App Centre. The TS-251+ runs x86_64 Linux, but I grabbed the autodetect package and let it do it’s thing.
Entware-ng installs to the
/opt directory, which ends up as a symlink to
/share/CACHEDEV1_DATA/.qpkg/Entware-ng/ (CACHEDEV1_DATA is the root of the internal storage on the NAS). Beneath it, we have all the usual subdirectories like bin, share, etc and so on.
Once installed we can shell into the NAS and manage packages via the opkg package manager (*sigh* another bloody package manager to become familiar with). There’s a list of available packages one can peruse, and it seems to be quite exhaustive. If you need a SSH client, and are on Windows, PuTTY is highly recommended. I usually just use the SSH client available as part of MSYS2. Cygwin also includes a SSH client, as does pretty much every Linux distribution.
At this point I’ve only installed a few packages to test things out, like Midnight Commander and sudo, in preparation for having an unrestricted SSHd. I feel like I’m playing catch-up on the last few years of (embedded) Linux stuff. I haven’t really used Linux outside of running a few VMs here and there (I’ve just setup an ArchLinux VM to try it out) for a number of years now, and beyond occasionally opening up an MSYS2 or Cygwin shell to use some *nixy command, my *nix-fu has become quite weak. Plus, I find that as I get older it gets harder and harder to learn and retain this stuff, or even remember things that I remember knowing!
Next up I’ll have to figure out how to get the Entware-ng SSHd running in place of the stock QNAP version. I’d also like to set the NAS up as a DNS server with dnsmasq servicing requests for my home network, and maybe even a web proxy with squid. I’m also planning to check out the OpenWrt buildroot system, as I know just the very basics about cross-compilation. For the time being, it’s back to the forums and wikis to wrap my head around this stuff. If the process is complicated, I’ll follow up this post with another detailing what steps were necessary. Then again, I might just be thick and making this out to be harder than it is.
Getting old sucks, btw.