HOME > VineLinux 2.1.5 Time-stamp: Nov 25 2001

VineLinux 2.1.5


インストール

Windows98SE を再インストールしたら、MBR (master boot record)の LILO が消された。PlamoLinux2.0を起動できなくなった。 ついでなので、ほかのディストリビューションを入れることにした。 LinuxMagazine for Beginners (ASCII)というムックを買った。2001/6月上旬。それについてた VineLinux2.1.5を入れる。

ハードウェアは
CPU Celeron 433MHz
memory 128MB
HDD 13GB のうち 2GBを割りあてる
gfx i810-DC100 (4MB)
audio AC97 codec(i810 internal)
modem アナログ56K 外付け(シリアルポート)

インストールは雑誌に書いてあるとおりした。CDをセットする。FDを2枚用意して、1枚めに、Windows から bootimageを書き込む。そのまま再起動して、Vineのインストール開始。きれいな画面だ。

インストールtypeは「カスタム」。 すでに Linuxのためのパーティション分けはしてあったので、ext2の領域を / に割りあてただけ。LinuxSwap領域は自動的に認識した。 LILOをインストールするとこで、dos すなわちWindowsを「デフォルトの起動イメージ」にした。

ネットワークの設定はあとですることにして飛ばした。設定項目の意味が分からないっていうのもあったけど。パッケージgroupの選択は、TeX関係以外すべてを選択した。

モニタは EIZO T550 と自動認識した。うーん、かしこい。しかし、Xの設定は、i810と認識したのはいいけど、VRAMを 1MBしか認めてくれない。1152x864x8bit を選んだ。実際には VRAMは 4MBあるし、1280x1024x24bitカラーもWindowsではできるんだけどなぁ。 そもそも 24bitカラーは選択肢にでてこなくて、32bitカラーしか無いみたい。

インストール終わり。再起動して、「起動OSの選択」画面になったら随分きれいな選択画面がでてきた。

画面は256色だから写真を表示するのはキツイある。でも何にも設定しないでてるのはいい。動作もWindowsより多少早い。音もでてることを xmms を動かしてみて確認した。Plamoでは音は設定はうまくできなかったのに。フォントもきれいだ。Netscapeで日本語書き込みも問題ない。


クライアントとしての設定

Capsキーを押しても Ctrlキーの役割を果たすようにする
$HOME/.Xmodmap というファイルを作って、
keycode  49 = Escape
keycode   9 = grave asciitilde
remove Lock = Caps_Lock
remove Control = Control_L
keysym Caps_Lock = Control_L
add Control = Control_L
とすればいい。OS再起動するたびに自動で置き換えされる。 手動で実行するなら、
$ xmodmap .Xmodmap
とすればいい。

WindowManagerを変更する
$HOME/.wm-style の中身を sawfish と書き換えた。 X起動したとき、何もでてこない。button2 を押すとメニューがでてきて、ktermなども起動できる。画面に何もないのも、なかなか快適かも。

ブザー音(beep音)がうるさい
のは、
$ xset b off
で消せるけど、どこにこれを書けばいいかなぁ。

壁紙を1色で塗りつぶす
Xを起動させたときの壁紙は、なんか虹のような色が見える、といってもきれいじゃない。
$ xsetroot -solid gray10
とする。 色の名前は /etc/X11/XF86Config に書いてある
    RgbPath	"/usr/X11R6/lib/X11/rgb"
のファイルを読めばいい。だけど、毎回設定するにはどこに書けばいいのかな。

どうやら、/etc/X11/xinitrc が Xを起動するときの startupファイルらしい。そこを見るかぎり、$HOME/.Xclients に 起動したい WindowManagerとかそのほかの Xアプリとか Xの設定を書いちゃえばいいらしい。 /etc/X11/xinit/Xclients を参考に書いてみた。

#!/bin/sh

xset b off
xsetroot -solid gray10
wmclock -noblink -exe /usr/X11R6/bin/kterm -position -67+16 &
${BROWSER} &
emacs &
kterm -geometry -50+50 &
sawfish

1152x864x24bitカラーで表示する
$ dmesg | less
したときの内容
...
agpgart: Detected an Intel i810 DC100 Chipset.
agpgart: detected 4MB dedicated video ram.
...
からも、このグラフィックチップは VRAM が 4MBあると分かる。/etc/X11/XF86Config を書き換えると24bitカラーで動いた。 書き換え場所は、下からいうと、
# The accel server
Section "Screen"
    Driver      "accel"
    Device      "Intel 810"
    Monitor     "enc1600"
#   DefaultColorDepth 8
    Subsection "Display"
        Depth       24
        Modes       "1152x864" 
        ViewPort    0 0
    EndSubsection
EndSection
この DefaultColorDepth 8 をコメントにする。 Depth は 8と書いてあったけど、24 にする。 その上の
# The svga server
Section "Screen"
    Driver      "svga"
    Device      "Intel 810"
    Monitor     "enc1600"
#   DefaultColorDepth 8
    Subsection "Display"
        Depth       24
        Modes       "1152x864" 
        ViewPort    0 0
    EndSubsection
EndSection
も同様に。上にある
Section "Device"
    Identifier         "Intel 810"
#   VideoRam           1024
EndSection
をコメント化。これでいい。

あと、/etc/lilo.conf も書き換えてみたけど意味はあったのかな?

append="apm=on mem=126M" 
この「 mem=126M」を追加した。
「apm=on」というのがあるときは、15分ほど PCをさわらないでいれば勝手にサスペンドする。マウスを動かせば復活(リジューム)する。問題があって、サスペンドするときに「ピーピーピー」、リジューム時にも「ピーピー」と beep音が鳴るので (xset b off としていても鳴る) うるさいのだ。「apm=on」は削除した..しかしやはり勝手にサスペンドするとやはり beep音がする。
/etc/lilo.conf を書き換えた場合、かならず、/sbin/lilo を実行する。

DOSのパーティションを読み書きできるようにする
root で /dos ディレクトリを作る。
# mkdir -m744 /dos
一時的に読み書きするには、
# mount -t vfat /dev/hda5 /dos
とすれば Windowsの Dドライブを /dos にマウントできる。毎回マウントするには、 /etc/fstab
/dev/hda5               /dos                    vfat    auto,rw,devuid=i 0 0
と書く。後述の Emacsで引く辞書のため、Cドライブもマウントするようにした。
/dev/hda1               /usr/dict/dos           vfat    auto,ro         0 0

Emacsの設定
まずは、Ctrl-H を一文字削除にしないと個人的にはどうにもならない。既に用意されていた $HOME/.emacs$HOME/.emacs.el はファイル名の末尾に _orgを付け加えて、Emacsが認識しないようにした。$HOME/.emacs を別に用意した。 そして、$HOME/.emacs20 も用意した。

あと、$HOME/.Xdefaults にも設定を書いてある。M-x info - Emacs - International - Defining Fontsets などを参考にした。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! emacs, xemacs

Emacs.Fontset-0:-b&h-lucidatypewriter-medium-r-normal-*-12-*-*-*-*-*-fontset-b&h12
Emacs.Fontset-1:-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-fontset-courier17
!Emacs.Font:-adobe-courier-medium-r-normal-*-14-*-*-*-*-*-*-*
Emacs.Font:-b&h-lucidatypewriter-medium-r-normal-*-12-*-*-*-*-*-*-*

emacs*bitmapIcon: on
emacs.geometry: 80x54
Emacs*lineSpace: 2
Elispパッケージは、lookup-1.3, eb-2.3.8, eblook-1.3, apel-10.3, skk-10.62a, compface-1.4, bitmap-mule-8.4 の順で入れた。eblook はコンパイルしてもなぜか「libeb.so.1 が無いよ」とかいうので、MakefileCFLAGS = -g -O2CFLAGS = -O2 -staticと スタティックリンクにしたらOK。

これで、辞書も引けるようになったし、日本語入力も可能になった。 辞書の外字は、bitmap-muleで表示しているけど、telnet越しとかコンソールとかの tty環境 (非X環境) で使う場合は、appendixを使って表示するほうがいい (メールにコピーペーストすろときも便利)。

スクリーンショットを撮る
スクリーンショットは、
$ xwd -frame -out scrshot.img
としてから アプリのウィンドウをマウスでクリックして撮る (ImageMagickに含まれる importコマンドでも同じことができる)。
$ convert scrshot.img scrshot.png
とやって PNGファイルに変換。

インターネットに接続する
アナログ 56K、テレホーダイ。まず rootで、
# ln -sf /dev/ttyS0 /dev/modem
とする(LinuxMagazine for beginners は 大文字小文字がまちがってる)。 tkppxp を起動して、[Oparation] - [QuickDialup] で設定する。
ダイアル設定-Pulse、認証プロトコル-PAPorCHAP、PPPモード-active、VJ圧縮-yes、resolv.confの書き換え-Fix、ドメイン名-空白、サーバ1〜2-プロバイダの指定値。
再生ボタンを押すとつなげた。モデムからビギャー音がでるのが問題だ。あとでなんとかしよう。

モデム
ピギャー音を出さずにインターネット接続ができるようになった。 コンソールで、
$ su -
# ppxp isp
PPxP version 0.99120923
interface: tap0
ppxp> term
at&p2
OK
atm0
OK
atdp1234567
CONNECT 48000/LAPM/V.42bis

Login: itouh@fa2
Password: ________ 
これで接続できる。ただし毎回IDとpassword入力するのもめんどいので、自動化の方法も調べたほうがいい。

cron を書き換え
毎日HDをチェックする必要はないので、 /etc/crontabの
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
の先頭に # を置いてコメント化する。

ネットワークの設定

LANの設定
$ dmesg | less
として、ネットワークデバイスを調べる。
...
eth0: OEM i82557/i82558 10/100 Ethernet, 00:50:70:01:27:5E, IRQ 5.
  Board assembly 664088-003, Physical connectors present: RJ45
  Primary interface chip i82555 PHY #1.
...
eth0 がLANカードに割りあてられていた。 rootになって、
# ifconfig -a
で現在の eth0 のIPアドレスが分かる。 新しく IPアドレスを設定するには、
# ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up
ほかのマシンとの経路情報は、
$ /sbin/route
でわかる。設定は、
# route add -net 192.168.0.0 netmask 255.255.255.0 eth0
とする。この設定で、192.168.0.* というホストあてのデータは eth0に送る、というようになった。 これでつながったので、pingコマンドでチェック。
$ ping -c2 192.168.0.3
PING 192.168.0.3 (192.168.0.3) 送信元 192.168.0.2 : 56(84) bytes of data.
64 バイト応答 送信元 192.168.0.3: icmp_seq=0 ttl=255 時間=642 マイクロ秒
64 バイト応答 送信元 192.168.0.3: icmp_seq=1 ttl=255 時間=575 マイクロ秒

--- 192.168.0.3 ping 統計 ---
送信パケット数 2, 受信パケット数 2, パケット損失 0%
Round-Trip 最小/平均/最大/mdev = 0.575/0.608/0.642/0.041ミリ秒
となり、別のマシン 192.168.0.3 とは接続されていることが分かる。ちなみに 接続されてないアドレスだと、
$ ping -c2 192.168.0.4
PING 192.168.0.4 (192.168.0.4) 送信元 192.168.0.2 : 56(84) bytes of data.
送信元 192.168.0.2: 目的のホストへ届きません
送信元 192.168.0.2: 目的のホストへ届きません

--- 192.168.0.4 ping 統計 ---
送信パケット数 2, 受信パケット数 0, +2 エラー, パケット損失 100%
となる。

起動するたびに自動で設定するには、RedHat系だと /etc/sysconfig/network-scripts/ifcfg-eth0 に書けばいいらしい。

DEVICE=eth0
IPADDR=192.168.0.2
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
最初は BOOTPROTO=static となっていたけど、DHCPを使用しない場合は none にするらしい。

FTPサーバ
VineLinux2.1.5で標準で入ってる ProFTPD を使う。 ただ転送するには、 サーバを起動し (standaloneモードで起動する)
# proftpd
別のマシンで
$ ftp 192.168.0.2
とすればいい。そのとき、ログインするユーザIDとパスワードは、サーバの起動してるマシンのユーザのものであればいい。ちなみに、/home/ftp ディレクトリは最初から作られてた。

アクセス制御は、TCP_Wrappers (/etc/inetd.conf で設定) でもできるが、standaloneモードのときは、独自の設定ファイル /etc/proftpd.conf で行なう。 proftpd の終了は

# ps aux | grep proftpd
# kill プロセスID
でいいと思う。

Webサーバ
VineLinux2.1.5に入ってる Apacheのバージョンは
# httpd -v
Server version: Apache/1.3.19 (Unix)  (Vine/Linux)
Server built:   Mar 12 2001 01:13:06
となっている。/etc/httpd/conf/httpd.conf で設定する。

雑記

気がついたこと
Netscape Navigator 4.76 はよく落ちる。Windows98上のInternetExplorer5.01-SP1 のほうがよほど安定してる。

xmms は音はいい。[設定 - 出力プラグイン] を eSound Output Plugin にすると、曲最初のnoiseも無い。ただし、MP3ファイルによってはときどきおちる。Winampのほうが安定してるなぁ。あと、「ID3タグ削除」と「キャンセル」の位置が Winampと逆になってるので、操作に慎重になって疲れる。

USB接続のタブレットが使えるのには驚いた。しかし、描写領域がずれてて設定もできないし、GIMPで試したところ筆圧変化もきいてない様子。

Alt + F2, F3 などで、X Windowにいても、consoleのログイン画面にできる。 Alt + F7 でコンソールから X Window に戻る。

su ユーザ名 でほかのユーザとしてログインできる。

ほかのユーザとファイルをコピーしあえるようにするには、home/myDirのパーミッションを chmod 755 とすればいい。
rwxr-xr-x

Java2 SDK 1.3
ここを参考にした。Sunのページから rpmをダウンロードしてきて、そいつをLinux上で実行属性つけて実行する。すると、「yes」と言えというので言うと、rpmファイルが出てくる。それを
# rpm -ivh j2sdk-1_3_1-linux-i386.rpm

そして、~/.bashrc にこう書いた。

PATH=$PATH:/usr/java/jdk1.3.1/jre/bin:/usr/java/jdk1.3.1/bin
JAVA_FONTS=/usr/java/jdk1.3.1/jre/lib/fonts:/usr/X11R6/lib/X11/fonts/TrueType/
export PATH JAVA_FONTS
これで一応 javaは実行できる。

JavaのSwingアプリを動かしたとき、

Font specified in font.properties not found [-wadalab-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0]
Font specified in font.properties not found [-wadalab-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0]
というエラーがたくさんでる。上で環境変数の JAVA_FONTS に設定しているとおり、 /usr/X11R6/lib/X11/fonts/TrueType/ には wadalab-[gothic|mincho] フォントがあるのだが、そのディレクトリの fonts.dir を見ると、jisx0201.1976-0フォントではなく iso8859-1 と設定されているので、上記のエラーがでるようだ。 解決策は、
cd /usr/java/jdk1.3.1/jre/lib
cp -p font.properties.ja font.properties.ja_org
su
chmod 644 font.properties.ja
vi font.properties.ja
:.,$s/jisx0201\.1976-0/iso8859-1/g
:wq
とする。 これでエラーがでなくなった。(JIS X 0201 を ISO8859-1 と変更すると半角カナは表示できなくなる)
2001/11/25
cvsの使いかた

●cvs -v すると、VineLinux2.1.5ではバージョン1.10.8だった。

●まず、cvsのrepository(リポジトリ)すなわちデータを格納するディレクトリを作成する。場所は、環境変数 CVSROOT で設定する。bashでは、こうする。
$ CVSROOT=$HOME/cvsrepos; export CVSROOT
$ cvs init

これで $HOME/cvsrepos が作成されてその中にファイルが作られる。
こーんな感じ。

$ ls -FR ../cvsrepos/       
../cvsrepos/:
CVSROOT/

../cvsrepos/CVSROOT:
Emptydir/       commitinfo,v  cvswrappers,v  loginfo    notify     taginfo
checkoutlist    config        editinfo       loginfo,v  notify,v   taginfo,v
checkoutlist,v  config,v      editinfo,v     modules    rcsinfo    verifymsg
commitinfo      cvswrappers   history        modules,v  rcsinfo,v  verifymsg,v

../cvsrepos/CVSROOT/Emptydir:

ちなみに、repositoryのディレクトリは、-d 絶対ディレクトリ として指定もできる。

●次に、開発中のモジュール(複数のソースファイルがまとまったもの)を
cvsに登録する。
モジュールはカレントディレクトリに全部置いておく。
(サブディレクトリにあるファイルも全部登録されるんで、必要ないファイルは外に出しておく)

$ cvs import -m "shooting stars game" shootstar itouh start
とすると、

N shootstar/main.c
N shootstar/Makefile
N shootstar/README
N shootstar/draw.c
...

No conflicts created by this import

と表示された。
ここで、-m "..." は今回登録した内容の説明。日本語でもいいらしいけど。Log Messageという。
その次がmoduleの置いてあるディレクトリ。その次は作った人/会社。その次は releaseTag。最初は startでいいらしい。


●次に、ソースにさっそく手を加えたいんで、ソースを取り出します。
$ cvs checkout shootstar
とすると、
shootstarプロジェクトに関連するソース全部が取り出される。
shootstarという名のディレクトリが無ければ作られ、そこにファイルが現れる。
cvs checkout: Updating shootstar
U shootstar/Makefile
U shootstar/README
U shootstar/draw.c
...

●それでは早速改良にとりかかります。
テキストエディタでどりゃー。

●ソースの修正・改良を、記録します。
改良したソースのあるディレクトリで
$ cvs commit -m "change messages" *.[ch]
とすると、
/home/i/cvsrepos/shootstar/main.c,v  <--  main.c
new revision: 1.2; previous revision: 1.1
done
とか表示されます。修正してないファイルはcommitしません。かしこいな。
-m "..." のとこには、修正した内容を記述しておく。


●ソースのあるとこで、
$ cvs status
とすると、各ファイルの情報が見れる

●新ファイルを追加するのなら、まず コメントとか無しで
$ cvs add 新ファイル名
cvs add: scheduling file `makewin' for addition
cvs add: use 'cvs commit' to add this file permanently

としたあとで、コメント(Log Messages)つけて
$ cvs commit -m "fix for mingw32" makewin
とする。

RCS file: /home/i/cvsrepos/shootstar/makewin,v
done
Checking in makewin;
/home/i/cvsrepos/shootstar/makewin,v  <--  makewin
initial revision: 1.1
done

●他人も同じCVS使って同じソースを修正してるときは、
$ cvs update
すると、自分のディレクトリにあるソースが、CVSに登録された最新のファイルへと代わる。行頭に C とついてるのは Conflict なので問題になるらしい。

●tagってなんだろう?
$ cvs tag なんとか

itouh