Improve Synology DS409slim shell using ipkg

       400 words, 2 minutes

I own a Synology DS409slim on which I have enabled SSH. The primary idea was just to have a look behind the hoods. This is quite simple: browse to the configuration panel, select the terminal services section and active the SSH daemon.

But once there, you’re stuck with a basic shell and a few commands. No less, no grep, no bzip2, no perl… Synology provides an official packages repository that provides a few extra features ; like VPN, LDAP and such ; but not so much to get a “complete” UNIX environment. The savior here is called “ipkg”. Quoting Wikipedia: “(…) the Itsy Package Management System (ipkg), is a lightweight package management system designed for embedded devices that resembled Debian’s dpkg. (…)”. It provides a bunch a GNU-like tools and it runs on the Synology!

To install ipkg on the Synology DS409slim, you first have to know which processor it uses. The DS409slim uses the Marvell 88F6281 SoC with Sheeva Technology and ships the Marvell Kirkwood mv6281 ARM Processor. Once you know that, all you have to do is log on the Syno, grab the correct bootstrap and install it:

  $ ssh root@ds409s
  # cd /volume1/@tmp
  # wget http://goo.gl/F0uTB
  # sh syno-mvkw-bootstrap_1.2-7_arm.xsh
  # rm syno-mvkw-bootstrap_1.2-7_arm.xsh
  # exit

Then you only have to run ipkg update to synchronize your local database with the online available packages. You can learn about available packages using ipkg list and/or ipkg search SOMETHING.

The first packages I installed were:

  # ipkg install less
  # ipkg install grep
  # ipkg install man
  # ipkg install dstat
  # ipkg install hdparm
  # ipkg install sysstat
  # ipkg install procps

From there, you can get statistics informations (sysstat provides iostat, mpstat, …), read the manual pages and look for things:

  # ipkg list | grep perl
  cups-pdf - 2.5.1-1 - CUPS-PDF provides a PDF Writer backend to CUPS. This can be used as a virtual printer in a paperless network.
  microperl - 5.10.0-1 - Microperl.
  perl - 5.10.0-6 - Practical Extraction and Report Language.
  perl-algorithm-diff - 1.1901-2 - Algorithm-Diff - Compute *intelligent* differences between two files / lists.
  perl-appconfig - 1.56-3 - Perl5 module for reading configuration files and parsing command line arguments.
  perl-archive-tar - 1.38-1 - Archive-Tar - The Perl Database Interface by Tim Bunce.
  perl-archive-zip - 1.16-3 - Archive-Zip - Provide an interface to ZIP archive files.
  (...)

That’s All Folks!

Source: How to install ipkg