Zaurus SL-C3100改 pdaXromでサーバ化計画!

Zaurusサーバ化計画!!
■Zaurus生産停止!
シャープのザウルスは、OSにLinuxを搭載していることが売り物でした。多くの代替OSが存在するPDAでもあります。
腕に覚えがあれば、まさしくPDAといった標準のOSを捨て、Linuxディストリビューションをインストールして楽しむことが出来ます。
代替OSではX Window Systemが動くので、さながら極小Linuxノートブックといったところです。 
しかし、そのザウルスも今後は入手が難しくなりそうです。製造中止のニュースが入ってきました。
PDAの草分け「ザウルス」生産停止、高機能携帯に押され

http://www.yomiuri.co.jp/atmoney/news/20081213-OYT1T00466.htm

たしかに、今は低価格で高機能なモバイル機器が手に入りますからね。

zaurusの役目は終わったというところでしょうか。

私も最近は「Windows Mobile」機器を使い始め、zaurusはすっかりほこりをかぶっていました。

しかし、代替OSを入れることで、ファンレスの静音サーバになるのではないか!?と思い、押入れから引っ張り出してきたわけです。

せっかくですのでWebサーバとして活用してみましょう。

■どの代替OSを入れるか

Zaurusの代替OSにはいくつもの種類があります。

pdaXrom

http://www.pdaxrom.org/

Zaurusの代替OSとして、おそらくもっとも有名で人気が高いです。

安定版のバージョンは1.1.0beta3です。現在最も新しいのはテスト版の1.1.0r198です。

X/Qt

http://xqt.sourceforge.jp/index.ja.html

Qt上で動くX Window Systemです。日本人が開発しているので日本語環境が充実しているのが特徴です。代替OSではないので、今回は見送りです。

PocketWorkstation

http://www.pocketworkstation.org/

Zaurusで動くDebianです。

OpenZaurus

ふたつのGUIがあります。Qtopiaから派生したOpie、X11ベースのGPEです。どちらにするかはインストール時に選択します。

OpenBSD/zaurus

http://www.openbsd.org/zaurus.html

OpenBSDがzaurus上で動きます。BSD派な人にはオススメかも。私はLinuxしか使えないのでパス。

Gentoo Linux Zaurus

http://gentoo-zaurus.sourceforge.jp/

標準OS環境と併用するタイプのようです。

今回は、サーバとして使うので、標準OSと併用するタイプはパスしました。日本語の情報量が比較的多い、pdaXromを採用することにします。

■参考にしたURL

http://bird-memo.seesaa.net/category/805599-1.html
http://benefits.cocolog-nifty.com/pdaxrom/2006/05/pdaxrom_110_bet_3898.html
http://www.pdaxrom.org/
http://hirosuke.tea-nifty.com/pda/2006/04/__69a9.html
http://www.miraclelinux.com/technet/document/linux/training/1_3_2.html#training1_3_2_4
http://www.makichan.jp/home/index.php?swap%A5%D1%A1%BC%A5%C6%A5%A3%A5%B7%A5%E7%A5%F3%A4%CE%BA%EE%C0%AE
http://www.ivoryworks.com/blog/2008/11/pdaxromvnc.php
http://www.mobile-bozu.com/weblog/archives/2006/11/pdaxromfirefox.html

http://comomo.shacknet.nu/pdaxrom/beta1_utf8

http://bird-memo.seesaa.net/article/22219587.html

http://d.hatena.ne.jp/kimicooldad/20060414

 

■feedへのリンク
http://distro.ibiblio.org/pub/linux/distributions/pdaxrom/download/1.1.0beta3/Zaurus-Cxx00/feed/

http://www.tyrannozaurus.com/feed/beta3/feed/

 

■NANDバックアップ

まずは、現在のHDの内容と、NANDのバックア
ップを取得しておく。
(これを忘れると、元のZAURUSに戻せないです!)

ここhttp://d.hatena.ne.jp/kimicooldad/20060414を参考にNANDバックアップ。

■1.1.0beta3のインストール

 

http://distro.ibiblio.org/pub/linux/distributions/pdaxrom/download/1.1.0beta3/Zaurus-Cxx00/
より

kathrin-1.1.0beta3-akita.zip

をダウンロード。
展開すると、
initrd.bin
tools.tar
updater.sh
ができる。
これをSDカードにコピーする。

zaurusをリセットする。
電源を接続しOKキーを押したまま電源ON。

メンテナンスメニューが起動するので

「4.アップデート」を選択。

「2.SD」を選択。

アップデートの警告が表示されたら「はい(Y)」を選択。

pdaXrom installerが起動する。
「3.NAND Flas Utils」を選ぶ

「1.Resize root partition」で121を入力してOKする。

Repartition finished.と表示されたらOKする。
再起動がかかるのでOKを押したままにしておく。

再びメンテナンスメニューになるので、

「4.アップデート」を選択。

「2.SD」を選択。

アップデートの警告が表示されたら「はい(Y)」を選択。

 

pdaXrom installerが起動する。

「4:run console shell」を選択。

HDに256Mのスワップパーティションを作成し、

残りをpdaXromアプリ用と
DATA保存用に確保します。

 

# fdisk /dev/hda

 

既存のパーティションを全部削除するためdコマンドを何回か実行。

pコマンドで全部のパーティションが削除できたか確認。

スワップパーティションの作成

 

Command (m for help): n [ENTER]
Command action
e extended
p primary partition (1-4)
p [ENTER]
Partition number (1-4): 1 [ENTER]
First cylinder (1-608, default 1): [ENTER]
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-608, default 608): +256M [ENTER]

 

アプリインストール用パーティションの作成

 

Command (m for help): n [ENTER]
Command action
e extended
p primary partition (1-4)
p [ENTER]
Partition number (1-4): 2 [ENTER]
First cylinder (33-608, default 33):  [ENTER]
Using default value 3
Last cylinder or +size or +sizeM or +sizeK (33-608, default 608): +512M [ENTER]

 

データ用パーティションの作成

 

Command (m for help): n [ENTER]
Command action
e extended
p primary partition (1-4)
p [ENTER]
Partition number (1-4): 3 [ENTER]
First cylinder (96-608, default 96):  [ENTER]
Using default value 5
Last cylinder or +size or +sizeM or +sizeK (96-608, default 608):  [ENTER]
Using default value 608

 

SWAPパーティションの設定

今回は、せっかくハードディスクに作成するのですから、色々なサイトで説明されている「スワップファイル」ではなく、ちゃんと専用のスワップパーティションを設けたいと思います。

 

Command (m for help): t [ENTER]
Partition number (1-4): 1
Hex code(type L to list codes): 82 [ENTER] 

 

確認のために表示する。

 

Command (m for help): p

Disk /dev/hda: 5000MB, 5000970240 bytes
255 heads, 63 sectors/track, 608 cylinders
Units = cylinders of 16065 *512 = 8225280 bytes

Device Boot Start End  Blocks  Id System
/dev/hda1       1  32  257008+ 82 Linux swap
/dev/hda2      33  96  506047+ 83 Linux
/dev/hda3      96 608 5120672+ 83 Linux

 

編集結果を書き込む。

 

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

# mke2fs -j /dev/hda2
# mke2fs -j /dev/hda3
# exit

 

pdaXrom installerに戻る。

「6.Reboot」で再起動する。
再起動がかかるのでOKを押したままにしておく。同様の手順で

pdaXrom installerを起動する。

「1.Install new ROM」を選択する。

進捗バーが100%になるまで待つ。

「6.Reboot」を選択。

再起動するとpdaXromが起動を始める。

■セットアップ

rootでログイン。

ログインしたら「startx」を実行する。

キャリブレーションを行う。

pdaXromが起動する。

スワップパーティションの設定

 

# /sbin/mkswap /dev/hda1    ← スワップの作成
# /sbin/swapon /dev/hda1    ← スワップの有効化
# /sbin/swapon -s           ← スワップの確認

 

不要なアプリの削除

System Tools⇒Packege managerを起動。

Installdタブで削除したいアプリにチェック。お好みに応じて削除してください。当方では以下のファイルを削除。

abiword
dillo-xft
sylpheed-gtk2
xdemineur
xchat
xmms
xmms-dump
xmms-mad
xmms-tremor
xpdf

歯車マークをクリックしてアンインストール。

再起動。
# reboot

ネットワークに接続
LANカードにはLPC-CF-CLTを使用。挿すだけで認識してくれる、すばらしい。

System Tools⇒Lan & WIFIをクリック。

TCP/IP&DNSタブを開く。
IP address,Subnet mask,Gateway,DNSを環境に合わせて設定。

壁紙の設定

別に、サーバとして使うのだから、Xはめったに立ち上げないと思うし、どうでもいいのですが、なんとなくデスクトップも設定してみる。

http://www.zaurusthemes.biz/index.html
から壁紙を取得、設定する。

ユーザの追加(hogeというユーザを追加する場合)

# adduser hoge
Enter new password:<設定したいパスワード>[ENTER]
Re-enter new passowrd:<設定したいパスワード>[ENTER]

以降は母艦よりターミナル接続する。ターミナルソフトはTeraTermを使用。SSHにて接続する。

先ほど作成したユーザでログイン後、su でrootになって作業する。

# su

/etc/fstabの編集

# vi /etc/fstab

# vi /etc/fstab

fstabファイルの最後に
次の行を追加して保存する。

/dev/hda1       swap            swap    defaults        0  0

再起動する。

swaponでスワップを有効化する。freeでスワップの状態を確認する。

# swapon -a
# free

              total         used         free       shared      buffers
  Mem:        62292        25036        37256            0           56
 Swap:       257000            0       257000
Total:       319292        25036       294256

起動時に毎回スワップパーティションが有効になるように、 

inittabに、スワップファイルの設定を追加。

# vi /etc/inittab

l6:6:wait:/etc/rc.d/rc 6 の次の行に、以下の行を追加

so:5:wait:/sbin/swapon -a

 

フォント設定

フォントをハードディスク上に配置します。

まず、使いたいフォントを母艦でダウンロードし、SDカードにコピーしておきます。

フォント用ディレクトリを作成します

mkdir -p /mnt/ide2/usr/X11R6/lib/X11/fonts/TTF

mkdir -p /mnt/ide2/usr/X11R6/lib/X11/fonts/TTF
SDカードから、作成したフォント用ディレクトリにフォントをコピーします。

cp /mnt/card/<Font名>.TTF /mnt/ide2/usr/X11R6/lib/X11/fonts/TTF/

「/usr/X11R6/lib/X11/fonts/TTF」以下へシンボリックリンクを張ります。

# cd /usr/X11R6/lib/X11/fonts/TTF
# ln -s /mnt/ide2/usr/X11R6/lib/X11/fonts/TTF/<Font名1>.ttf ./<Font名1>.ttf
# ln -s /mnt/ide2/usr/X11R6/lib/X11/fonts/TTF/<Font名2>.ttf ./<Font名2>.ttf

例)
# ln -s /mnt/ide2/usr/X11R6/lib/X11/fonts/TTF/sazanami-gothic.ttf ./sazanami-gothic.ttf
# ln -s /mnt/ide2/usr/X11R6/lib/X11/fonts/TTF/sazanami-mincho.ttf ./sazanami-mincho.ttf

# fc-cache -fv

# vi /home/root/.xinitrc

最初のほうに
xset fp+ /usr/X11R6/lib/X11/fonts/japanese
xset fp rehash 

を追加します。

# vi /usr/X11R6/lib/X11/fonts/TTF/fonts.cache-1

で、フォントの名前を調べます。

例)Sazanami Gothic の場合

 

# vi /home/root/.gtkrc-2.0

 

フォント名を変更する

# vi /usr/share/themes/Artwiz/openbox-3/themerc

下から三行のフォント名を変更する。

window.active.label.text.font: Bitstream Sazanami Gothic:pixelsize=14
menu.title.text.font: Bitstream Sazanami Gothic:pixelsize=14
menu.items.font: Bitstream Sazanami Gothic:pixelsize=14

Feedの設定

 

System Tools⇒Packege managerを起動。
Settingsタブをクリック

登録されているFEEDをすべて削除。

次のfeedを登録する。
1 http://distro.ibiblio.org/pub/linux/distributions/pdaxrom/download/1.1.0beta3/Zaurus-Cxx00/feed/
2 http://www.tyrannozaurus.com/feed/beta3/feed/
3 http://pdaxrom.sourceforge.jp/feed/

コンソールから

# ipkg update

# ipkg upgrade

Availableタブでインストールしたいパッケージにチェックを入れて
歯車をクリックするとインストールされる。
右上のInstall on プルダウンでインストール先を指定する。

apache2
apache2-php-module

samba-cliant
samba-common
samba-server

 

色々なサイトでの説明では、

http://www.pdaxrom.org/unstable/

を追加すると書いてあるのだが、すでにこのfeedは存在しない。

また、samba-codepage-932 も見当たらないです。

むかしはhttp://mail.pdaxrom.org/1.1.0beta1/Zaurus-7×0-860/feed/にあったのだが、すでにリンク切れ。

色々探したところ、

http://www.tyrannozaurus.com/feed/adf/index.html

 

にありました。上記をfeedに追加して

 

コンソールから

# ipkg update

# ipkg upgrade

Packege managerを起動して

samba-codepage-932

もインストールしましょう。

■サスペンド不具合対応


サスペンド復帰が上手くいかない。これを調整するために、できるだけ早い段階で、必ず、以下を実施すること。

viエディタで
「/etc/apm/resume.sh」 を作成し、以下のように編集。

vi /etc/apm/resume.sh

---------------—ここから----------
#!/bin/sh
/sbin/hwclock -s
---------------—ここまで----------

実行可能に設定します。

# chmod 755 /etc/apm/resume.sh

■ハードウェアクロック不具合対応

 

crondが起動しているかチェックする。

# /etc/rc.d/init.d/crond status

起動していなければ、起動する。

# /etc/rc.d/init.d/crond start

以下のコマンドでディレクトリを作る。

# mkdir /etc/cron.5minutely

viエディタで

「adj_clock.sh」 を作成し、以下のように編集。

# vi /etc/cron.5minutely/adj_clock.sh

---------------—ここから----------
#!/bin/sh
/usr/bin/sethwclock
---------------—ここまで----------

実行出来るようにアクセス権を設定する。

# chmod +x /etc/cron.5minutely/adj_clock.sh

■firefoxを使う

ブラウザがあればメンテナンス用に何かと重宝するかもしれないので、一応入れておこう。
Systrm Tools→Package manager起動

Firefoxにチェックして歯車マーククリック

インストール完了後再起動

# reboot

■Apache2設定

さて、ようやくサーバーらしい設定を行います。まずはwebサーバから。

Webサーバの設定ファイルは「httpd.conf」です。以下の場所にあります。

/etc/apache/httpd.conf

まずは設定フィルをバックアップしておきましょうか。

# cp /etc/apache/httpd.conf /etc/apache/httpd.conf.original

ドキュメントルートを変更します。デフォルトでは、内部メモリに設定されているので、ハードディスク上のディレクトリをドキュメントルートに設定します。
まずは、ハードディスク上にHTMLファイルの保存場所を作成します。

# mkdir -p /mnt/ide3/var/www/html

 

■以下のとおりhttpd.confを編集します。
・サーバ名の設定

サーバ名は、実際のサーバにつけた名前ではなく、ネットワーク上から参照されるときの名前です。

ServerName <ネット上でのサーバ名>:80

・セキュリティ強化設定

ServerTokens ProductOnly
ServerSignature Off

#IndexOptions FancyIndexing VersionSort

・ユーザディレクトリは使いません。コメントアウトしましょう。
#UserDir public_html

・さらに、不要な記述をがんがんコメントアウトしていきましょう。
#Alias /icons/ "/usr/local/apache/icons/"
#
#<Directory "/usr/local/apache/icons">
#    Options Indexes MultiViews
#    AllowOverride None
#    Order allow,deny
#    Allow from all
#</Directory>

#AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru))?(/.*)?$ "/usr/local/apache/manual$1"
#
#<Directory "/usr/local/apache/manual">
#    Options Indexes
#    AllowOverride None
#    Order allow,deny
#    Allow from all
#
#    <Files *.html>
#        SetHandler type-map
#    </Files>
#
#    SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|ru)/ prefer-language=$1
#    RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$ /manual/$1$2
#</Directory>

#ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
#
#<IfModule mod_cgid.c>
#</IfModule>
#
#<Directory "/usr/local/apache/cgi-bin">
#    AllowOverride None
#    Options None
#    Order allow,deny
#    Allow from all
#</Directory>

#IndexOptions FancyIndexing VersionSort

#AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

#AddIconByType (TXT,/icons/text.gif) text/*
#AddIconByType (IMG,/icons/image2.gif) image/*
#AddIconByType (SND,/icons/sound2.gif) audio/*
#AddIconByType (VID,/icons/movie.gif) video/*

#AddIcon /icons/binary.gif .bin .exe
#AddIcon /icons/binhex.gif .hqx
#AddIcon /icons/tar.gif .tar
#AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
#AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
#AddIcon /icons/a.gif .ps .ai .eps
#AddIcon /icons/layout.gif .html .shtml .htm .pdf
#AddIcon /icons/text.gif .txt
#AddIcon /icons/c.gif .c
#AddIcon /icons/p.gif .pl .py
#AddIcon /icons/f.gif .for
#AddIcon /icons/dvi.gif .dvi
#AddIcon /icons/uuencoded.gif .uu
#AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
#AddIcon /icons/tex.gif .tex
#AddIcon /icons/bomb.gif core

#AddIcon /icons/back.gif ..
#AddIcon /icons/hand.right.gif README
#AddIcon /icons/folder.gif ^^DIRECTORY^^
#AddIcon /icons/blank.gif ^^BLANKICON^^

#DefaultIcon /icons/unknown.gif

#ReadmeName README.html
#HeaderName HEADER.html

#IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

・エラードキュメントぐらいは自分でよういしましょうか。有効化します。
ErrorDocument 404 /missing.html

・ドキュメントルートを、先ほど作ったディレクトリへと書き換える。
・セキュリティ上、ファイル表示は使わないのでIndexesの前に「-」をつけましょう。

<Directory "/mnt/ide3/var/www/html">

    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

</Directory>

 

ファイルを編集したら、記述にミスがないかチェックしましょう。

# /etc/rc.d/init.d/apachectl configtest

「Syntax OK」と表示されれば問題ありません。

apacheを再起動しましょう。

# /etc/rc.d/init.d/apachectl restart

FireFoxでhttp://<ZaurusのIPアドレス>/

を表示してみましょう。ページが表示できたら成功。

 

■pdaXromでVNC

メンテナンス用にVNCを入れます。ちまちまとzaurusで作業するのはとっても面倒。VNCを入れておけばメンテナンスも楽々ですよ。

SystemTool⇒PackegeMangerを開く。
SettingsタブでFeedを追加

Name: 4
Url : http://www.focv.com/feed/

を追加する。

コンソールで
ipkg update

OpenSSHを先にインストールする必要がある。
今回はすでにOpenSShをインストール済みだったので問題なし。
x11vncをインストール。

インストール後、コマンドラインから x11vnc を起動。

単に

< tr style="TEXT-ALIGN: left">

#/usr/bin/x11vnc

で起動すると、クライアントから接続後クライアントを切断すると、x11vncが終了してしまう。

#/usr/bin/x11vnc -forever 

とすることで、クライアントを切断してもx11vncを終了しないように出来る。
パソコンでvncクライアントを起動。Serverに<zaurusのIPアドレス>:5900 を指定する。

 

 

■日本語入力環境を整えたり、アプリを追加たりしてみる。あれ、だんだんサーバーじゃなくなってきたなぁ。

bzip2 bz2ファイルの展開と圧縮
glibc-locale GNUプロジェクトにおけるCの標準ライブラリの locale data
glibc-locale-ja-jp-utf-8 ja_JP.UTF-8 用の locale data
gtkterm2 日本語表示可能なターミナル
inetutils-clients  
lv  
ntp 時計合わせ用
timezones  
unzip zipファイルの展開と圧縮
vim editor
xutf8  
gconf

 

orbit2

 

 gconf と orbit2 は/(ルート)にインストールします。あとはご自由に。

uimとanthyはPakageManagerからのインストールが上手くいかない。なんでだろー。

仕方ないので、ファイルをダウンロードしてからインストールする。

ファイルをダウンロードするフォルダを作る。

# mkdir -p /mnt/card/feed

# cd /mnt/card/feed

# mkdir -p /mnt/card/feed

# cd /mnt/card/feed 

 

ファイルをダウンロードする。

# wget http://pdaxrom.sourceforge.jp/feed/uim_0.4.5_armv5tel.ipk

# wget http://pdaxrom.sourceforge.jp/feed/anthy_7500_armv5tel.ipk 

 

これらパッケージもなるべく/(ルート)にインストール。

 

ipkgでファイルからインストール。 

# ipkg install anthy_7500_armv5tel.ipk 
# ipkg install uim_0.4.5_armv5tel.ipk

 

uim 0.4.5  
anthy 7500   

をインストールした。上記以外の組み合わせも色々試したがうまくいかなかった。 

 

/etc/profile の最後に次の3行を追加

 

export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8
export TZ=JST-09

 

~/.xinitrc の編集

 

"test -f /etc/profile && . /etc/profile"の次に以下の4行を追加

 

export GTK_IM_MODULE=uim
export XMODIFIERS=@im=uim

exec uim-xim &
exec uim-toolbar-gtk-systray &

 

 

    SL-C1000|SL-C3000|SL-C3100|SL-C3200)
 test -f /etc/X11/kb/akita.xmodmap && xmodmap /etc/X11/kb/akita.xmodmap の次に1行追加

test -f /etc/X11/kb/akita.xmodmap_jp && xmodmap /etc/X11/kb/akita.xmodmap_jp

 

akita.xmodmap_jpを作成する。以下のように編集する。

# vi /etc/X11/kb/akita.xmodmap_jp

---------------—ここから----------

keycode 78 = Kanji

 

keycode 71 = comma slash less less
keycode 28 = t T braceleft braceleft
keycode 33 = y Y braceright braceright
keycode 29 = u U bracketleft bracketleft
keycode 17 = i I bracketright bracketright

 

---------------—ここまで----------

 

 

■タイムゾーンの設定

# ln -sf /usr/share/zoneinfo/Japan /etc/localtime

 

■sambaの設定

sambaの設定は「smb.conf」ファイルで行う。

# vi /etc/samba/smb.conf

[global]に以下の9行を追加する。

 

Log file = /dev/null 

coding system = utf8

client code page =932
force create mode = 0755
strict sync = yes
sync always = yes

security = share

null passwords = yes

interfaces = usbd0

 

Webサーバのドキュメントルートへアクセスできるようにする。次の4行を追加

 


 comment = access to html
 path = /mnt/ide3/var/www/html
 guest ok = yes 

 writable = yes

 

sambaを再起動して、設定を確認してみる

# /etc/rc.d/init.d/samba stop 
# /etc/rc.d/init.d/samba start

 

他のPCから接続してみて、内容が表示されることを確認。

 

最後に

reboot

で再起動しておく。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です