Linkstation LS-HGL修理2012年06月26日 03時12分05秒

HDD認識エラーで起動しなくなったLinkstation LS-HGLですが、やっと修理しました。

予想通り電源ユニットの膨張した電解コンデンサが原因でした。

以下は電解コンデンサ交換前の電源ユニット

ネジ2本で止まっているだけなので簡単に取り外せます。

緑色の2200uFの電解コンデンサが交換対象。膨らんでいるのが分かります。

新しい電解コンデンサ。共立エレショップで購入。東信工業・105℃品電解コンデンサ 10V2200uF。サイズ:10×20(mm)。脱PVC対応品。

ハンダ吸い取り線で古いコンデンサを取り外し。

新しいコンデンサを半田付け


電源ユニットをケースに組み付け

無事に起動しました。LED2つが緑色なのに注目。

Linkstation LS-HGL起動不能2012年03月22日 01時54分46秒

久々のLinkstationネタ。 玄箱HGで対応したHDDスピンアップ時間が足りずに起動できない問題。LinkStationでも遭遇。根本原因はコンデンサの不良でしょうが、だませないかなぁなどと思って日食が終わるまでは保留。 とりあえず起動しなくなったのでログを記しておきます。HDDはWD20EARS。

Orion1   CPU =  Low

Checking DATA BUS
Checking ADDRESS BUS

> Checking hardware info ...
=== Strap status : 0x00800030 ===
=== H/W boardId  :       0x23 ===
=== boardId      :       0x1b ===
=== micon_support:        off ===
> OK.
=== BUFFALO LS-HGL U-Boot. ===
 ** LOADER **
 ** BUFFALO BOARD: BUFFALO_BOARD_LS_HGL LE (CFG_ENV_ADDR=fffff000)


U-Boot 1.1.1 (May 27 2008 - 19:18:26) Marvell version: 1.12.1 - TINY
Buffalo Version: 1.17-1.00

DRAM CS[0] base 0x00000000   size 128MB
DRAM Total size 128MB
[256kB@fffc0000] Flash: 256 kB
Addresses 20M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (20M - 16M): Done

Soc: 88F5182 A2
CPU: ARM926 (Rev 0) running @ 400Mhz
Orion 1 streaming disabled
SysClock = 250Mhz , TClock = 166Mhz


USB 0: host mode
PCI 0: PCI Express Root Complex Interface
PCI 1: Conventional PCI, speed = 33000000
Net:   egiga0 [PRIME]
Using 88E1118 phy
buffalo_change_power_status > Read 0x5c
buffalo_IsStopAtUbootStatus > MagicKey=0x5c
buffalo_change_power_status > Read 0x5c
buffalo_change_power_status > Read 0x5c
buffalo_change_power_status > Writing 0x5c

Please Press HDD power button to continue ...
buffalo_change_power_status > Read 0x5c
buffalo_change_power_status > Writing 0x3a

Marvell Serial ATA Adapter
Integrated Sata device found
[0 0]: failed to perform ATA Identify command
Failed initializing storage deivce connected to SATA channel 0

HDD is not found

svnリポジトリダンプスクリプト2012年02月11日 08時21分53秒

KURO-BOX/Debian Lenny環境でSubversionリポジトリを管理するようにしています。 自動でsvnadmin dumpを使ったリポジトリバックアップ運用も既に行っていたのですが、1週間に一度単純なdumpを日付のフォルダを作って保存する形でした。

でもその形だと以下の問題があります。

  1. 更新がなかったリポジトリも毎回バックアップしてしまう
  2. 途中でリポジトリが壊れた場合差分loadで復元したい

ということで以下の機能を追加

  1. バックアップ時点のリポジトリのレビジョンを保管
  2. 保管したレビジョンとその時点のレビジョンに差分がある場合のみバックアップ実行
  3. 差分がある場合はフルバックアップと差分バックアップの両方を実施

念のためですが「自動」の部分はcronで実施で、ここで紹介するのは単なるスクリプトです。

なお、バックアップ元のディレクトリと保存先のディレクトリはスクリプト内で指定する形。引数(第一引数)で指定するのはリポジトリの名前(相対パス)。 オプション(第二引数)で更に他のディレクトリに最新のバックアップをコピーします。

#!/bin/sh
##########################################
#      svn repository dump
##########################################
# setting path
rtop="/mnt/svn"
svnbackupdir="/mnt/backup/svndump"
#
if [ "$1" = "" ]; then
       echo "Usage $0 repository-name"
       exit
fi
repo=$rtop"/"$1
if [ ! -d $repo ]; then
       echo "$repo not found"
       exit
fi
echo "## $repo dump start ##"
logger "## $repo dump start ##"
datedir=`date +%F`
echo "today is" $datedir
if [ -d $svnbackupdir ]; then
       echo "already exist" $svnbackupdir
else
       echo "mkdir" $svnbackupdir
       mkdir $svnbackupdir
fi
backupdatedir="$svnbackupdir/$datedir"
backupbase=`echo $1 | tr "/" "_"`

# history save
hisfile="$svnbackupdir/svn_$backupbase.history"
newrev=`svnlook youngest $repo`
echo "$repo revision is $newrev"
backupfile="$backupdatedir/svn_$backupbase.dump"
if [ -f $hisfile ]; then
       lastbackup=`cat $hisfile`
       echo "$repo last dump revision is $lastbackup"
       if [ "$lastbackup" = "$newrev" ]; then
               msg="## $repo no change ##"
               echo $msg
               logger "$msg"
               exit
       fi
fi

# backup dir create
if [ -d $backupdatedir ]; then
       echo "already exist" $backupdatedir
else
       echo "mkdir" $backupdatedir
       mkdir $backupdatedir
fi

# svndump diff
if [ -f $hisfile ]; then
       lowrev=`expr $lastbackup + 1`
       difffile="$backupfile""_""$lowrev""_""$newrev"
       echo "difffile = $difffile"
       msg="svn dump $repo -r $lowrev:$newrev --incremental  --> $difffile"
       echo $msg
       svnadmin dump $repo -r $lowrev:$newrev --incremental > $difffile
       logger "$msg"
fi

# svndump all
msg="svn dump $repo --> $backupfile"
echo $msg
svnadmin dump $repo > $backupfile
logger "$msg"

# dump history save
echo $newrev > $hisfile

# copy svndump file
if [ "$2" != "" ]; then
       cpdir="$2/$datedir"
       if [ -d $cpdir ]; then
               echo "already exist" $cpdir
       else
               echo "mkdir" $cpdir
               mkdir $cpdir
       fi
       echo "svn dump copy $backupfile --> $cpdir"
       cp -p $backupfile $cpdir
       cp -p $difffile $cpdir
fi
msg="## $repo dump end ##"
echo $msg
logger "$msg"

玄箱HGのカーネル再構築2011年06月05日 01時40分10秒

kuro-box/HGをdebian/lennyで使っているのですが、最近aptitudeでupgradeしてからsambaのインストール状態とphp5のインストール状態がおかしくなってしまいました。

何の根拠もないのですが、カーネルの状態を変えれば状況が変るかもしれないということと、カーネル再構築する可能性が出てきたため、カーネルソースコードの取得とビルドをお試し中です。

u-bootは使用していませんが、一応uImageも用意しています。 loader.oでのbootを選択していますので、起動後にはumountされているboot用のパーティションのファイルを書き換える必要があります。なので、カーネルイメージのコピーには注意が必要です。

なお、2.6系カーネルの最新バージョンではありませんが、2.6.25系のパッチしか用意されていないので2.6.25系の最終の2.6.25.20を使います。 config_kuroboxhgというファイルはpatchの実行により生成されるファイルですのでtarを展開した時点では存在しません。

# apt-get install gcc ncurses-dev
# apt-get install uboot-mkimage
$ 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.20.tar.gz
$ tar xvfz linux-2.6.25.20.tar.gz 
$ cd linux-2.6.25.20
$ patch -Np1 <../kurobox-section-mismatch2625.patch
$ patch -Np1 <../kurobox-sources-2.6.25.patch 
$ cp config_kuroboxhg .config 
$ export ARCH=ppc 
$ make oldconfig 
$ make vmlinux
$ make uImage
$ su
# mount /dev/hda1 /mnt/tmp
# cp -p System.map /mnt/tmp/boot
# cd arch/ppc/boot/images
# cp -p vmlinux.bin /mnt/tmp/boot
# cp -p uImage /mnt/tmp/boot
$ make modules
$ su
# make ARCH=ppc modules_install 
# reboot
$
$ uname -a
Linux KURO-BOX 2.6.25.20-kuroboxHG #2 Sun Jun 5 01:28:37 JST 2011 ppc GNU/Linux

玄箱HGにtomcatインストール2011年05月29日 23時59分19秒

別件のAndroidでの簡易POS開発に関連して、とりあえずサーバの実験のためにKURO-BOX/HG(debian linux lenny)にtomcatをインストールしてみた。

インストールといってもまだ単にaptitude installしただけ。

インストール時のログはこちら