2016年1月19日火曜日

玄人志向 玄箱用 Debian Jessie 通常版(カーネル3.16 版)

昨年末ごろから玄箱用に新しく Debian Jessie の通常カーネル版(Linux 3.16)を作っていました。以前は Linux 3.19 版を作成していましたが、玄箱での用途では最新のカーネルの必要性もないため、今後のメンテナンス性のことも考えて通常版を作りました。

さらに前回の 3.19 版では、ルートファイルシステムの作成を行っていませんでしたが、今回は新しく作りました。初めてのルートファイルシステムの作成でしたので、大変苦労しました。こんなに苦労するとは思ってもいませんでした。

以下にインストール方法などを紹介しています。必要な読者さんはダウンロードしてインストールしてください。なおインストール作業やその結果については自己責任でお願いいたします。

Debian Jessie 標準版のインストール方法

前提条件

インストールの手段にシリアルコンソールを使用することを前提にインストール方法を記述しています。内部のボード上にシリアルコンソール用のピンヘッダを取り付け、シリアルケーブルで操作パソコンへ接続する必要があります。
シリアルコンソールの転送速度:57600bps
ログインユーザ名:root、パスワード:kuro(初代)、kuroadmin(HG)

そして玄箱(初代 または HG )は、メーカ出荷状態になっているものとします。メーカ製のファームウェアがインストールされて、稼働していることが前提です。すでに玄箱の u-boot の変更などを行っている場合には、適宜インストール方法を読み替えてください。

ハードディスクの構成は、次のようになります。メーカ製のファームウェアは残した状態にしておき、このメーカ製のファームウェア上でインストール作業を行って、第3パーティションへ Debian Jessie をインストールします。u-boot の設定により、通常は第3パーティションの Debian Jessie が起動するようにします。
/dev/sda1 -- Ext3 (KURO-BOX IETSUNA) : 2GB
/dev/sda2 -- Swap : 256MB
/dev/sda3 -- Ext3 (Debian Jessie) : 残り全部

ダウンロード

以下のウェブサイトから今回ビルド(Debian_Jessie_3.16)したカーネル(kuro-kern.tgz)、ライブラリ・モジュール(kuro-lib.tgz)、ルートファイルシステム(kuro-samba-rootfs.tgz)をダウンロードしてください。なおこれらのファイルは随時更新します。インストールの直前にダウンロードしたものをご使用ください。また以前ビルドした Debian_Jessie_3.19 から間違えてダウンロードしないように注意してください。
玄箱 Debian Jeesie のダウンロードサイト - グーグルドライブ
https://drive.google.com/folderview?id=0B5QdaY5lu2e3VlNQejlFYVBDS2c&usp=sharing
  • kuro-kern.tgz(およそ 3MB)
  • kuro-lib.tgz(およそ 3MB)
  • kuro-samba-rootfs.tgz(およそ 256MB)


さらに u-boot も入れ替えますので、次のウェブサイトから u-boot のバイナリファイル(u-boot-1.2.0-hd.flash.bin)をダウンロードしてください。
LinkStation/玄箱/kernel - コンパイル済みバイナリ
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?LinkStation%2F%E7%8E%84%E7%AE%B1%2Fkernel#g22f1206
  • u-boot-1.2.0-hd.flash.bin (初代)
  • u-boot-1.2.0-hg.flash.bin (HG)

u-boot  の入れ替え

新しいカーネルを直接起動できる u-boot へ入れ替えを行います。ここでは玄箱(初代)の場合で記述しています。玄箱 HG の場合には u-boot-1.2.0-hg.flash.bin を使用してください。
通常どおりに玄箱を起動させてください。メーカ製のファームウェアが立ち上がります。
操作パソコンから上記のコンパイル済み u-boot のバイナリファイル(u-boot-1.2.0-hd.flash.bin)をダウンロードした後、玄箱へ FTP で転送します。
 -- 作業パソコン --
$ ftp [玄箱の IP アドレス]
    user:root, password: kuro(初代)、kuroadmin(HG)
ftp> put u-boot-1.2.0-hd.flash.bin
ftp> quit
u-boot の書き換えをします。
 -- 玄箱 --
# cd ~/
# cat u-boot-1.2.0-hd.flash.bin > /dev/fl2
# reboot -- 再起動

-- 再起動直後のログ --
U-Boot 1.2.0 (Mar 26 2009 - 17:30:35) LinkStation / KuroBox

CPU:   MPC8245 Revision 1.4 at 196.608 MHz: 16 kB I-Cache 16 kB D-Cache
DRAM:  64 MB
FLASH:  4 MB
        00  0b  1317  0985  0200  ff
        00  0c  1095  0680  0101  ff
        00  0e  1033  0035  0c03  ff
        00  0e  1033  0035  0c03  ff
        00  0e  1033  00e0  0c03  ff
Net:   COMET#0
next_cons_choice: Unexpected code: 0x33
stdin :   serial
stdout:   serial
stderr:   serial
IDE:   Bus 0: OK
  Device 0: Model: ST3200827A Firm: 3.AAE Ser#: 5ND3GSWK
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 190782.2 MB = 186.3 GB (390721968 x 512)
Boot in 01 seconds ('s' to stop)...

上記の"Boot in 01 seconds ('s' to stop)..." のときに "S" キーを押すと u-boot のコンソールへ移行することができます。

setenv コマンドで次のように変数を設定します。複数行にまたがって表示されている行があります。「=>」が行の先頭部分ですので注意してください。
一箇所だけ選択して入力する部分があります。玄箱(初代)の場合には赤字の部分、玄箱 HG の場合には青字の部分を入力してください。
また以前紹介した Debian Jessie (3.19 版)のときとは、設定内容が異なりますので注意してください。
=> setenv bootargs root=/dev/sda3 rtc-rs5c372.probe=0,0x32

=> setenv hdfile boot/vmlinux.UBoot

=> setenv hdkernel boot/vmlinux.UBoot

=> setenv hddtb boot/kuroboxHD.dtb
=> setenv hddtb boot/kuroboxHG.dtb

=> setenv rootdev /dev/sda3

=> setenv hdpart 0:3

=> setenv condev ttyS1

=> setenv conspeed 57600

=> setenv hdload echo Loading ${hdpart}:${hdkernel}\;ext2load ide ${hdpart} ${ldaddr} ${hdkernel}\;ext2load ide ${hdpart} 7f0000 ${hddtb}

=> setenv boothd setenv bootargs root=${rootdev} console=${condev},${conspeed} rtc-rs5c372.probe=0,0x32\;bootm ${ldaddr} - 7f0000

設定値の保存
=> saveenv

メーカ製ファームウェアの起動
=> run flboot

ファームウェアのインストール

起動したメーカ製ファームウェアへログイン(ユーザ:root、パスワード:kuro(初代)、kuroadmin(HG) )して、インストール作業を開始します。

まず最初に SAMBA を停止させて、/mnt にマウントされている /dev/hda3 を開放します。
 -- 玄箱 --
# /etc/init.d/smb stop
# umount /mnt

 Debian Jessie をインストールする領域の /dev/hda3 をフォーマット(Ext3 形式)します。
 -- 玄箱 --
# mke2fs -j /dev/hda3
# mount /dev/hda3 /mnt

システムファイルを保存するディレクトリ(/mnt/jessie)を用意します。
 -- 玄箱 --
# mkdir /mnt/jessie

 作業パソコンから FTP でシステムファイルを転送します。
 -- 作業パソコン --
# ftp [玄箱の IP アドレス]
    user:root, password: kuro(初代)、kuroadmin(HG)
ftp> cd /mnt/jessie
ftp> put kuro-kern.tgz
ftp> put kuro-lib.tgz
ftp> put kuro-samba-rootfs.tgz
ftp> quit

転送されたシステムファイルを解凍して、インストールします。
  -- 玄箱 --
# cd /mnt/jessie
# tar zxvf kuro-samba-rootfs.tgz -C /mnt
# tar zxvf kuro-kern.tgz -C /mnt
# tar zxvf kuro-lib.tgz -C /mnt

以上で Debian Jessie システムのインストールは終了です。再起動させて初期設定を行います。u-boot は、すでに第3パーティションの Debian Jessie が起動するように設定済みです。
 -- 玄箱 --
# reboot

初期設定

無事 Debian Jessie で玄箱が起動したところで、ログイン(ユーザ:root、パスワード:kuro)を行い、初期設定を行います。
 -- 玄箱 --
Debian GNU/Linux 8 kurobox ttyS1

kurobox login: root
Password: kuro
Last login: Tue Jan 19 15:17:41 JST 2016 on ttyS1
Linux kurobox 3.16.7-ckt11_Livingston #14 Tue Jan 19 04:45:30 UTC 2016 ppc

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

root@kurobox:~#

 インストールしたファームウェアのシステムの依存関係の整理を行います。
 -- 玄箱 --
# depmod -a

パスワードの再設定を行ってください。パスワードの変更は強くお奨めします。
 -- 玄箱 --
# passwd

ネットワーク上に表示されるホスト名を変更する場合には、/etc/hostname を編集してください。複数の玄箱を運用する場合にはホスト名の変更は必須です。
 -- 玄箱 --
# vi /etc/hostname

kurobox ----> kurobox-hg とか?

システム内のソフトウェアの更新を行ってください。
 -- 玄箱 --
# apt-get update
# apt-get upgrade

一度電源を切って コンセントも抜いた後、本体電源スイッチを押して再起動させます。
 -- 玄箱 --
# poweroff

インストール済みのソフトウェアの紹介

以下のソフトウェアをインストール済みです。

NAS ソフトウェア(samba)
ネットワークディスクとして kuro-box の名前で他のパソコンからアクセスできます。
USB ドライブ(FAT フォーマットのみ)を接続した場合、kuro-box-usb(0-7) の名前でアクセスできます。ただし電源投入前から装着されていた USB  ドライブは認識できません。玄箱が起動して安定したところで、USB ドライブを装着してください。

時刻設定ソフトウェア(ntpdate)
起動時に玄箱の時刻をネットワーク上の NTP サーバ(jst.mfeed.ad.jp)から設定します。この時刻合わせは起動時に一回のみです。電源を常時投入したままで運用する場合などで、一定時間ごとに時刻合わせをしたいときには、crontab コマンドで ntpdate コマンドを実行させてください。なお時刻合わせのタイミングは一日一回で十分だと思います。

AVR ソフトウェア(avr-evtd)
LED ランプや電源スイッチの動作を制御する玄箱内のもうひとつのマイクロプロセッサの制御ソフトウェアです。現在のところ電源スイッチの動作しか正常に動作しません。ディスクが満杯になっても LED による警告をしません。

TELNET サーバ(telnetd)
特権ユーザの root で telnet を経由して玄箱へアクセスできます。日頃のメンテナンスは、この telent でログインして行ってください。

FTP サーバ(ftpd)
特権ユーザの root で ftp を経由して玄箱へファイルの転送ができます。

FAQ

Q. Debian Jessie をインストールした直後に玄箱の DIAG のランプが三回点滅した状態(パーティション異常)となります。
A. メーカ製ファームウェア上でインストール作業を行うときに、第3パーティションをフォーマットして破棄したことを検知して  AVR  へ通知するためです。新しい Debian Jessie をインストールした直後には、その通知が AVR に残ったままとなるため DIAG ランプが三回点滅する現象が継続します。一度、玄箱の電源を落とすと AVR の設定もリセットされるため、DIAG が三回点滅する現象はなくなります。

Q. USB メモリを USB ポートへ接続して NAS の外部ドライブとしました。USB メモリから読み出すときには問題はありませんが、書き込みを行うときにエラーとなってしまいます。
A. 次の記事を参考にして USB ドライブのマウント・オプションを変更してください。
玄人志向 玄箱 Debian Jessie 3.16 の USB ドライブの高速化
http://near-unix.blogspot.jp/2016/01/debian-jessie-316-usb.html
(2016-01-24 回答を修正しました。)

Q. 時刻を一日一回合わせる方法を教えてください。
A. crontab -e コマンドで次の設定を入力してください。
毎日午前4時に時刻合わせをする場合
0 4 * * * /usr/sbin/ntpdate-debian > /dev/null 2>&1

(2016-03-13 変更)

玄箱(初代)を前提にして記述していた記事を 玄箱 HG にも対応した記述に変更しました。

0 件のコメント:

コメントを投稿