IO DATA LANDISK HDL-Gシリーズを apt-get可能に

www.kameda-lab.org 2007/05/29, 2007/02/24

最初に

誰がなんと言おうとここの情報は無保証です。一切を自己責任で行ってください。 メーカー保証もなくなりますことを覚悟の上で読んでください。 忙しいのですみませんが問い合わせにも応じられません。

謝辞・更新情報
山岡さん、いろいろと訂正情報ありがとうございました。 [2007/05/29]


0. 対象

動作確認物件:IO-DATA HDL-G300U / HDL-GX750
(version 見ておくの忘れました‥)

必要スキル:viを使ってテキストファイルをエディットできること
必要環境1:作業用Linuxマシン1台(たぶんknoppixとかで十分)
必要環境2:UTF-8を理解するterminalソフト(UTF対応teratermなど)

1. Telnet化準備

  1. LANDISK本体の内蔵HDDを外す。
  2. Linuxマシンに外したHDDをusbかSATAでか、とにかく繋ぐ。
  3. HDDをマウント。以下例:
    # fdisk -l (とかで今つけたHDDを探す。以下/dev/sdbと仮定。)
    # fdisk /dev/sdb (pコマンドで確認, qコマンドで終了)
    # mkdir -p /mnt/landisk/2
    # mount /dev/sdb2 /mnt/landisk/2
  4. ※もししたいのなら、ここで適当に/dev/sdbのパーティションテーブルと/dev/sdb{1,2,5,6}とをバックアップ。
  5. telnetを一時的に許可設定。
    /mnt/landisk/2/etc/init.d/rc.local の末尾に、次行を追加。
    /usr/sbin/telnetd
  6. network越しの(仮想端末への)rootログインを一時的に許可設定。
    /mnt/landisk/2/etc/securetty のどこかに、次行を追加。
    pts/0
  7. HDDをアンマウント。以下例:
    # umount /dev/sdb2
  8. Linuxマシンから外す。
  9. LANDISK本体内部にHDDを戻す。

2. Telnetでのlogin

注意:ここからrootのパスワードつけるまでは非常に危険なので外部からのアクセスがないところで行うこと。 (※LANDISKのIP addressを192.168.1.123と仮定。)
  1. どこかのマシンから telnet 192.168.1.123 する
  2. login: と出たら root と入れる
  3. すぐにloginできてしまう。
  4. ルートファイルシステムが書き込み不可になっているので一時的に変更。
    # mount -o rw,remount /
  5. rootのパスワードをつける。
    # passwd
    (なんでもどーぞ。telnetやsshでloginするときに以後使用)
  6. busyboxの設定ミスにけりをつける。
    # touch /etc/busybox.conf
ここまででログインして遊べる環境成立。再起動可。

3. Debian Linux 的 apt-get を可能に

  1. 192.168.1.123にrootでloginする。
  2. ルートファイルシステムが書き込み不可になっているかもしれないので一時的に変更。
    # mount -o rw,remount /
  3. dpkgとapt-getが設定ファイルを保存できるように以下の作業を行う。 (/mnt/hda5/landisk以下に設定ファイル群が行くようにする。)
    # cd /mnt/hda5/landisk
    # mkdir dpkg; touch dpkg/status
    # cd dpkg
    # mkdir updates
    # touch available
    # mkdir info
    # ln -s /mnt/hda5/landisk/dpkg /var/lib/dpkg
    # mkdir /mnt/hda5/landisk/apt
    # ln -s /mnt/hda5/landisk/apt /var/lib/apt
    # mkdir /mnt/hda5/landisk/apt-cache
    # ln -s /mnt/hda5/landisk/apt-cache /var/cache/apt
    # cd /var/lib/apt
    # mkdir -p lists/apt
    # touch lists/lock
    # mkdir lists/partial
    # mkdir -p /var/cache/apt/archives/partial
    ※面倒くさい人はこのスクリプト(LANDISK-dpkg-apt-config.bash)を走らせれば上記を行ってくれる(けど危険なので注意)。
  4. dpkg動作確認。以下のコマンド実行してエラーなければOK。
    # dpkg -i
  5. 次回起動時に設定ファイルにアクセスできるように/etc/init.d/rc.localの末尾に以下の行を追加。
    (LANDISKでは/varはメモリ上にあるので再起動すると全部消える)
    ln -s /mnt/hda5/landisk/dpkg /var/lib/dpkg
    ln -s /mnt/hda5/landisk/apt /var/lib/apt
    ln -s /mnt/hda5/landisk/apt-cache /var/cache/apt
  6. dpkgでapt-getのためのpackageをまずインストールしたいので、集めてくる。面倒なので、ここのスクリプト(LANDISK-download-dpkgs.bash)を使えば全部取ってきてくれる(はず)。
    # mkdir -p ~/dpkg-packages
    # wget http://www.kameda-lab.org/_local/imagelab.tsukuba.ac.jp/computer/IO-data-Landisk/dpkg/LANDISK-download-dpkgs.bash
    # bash LANDISK-download-dpkgs.bash
    # ls (下記の*.debが全部そろってますか?)
  7. dpkgでapt-getのためのpackageをインストール。インストールは下記の順ですること!
    # cd ~/dpkg-packages
    # dpkg -i libc6_2.3.5-8_arm.deb (※libcをtest版で一旦ごまかす?)
    # dpkg -i libdb1-compat_2.1.3-7_arm.deb
    # dpkg -i libgcc1_3.4.3-13sarge1_arm.deb
    # dpkg -i gcc-3.3-base_3.3.5-13_arm.deb
    # dpkg -i libstdc++5_3.3.5-13_arm.deb
    # dpkg -i libncurses5_5.4-4_arm.deb
    # dpkg -i dselect_1.10.28_arm.deb
    # dpkg -i dpkg_1.10.28_arm.deb
    # dpkg -i libc6_2.3.2.ds1-22sarge4_arm.deb (※最後にlibcを安定版に差し替える?)
    面倒な人はこのスクリプトが使えるかも。
  8. apt-getの動作準備完了。いろいろ古いので、最新版をおねだりする。 ここからはインターネット接続必要。(相当時間かかります)。
    # apt-get update
  9. apt-getによるapt関係の更新。
    # apt-get install apt
    # apt-get install apt-utils

4. apt-get ready!

ここまでくればなんでもapt-getで可能です。 気が済んだら、ユーザエントリ作って、/etc/init.d/rc.localのtelnetdをコメントアウトして、/etc/securettyからpts/0を外しましょう。 これでもう立派に普通のLinux+LANDISKです。
(ちょっと疲れたので投げやり)

6. 参考文献

HDL-Gぷちハック手順
HDL-G Hack
HDL-G320Rでapt-getとdpkg
他にもあったかも知れませんが今思い出せないのです‥。 いやあ、先人がおられるっていいものですね。感謝。
kameda @ 筑波大学