2019-10-23

LS-AV1.0TL/A と LS210D に ipkg をインストール

LS-AVL には apt は入っているものの、これは仕組みをバッファローが使っているだけで、リポジトリもローカルだし、Debian の Stable を設定しても使えません。


かといって dpkg は依存関係を含めて処理するのは荷が重いし、リポジトリもうまく認識されませんので実質的に使えません。



ipkg は少し古いのですが、インストールできてパッケージもいくつかインストールできました。



作業用ディレクトリに ipkg のインストール用シェルを wget します。
これを実行して ipkg を落とし込みます。

# cd /work
# wget http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/teraprov2-bootstrap_1.2-7_arm.xsh
# sh teraprov2-bootstrap_1.2-7_arm.xsh
Optware Bootstrap for teraprov2.
Extracting archive... please wait
bootstrap/
bootstrap/bootstrap.sh
bootstrap/ipkg-opt.ipk
bootstrap/ipkg.sh
1224+1 records in
1224+1 records out
bootstrap/optware-bootstrap.ipk
bootstrap/wget.ipk
Creating temporary ipkg repository...
Installing optware-bootstrap package...
Unpacking optware-bootstrap.ipk...Done.
Configuring optware-bootstrap.ipk...Modifying /etc/init.d/rcS
Done.
Installing ipkg...
Unpacking ipkg-opt.ipk...Done.
Configuring ipkg-opt.ipk...Done.
Removing temporary ipkg repository...
Installing wget...
Installing wget (1.12-2) to root...
Configuring wget
Successfully terminated.
Creating /opt/etc/ipkg/cross-feed.conf...
Setup complete.



/opt/etc/ipkg.confvi で編集して次のソース(src)を末尾に追加します。
                                                                                       
src cs08q1 http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/                          




あとは任意のパッケージをインストールできます。

最初に最新化をしますので次のようにします(結果的には不要でしたが)。


# ipkg update
# ipkg upgrade
Nothing to be done
Successfully terminated.






パッケージは /opt/bin 配下に配置されます。


パッケージの一覧は "ipkg list" で得られます。



主なものを抜粋すると以下のようなものがあります(アルファベット順で apache の前にもありますし、後ろも asterisk18 との間にも、結構たくさんあります)。

  apache 2.2.20-1
  asterisk18
  avahi
  bash
  binutils
  busybox
  cups
  dhcp
  dict
  diffstat
  diffutils
  dnsmasq
  emacs22.3-1
    ・
  ・

 


また、インストールしたパッケージは "ipkg list_installed" で表示されます。

インストールに際しては、最初に "ipkg update" でリポジトリを読み込みます。

その後で "ipkg install [パッケージ名]" でインストールします。




とりあえずインストールしたパッケージは、次のものです。


 zsh  less  file  vim  gcc  make  nano  binutils 


試しに

# nano /etc/syslog.conf 

としてみると、ちゃんと nano の編集画面になっています。










オリジナルの LS-AVL には無いパッケージをインストールできる環境がやっとできました。



openvpn などもありますので、結構遊べるかも。


syslog 関係では rsyslog はありませんが、syslog-ng はあります。


ですので、大抵のことはできそうですし、gcc / make も入れましたからソースから作ることもできます。







【2019-10-24 追記】


同じやり方で「ネイティブ LS210D」にも ipkg はインストールできます。




ipkg をインストールするとなぜか、/dev/sda2 が / (root) のみならず /opt にもマウントされます。 

でも /etc/fstab には /opt のマウント設定はされません。

 [root@LS210DF58 /]# df -h
 Filesystem                Size      Used Available Use% Mounted on
 udev                     10.0M         0     10.0M   0% /dev
 /dev/sda2                 4.6G    903.4M      3.5G  20% /
 tmpfs                   121.1M     84.0K    121.0M   0% /tmp
 /dev/ram1                15.0M     96.0K     14.9M   1% /mnt/ram
 /dev/sda1               946.4M    215.8M    683.0M  24% /boot
 /dev/disk1_6            917.8G      1.5G    916.4G   0% /mnt/disk1
 /dev/sda2                 4.6G    903.4M      3.5G  20% /opt ➡ ココ
 [root@LS210DF58 /]#

 

 


【2019-10-27  追記】


/dev/sda2 に /opt がマウントされる仕組みがわかりました。


まず、ipkg の実際のインストール場所は /mnt/array1/.optware です。
これを /opt にマウントしています。


実際には起動時のシェルである /ete/init.d/rcS の最終行に optware シェルを呼び出す記述が追加されます(ipkg インストール時に)。


optware シェルの中では、" mount  -o  bind  /mnt/array1/.optware  /opt " を実行しており、この結果 /opt に実態のあるディレクトリ( " /mnt/array1/.optware " )がマウントされます。


これを " df -h " で見てみると、上記のように

   /dev/sda2                 4.6G    903.4M      3.5G  20% /opt

と表示されます。

起動時のシェルによるマウントなので、/etc/fstab では定義されていません。

つまり、/dev/sda2 にマウントしているというよりは、上記のような仕組みで /opt にマウントされた結果  " df -h " では /opt がある /dev/sda2 にマウントポイントがあるかのように表示された、ということです。

シンボリックリンクではなくディレクトリにマウントする、という方法を取っているようですが、なぜかはまだわかっていません。



------------------------------

パッケージが新たにインストールできるならば、Debian Server にしなくても Server として使うことができます。


Debian ほどにはパッケージが揃ってはいないとはいえ、大抵のことはできてしまいます。



「ネイティブ LS210D」ですから、元々の NAS 機能はまったく制約を受けません。

したがって DTCP-IP も使えます。


Debian Server 化するとこの DTCP-IP が使えなくなっていました。

これは DTCP-IP のライセンスの関係で、フリーライセンスが存在しないためです。




ほかの LinkStation は持っていませんのでわかりませんが、おそらく同じ方法で ipkg のインストールが可能なのではないかと思われます。












6 件のコメント:

Unknown さんのコメント...

こんにちは。
記事を拝見しました。
当方LS510Dを使用しています。
sh teraprov2-bootstrap_1.2-7_arm.xshを実行すると、
mkdir: cannot create directory `/mnt/array1': Read-only file systemとなり正常終了しません。
/mntが Read-onlyのようです。
知識不足で申し訳ありませんが、ipkgのインストール場所を変更するなど対策はありますでしょうか。
よろしくお願いいたします。

bike86-3 さんのコメント...

おはようございます。

/mnt に対して chmod で書き込み属性を与えてみてはいかがでしょうか。

ipkg は /mnt/array1/.optware 配下に置かれます。
その時のディレクトリの読み書き実行属性が合わないのだと思われます。

Unknown さんのコメント...

ご回答ありがとうございます。
その後/mnt,/optをtmpfsでmountするなど色々試しましましたが、"/"自体がRead-onlyのため、/usr以下にに展開することができずエラー終了します。
mountコマンドで"/"は以下のようになります。
31:01 on / type squashfs (ro,relatime)

元々は、cronを設定したいのですが、エディタが入っていないので、viなどのエディタを入れるのが目的でした。
LS210Dでは最初からエディタを使うことができるのでしょうか。

bike86-3 さんのコメント...

chmod で属性変更ができないのでしょうか。

vi は最初から使えます。

資格変更なら chown でディレクトリの所有者・アクセス権を変更して chmod で書き込み属性を与えればいいのではないでしょうか。

Unknown さんのコメント...

"/"自体がRead-onryでマウントされていますので、chmodで変更できません。
# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 122496 122496 0 100% /
/dev/root 122496 122496 0 100% /
devtmpfs 106364 0 106364 0% /dev
ubi:etc 13532 3160 10372 24% /usr/local/etc
ubi1:misc 57340 14784 42556 26% /usr/local/dixim
ubi:etc 13532 3160 10372 24% /etc
また、vi,nano,edなど入っていないようです。

モデルで違うようです。

bike86-3 さんのコメント...

そうですか、モデルによって差異があるのでしょうか。
私の場合は vi は入っていましたが、nano はそ ipkg でインストールしました。