(「環境の準備-1:基本設定」からの続きです。)
色々なオープンソースをコンパイルしてDiskStationにインストールできるように環境の調えます。とりあえずパッケージ管理システムの「ipkg」をDiskStation DS209+で使えるようにします。
ここからはコマンドラインの作業です。GUIよりもコマンドの方が説明が書きやすい・・・。
以降の手順はSSH(またはTelnet)で接続してrootでログインした状態で作業します。
※rootでログインする際のパスワードはadminに設定したパスワードと同じです。
作業を進める上でデフォルトでインストールされていないコマンド類を補うために「ipkg」を使えるようにします。
DiskStation用のipkgは次のサイトで配布されています。使用機種に応じたディレクトリからbootstrapを取得してインストールすることでipkgが使えるようになります。
実際のインストールは次のようにします。
※記載のURLはDS209+の場合です。使用機種に応じて必要なファイルは異なります。
※他のDiskStationに適合するファイルは「CPUと開発環境の調べ方」を参考にしてください。
1 2 3 4 |
mkdir ~/src cd ~/src wget http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/syno-e500-bootstrap_1.2-7_powerpc.xsh sh syno-e500-bootstrap_1.2-7_powerpc.xsh |
インストールしたら、以下のコマンドを実行してipkgのパッケージリストと本体のアップデートを実行します(upgradeの方は多分何も起こりません)。
1 2 |
ipkg update ipkg upgrade |
ちなみにインストールが終わったら取得したbootstrapのファイルは不要ですので消してOKです。
1 |
rm -f ~/src/syno-e500-bootstrap_1.2-7_powerpc.xsh |
インストール時に作られたipkgのbinにパスを通します。
1 2 |
PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin export PATH |
ipkgなどのパスを設定した「.profile」は以下の通りです。これを「/root/.profile」としてコピーします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# /root/.profile umask 022 PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin export PATH MANPATH=/opt/share/man:/opt/man export MANPATH HOME=/root export HOME TERM=${TERM:-cons25} export TERM PAGER=more export PAGER PS1="[\u@\h \w]# " alias cd..="cd .." alias l="ls -l" alias ll="ls -la | more" alias lll="ls -la | more" |
上記を「profile-root-m1」として保存して、共有フォルダの「extra」にコピーした状態で以下を実行します。
1 2 3 4 5 |
mv /root/.profile /root/.profile-org cp /volume1/extra/profile-root-m1 /root/.profile rm -f /volume1/extra/profile-root-m1 chmod 644 /root/.profile chown root:root /root/.profile |
続いて、DSM 4.1の場合には前記bootstrapをインストールするとDiskStationの再起動とシャットダウンに問題が生じるため、次の調整を行います(もとネタはSynologyドイツのwikiより)。
まず「/etc/rc.local」の次の行をコメントアウトして「/etc/rc.optware」を無効にします。
1 2 |
修正前:[ -x /etc/rc.optware ] && /etc/rc.optware start 修正後:#[ -x /etc/rc.optware ] && /etc/rc.optware start |
変更後の「rc.local」は以下の通りです(実際には変更によってrc.localの中身はカラの状態になるためファイル名を変更するだけでもOKかも)。
1 2 3 4 5 6 |
#!/bin/sh # Optware setup #[ -x /etc/rc.optware ] && /etc/rc.optware start exit 0 |
上記を「rc.local-m1」として保存して、共有フォルダの「extra」にコピーした状態で以下を実行します。
1 2 3 4 5 |
mv /etc/rc.local /etc/rc.local-org cp /volume1/extra/rc.local-m1 /etc/rc.local rm -f /volume1/extra/rc.local-m1 chmod 755 /etc/rc.local chown root:root /etc/rc.local |
次にbootstrapのインストールの際に、bindオプション付きで「/opt」にマウントされた「/volume1/@optware」ディレクトリをアンマウントします。そして、代わりにシンボリックリンクを設定して「/opt」を生かします。この作業をやらずにbind状態でマウントしたままだと再起動&シャットダウンに支障が出ますので要注意です(この小さな問題でかなり悩んだ)。
1 2 3 |
umount -f /opt rm -R /opt ln -s /volume1/@optware /opt |
最後にSynologyドイツのwikiに掲載されていたスクリプト「optware.sh」をコピーします。「optware.sh」は以下の通りです。
(このスクリプトが有効かどうかはいまいち不明・・・しかしSynologyドイツのwikiを信じてコピーしておきます。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
#!/bin/sh # # Optware setup # Alternatives Optware Startup und Shutdown Script #/usr/local/etc/rc.d/optware.sh # case $1 in start) for i in /opt/etc/init.d/S??* ;do # # Ignore dangling symlinks (if any). [ ! -f "$i" ] && continue # case "$i" in *.sh) # Source shell script for speed. ( trap - INT QUIT TSTP set start . $i ) ;; *) # No sh extension, so fork subprocess. $i start ;; esac done ;; # stop) # for i in /opt/etc/init.d/S??* ;do # # Ignore dangling symlinks (if any). [ ! -f "$i" ] && continue # case "$i" in *.sh) # Source shell script for speed. ( trap - INT QUIT TSTP set stop . $i ) ;; *) # No sh extension, so fork subprocess. $i stop ;; esac done ;; # *) echo "Usage: $0 [start|stop]" ;; esac # # End |
上記を「optware.sh-m1」として保存して、共有フォルダの「extra」にコピーした状態で以下を実行します。
1 2 3 4 |
cp /volume1/extra/optware.sh-m1 /usr/local/etc/rc.d/optware.sh rm -f /volume1/extra/optware.sh-m1 chmod 755 /usr/local/etc/rc.d/optware.sh chown root:root /usr/local/etc/rc.d/optware.sh |
この状態で念のためDiskStationを再起動します。
1 |
reboot |
問題なくDiskStationが再起動したらipkgのインストールは完了です(本来Linux環境下において再起動なんてほとんど不要ですが、DiskStationでは再起動しない問題がよく発生したため、こまめに再起動をチェックしてます)。
続いてipkgを使って必要な環境をインストールします。