http://www.yomiuri.co.jp/atmoney/news/20081213-OYT1T00466.htm
たしかに、今は低価格で高機能なモバイル機器が手に入りますからね。
zaurusの役目は終わったというところでしょうか。
私も最近は「Windows Mobile」機器を使い始め、zaurusはすっかりほこりをかぶっていました。
しかし、代替OSを入れることで、ファンレスの静音サーバになるのではないか!?と思い、押入れから引っ張り出してきたわけです。
せっかくですのでWebサーバとして活用してみましょう。
■どの代替OSを入れるか
Zaurusの代替OSにはいくつもの種類があります。
Zaurusの代替OSとして、おそらくもっとも有名で人気が高いです。
安定版のバージョンは1.1.0beta3です。現在最も新しいのはテスト版の1.1.0r198です。
http://xqt.sourceforge.jp/index.ja.html
Qt上で動くX Window Systemです。日本人が開発しているので日本語環境が充実しているのが特徴です。代替OSではないので、今回は見送りです。
PocketWorkstation
http://www.pocketworkstation.org/
ふたつのGUIがあります。Qtopiaから派生したOpie、X11ベースのGPEです。どちらにするかはインストール時に選択します。
http://www.openbsd.org/zaurus.html
OpenBSDがzaurus上で動きます。BSD派な人にはオススメかも。私はLinuxしか使えないのでパス。
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」を選択。
残りを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 Device Boot Start End Blocks Id System |
編集結果を書き込む。
Command (m for help): w Calling ioctl() to re-read partition table. # mke2fs -j /dev/hda2 |
pdaXrom installerに戻る。
「6.Reboot」で再起動する。
再起動がかかるのでOKを押したままにしておく。同様の手順で
pdaXrom installerを起動する。
「1.Install new ROM」を選択する。
進捗バーが100%になるまで待つ。
「6.Reboot」を選択。
再起動するとpdaXromが起動を始める。
■セットアップ
rootでログイン。
ログインしたら「startx」を実行する。
キャリブレーションを行う。
pdaXromが起動する。
# /sbin/mkswap /dev/hda1 ← スワップの作成 |
不要なアプリの削除
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 |
以降は母艦よりターミナル接続する。ターミナルソフトは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 total used free shared buffers |
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/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 |
---&
#45;-----------—ここから----------
#!/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」です。以下の場所にあります。
まずは設定フィルをバックアップしておきましょうか。
ドキュメントルートを変更します。デフォルトでは、内部メモリに設定されているので、ハードディスク上のディレクトリをドキュメントルートに設定します。
まずは、ハードディスク上に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アドレス>/
を表示してみましょう。ページが表示できたら成功。
メンテナンス用にVNCを入れます。ちまちまとzaurusで作業するのはとっても面倒。VNCを入れておけばメンテナンスも楽々ですよ。
SystemTool⇒PackegeMangerを開く。
SettingsタブでFeedを追加
Name: 4
Url : http://www.focv.com/feed/
を追加する。
コンソールで
ipkg update
OpenSSHを先にインストールする必要がある。
今回はすでにOpenSShをインストール済みだったので問題なし。
x11vncをインストール。
インストール後、コマンドラインから x11vnc を起動。
単に
#/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 |
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
---------------—ここまで----------
■タイムゾーンの設定
# 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行を追加
[html]
comment = access to html
path = /mnt/ide3/var/www/html
guest ok = yes
writable = yes
sambaを再起動して、設定を確認してみる
# /etc/rc.d/init.d/samba stop |
他のPCから接続してみて、内容が表示されることを確認。
最後に
reboot
で再起動しておく。