6/06/2011

玄箱/玄箱HGにdebian 6.0.1 (Squeeze)をインストール

さらに、役に立たない内容。覚え書き。よっぽど、KVMのネタをのせた方がいいのかもしれないけど、今回はパス。

loader.oを使って、debian 6.0.1を作成
hda1には、デフォルト(玄人の)linuxも格納しておく。2GB


用意するもの
ディスクの入った玄箱/玄箱HG
ディスクは、kernelコンパイルも行う場合は、1GB以上必要。パッケージを追加することを考えると4GB以上。
(もろもろで最低6GB以上が望ましい。)
残りはユーザ用


 (付属のCD-ROMは不要)
ファイル
以下のファイルをダウンロードし、ftp で玄箱に転送して下さい。カーネルとカーネルモジュール以外のファイルは、玄箱と玄箱/HG とで共通で使えます。
kuroutoshikou web page
玄箱のファームウェア kuro_102.zip
http://www.kuroutoshikou.com/products/kuro-box/kuro_102.zip
   玄箱HGのファームウェア kurog101.zip
http://www.kuroutoshikou.com/products/kuro-box/kurog101.zip

    Revulo's Laboratory
        debian-lenny-installer-kuroBOX-20090317.tgz
http://download.revulo.com/kuro-box/debian-lenny-installer-kuroBOX-20090317.tgz

        debian-lenny-kuroBOX-20090317.tgz
http://cid-a95b9af71540ba41.skydrive.live.com/self.aspx/.Public/kuro-box/debian-lenny-kuroBOX-20090317.tgz

        kuro-bootsel2-debian.tgz
http://download.revulo.com/kuro-box/kuro-bootsel2-debian.tgz

    玄箱でNetBSDを動かす
        kuro-bootsel2.20080419.tar.gz (ミラー)
http://kurobsd.ki.nu/download/testing/powerpc/selector/bootsel2/kuro-bootsel2.20080419.tar.gz

    Genbako kernel collection (もしくはそのミラーサイト)
        loader.o (ミラー)
http://www.genbako.com/loader.o/loader.o

        玄箱 用
            kernelimage-2.6.25.1-kuroBOX.tgz (ミラー)
http://www.genbako.com/kernelimage-2.6.25.1-kuroBOX.tgz

            modules-2.6.25.1-kuroBOX.tgz (ミラー)
http://www.genbako.com/modules-2.6.25.1-kuroBOX.tgz

        玄箱/HG 用
            kernelimage-2.6.25.1-kuroHG.tgz (ミラー)
http://www.genbako.com/kernelimage-2.6.25.1-kuroHG.tgz

            modules-2.6.25.1-kuroHG.tgz (ミラー)
http://www.genbako.com/modules-2.6.25.1-kuroHG.tgz


1. 玄箱をEMモードに落とす。
カーネル2.4系の場合は
    # echo -n "NGNG" > /dev/fl3
カーネル2.6系の場合は
    # echo -n "NGNG" > /dev/mtdblock2


どうしてもダメな場合は
1.裏のリセットボタンを長押ししながら電源ボタン長押しで電源を落とす
2.裏のリセットボタンを押しながら電源ボタンを押して起動する
のいずれかで、EMモードに落ちるかも


2. EMモードが起動したらrootアカウント(パスワード kuroboxの場合:kuro/kuroboxhgの場合:kuroadmin)
telnet ip addr
# mfdisk -c /dev/hda
/dev/hda1      2 GB      MontaVista用
/dev/hda2      256 MB      スワップ領域
/dev/hda3      4 GB      Debian(lenny)用


# mkswap /dev/hda2
# mke2fs -j /dev/hda1
# mke2fs -j /dev/hda3
# mount -t ext3 /dev/hda1 /mnt


3.ファームウェアの展開
玄箱HGのファームウェア kurog101.zip をpc上で展開し、さらにimage.zipを展開し、出来たファイルのうち tmpimage.tgz だけを、FTPで玄箱HGの /mnt ディレクトリに転送する。

玄箱HGで /mnt ディレクトリに移動し、tmpimage.tgz を展開する。

    # cd /mnt
    # tar zxvf tmpimage.tgz

展開が完了したら、EMモードから抜ける。

    # echo -n "OKOK" > /dev/fl3
    # reboot

Lenny化用のファイルを用意する。

    debian-lenny-installer-kuroBOX-20090317.tgz
    debian-lenny-kuroBOX-20090317.tgz
    kuro-bootsel2-debian.tgz
    kuro-bootsel2.20080419.tar.gz
    loader.o
    kernelimage-2.6.25.1-kuroHG.tgz
    modules-2.6.25.1-kuroHG.tgz

以上7個のファイルを用意し、FTPで玄箱HGの /tmp ディレクトリに転送する。

/tmp ディレクトリに移動し、1番目の debian-lenny-installer-kuroBOX-20090317.tgz を展開する。そして展開されたファイルのうち、玄箱HG用のスクリプトを実行する。

    # cd /tmp
    # tar zxvf debian-lenny-installer-kuroBOX-20090317.tgz
    # sh debian-lenny-installer-kuroHG.sh

これで、MontaVistaモードの /mnt(/dev/hda3) に Debian(lenny) がインストールされ、Debianモードではこの /dev/hda3 がルートになる。

# vi /mnt/etc/fstab

hda4のエントリを削除 (hda4を作っている場合は不要)

③ネットワークの設定

自分の環境に合わせて、interfacesファイルのIPアドレス設定部分を書き直す。
addressのところに玄箱に設定したいIPアドレス、
netoworkのところに、対応するネットワークアドレス、
broadcastのところに、対応するブロードキャストアドレス、
gatewayのところにゲートウェイアドレス(ルーターのアドレス等)を設定する。

    # vi /mnt/etc/network/interfaces

# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.

iface eth0 inet static
address 192.168.10.10
network 192.168.10.0
netmask 255.255.255.0
broadcast 192.168.10.255
gateway 192.168.10.1

iface lo inet loopback
auto eth0 lo

DHCPにしたい場合は、

iface eth0 inet dhcp

     # vi /mnt/etc/hostname
     # vi /mnt/etc/hosts
     # vi /mnt/etc/resolve.conf

以上の設定が完了したら、rebootコマンドで再起動し、Debian Lennyが起動する。
起動したら、tmp-kun/tmp-kunでtelnetログインをして、su -をする。パスワードは、root
動作確認で、以下を実行

# ping `hostname`

5.Lennyでの設定

①パスワードの変更とユーザーの追加
Lennyが起動したらrootアカウント(パスワードはroot)でログインする。
最初にrootのパスワードを変更する。
    # passwd

初期状態でtmp-kun(パスワードもtmp-kun)というユーザーが登録されているが、必要であれば作業用のユーザーを追加する。

    # adduser hogehoge

②Squeeze用起動スクリプトの準備

Squeezeは起動スクリプトは、LSB(Linux Standard Base)に準拠している必要があるらしいので、ディストリビューション標準の起動スクリプト以外は、前もって変更しておく必要がある。

ここでは、kuroevtdとkuro_bootのファイルの先頭部分にLSB用の記述を挿入する。

" ### BEGIN INIT INFO"から"### END INIT INFO"までが挿入部分。

    # vi /etc/init.d/kuroevtd

#!/bin/sh
# Start/stop the KURO-BOX Event Daemon.
### BEGIN INIT INFO
# Provides:        kuroevtd
# Required-Start:  $network $remote_fs $syslog
# Required-Stop:   $network $remote_fs $syslog
# Default-Start:   2 4 5
# Default-Stop:    0 1 3 6
# Short-Description: Start/stop the KURO-BOX Event daemon
### END INIT INFO

test -f /usr/sbin/kuroevtd || exit 0
case "$1" in
start)  echo -n "Starting KURO-BOX event daemon: kuroevtd"
        start-stop-daemon --start --quiet --exec /usr/sbin/kuroevtd
        echo "."
        ;;
stop)   echo -n "Stopping KURO-BOX event daemon: kuroevtd"
        start-stop-daemon --stop --quiet --exec /usr/sbin/kuroevtd
        echo "."


    # vi /etc/init.d/kuro_boot

#! /bin/sh
### BEGIN INIT INFO
# Provides:          kuro_boot
# Required-Start:    $remote_fs $all
# Required-Stop:
# Default-Start:     2 4 5
# Default-Stop:      0 1 3 6
# Short-Description: Initialize the KUROBOX AVAR
### END INIT INFO

case "$1" in
start|force-reload|restart|reload)
  echo -n "ttyS1 port init : "
stty -F /dev/ttyS1 10:1:9f0d:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
  echo -n "AVR init string send"
echo -n "AAAAFFFFJJJJ>>>>VVVV>>>>ZZZZVVVVKKKK" > /dev/ttyS1
  echo "."
  ;;
stop)
  ;;


6.squeezeへのアップグレード

まず、aptitudeが参照する、パッケージリストの取得先をlennyからsqueezeに変更する。

    # vi /etc/apt/sources.list

deb http://ftp.jp.debian.org/debian/ squeeze main
deb http://security.debian.org/ squeeze/updates main
#deb http://ftp.jp.debian.org/debian/ squeeze main contrib non-free
#deb-src http://ftp.jp.debian.org/debian/ squeeze main contrib non-free
#deb http://security.debian.org/ squeeze/updates main contrib non-free
#deb-src http://security.debian.org/ squeeze/updates main contrib non-free
#deb http://volatile.debian.org/debian-volatile squeeze/volatile main contrib non-free
#deb-src http://volatile.debian.org/debian-volatile squeeze/volatile main contrib non-free

後はaptitudeでパッケージリストを更新し、アップグレードを実行するだけ。基本的にYes/y/OKを選択する。

    # aptitude update
    # aptitude safe-upgrade
    # aptitude full-upgrade

# cd /usr/src

# wget http://www.genbako.com/kurobox-sources-2.6.25.patch; wget http://www.genbako.com/kurobox-section-mismatch2625.patch ; wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz2
# aptitude install vim lv sudo less patch gcc ncurses-dev bzip2 make sysstat ntp locales openssh-server
# dpkg-reconfigure locales
en_us.utf-8とja_jp.utf-8を指定

# vi /etc/default/sysstat
ENABLED="true"
 falseからtrueに変更

# tar xfj linux-2.6.25.tar.bz2 ; cd linux-2.6.25 ; patch -Np1 < ../kurobox-sources-2.6.25.patch ; patch -Np1 < ../kurobox-section-mismatch2625.patch
# aptitude clean



デフォルトのセキュリティを解除

telnetを無効にするには、
# vi /etc/inetd.confのtelnetの行をコメントアウト
#:STANDARD: These are standard services.
telnet          stream  tcp     nowait  telnetd /usr/sbin/tcpd  /usr/sbin/in.telnetd

# kill -HUP `cat /var/run/inetd.pid`をするか再起動。

ユーザ追加

adduser username
su -
passwd username

作成したユーザでsshでログインができ、rootユーザになれることを確認したら以下を実行。
userdel -r tmp-kun
これで基本的には終わり。

問題点
ディストリビューションは、debian 6.0.1なのだが、kernelが古すぎる。デバイスをいろいろ
サポートさせたいのでなければ、問題はなさそうだが。
iptableを使いたい場合は、カーネルのリコンパイルが必要

カーネルのリコンパイル方法
# cd /usr/src/linux-2.6.2
以下は玄箱/HGの場合です。
# cp -p config_kuroboxhg .config[ENTER]
# export ARCH=ppc[ENTER]
# make menuconfig[ENTER]

iptablesを有効にしたりする。

# make oldconfig[ENTER]
# make vmlinux# objcopy -p -O binary vmlinux /boot/vmlinux.bin
# cp -pf System.map /boot/
# make modules
# make ARCH=ppc modules_install
# rm -rf 2.6.25.1-kuroboxHG


その他やった作業
groupadd wheel
自ユーザにwheelを追加
vi /etc/groups

vi /etc/pam.d/su

#
# The PAM configuration file for the Shadow `su' service
#

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so
# Uncomment this to force users to be a member of group root
# before they can use `su'. You can also add "group=foo"
# to the end of this line if you want to use a group other
# than the default "root" (but this may have side effect of
# denying "root" user, unless she's a member of "foo" or explicitly
# permitted earlier by e.g. "sufficient pam_rootok.so").
# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
# auth       required   pam_wheel.so

# Uncomment this if you want wheel members to be able to
# su without a password.
auth       sufficient pam_wheel.so trust


vi /etc/profile.d/local.sh

#
# local environment
#

VISUAL=vi
EDITOR=vi
PAGER=vi
export VISUAL EDITOR PAGER


ちなみに、kuroboxとkuroboxHGは譲渡してしまったので、質問いただいても答えられないことがあります。

0 件のコメント: