some tips

目次

そのうち書くこと


Windows の NTP の同期の周期を変更する

Windows XP(2000も?)の NTP Client サービス W32Time の同期の同期は1週間になっているので、 時刻のずれが気になっている人も多いと思う。 レジストリの内容をのぞいてみると「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient」の「SpecialPollInterval」の値が604,800(7x24x60x60)になってるのが分かるので、この値(秒単位)を好きな値に変更する(例えば 86,400(10進)だと1日おき)。 ただし、外部の NTP を利用している人は NTP サーバ(特に有名どころ)への負荷が問題になっているので、なるべくローカルな NTP サーバを利用すること。 ついでに一般的な用途の計算機だったらあまり同期の頻度をあげないこと(1日おきなら許してくれるかな?)。


Sun Blade 1500 の DVI 側で X を使う

せっかく DVI の足があるのにコンソールには使えず悲しい(「Sun XVR-100 グラフィックスアクセラレータインストールマニュアル」に書いてある)。 一応、X が上がるのを待てば DVI を利用可能だけど、 初期設定では DVI 側で X を使う設定になっていない。 そこで下の例の様に /usr/dt/config/Xservers の設定に "-dev /dev/fbs/pfb0b" を書き加える必要がある。後は X を立ち上げ直せば DVI 側から信号が流れるようになる。 ただし、コンソールに落ちたり、起動時に fsck がかかると(要は single user mode ね)非常に不幸な目に遭うことを忘れてはいけない(経験済)。

# /usr/dt/config/Xservers の例
:0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner -ar1 200 -ar2 30 -audiobell /dev/audio -dev /dev/fbs/pfb0b

Sylpheed 用の危険なパッチ

sylpheed_dangerous.patch
下記の事項を手段を選ばず実現しています。
自分で改良 (改善) する気はありますが、 真面目に書いてないので本家に送るつもりはありませんし、 無保証ですので (改良、カスタマイズして) 自己責任でお使いください。


untex for Windows

untex.zip
Texのコマンドを抜いたテキストを出力する untexを Windows上でMinGWを 使ってコンパイルしたものです。
Shift-JISであれば日本語でも大丈夫… 微妙に文字化けしますが、文字数を数えるだけなら有効です。


Vine Linux PPCのインストール

CPUは7400(G4)の400MHz、メモリが256MBなMAC。 MacOSのrootパスワードが分からないのでLinuxPPCに変えるため頑張る。
Vine LinuxのVine215-ppc.isoを使ってCDブートでインストール。 「boot:」というインストーラの起動画面が現れたらinstall-g4を選択。 X上でインストーラが起動したら、xterm(?)を起動してhfdisk(?)を使って、 パーティションを全消しした後、パーティション情報を初期化。
次に、ドライブパーティションの設定から
/dev/hda1Apple_partition_map?MApple(パーティション情報)
/dev/hda2Apple_HFS50Mmagicboot(ブートローダ用のスペース)
/dev/hda3Apple_UNIX_SVR2100Mswap(スワップパーティション)
/dev/hda4Apple_UNIX_SVR2残り/(rootパーティション)
パーティション情報をいじったのでリブートする。
再起動したら、パーティションの選択から
/dev/hda2magicbootそのまま
/dev/hda3swapswap(mkswap)
/dev/hda4//(format)
以上の設定でフォーマットを実行。


The World First 5in1 Card Reader/Writer

外観とかはこちらで紹介してます。
箱にはlinux-2.4.1から対応と書かれているが、 実際にはフロッピーにpatchが入っているだけ。 googleで検索しても最新のドライバが見つからないので、 適当にいじって2.4.16用のパッチを作成(WARNING: I DON'T make it seriously. This patch may not work correctly. I recommend to look for other patches.)。
カーネルの設定はこんな感じ。

cd /usr/src/linux/
patch -p1 < mcrw-2.4.16.patch

無事に再起動できたところで、 まず、デバイスに CF を差した状態で USB ポートに接続。
modprobe usb-storage を実行した後、
less /proc/scsi/scsi で何らかのデバイスが認識されたことを確認。
mount /dev/sda1 /mnt/usb-cf/ 等と実行して完了

CF に関しては読み込みと書き込みのチェックを行ってみましたが、 メディアが手元にないので、 SmartMedia や SD カードのスロットが正しく使えるかどうかは確認していません。


Kondara-2.0 with ASTEC-X

サーバがKondara-1.2(2000?)の時は、 ASTEC-Xを立ち上げたWindowsに画面を飛ばして問題なく使えていたが、 サーバ側をKondara-2.0に乗せ変えたらGTKのフォントが化けた。
結局、/etc/gtkにあるgtkrc.jaに書かれたフォントセットの フォントの指定を適当に変更することで問題は解決した。


USB on Ultra5

USB切替機(VGA, USB:2ポート)を買ったので、 Ultra5でもUSBボードを挿して切替機が使えるかどうかチャレンジした。 これらの作業を行う前にUSBをサポートしているSolari8にOSを変えた。
実際には挿すだけで使えるという訳にはいかず、 nvramのmouseのaliasのパスを書き換えて有効にしなければならない (要再起動。また、同時に複数のキーボードやマウスを使うことはできないのか?)。 結果としてはマウス単体では認識して置換えて利用することが出来たが、 キーボードの認識(切替機のHUB経由)がうまくいかず(マウスもダメだった)、 利用はあきらめた…そのうちまたチャレンジする予定。


CAT68701

りぬくす工房の海老原さんにSH3を搭載したボード、CAT68701をいただきました :))
Linuxのインストールには無事成功し、 怪しげなものをコンパイルするために色々やってます


エセ地雷に乗り換え

Kondara1.2を普通(?)にインストールして使っていたが、 妙に新しいものに惹かれるため、強引に地雷に移行した。 …実際には過去に試みた経験があり、 /etcの直下にinit.dが置かれるのが気持ち悪くて使用を止めたのだ。 今回は、この辺をなんとかするために 必要最低限のパッケージをアップグレードすることにした。

最初の目的はやはりglibc-2.2への移行である。 今回のアプローチは私が必要なものだけ使えれば良いというものなので、 パッケージの選択等に一般性はないが、基本的な進め方ではあると思う。 まず、ncftpなどでJiraiのパッケージが置かれたFTPサイトに接続する。 この際、CTRL+zとfgを多用することで必要なものだけを落とし、 全ゲットなどはしないようにした。
当初は簡単に済ませるつもりだったが、 さすがにglibc(rpm -U glibc-2.2.1-7k.i586.rpm)で要求されるもの多かった。 とりあえず、警告で表示されたパッケージをメッセージから次の3種に分類する。

  1. パッケージのインストールに絶対に必要なもの
  2. 他のパッケージ(私的に必要なもの)が必要としているもの
  3. 他のパッケージ(私的にいらないもの)が必要としているもの

最初のものは、当然、ゲットして一緒にアップグレードしてやる必要がある。 2番目のものも同様にゲットしてアップグレードするわけだが、 こういうものを追加すると、大抵、必要なパッケージが増える…。 ここで、この繰り返しを避けるために3番目の分類が必要になる。 この場合はインストールされているパッケージの方を消してしまう(rpm -e hoge)。 なお、消す時にも同様に依存関係で警告が出まくる場合があるが、 消すと決めたらとことん消していく… しかし、いつの間にかXFree86まで消していたのはやりすぎだったかもしれない…。 この作業を繰り返して行い、最終的に次のようなパッケージが残った (これは私個人の環境で必要になったものである。また、実際には、 何も考えずに追加してしまったものや、 後から必要性に気づいて加えたものが含まれている)。

db1-1.85-3k.i586.rpm
db2-2.4.14-7k.i586.rpm
db3-3.1.17-5k.i586.rpm
egcs-1.1.2-33k.i586.rpm
egcs-c++-1.1.2-33k.i586.rpm
egcs-g77-1.1.2-33k.i586.rpm
filesystem-2.0.7-3k.noarch.rpm
glibc-2.2.1-7k.i586.rpm
groff-1.16-7k.i586.rpm
info-4.0-17k.i586.rpm
less-358-3k.i586.rpm
libstdc++-2.96-71k.i586.rpm
libstdc++-compat-1.1.2-33k.i586.rpm
libstdc++-devel-2.96-71k.i586.rpm
man-1.5h1-15k.i586.rpm
mph-etc-0.9.10-7k.i586.rpm
mph-get-0.9.10-7k.i586.rpm
ncftp-3.0.2-5k.i586.rpm
ncurses-5.2-3k.i586.rpm
ncurses-devel-5.2-3k.i586.rpm
perl-5.600-15k.i586.rpm
perl-base-5.600-15k.i586.rpm
procps-2.0.7-7k.i586.rpm
rpm-3.0.5-39k.i586.rpm
rpm-build-3.0.5-39k.i586.rpm
ruby-1.6.2-5k.i586.rpm
ruby-gettext-0.2-9k.i586.rpm
ruby-locale-0.2-9k.i586.rpm
usermode-1.36-3k.i586.rpm
util-linux-2.10s-3k.i586.rpm

これらのパッケージを同じディレクトリに置き、 rpm -U *.rpmで一緒にアップグレードしてやれば、 自動的に依存関係を調べてインストールしてくれる。 問題があれば警告を出力して処理を中止するため、 警告が出なくなるまで繰り返し、同じ作業をする必要がある。

作業後にも、色々と注意が必要になるかもしれないが随時解決していく…。


Linux on ReiserFS

ここで紹介するのは/bootのような起動専用のパーティションを用意することなく、 Linuxのシステム全体(swapを除く)をReiserFS上に乗せてしまうという試みです。 前世紀中に挑戦して成功しているのですが、 何一つ文書を残していなかったので再び他のマシンで試してみます。

注: 斜め読みして内容のわからない方は危険すぎますので真似してはいけません。

今回の材料は日常NTFS上でwin2kを動かしているごくごく普通のPCと、 Kondara1.2のパッケージ、 ReiserFSを解釈するGRUB(0.5.96.1)のインストールされた起動ディスク(?)です。 たまたま手近にPartitionMagic6があったため、 これまで30GあったNTFSを25Gぐらいに縮めて空いた分にLinuxを入れることにしました。

手始めにKondaraを起動ディスクを用意して立ち上げるか、 CDブートによってKondaraのインストーラを起動します。 ここで重要なのは、 KondaraのインストーラがReiserFSをサポートしているという事実です(勘違いを訂正)。 ディスクの切り分けにはDiskDruidではなくfdiskを選び、 パーティションタイプとして88を選びます(83がLinux, 82がLinux Swap)。 ここでの表示はUnknownになってしまいますが、 この後のDiskDruidによるマウント場所の指定画面で ReiserFSとして認識されるのが確認できます。 ここで重要なのは、 後でGRUBのコマンドラインで叩く時に必要になるので、 何番目のディスクの何番目のパーティションにしたかをきちんと覚えておきましょう。 今回の私の場合は/dev/hda2(1番目のディスクの2番目のパーティション)でした。 後は全く普通にインストールします。 LILOの置き場所はどうせ利用しないのでMBRなどにはおかず、 Linuxを入れたパーティションの先頭にしておきます。 インストールが無事に終了し、 自動的に再起動したら最後の仕上げに移ります。

最初に確認しておくべきことですが、

ReiserFSが解釈できるGRUBの起動ディスク

これが何だか分からない人はきちんと調べて入手/作成しておかないと、 最悪の場合、データとサヨナラすることになります。 持ってさえいればGRUBの素晴らしい機能によって何とかできます(たぶん)。 GRUBが起動してGRUBのコマンドラインに移ったら、 私の場合(1番目のディスクの2番目のパーティションに入れた)は、 次のように打ち込むことでめでたく起動しました。 GRUBはディスクやパーティションを0から数えることと、 linuxのデバイスとしての認識がhda1,hda2,...と1から始まること、 デフォルトのブートイメージ(vmlinuz)の置き場所に 気をつけていればなんとかなります。

grub>root (hd0,1)
grub>kernel /boot/vmlinuz root=/dev/hda2
grub>boot

多少、面倒かも知れませんが、 この便利さには代えがたいものがあります(Tabの補完までできます)。 そして、起動さえすればメニューを用意した GRUB(ファーストステージだけ?)をMBRにインストールすることもできます。 幸運をお祈りします。

これを試した時に、一つだけ面倒なことがありまして、 当然と言えば当然なのですが、 カーネルをコンパイルした時にカーネルがReiserFSをサポートしていないと、 Linuxとオサラバすることになります。 普通は、古いのをvmlinuz.oldとかにリネームしておく筈なので、 (先の例では)次のように指定したりすれば何とかなります。 ただ、前に再起動せずに2回連続でカーネル構築してはまった記憶があります…

grub>kernel /boot/vmlinuz.old root=/dev/hda2

それで、きちんとReiserFSパッチを当てたカーネル、 もしくはもともとサポートしている2.4.1とかを使ってやる必要があるわけです。 ここでもう一つ面倒なことがありまして、 カーネルの設定を行うときに、ext2のパーティションが複数用意されていないと、 ReiserFSに対応するための選択肢が出ないようなのです (Linux標準のLILOだと起動できなくなるんだから当然と言えば当然)。 そこで、他の設定を終えた後、直接.configの内容を書き換えてあげましょう。 その後でmake dep;make clean;make bzImage;...とお決まりのパターンで完了です。

…断末魔の悲鳴と怒りの叫びが聞こえてきそうなので、 最後にもう一度念を押しておきますが、 斜めに読んでこの危険さが分かった人以外は絶対に挑戦しないでください ^^;;;
私にはサポートも保証もできないのですから m(_ _)m


linux-2.2.18 patch

2.4が今にも正式リリースされそうな時に、 なんとなく気分で2.2にしがみついています。 ご本家が2.4に進んでしまってサポートされなそうなパッチを、 ライセンスに引っかからないように少しだけいじったものです。 自分が再インストールする時に使うためのものなので、 他の人の役には立たないかも ^^;;;

linux-2.2.18-reiserfs-3.5.28-tmp-patch.gz
2.2.18用のreiserFSパッチ。 必要に迫られ手パッチしたときのもの。


Turtoise CVS

WINDOWSでオープンソースソフトウェア開発に燃えるCVS野郎達のために(?)、 WIN用のCVS拡張である TortoiseCVS が利用可になりました(Tortoise=淡水ガメ?)。 フォルダを右クリックした時に表示されるコンテキスト・メニューの中から、 CVSのcheckoutやcommit、diff、update等のコマンドが利用できます。

ソースコードも公開はされてますが、 InstallThingにあるReadmeを読むとダメダメなことが露見しているような… 最初から選択リストに含まれているサーバ名とかは固定だし、 更新の有無を知らせるアイコンも分かりづらい…


Linuxマシンにシリアル接続

最近、うちのLinuxマシンはファイルサーバと化しているので、 ディスプレイを外してしまって机の下の奥の方に収納してある。 つまり、ネットワーク接続専用マシンになっている。 リブートやシャットダウンは決め打ちで実行できるが、 何かトラブルが起こってしまっては面倒なので、 シリアル接続ができるように設定を行った。

私はあまりこの分野に詳しくないので、 適当に検索して真似した作業の内容は次の通り。


SMB MOUNT

最近のSamba(少なくとも2.0.5以降)には、 Linuxに関してはFTPのような操作しか行えないsmbclientの他に、 smbmnt/smbmount/smbumountというSambaサーバの提供するディレクトリを マウントする機能がオプションで付いている。 これを利用すればNFSを使わずに(別途パスワード認証が必要になることが重要)、 Sambaによって提供されているホームディレクトリなどをマウントすることができる。 また、Windowsの共有フォルダに関しても同様にマウントすることができるため、 書き込み権限が与えられてさえいれば、普段UNIXで使い慣れたコマンドによって、 Windows上のテキストファイルの編集などをすることができる。

この恩恵を得るためには、まずLinuxのカーネルをコンパイルする時に、 "NetworkFileSystems"の設定で SAMBAファイルシステム(smbfs)を利用可能にしておく必要がある。
次に、Sambaを構築する際に、 "$SRCDIR/samba-version/source/"のもとで"./configure --with-smbmount"を実行。 "make"、"make install"を実行することによって "/usr/local/samba/bin"等にインストールされたsmbmount、smbumountに suになってから"chmod u+s smbmount"を実行してsuid権限を与えておく。

実際の利用方法についてだが、 Sambaサーバ(smbserv.domain.jp)側のsmb.confで 以下のような設定が行われていた場合、

[mppp]
  comment = sound files
  path = /home/fjt/mppp

"mkdir $HOME/mppp"のようにマウントするディレクトリを用意した後、 "smbmount //smbserv.domain.jp/mppp $HOME/mppp"と実行すると 以下のような出力の後、 パスワードを求められる(設定による)。

{10/30:fjt}~>smbmount //smbserv.domain.jp/mppp $HOME/mppp
Added interface ip=*.*.*.* bcast=*.*.*.* nmask=*.*.*.*
Password: 

パスワードによる認証に成功すればsmbmountの完了である。 マウントを解除するためには"smbumount $HOME/mppp"のように実行すればよい。


Berlin with libGGI(1)

次世代デスクトップ環境Berlin(?)を構築するべく久々に色々とコンパイルしました。 BerlinはXのシステムをOpenGLで実現したようなもので、 メッセージ通信にはCORBAの実装であるomniORB2を利用しています。 GNOMEがやはりCORBAの実装であるORBitを利用しているのに、 何をわざわざomniORB2か?とも思いますが、 構想5年とかいうと実はGNOMEより古いのかも…(未確認)。

私がBerlinを気に入っているわけは、 まず私がCORBAという言葉に弱い事とウィンドウが真に透過にできる事です。 もう一歩踏み込んでSecureCORBAにしろとか、 ラッパーで既存のXアプリケーションをそのまま使えるようにしろとまでは言いません。 他の特徴や細かいことはサイトのFAQに書いてあります。 後で知ったのですが、FAQに関してはかの山形さんの日本語訳もあります。

構築の際に必要になるものには、以下のようなものがあります。

ちなみに、Berlinの本体を抜かしても構築には数時間かかります(350MHz*2)… 構築のTIPSは忘れたのでまた後で ^^;


強引にブラウザを閉じる

戻る