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 件のコメント:

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

    返信削除
  2. おはようございます。

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

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

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

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

    返信削除
    返信
    1. chmod で属性変更ができないのでしょうか。

      vi は最初から使えます。

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

      削除
    2. "/"自体が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など入っていないようです。

      モデルで違うようです。

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

      削除