2016/06/28(火)Synology DS216j Optware IPKG 導入

PC::NAS

2016/06/29追記: 今はEntware-ngを入れた方が良さそうです。

Synology DS216j Optware IPKG 導入

QNAP TS-219P+の時と同じように、パッケージ管理ツールOptware IPKGを導入してみます。

DSMのパッケージセンターにはいろいろ(Git/Subversin/Perl/PHPなど)揃っているので、あまり必要ない気もしますが、何かの機会に使うかもしれないので。

DS216j_0628_01.png

SSHサービス有効化

Synology DS216j セットアップのその他設定にちらっと書いてますが、作業のためにSSHサービスを有効にしておきます。

  • コントロールパネル→端末とSNMPから設定
    DS216j_0628_02.png
    • 詳細設定のセキュリティレベルは高にしても接続できそうなら高で。

Optware IPKGインストール

QNAPと違って(調べてみたら現在はQNAPのIPKGは既にメンテされなくなったみたいです、後述)パッケージセンターからインストールできたりはしないので、自力で導入します。

DS216jのCPUは「Marvell Armada 385 88F6820」なのでこれに適合するoptware-bootstrapが必要ですが、探してみると下記のページが見つかりました。

Marvell Armada向けのoptware-bootstrapは存在しないけど、Marvell Kirkwoodと互換性があるのでMarvell Kirkwoodのoptware-bootstrapが流用できるようです。

というわけでやってみます。(上記ページの内容と完全に同じですが。)

  1. 適当なSSHクライアントで接続します。
  2. 作業前にroot権限を取っておきます。
    sudo -i
    
  3. optwareルートディレクトリを作成。
    mkdir /volume1/@optware
    mkdir /opt
    mount -o bind /volume1/@optware /opt
    
  4. IPKGをセットアップ。
    feed=http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable
    ipk_name=`wget -qO- $feed/Packages | awk '/^Filename: ipkg-opt/ {print $2}'`
    wget $feed/$ipk_name
    tar -xOvzf $ipk_name ./data.tar.gz | tar -C / -xzvf -
    mkdir -p /opt/etc/ipkg
    echo "src cross $feed" > /opt/etc/ipkg/feeds.conf
    
  5. PATHを設定:/etc/profileを(viなどで)開き、最終行に以下を追記します。
    PATH=/opt/bin:/opt/sbin:$PATH
    
  6. 再起動しても使えるようにinitスクリプトを設定します。
    • /etc/rc.localを以下の内容で作成して、実行権限(chmod 755)をつけます。
      #!/bin/sh
      
      # Optware setup
      [ -x /etc/rc.optware ] && /etc/rc.optware start
      
      • あらかじめ共有フォルダにrc.localを準備しておけば、コピーするだけで済みます。
        #共有フォルダdataにファイルを準備して
        cp /volume1/data/rc.local /etc/rc.local
        chmod 755 /etc/rc.local
        
    • /etc/rc.optwareを以下の内容で作成して、実行権限(chmod 755)をつけます。
      #!/bin/sh
      
      if test -z "${REAL_OPT_DIR}"; then
      # next line to be replaced according to OPTWARE_TARGET
      REAL_OPT_DIR=/volume1/@optware
      fi
      
      case "$1" in
          start)
              echo "Starting Optware."
              if test -n "${REAL_OPT_DIR}"; then
                  if ! grep ' /opt ' /proc/mounts >/dev/null 2>&1 ; then
                      mkdir -p /opt
                      mount -o bind ${REAL_OPT_DIR} /opt
                  fi  
              fi
          [ -x /opt/etc/rc.optware ] && /opt/etc/rc.optware
          ;;
          reconfig)
          true
          ;;
          stop)
              echo "Shutting down Optware."
          true
          ;;
          *)
              echo "Usage: $0 {start|stop|reconfig}"
              exit 1
      esac
      
      exit 0
      
      • あらかじめ共有フォルダにrc.optwareを準備しておけば、コピーするだけで済みます。
        # 共有フォルダdataにファイルを準備して
        cp /volume1/data/rc.optware /etc/rc.optware
        chmod 755 /etc/rc.optware
        
  7. これでIPKGが使えるようになります。
    ipkg -v
    ipkg version 0.99.163
    

Optware IPKGはもう古い?

QNAPではOptware IPKGはもう提供されておらず、Entwareに置き換わっているようです。→QNAP firmware 4.1.4以降にgccを入れる - Qiita

そして、Entware-eg(Entwareとは別物?)はSynology NASへもインストールできるみたいです。

Entware-ngにはgcc入ってるのかなあ。また今度試してみるかもしれません。