2013年4月30日火曜日

KURO-BOX/T4をLennyからSqueezeに更新してみる

ユーティリティでシステムを入れたばかりの状態でDebian Lennyが入ってますが、サポート終わってるのでSqueezeに更新します。

1. 不要なパッケージの削除
ApacheとWebminは不要で使う予定も無いので削除します。
KURO-NAS-T4:~# apt-get --purge remove apache*
KURO-NAS-T4:~# apt-get --purge remove webmin
KURO-NAS-T4:~# apt-get --purge autoremove
2. スクリプトの編集
/etc/init.d/buffalo-apps を編集します。(/etc/init.d/sambaのファイルからコピペして編集しただけです)
KURO-NAS-T4:~# vi /etc/init.d/buffalo-apps
#!/bin/sh
 ↓以下を追加
### BEGIN INIT INFO
# Provides: Buffalo
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start:
# Should-Stop:
# Short-Description: start Buffalo Apps
### END INIT INFO
 ↑ここまで
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/bin

3. apt設定ファイルの編集
/etc/apt/sources.list を編集してSqueeze用のファイルを取ってくるようにします。
KURO-NAS-T4:~# vi /etc/apt/sources.list
deb http://ftp.debian.org/debian/ lenny main
deb-src http://ftp.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

 ↓以下に変更

deb http://ftp.jp.debian.org/debian/ squeeze main
deb-src http://ftp.jp.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

#deb http://volatile.debian.org/debian-volatile lenny/volatile main
#deb-src http://volatile.debian.org/debian-volatile lenny/volatile main
4. パッケージの更新
編集が終わったらパッケージを更新します。
KURO-NAS-T4:~# apt-get update
KURO-NAS-T4:~# apt-get install debian-archive-keyring
KURO-NAS-T4:~# apt-get update
KURO-NAS-T4:~# apt-get upgrade
KURO-NAS-T4:~# apt-get install udev
5. カーネルの更新
あらかじめ作っておいたカーネルも落として入れておきます。
KURO-NAS-T4:~# cd /boot
KURO-NAS-T4:~# wget --no-check-certificate https://sites.google.com/site/iroirofiles/uImage-2.6.32-48squeeze1 -O uImage-2.6.32-48squeeze1
KURO-NAS-T4:~# rm uImage.buffalo
KURO-NAS-T4:~# ln -s uImage-2.6.32-48squeeze1 uImage.buffalo
KURO-NAS-T4:~# cd /
KURO-NAS-T4:~# wget --no-check-certificate https://sites.google.com/site/iroirofiles/modules.tgz -O modules.tgz
KURO-NAS-T4:~# tar zxvf modules.tgz
ここで一度再起動します。
6. システムのアップグレード
再起動が問題なく終わったらシステムのアップグレードをします。
KURO-NAS-T4:~# apt-get dist-upgrade
KURO-NAS-T4:~# apt-get --purge autoremove

参考:第4章 Debian 5.0 (lenny) からのアップグレード

2013年4月24日水曜日

KURO-BOX/T4用カーネルをクロスコンパイル環境で作ってみる

KURO-BOX/T4でカーネルコンパイルさせようとすると遅いので、DebianいれたPCでコンパイルできるように環境を作ります。

PCはAMD FX6100(AMD880G+SB710)/8G/64GBSSDにSqueeze(64bit版)入れてます。

1. 開発ツールをいれる
まずEmdebianの鍵を登録します。
debian# apt-get install emdebian-archive-keyring
次にパッケージのダウンロード元にEmdebianを追加します。
debian# vi /etc/apt/sources.list
↓以下を最後に追加
#
# -- Emdebian cross toolchains
#
deb http://www.emdebian.org/debian squeeze main
編集が終わったら更新します。
debian# apt-get update
更新できたらパッケージを追加します。
debian# apt-get install gcc-4.3-powerpc-linux-gnu
debian# apt-get install build-essential fakeroot
debian# apt-get build-dep linux
debian# apt-get install ncurses-dev ← menuconfig用にいれました
カーネルソースも取ってきます。
debian# cd /usr/src ← ソースを展開するディレクトリに移動
debian# apt-get install debian-keyring
debian# apt-get source linux-2.6
debian# apt-get install linux-patch-debian-2.6.32
2. mkimageの作成
あらかじめmkimageを作っておきます。
u-bootのソースを拾ってきます。 こちらからとってきました。
debian# wget ftp://ftp.denx.de/pub/u-boot/u-boot-2013.04.tar.bz2
解凍してコンパイルします。
debian# tar xjvf u-boot-2013.04.tar.bz2
debian# cd u-boot-2013.04
debian# make linkstation_HGLAN_config
debian# ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- make tools
適当なディレクトリにコピーしておきます。
debian# cp tools/mkimage /usr/local/bin/
debian# ln -s /usr/local/bin/mkimage /usr/bin/
3. パッチあてとか
まずKURO-BOX/T4用のファイルをダウンロードしておきます。 こちらののページから必要なファイルを使わせてもらいます。
debian# wget http://hiro7216.dyndns.org/blognplus/files/initrd.img
debian# wget http://hiro7216.dyndns.org/blognplus/files/kuro_nas_t4.its
同じページから2.26.32用のパッチを2.26.32-48squeeze1用に変えたもの(kuro-nas-t4-2.6.32-48squeeze1.diff)も入れておきます。
debian# wget https://sites.google.com/site/iroirofiles/kuro-nas-t4-2.6.32-48squeeze1.diff
次にDebianの(?)パッチを当てておきます。
debian# cd linux-2.6-2.6.32/ ← ソースを展開されたディレクトリに移動
debian# ../kernel-patches/all/2.6.32/apply/debian
つづいてKURO-BOX/T4用のパッチをあてます。
debian# patch -p 1 < ../kuro-nas-t4-2.6.32-48squeeze1.diff
4. カーネルのコンパイルとか
T4用のコンフィグをコピーします。oldconfigでいろいろ聞かれてもそのままEnterで良いと思います。
debian# cp arch/powerpc/configs/kuro_nas_t4_defconfig .config
debian# ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- make oldconfig
設定を変更する場合は、menuconfigとかで。
debian# ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- make menuconfig
カーネルをコンパイルします。
debian# ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- make
マルチコアの環境であれば、-j(コア数)で速くなります。
debian# ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- make -j6 ← 6コアの場合
dtbファイルを作成します。
debian# scripts/dtc/dtc -I dts -O dtb -p 1024 -o ../kuro_nas_t4.dtb arch/powerpc/boot/dts/kuro_nas_t4.dts
モジュールをコンパイルし、移行用にアーカイブしておきます。
debian# ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- make modules
debian# mkdir ../modules ← モジュール用のディレクトリ作成
debian# ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- INSTALL_MOD_PATH=../modules make modules_install
debian# cd ../modules
debian# tar zcvf /usr/src/modules.tgz lib ← 圧縮するファイル名(modules.tgz)は何でも
FITイメージの作成にdtcが必要なのであらかじめコピーしておきます。
debian# cp linux-2.6-2.6.32/scripts/dtc/dtc /usr/local/bin/
debian# ln -s /usr/local/bin/dtc /usr/bin/
FITイメージを作成します。
debian# cd /usr/src
debian# cp linux-2.6-2.6.32/vmlinux.bin.gz vmlinuz
debian# mkimage -f kuro_nas_t4.its uImage-2.6.32-48squeeze1
できたuImage-2.6.32-48squeeze1とmodules.tgzをKURO-BOX/T4に移して使います。 (tftpとかで正しく起動するか試してから移すと良いと思います。)

参考: EmdebianToolchain - Debian Wiki
参考: Debian Linux Kernel Handbook - Common kernel-related tasks
参考: Hiroaki’s blog::Kernel 2.6.32をコンパイル

2013年4月11日木曜日

TS-TGLをKURO-BOX/T4化

職場で不要になったTS-TGLをもらったので遊んでみました。
現役のもあるのですが容量が少ないのとMacだとSambaの文字化けが不便なのでこのあたりが改善できればもっと使えそうです。

※KURO-BOX/T4化すると普通のLinuxボックスになるので、TS-TGLのブラウザの設定画面とかは無くなります。これが必要な方はやってはいけません。

1. ハードウェアの準備
TS-TGL本体(250GBx4のやつ)
USB-シリアル変換ケーブル(これっぽいやつ使ってます)
シリアルのクロスケーブル(9pin)
(手元に無かったので上のUSB-シリアルについてたケーブルの片方を切ってコネクタ付けて作りました)
TeraTermの設定は
ボー・レート57600
データ8ビット
パリティnone
ストップ1bit
フロー制御none

2. TS-TGLにrootアクセス
そのままのファームウェアではシステムを更新できないので、rootアクセスが出来るファームウェアに更新します。
ここにrootアクセスできるように変更されたファームウェアがあるのでそれを使いました。
TeraStation Pro (TS-TGL Models)の1.12をダウンロードして解凍します。

NASUpdater_Japanese.exeを実行して、ファームウェア更新ボタンを押すだけです。

3. TFTPサーバーの準備
次にTFTPサーバーをクライアント側で用意しておきます。
(tftpd64を使いました)

KURO-BOX/T4のファームウェアをHPから落としておきます。
ダウンロード2のbz2ファイルを落として、解凍します
解凍したフォルダから kuro_nas_t4.itb をtftpサーバーのフォルダにいれておきます。

一緒にダウンロード1からWindows用のファームウェア更新用のZIPファイルも落として解凍しておきます。

4. 現在のファームウェアのバックアップ
シリアルケーブルを繋いだだけではログインできないので、先にブラウザで
http://(TS-TGLのIPアドレス)/cgi-bin/task.cgi?task=console&param=on
を開く必要があります。

そうしておいてからTeraTermを開いてログインします
(SNOOPYがサーバーの名前です...)
BUFFALO INC. TeraStation series TS-TGL(IENARI)

SNOOPY login: myroot

root@SNOOPY:~# dd if=/dev/mtd0 of=mtd0.bin bs=1k
3072+0 records in
3072+0 records out
root@SNOOPY:~# dd if=/dev/mtd1 of=mtd1.bin bs=1k
448+0 records in
448+0 records out
root@SNOOPY:~# dd if=/dev/mtd2 of=mtd2.bin bs=1k
64+0 records in
64+0 records out
root@SNOOPY:~# dd if=/dev/mtd3 of=mtd3.bin bs=1k
512+0 records in
512+0 records out
root@SNOOPY:~# dd if=/dev/mtd4 of=mtd4.bin bs=1k
4096+0 records in
4096+0 records out
root@SNOOPY:~# tar zcvf ts-tgl.tgz mtd*
mtd0.bin
mtd1.bin
mtd2.bin
mtd3.bin
mtd4.bin
root@SNOOPY:~# mv ts-tgl.tgz /mnt/array1/share/ ← 共有フォルダにおいてクライアントPCから取れるようにしておきました
6.以降の手順後に再起動すると、もう共有フォルダへアクセス出来なくなる&HDDは初期化されるのでバックアップを忘れずに。

5. 更新するファームウェアの準備
TS-TGL側でもHPにある更新ファームを拾ってきます。
ダウンロード2にあるbz2ファイルを取ってきて、解凍しておきます。
root@SNOOPY:~# wget http://kuroutoshikou.com/products/kuro-box_t4/bootimg.tar.bz2
root@SNOOPY:~# bzip2 -dc bootimg.tar.bz2 | tar xvf -
boot/
boot/u-boot-kuro-nas-t4.bin
boot/kuro_nas_t4.itb
boot/uImage.buffalo

6. ファームウェアの更新
まずはブートローダーをu-bootに変更します。
sh-2.05a$ dd if=boot/u-boot-kuro-nas-t4.bin of=/dev/mtdblock1
480+1 records in
480+1 records out
問題なさそうなら再起動します。
sh-2.05a$ reboot
再起動したら、タイミングをみてsキーを押すとu-bootのプロンプトに入ります。
(押さなくても起動できるカーネル入ってないのでu-bootのメニューになりますが...)
U-Boot 2009.06-BUFFALO-svn1379 (Sep 25 2009 - 18:41:39) KURO-NAS/T4

CPU: MPC8245/8241 Revision 1.4 at 262.144 MHz: 16 kB I-Cache 16 kB D-Cache
DRAM: 128 MB
FLASH: 4 MB
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: RTL8169#0
Boot in 05 seconds ('s' to stop)... ← ここでsを押す
BUFFALO>>
うまくいったらtftpブートさせて見ます。
BUFFALO>> setenv ipaddr 192.168.1.233 ← TS-TGLのIPアドレス
BUFFALO>> tftpboot ${ldaddr} 192.168.1.222:kuro_nas_t4.itb ← tftpサーバーのIPアドレス
Using RTL8169#0 device
TFTP from server 192.168.1.222; our IP address is 192.168.1.233
Filename 'kuro_nas_t4.itb'.
Load address: 0x500000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
########################
done
Bytes transferred = 5111396 (4dfe64 hex)
BUFFALO>> bootm
起動したら、クライアント側でファームウェア更新プログラム(KURO-NAS-Installer.exe)を実行して、インストールボタンを押すとファームウェアがインストールされます。

無事に終わって再起動されたらTS-TGLがKURO-BOX/T4になってるはずです。
お疲れ様でした。

参考:LinkStation/TeraStation/玄箱/PPC/TS-TGL u-boot化

2013年4月6日土曜日

SqueezeにSamba

Windowsからのファイル共有用にSambaを導入します。
ここもLennyとほとんど同じです。
Authenticationの部分で追加があるくらい
パッケージを入れる
cocoro:~# aptitude install samba
途中WorkGroup名を聞かれました。
入れ終わったら、ファイルの置き場所となる共有フォルダを作ります。
ファイルの置き場所は/home/shareにしてみました。

cocoro:~# mkdir /home/share
cocoro:~# chown nobody:nogroup /home/share
cocoro:~# chmod 777 /home/share
次にsmb.confを編集します。
cocoro:~# vi /etc/samba/smb.conf
[global]の下に追加。
[global]
    dos charset = CP932
    unix charset = utf-8
    display charset = utf-8
    map to guest = Bad User
####### Authentication ####### 辺りに下記を追加
security = share
[homes][printers][print$]関連はコメント化。
最後に下記を追加

[share]
    path=/home/share
    writeable = yes
    force create mode = 0666
    force directory mode = 0777
    guest ok = yes
    guest only = yes
編集し終わったら起動します
cocoro:~# service samba restart

SqueezeにNTP

NTPはインストールのときに入ってるかと思ったけど、入ってないみたいなので入れてみました。
Lennyのときと同じですね

ntpパッケージを入れる
cocoro:~# aptitude -y install ntp
入れ終わったらntp.confを編集
cocoro:~# vi /etc/ntp.conf
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
 ↓ コメント行にする
#statistics loopstats peerstats clockstats
#filegen loopstats file loopstats type day enable
#filegen peerstats file peerstats type day enable
#filegen clockstats file clockstats type day enable

server 0.debian.pool.ntp.org iburst dynamic
server 1.debian.pool.ntp.org iburst dynamic
server 2.debian.pool.ntp.org iburst dynamic
server 3.debian.pool.ntp.org iburst dynamic
 ↓ に変更
server -4 ntp.nict.jp
server -4 ntp.jst.mfeed.ad.jp


保存したら起動しなおします
cocoro:~# service restart
確認
cocoro:~# ntpq -p

LS-GLにDebian Squeezeをインストール その6(/6)

1. Debianインストール続き - パッケージのインストール

Install the base systemを選んでEnterを押すと基本パッケージのインストールが始まります。

そのままEnter

generic:を選んでEnter

Configure the package managerを選んでEnter

<Yes>を選んでEnter

そのままEnter

そのままEnter

Select and install softwareを選んでEnter

そのままEnter

そのままEnter

SSH サーバを選んでEnter

2. Debianインストール続き - 最後いろいろ

Make the system bootableを選んでEnter

Finish the installationを選んでEnter

<No>を選んでEnter

そのままEnter

これで問題なければ、再起動でDebianが起動するはずです。

LS-GLにDebian Squeezeをインストール その5(/6)

1. Debianインストール続き - ディスクの設定続き

次に2番目のパーティションを設定します。
#2を選んでEnter

Use as:を選んでEnter

Ext3を選んでEnter

Mount point:を選んでEnter

/を選んでEnter

Done setting up the partitionを選んでEnter

同じようにSwap用の3番目のパーティションを設定します。
#3を選んでEnter

Use as:を選んでEnter

swap areaを選んでEnter

Done setting up the partitionを選んでEnter

Finish partitioning and write changes to diskを選んでEnter

そのままEnter

<Yes>を選んでEnter


続きます....

LS-GLにDebian Squeezeをインストール その4(/6)

1. Debianインストール続き - 時間の設定

Configure the clockを選択してEnter

NTPを使うので、そのままEnter

ntp.jst.mfeed.ad.jpを入力してEnter

そのままEnter

2. ディスクの設定

Detect disksを選択してEnter

そのままEnter

Partition disksEnter

Manualを選んでEnter
Guided ~はパーティションをGPTにされるので選択してはいけません。

まずは1番目のパーティションから設定します。
#1を選んでEnter

Use as:Enter

Ext2 file systemを選んでEnter

Mount point:を選んでEnter

/bootを選んでEnter

Bootable flag:を選んでEnter

Done setting up the partitionを選んでEnter


続きます....

LS-GLにDebian Squeezeをインストール その3(/6)

1. Debianインストール続き - 言語の設定

Choose languageEnter

Cを選択してEnter

Asiaを選択してEnter

Japanを選択してEnter

ja_JP.UTF-8にチェックを入れてEnter

ja_JP.UTF-8を選択してEnter

2. ユーザーの追加とパスワードの設定

Set up users and passwordsを選択してEnter

そのままEnter

これもそのままEnter

rootのパスワードを入力してEnter

再度入力してEnter

一般ユーザーも作るのでそのままEnter

フルネームを入力してEnter

アカウント名を入力してEnter

パスワードを入力してEnter

もう一度入力してEnter


続きます....