LinkStationのDebianでMySQLがクラッシュする

LinkStationにhackkitでdebian(etch)をインストールしていますが、これにMovable Typeのオープンソース版をインストールしてみました。

セットアップは問題なくできたのですが、使っていると突然「エラーが発生しました」と表示されます。どうやらMySQLと通信できないときがあるようです。

Connection error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)


MySQLのエラー

おかしいなぁとsyslogをみたところ、見事にMySQLが落ちてました。

Jan 20 20:55:56 hackkit mysqld[1291]: mysqld got signal 11;
Jan 20 20:55:56 hackkit mysqld[1291]: This could be because you hit a bug. It is also possible that this binary?
Jan 20 20:55:56 hackkit mysqld[1291]: or one of the libraries it was linked against is corrupt, improperly built,
Jan 20 20:55:56 hackkit mysqld[1291]: or misconfigured. This error can also be caused by malfunctioning hardware.
Jan 20 20:55:56 hackkit mysqld[1291]: We will try our best to scrape up some info that will hopefully help diagnose
Jan 20 20:55:56 hackkit mysqld[1291]: the problem, but since we have already crashed, something is definitely wrong
Jan 20 20:55:56 hackkit mysqld[1291]: and this may fail.
Jan 20 20:55:56 hackkit mysqld[1291]:?
Jan 20 20:55:56 hackkit mysqld[1291]: key_buffer_size=16777216
Jan 20 20:55:56 hackkit mysqld[1291]: read_buffer_size=131072
Jan 20 20:55:56 hackkit mysqld[1291]: max_used_connections=1
Jan 20 20:55:56 hackkit mysqld[1291]: max_connections=100
Jan 20 20:55:56 hackkit mysqld[1291]: threads_connected=1
Jan 20 20:55:56 hackkit mysqld[1291]: It is possible that mysqld could use up to?
Jan 20 20:55:56 hackkit mysqld[1291]: key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 233983 K
Jan 20 20:55:56 hackkit mysqld[1291]: bytes of memory
Jan 20 20:55:56 hackkit mysqld[1291]: Hope that's ok; if not, decrease some variables in the equation.
Jan 20 20:55:56 hackkit mysqld[1291]:?

メモリが少ないからかなぁと、max_connectionsを100から10にしてみましたけど、状況は変わらず。なんだろなぁ〜。

でも、LS-HGLでのMovable Type 4は結構重くて実用にはならないかもという感触でした。ちゃんと動くようになれば少しは速くなるかな?

debianの環境設定


LinkStation LS-H250GLにセットアップしたdebianの環境設定開始です。

時刻設定までハックキットの説明書通りに完了し、以下のアプリケーションを追加インストールしました。

  • nkf
  • apache
  • MySQL
  • samba
  • sudo
  • ftp

あと、nanoはばっさり削除。vimで十分。

MTもいれてみようかな。あとPHPも。

また、SETI@homeにも参加してみるかな。

LinkStation LS-H250GLのdebian化完了


LS-H250GLから外したHDDを実験用PCに接続し、山下さんのLS-HGL ハックキットに従ってdebian化を行いました。

手順通り進めれば全く問題ありませんでした。

私の場合は、実験用PCに接続してアカウントの調整を行う際に、標準ファームのバックアップもついでに行っておきました。

以下、作業中のスナップ写真。

  • 山下さんに送っていただいたハックキットをLS-HGLのHDDにコピー中。ここはMacで作業しました。

f:id:kanpapa:20080430223955j:image:w300

  • 今回作業用に購入したHDDです。Seagate ST3250410AS(250GB)で、標準ファームのHDDと同じメーカー、同じ外寸のものにしました。でもキャッシュは16MBと倍になっています。

f:id:kanpapa:20080502151808j:image:w300

  • LS-HGLにUSB接続した作業用HDD

f:id:kanpapa:20080502152135j:image:w300

  • 作業用HDDがsdbで認識しました。

f:id:kanpapa:20080502153147j:image:w300

  • ハックキットのインストール開始!

f:id:kanpapa:20080502153920j:image:w300

  • インストール中の様子

f:id:kanpapa:20080502154030j:image:w300

  • インストール完了しました。おきまりのsync3回。

f:id:kanpapa:20080502154141j:image:w300

  • 標準ファームのHDDと作業用HDDを交換します。

f:id:kanpapa:20080502154537j:image:w300

  • 作業用HDDに換装が完了したLS-HGL。標準ファームのHDDは箱にしまって保管しておきましょう。

f:id:kanpapa:20080502154909j:image:w300

  • 無事ログイン完了です。おつかれさまでした。

f:id:kanpapa:20080502155353j:image:w300

LinkStation LS-H250GLのHDDをDebian PCにつなぐ


LS-H250GLから外したHDDを実験用PCに接続します。

以降の作業は、山下さんの LinkStation/玄箱 をハックしようを参考にさせていただいております。

もちろん、作業は自己責任でお願いします。

実はS-ATAなるHDDを触るのはこれが初めてだったりします。これまではずっとIDEだけでした・・・。

とりあえず、PCのブートディスクをDebian 4.0がインストールされているものにします。うちのデスクトップPCは実験用なのでブートディスクを簡単に交換できるようにしているのです。

  • うちのAthlon64デスクトップPCです。

f:id:kanpapa:20080429072136j:image:w300

  • 材料はこれだけ。HDDはLinkStationから取り外したもの。ケーブル類はマザーボードの付属品です。

f:id:kanpapa:20080429072414j:image:w300

  • こんな感じでS-ATA HDDを接続しました。

f:id:kanpapa:20080429072628j:image:w300

この状態で、PCのブートディスクからDebianを起動します。果たしてS-ATA HDDを無事認識してくれるのか?

f:id:kanpapa:20080501000833j:image:w300

キター!!

LinkStation LS-H250GLを分解してみた

BUFFALO LinkStation LS-H250GLを分解してみました。


あくまでも参考です。分解は自己責任でお願いします。

  1. LinkStation本体をひっくり返すとネジがあります。これを外します。
    f:id:kanpapa:20080429071436j:image:w300
  2. 写真ぐらいの角度までフロントパネルをゆっくり起こし、そのままの角度で水平に引っぱるとフロントパネルが外れます。
  3. f:id:kanpapa:20080429071519j:image:w300

  4. フロントパネルの本体側の爪がひっかかる部分です。下向き斜めになっているのがミソです。
    f:id:kanpapa:20080429071624j:image:w300

  5. 本体の爪の部分です。爪を折らないように慎重に作業しましょう。
    f:id:kanpapa:20080429071643j:image:w300

  6. サイドパネルをスライドして外します。
    f:id:kanpapa:20080429071659j:image:w300

  7. 反対側も同様に外します。
    f:id:kanpapa:20080429071717j:image:w300

  8. 3本のネジでハードディスクを固定していますので、それを外します。
    f:id:kanpapa:20080429071734j:image:w300

  9. 慎重にハードディスクを外します。
    f:id:kanpapa:20080429071823j:image:w300

  10. これでハードディスクが外れました。
    f:id:kanpapa:20080429072019j:image:w300

  11. 外したハードディスクを手持ちのPCに接続しDebian化に入ります。

初代KURO-BOXに比べ格段にメンテナンスしやすくなっているのがうれしいです。

玄箱でYahoo!デベロッパーネットワークに参加する

  •  
  •  
  • Category:

さらに何かおもしろいことはないかと思っていたところで、「Yahoo!デベロッパーネットワーク」なるものを見つけました。

Yahoo!JAPANの公開APIが使えるらしいとのことで、手持ちのYahoo!IDを使ってアプリケーションIDを取得すれば準備完了です。早速サンプルプログラムを玄箱の上で動かしてみました。

この時点で玄箱にはApache1.3とPHP4がインストール済みです。

サンプルプログラムがあったので、それを/var/wwwに展開しました。

とりあえずわかりやすそうなsearchから実験です。

$ cd

$ ls

yjws-1.7.tgz

$ zcat *.tgz | tar xvf -

$ cd yjws-1.7

$ ls -l

total 16

drwxr-xr-x 3 ocha users 4096 Sep 5 2006 auctions

drwxr-xr-x 4 ocha users 4096 Dec 15 15:06 category

drwxr-xr-x 5 ocha users 4096 Sep 5 2006 search

drwxr-xr-x 4 ocha users 4096 Sep 5 2006 webunit

$ cd search

$ ls

README.txt javascript perl php

$ cd php

$ ls

1.0

$ cd 1.0

$ ls -l

total 20

drwxr-xr-x 2 ocha users 4096 Sep 5 2006 example1

drwxr-xr-x 2 ocha users 4096 Sep 5 2006 example2

drwxr-xr-x 2 ocha users 4096 Sep 5 2006 example3

drwxr-xr-x 2 ocha users 4096 Sep 5 2006 example4

drwxr-xr-x 2 ocha users 4096 Sep 5 2006 example5

$ cd example1

$ ls

YJSearchExample.php common.php

$ cd ..

$ sudo mv example* /var/www/. ←面倒なので全部移動!

$ cd /var/www

$ ls -l

total 36

drwxr-xr-x 2 ocha users 4096 Sep 5 2006 example1

drwxr-xr-x 2 ocha users 4096 Sep 5 2006 example2

drwxr-xr-x 2 ocha users 4096 Sep 5 2006 example3

drwxr-xr-x 2 ocha users 4096 Sep 5 2006 example4

drwxr-xr-x 2 ocha users 4096 Sep 5 2006 example5

-rw-r--r-- 1 www-data www-data 5258 Apr 3 23:38 index.html

-rw-r--r-- 1 root root 20 Apr 8 13:50 info.php

$

この状態で、http://玄箱のIP/example1/YJSearchExample.php と叩いてみたところ何やらエラーが。

どうもxmldomが必要のようです。早速、検索。

$ apt-cache search domxml

php4-domxml - XMLv2 module for php4

ありました。早速インストール

$ sudo apt-get install php4-domxml

あと、

common.phpの"$appid ="部分に取得したアプリケーションIDを設定してください。

ということなので、ここに取得したアプリケーションIDを設定。

再度、http://玄箱のIP/example1/YJSearchExample.phpをブラウザで開くと、検索キーワードを入力できる画面が表示されました。

適当な言葉を入れて、検索すると、結果がちゃんと表示されます。

思ったより簡単ですね。こんな開発サーバにも玄箱は使えそうです。

玄箱でseti@homeに参加する その2

  •  
  •  
  • Category:

玄箱でのBOINCの準備ができたところで、手持ちのPCにもBOINCをインストールする。

一度PC上でBOINCを動かしてからのほうが作業が楽だと思う。

でも最終的な目的は玄箱のBOINC clientをPCのBOINC managerで制御するため。

もし、seti@homeのアカウントを持っていない場合は、PCのBOINC managerからアカウントを取ってしまおう。うまくいくと、メールでアカウントキーが送られてくる。

玄箱にログインして次のようにコマンドを入れる。

$ boinc_cmd --host localhost --project_attach http://setiathome.berkeley.edu xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ←アカウントキー(英文字の羅列)

状態をみるのは以下のコマンド

$ boinc_cmd --get_state

$ boinc_cmd --get_message 0

PCのBOINC Managerからでも制御ができる。「高度な操作」→「コンピュータの選択」→玄箱のIPを入力すればよい。私はパスワードはつけなかったのでそこは空欄。

PCだとこれでアプリケーションをseti@homeのサーバからダウンロードして、勝手に計算を始めるはずなのだが、どうも動かない。

メッセージをみると以下のような怪しいものがでていた。

SETI@home 1 1174713403 Message from server: platform 'powerpc-unknown-linux-gnu' not found

これってもしかして、玄箱のBOINCで動くseti@homeのアプリケーションが無いってこと?

そういえば、こんなパッケージがあったことを思いだした。

boinc-app-seti - SETI@home application for the BOINC client

とりあえず、これをインストールして再度チャレンジしたらあっさり動いてしまった。

でも、そういうことなら玄箱の上ではseti@homeのアプリケーションしか動かないってことかな。

アプリケーションのソースがあれば自分でコンパイルすればいいんだろうけど。

ちなみに、玄箱で1つのWORKUNITにかかる時間は、こんな感じ。

Created 24 Mar 2007 2:13:48 UTC

Sent 24 Mar 2007 15:54:13 UTC

Received 29 Mar 2007 8:14:29 UTC

CPU time 394143.22

5日間かけてやり遂げるだけでも偉いなということで。はい。

もし玄箱でseti@homeをやっている人がいたらチームを組みたいな。

玄箱でseti@homeに参加する

  •  
  •  
  • Category:

動き出した玄箱ですが、せっかく常時稼働しているのでBOINCを動かしてseti@homeに参加してみることにしました。

BOINCとかseti@homeとは何ぞやというのはそちらのページを読んでいただくこととして早速インストールです。

Debianのドキュメントをさがしてみたところこんなページがありました。

http://wiki.debian.org/BOINC

これによると、boinc-clientとboinc-managerとboinc-devというパッケージがあるようです。boinc-managerはboinc-clientを管理するGUIなので、KURO-BOXでは不要でしょう。

boinc-devはboincのアプリケーションを作成するためのパッケージなのでこれもあとでいれることとします。

boinc-clientで検索したところ、testingとunstableのパッケージしかないようです。そこで/etc/apt/sources.listを以下のように書き換えます。今回はCDNを使ってみました。

$ sudo vi /etc/apt/sources.list

# sources.list

deb http://security.debian.org/ stable/updates main contrib non-free

deb http://cdn.debian.or.jp/debian/ testing main contrib non-free

deb-src http://cdn.debian.or.jp/debian/ testing main contrib non-free

書き換えが終わったらupdateです。

$ sudo apt-get update

Get:1 http://cdn.debian.or.jp testing/main Packages [5555kB]

Hit http://security.debian.org stable/updates/main Packages

Hit http://security.debian.org stable/updates/main Release

Hit http://security.debian.org stable/updates/contrib Packages

Hit http://security.debian.org stable/updates/contrib Release

Hit http://security.debian.org stable/updates/non-free Packages

Hit http://security.debian.org stable/updates/non-free Release

Get:2 http://cdn.debian.or.jp testing/main Release [84B]

Get:3 http://cdn.debian.or.jp testing/contrib Packages [56.4kB]

Get:4 http://cdn.debian.or.jp testing/contrib Release [87B]

Get:5 http://cdn.debian.or.jp testing/non-free Packages [74.7kB]

Get:6 http://cdn.debian.or.jp testing/non-free Release [88B]

Get:7 http://cdn.debian.or.jp testing/main Sources [1653kB]

Get:8 http://cdn.debian.or.jp testing/main Release [83B]

Get:9 http://cdn.debian.or.jp testing/contrib Sources [21.1kB]

Get:10 http://cdn.debian.or.jp testing/contrib Release [86B]

Get:11 http://cdn.debian.or.jp testing/non-free Sources [33.2kB]

Get:12 http://cdn.debian.or.jp testing/non-free Release [87B]

Fetched 7394kB in 20s (361kB/s)

Reading Package Lists... Done

BOINC関係のパッケージがあるか確認します。

$ sudo apt-cache search boinc

boinc-app-seti - SETI@home application for the BOINC client

boinc-client - core client for the BOINC distributed computing infrastructure

boinc-dev - development files to build applications for BOINC projects

boinc-manager - GUI to control and monitor the BOINC core client

kboincspy - monitoring utility for the BOINC client

kboincspy-dev - development files for KBoincSpy plugins

まずは、boinc-clientをインストールします。

$ sudo apt-get install boinc-client

これでBOINCクライアントのインストールは完了しました。

さて、いよいよBOINCを動かします。続きはまた。

debian Linuxを玄箱にセットアップ その2

  •  
  •  
  • Category:

玄箱(KURO-BOX)にDebian Linuxをインストールしてみましたが、このDebianはWoody(Debian 3.0)という少し古いバージョンでした。

現行はSarge(Debian 3.1)というバージョンになっていますので、それにアップグレードしてみました。

参考としたホームページは以下の通りです。

本当にこの手順通りで事足りてしまいます。ありがたいですね。

作業が終わるとこんな感じになります。

Debian GNU/Linux 3.1 KURO-BOX

KURO-BOX login:

すばらしく簡単です。

debian Linuxを玄箱にセットアップ その1

  •  
  •  
  • Category:

玄箱(KURO-BOX)にDebian Linuxをインストールしてみました。

参考としたホームページは以下の通りです。

覚え書きとして手順を書いておきます。

1.「玄箱うぉううぉう♪」さんから、debian_2006_06_10_dist.tgzをダウンロード

2.「オモイノホカ日々徒然」さんにある手順の通りにセットアップ

3. パスワードの設定

Debian GNU/Linux 3.0 KURO-BOX

KURO-BOX login: tmp-kun

Password: xxxxxxx

Last login: Sun May 2 15:10:53 2004 from 192.168.0.32 on pts/0

Linux KURO-BOX 2.4.17_kuro-box #4 2004年 4月 16日 金曜日 11:45:05 JST ppc unknown

: 省略

tmp-kun@KURO-BOX:~$ su -

Password: xxxxxxxx

KURO-BOX:~# passwd root

Enter new UNIX password: newpassword

Retype new UNIX password: newpassword

passwd: password updated successfully

KURO-BOX:~# passwd tmp-kun

Enter new UNIX password: newpassword

Retype new UNIX password: newpassword

passwd: password updated successfully

4. IPアドレスの変更

KURO-BOX:/etc# vi /etc/hosts

127.0.0.1 localhost

#192.168.0.100 KURO-BOX ←コメントにする

192.168.3.121 KURO-BOX  ←新しいIPを設定

KURO-BOX:/etc# vi /etc/hosts.allow

 :省略

#ALL : 192.168.0.0/255.255.255.0 ←コメントにする

ALL : 192.168.3.0/255.255.255.0 ←新しいIPを設定

ALL : 127.0.0.1

KURO-BOX:/etc# vi /etc/resolv.conf

search

#nameserver 192.168.0.1 ←コメントにする

nameserver 192.168.3.1 ←我が家のDNSサーバ(ルータ)に変更

KURO-BOX:/etc # vi /etc/network/interfaces

 :省略

iface eth0 inet static

#address 192.168.0.100 ←コメントにする

#network 192.168.0.0 ←コメントにする

#netmask 255.255.255.0 ←コメントにする

#broadcast 192.168.0.255 ←コメントにする

#gateway 192.168.0.1 ←コメントにする

address 192.168.3.121 ←我が家のネットワークに合わせて書き換え

network 192.168.3.0 ←我が家のネットワークに合わせて書き換え

netmask 255.255.255.0 ←我が家のネットワークに合わせて書き換え

broadcast 192.168.3.255 ←我が家のネットワークに合わせて書き換え

gateway 192.168.3.1 ←我が家のネットワークに合わせて書き換え

iface lo inet loopback

auto eth0 lo

5. 作業用ユーザアカウントの登録

KURO-BOX:~# df -k

Filesystem 1k-blocks Used Available Use% Mounted on

/dev/hda1 2063504 154080 1804604 8% /

/dev/hda3 55375288 398944 54976344 1% /mnt

KURO-BOX:~# mkdir /mnt/home/username

KURO-BOX:~# useradd -u 1001 -g users -d /mnt/home/newuser -s /bin/bash newuser

KURO-BOX:~# passwd newuser

Enter new UNIX password: xxxxxxxx

Retype new UNIX password: xxxxxxxx

passwd: password updated successfully

KURO-BOX:~# chown newuser:users /mnt/home/newuser

6. 再起動

KURO-BOX:/mnt/home# sync

KURO-BOX:/mnt/home# sync

KURO-BOX:/mnt/home# sync

KURO-BOX:/mnt/home# reboot

これでネットワークとアカウントの設定までできました。簡単です。