☆LINUX日記☆その2


ここはなんとなくデュアルCPUのUNIXマシンを組んでみようとか思った奴の悪戦苦闘記が載っているはずです(^^;

 うーん。この年月のすすみ具合は…(笑)
 えっと、この一年以上でうちのふぉるさまに起きたこと。
   ……うーん。ほかには何かあったかな? なぞですね。
 先日、100/10baseのスイッチングHUBを購入して、ネットワークを100Base化したのですがどうにもスループットがでません。120MくらいのファイルをFTPして、800k/sくらい。いくら何でも、遅すぎ。
 HUBとしては、ちゃんと100Baseの全二重で認識しているんです。でもねー。全然速度がでないんだよー。
 考えられる原因は……ネットワークカード同士の相性か、もしくはサーバのHDDが死ぬほど遅いってことでしょうか(笑) いくら440FXなチップセットのIDEだからといって、そこまで遅くはないと思うのですが……。
 sambaによる転送でも、1.2M/sがいいところなんですよねー。100Mbpsっていったら、せいぜい5MB/sくらい出ても良さそうじゃない? うーん。こういうのが一番困るよー。とりあえず動いてるから、対策が後回しになってしまいますね。

 ここは一つ、CeleronDual機への移行をはかるべきなのでしょう(余ってるし)。静かなFANとメモリがひつようだなぁ。
 ついでだから、計画的にはVine2.0に移行して、Glibc2.1系への移行……ですかねぇ。中途半端だしね。今の状態は。

 ペンプロデュアル化&新しく出たカーネル、2.0.36のインストールです。

 表の日記に書いてあったとーり、pinが折れていたのでちょっと苦労しましたが、CPUそのものはちゃんと認識しました。

 で。

 kernelの再構築っす。
 linux-2.0.36.tar.gzを/usr/srcに展開。で、includeのシンボリックリンクをなおしたり、げしげしやります。
 menuconfigで、設定。
 あ。SMPのための設定が一つ増えてる☆
 たしか、SMPのために出ていたpatchが、正式採用されたような感じですね。
 いつもと同じように設定してコンパイル……あれ? 途中で止まった(涙)
 /usr/include/linux/types.h
 がエラーを出して止まってるよーです。そのファイルを開いて読んでみると……
 「gcc2.8とかegcs1.1ではなんだかしっかりコンパイルできなくなってるので、patchを落としてつかってね☆(かなり意訳)」
 だそうです。うーん、PGCCはgcc2.8oregcs扱いのよーです。で、そんなわけなので、

linux-2.0.x patchestocompilewith egcs 1.1 or gcc 2.8.x

 から、patchを落としてきて、パッチあてをします。
 解凍して、
patch -s -p0 < linux-2.0.x.patch
 ね。
 さて、それでは再びコンパイル……。あ。えらーの数がかなり減ってる。

 となったところで、再起動。始動確認でし。

 うーん。とりあえず動作は普通……ですね。あ。サウンドカードが認識されなくなってる(涙)
 とりあえず、このあたりは早急に解決しなくちゃなりませんねぇ(涙)

 今回は、ネットワーク周りの細かい調整です☆

 その理由は――

 会社から支給されたマシンのIPが163.192.10.238
 うちのネットワークは163.192.174.x

 っていうようなあたりから発生する問題です。
 つまりは、異なるサブネットなわけで、ルータを通さないとパケットのやりとりが出来ないのですね。

 ですので、フォル様にルータになってもらって、パケットを中継してもらおうっ☆ ってなことを考えます。
 使えそうな技術としては、ip-alias。ひとつのNICに複数のIPアドレスを割り当てることが出来るんですぅ。
 つまりは、フォル様に、

 と、3つのアドレスを持ってもらえば解決出来るのではないか。そんな風に考えたわけですね☆

 さて、実際の設定です――
 まず、カーネルをIP-alias対応にする必要がありますぅ。

Networking optionsの
   Network aliasing
   IP: aliasing support
 をチェックして、カーネルを再構築しませう☆ ……だんだんカーネルが重くなっていくぅ。

 これが終了して、新しいカーネルを読み込んだら、ifconfigを使って、NICに新しいアドレスを割り当てます☆

/sbin/ifconfig eth0:0 192.168.10.1
/sbin/ifconfig eth0:1 192.168.1.1
 これで、新しいIPが割り当てられたはずです。でも、これだけではまだrouteが設定されていなくてpingも通りません(涙)
 そのため、routeも設定してあげます☆
/sbin/route add -net 192.168.10.0 dev eth0:0
/sbin/route add -host 192.168.10.1 dev eth0:0
/sbin/route add -net 192.168.1.0 dev eth0:1
/sbin/route add -host 192.168.1.1 dev eth0:1
 こんな感じですねー。細かい説明は、JFに載ってますです☆

 これで、Win95マシンであるところのベルちゃんから、にゅーマシンの192.168.10.238にpingが通るようになりました☆

 しかし、これでもまだWin上のネットワークコンピュータではふぉる様を見ることはできません。なぜって、Win98からはパスワードが暗号化されてネットの中を流れるからなんです。
 そこで、ふぉる様のsambaを暗号化パスワード対応にします☆
 参考にしたのは、Japanaized SAMBA Web Pages ですぅ。詳細はここのドキュメントにありますです☆

 さて、まずはsmb.confの[global]セクションに以下のように追加します。

[global]
security = user
encrypt passwords =yes
 このよーにすると、sambaはunixの認証メカニズムを使わずに、独自のメカニズムを使うようになるようです☆
 そのために、専用のパスワードファイルが必要になるので、作成します☆
 コンパイル時にMakefileのSMB_PASSWD_FILEで指定したファイルを使いますぅ。デフォルトでは /usr/local/samba/private/smbpasswdです。でもだいたいは、/usr/local/samba/private/っていうディレクトリが切られていないことが多いので、注意してくださいまし☆
 unixのパスワードファイルから、samba用のパスワードファイルを作り出すスクリプトが、sambaのsourceディレクトリに用意されていますので、
# cat /etc/passwd | mksmbpasswd.sh > /usr/local/samba/private/smbpasswd
 のように実行します。この辺はroot権限で行ってくださいましね。

 実行すると、smbpasswdファイルができあがります。このファイルはスーパーユーザー以外からはアクセス出来ないように、

 chown -R root /usr/local/samba/private
 # chmod 500 /usr/local/samba/private
 # chmod 600 /usr/local/samba/private/smbpasswd
 とでもしておいてください☆
そうしたら、/usr/local/samba/bin/にsmbpasswdというプログラムがあるので、これを実行して、ユーザのパスワードを設定してくださいまし。
# smbpasswd foo
New SMB Password: <パスワードの入力>
Repeat New SMB Password: <パスワードの再入力>
 fooはユーザー名ね(お約束)。わたしの環境では、ここの操作はファイルのある /usr/local/samba/bin/の中でないと出来なかったです。

 以上で、Win98から、フォル様が認識できるようになりました☆
 でも、「コンピュータの検索」をかけないと、ふぉる様が見つからないのよねぇ……。まぁ、ちゃんと見えることは見えるから良いのですけれども――
 でも、今の状況ではにゅーましんからベルちゃんを見ることが出来ません。ふぉる様を中継に使えばいいから、良いのですけどもね。一応、方法を考えてみます。
 今日はここまでっ☆

 なんとなく、X−TTを入れてみたり。Xでtruetypefontを使うためのソフトですね☆

 まず、FreeTypeっていうソフトをインストールします。これは、 FreeTypeProjectのページにあります。わたしが使ったのは、バージョン1.1です。インストールは./configure;make;make installで簡単っ☆

 その次。XF86をX-TT対応にしなければなりません。
 その詳細については、 X-TrueTypeServerProjectのページに詳しいですね。ですが、ソースからわざわざコンパイルするのは面倒くさい(笑)せっかくRPMパッケージを作ってくれた方がいるのにっ。
 そんなわけで、永繁さんのJRPM番外編のページより、libc5用のRPMを入手。
 ここで取ってくるのは、自分のグラフィックカードに合ったRPM、それから、
XFree86-libs-3.3.2+X_TT-9.i386.rpm
XFree86-devel-3.3.2+X_TT-9.i386.rpm
のあたりもインストールです。
 永繁さんのページに載っていますが、気をつけるのはRHL4.2な人。バイナリ作成時のミスだそうで、pam-0.59以上が要求されてしまうそうです。で、例えば、
rpm -Uvh --nodeps XFree86-3.3.2+X_TT-9.i386.rpm
のよーにして、依存関係を無視して入れてください、とのこと。libsとdebelは大丈夫でしたね。そのままでも(しかし、debelって何が入ってるんだろ?)。
 これで大まかな準備が整ったので、TTF(truetypefont)を入れるディレクトリを用意しますぅ。わたしは、
/home/ayane/truetype/
に用意しましたです。……Win95に入ってるMSゴシックと明朝ね(^^;
 コピーして、次に、fonts.dirというファイルを作ります。これが面倒。
 で、かずしさんの作られた、mkttfdirというperlスクリプトを使いますぅ。 ぺーじはここ
 ここのページから必要なものは、
FT.xs.19980501.tgz
FT.xs.19980501.jp1
FreeTypeWarapper.pm1.19
mkttfdir.pl-1.17
と、このあたりですね。ページに書いてあるとおりに、まずFT.xs.19980501をインストール。ちなみに、FreeType1.1を使っているのでパッチをあてなきゃいけません。書いてあるとーりですね。 make&NBSP;testをすると、えらーがでましたがとりあえず気にしないでインストールしちゃいました。
 それがおわったら、
cp FreeTypeWrapper.pm-1.19 /usr/lib/perl5/site_perl/FreeTypeWrapper.pm
とします。元のページでは、 cp FreeTypeWrapper.pm-1.19 /usr/local/lib/perl5/site_perl/FreeTypeWrapper.pm
でしたが、うちでは上のようにしないとダメでしたね。取り合えずそうやってコピーします。
 これで、mkttfdirを動かす準備が整ったはずですので、さっきTTFをおいたディレクトリで、mkttfdirを実行します。はい。そうすると、fonts.dirっていうファイルが出来てるはずです。

 そしたら次に、フォントパスの設定。どうやら、xfsは使わないよーになっているらしいので、X-TTのインストールドキュメントの、「XサーバでX-TTを使う場合」の項によります。
 だから、

% xset fp+ /home/ayane/truetype
% xset fp rehash
 ってします。あ。パスは当然「うちの場合」ですよん。もしこれを見て参考にしようとかいう奇特な方がいたら、適宜変更のこと☆

 どうやら、ここまででTTFがXで使えるようになっているようです。
 Xを立ち上げてみます。
xinit - -- deferglyphs 16
 オプションは……いろいろ意味があるようだが、おまじないのように思っておく方が吉かも。つけなきゃまずいらしいです。たぶん。これってxfs使ってるときだけなのかな? 調べてみよう……。  あ。RPMからXをいれたあとに、suidを設定するのをお忘れ無く(^^;
/usr/X11R6/bin/XF86_S3に、
chmod +s XF86_S3
です、うちの場合。
 とりあえずXが立ち上がったので、xfontselでフォントを見てみます。
 ……ここで、MSゴシックのフォントが見られるってことは、X-TTが入ってるってことだよね?(笑)
 大丈夫みたいです。
 jcommunicatorで、このフォントを使うように設定してみましょう。
 「編集−設定−表示−フォント」のあたりですね。MSゴシックを使うようにしてみます。
 お。フォントが綺麗になった☆(気がする……) でも小さいのー(涙) (12ポイントになってしまうの、必ず……)
 この辺は、communicatorのバグで、プロポーショナルフォントのサイズが記憶されないらしいのです。だから、fonts.aliasかなにかで好きなサイズのフォントとしてaliasしておく必要があるみたいです。  サイズが気にくわない人は、てきとーに直してくださいまし。(っていうか、わたしはまだこの辺わからない……)
 とりあえずネットスケープコミュニケーターなスクリーンショットを乗せてみたり。