〜2001年7月中旬〜
すっかりntpを入れるの忘れてた。NTPサーバは
ntp3.jst.mfeed.ad.jp
を使ってる。せっかく 公開 されてるわけだし。 PPxPなので~/.ppxp/rc/ntp.rcで
sudo ntpdate -b ntp3.jst.mfeed.ad.jp > ntp.log sudo hwclock -w
して、~/.ppxp/ip/ipstartにntpを追加してる。
i686-pc-cygwinをターゲットとしたクロスコンパイラを作っているわけだけど、
Making version.o and winver.o Version 1.1.8 sh: i686-pc-cygwin-gcc: command not found i686-pc-cygwin-windres: no resources
となってしまう 件 は全然直ってない。 既にインストールされた環境では存在するからだ。 やっぱ気づかないか。しょうがないからまた一時的にsymlinkを作る。
あ、Samba入れるの忘れてる。明日2.2を取ってこようかな。
GRUBってインストールするのが面倒だというイメージがあったけど、 なんだか知らないうちにgrub-installというscriptができてたんだね。 これでmenu.lstを適当に作って
# /usr/local/sbin/grub-install '(hd0)'
とかすればインストール完了だ。いきなりhd0は恐いなら
# /usr/local/sbin/grub-install '(fd0)'
でフロッピーにインストールして試すもよし。 今の/boot/grub/menu.lstの内容はこんな感じ。
timeout = 5 title Linux 2.4.6 (Plamo 2.2) root (hd1,0) kernel /vmlinuz root=/dev/hdb1 ro title Linux 2.4.6 (Plamo 2.0b1) root (hd2,4) kernel /vmlinuz root=/dev/hdc5 ro title Windows NT root (hd0,0) makeactive chainloader +1
versionも0.90になっていたか。 CVSで追っかけてるとversion番号がわからなくなる。
DJGPP用のクロスの環境を作らなきゃいけないわけだが、 とりあえずは以前使っていたディスクへsymlink張って2001-07-12版は対処。 /oldが古いディスク。
# cd /usr/local/bin # ln -s /old/usr/local/bin/i586-ps-msdodjgpp-* . # cd /usr/local # ln -s /old/usr/local/i586-ps-msdodjgpp . # cd /usr/local/lib/gcc-lib # ln -s /old/usr/local/lib/gcc-lib/i586-ps-msdodjgpp .
CVSのほうはもう0.9.6だけど、とりあえず更新。
--enable-sharedを指定しないとruby.exeがDLLのように振る舞うが、 どうも組み込み系との相性が悪い。erubyなんだけど。 というわけで、何も指定しなくてもというか、 常に--enable-shared状態にしてしまおうと思っている。 mswin32はそうなってるし、むしろDLLを作らないのは使い辛いし。
makeしたらエラーだらけだ。とりあえず1.07で我慢しよ。
明日に備えてメモリーカードを買った。
hc-cronを入れようと思ったが、 c.o.l.aにfcronがアナウンスされてたんでこっちにした。 基本的に同じ感じだ。
フリーズしてもデータが消えない らしいが、 てゆかフリーズするのかよ、 よく見ると下のほうに何か書いてある。
ご使用状況等により、データが完全に復元されない場合があります。
なんだそりゃ?
やたらと緑がかっているんだが、 これはSoGに対応してない証拠か? それ以前にディスプレイの電源が切れてしまう問題が再発して使いものにならず。 しかたないので
# mount /mnt/mc00 # vi /mnt/mc00/p2lboot.opt vgaをntscへ # umount /mnt/mc00
でTVに出力するようにして、ふだんは他のマシンからsshすることにした。 やっぱPS2はTVにつなげとかないとゲームし辛いし。 立ち上げはOを2回押せばいい。これならTVを見なくてもいける。 てゆうか、なにもせんでも立ち上がって欲しいんだけどなあ。 p2lboot.optにtimeoutというのがあったから指定してみたけど、変化ないし。
これでUSBキーボードとUSBマウスがあまったわけだが、 noteにつなげるとすんなり認識したので、それはそれでokだ。 今もそのキーボードで日記を書いている。
びっくりするほど緑なのでホスト名はgreenにした。
あ、これでDVD-ROMドライブを手に入れたことになるのか。
最近いろいろGCC 3.0でコンパイルして気づいたんだけど、 エラーになるのが結構多い。あ、g++のほうだけど。
zshが古かったので最新に。
PS2Linux kernel 2.2.1 gcc 2.95.2 32MB EE PS2 294.240MHz ext2 bogomips 392.40 make 524.64s user 23.09s system 98% cpu 9:15.11 total
こんなもんか。今使ってるマシンだと
Plamo 2.2 kernel 2.4.6 gcc 2.95.3 128MB Pentium 133MHz ReiserFS bogomips 265.42 make 757.58s user 77.51s system 98% cpu 14:08.87 total
となる。noteでは
Plamo 2.1 kernel 2.2.18pre24 gcc 2.95.2 64MB Pentium MMX 266MHz ext2 bogomips 529.20 make 272.44s user 27.24s system 99% cpu 5:01.59 total
うむ?やけに速いな。bogomips的には
392.40 / 265.42 が 1.478 757.58 / 524.64 が 1.444
だからPS2とPentiumはbogomips通りだ。 てゆか、MMX 266MHzに負けるか、PS2Linuxよ。 それより、HUBが必要だ。
お約束ではあるが、PS2Linux上にcygwinのクロス環境を作ってみる。
% tar xfvz cygwin-1.3.2-1-src.tar.gz % tar xfvz binutils-20010425-2-src.tar.gz % tar xfv gcc-2.95.3-5-src.tar.bz2 --us=bzip2 % mkdir build; cd build % lndir ../cygwin-1.3.2-1 % ln -s ../binutils-20010425-2/{bfd,binutils,gas,ld,opcode} . % ln -s ../gcc-2.95.3-5/{gcc,libstdc++,libio} . % mkdir obj; cd obj % CFLAGS=-Os CXXFLAGS=-Os ../configure \ --target=i686-pc-cygwin \ --prerix=/usr/local/cygwin \ --enable-languages=c,c++ \ --host=mipsel-ps2-linux-gnu \ --build=mipsel-ps2-linux-gnu
--host, --buildは要らないが、 mipsel-unknown-linux-gnuじゃ寂しいのでつけてみた。 makeするとi686-pc-cygwin/libibertyでmakeするとこでこける。 libibertyのバージョンの違いか?とりあえずbinutilsだけ先に作ってみる。
% rm -rf * % cd ../../binutils-20010425-2 % mkdir obj; cd obj % CFLAGS=-Os ../configure --target=i686-pc-cygwin \ --prerix=/usr/local/cygwin \ --host=mipsel-ps2-linux-gnu \ --build=mipsel-ps2-linux-gnu % make % make install
例によってあらかじめ
% sudo chown -R watanabe /usr/local
してある。
% cd ../build % rm bfd binutils gas ld opcode % cd obj % CFLAGS=-Os CXXFLAGS=-Os ../configure \ --target=i686-pc-cygwin \ --prerix=/usr/local/cygwin \ --enable-languages=c,c++ \ --host=mipsel-ps2-linux-gnu \ --build=mipsel-ps2-linux-gnu % make
む?やっぱり同じか。じゃlibibertyだけgccのものを使ってみよう。
% cd .. % rm -rf libiberty % ln -s ../gcc-2.95.3-5/libiberty . % cd obj % CFLAGS=-Os CXXFLAGS=-Os ../configure \ --target=i686-pc-cygwin \ --prerix=/usr/local/cygwin \ --enable-languages=c,c++ \ --host=mipsel-ps2-linux-gnu \ --build=mipsel-ps2-linux-gnu
同じか。
make[2]: *** No targets specified and no makefile found. Stop.
になってしまう。なぜMakefileを作らないんだろう? cygwin 1.3.2-1が間違ってる気がしてcygwin 1.8.2-1でもやってみたが同じ。 ということはbuildがmipselのときの問題か。
PS2Linuxとクロスケーブルでつないでるんだけど、PC側をrebootしたら
/lib/modules/2.4.6/kernel/drivers/net/3c503.o: \ init_module: No such device or address Hint: insmod errors can be caused by incorrect \ module parameters, including invalid IO or IRQ parameters /lib/modules/2.4.6/kernel/drivers/net/3c503.o: \ insmod /lib/modules/2.4.6/kernel/drivers/net/3c503.o failed /lib/modules/2.4.6/kernel/drivers/net/3c503.o: insmod eth0 failed
とloadできなくなった。/etc/modules.confには
alias eth0 3c503 options eth0 irq=9
としか書いてないのがやっぱまずいか。dmesgも毎回
3c503.c: Presently autoprobing (not recommended) for a single card.
とautoprobingは推奨しないって言ってるし。へいへいちゃんと
options eth0 irq=9 io=0x300
します。
いやー自分でもびっくりだよ。--prerixってなに? てゆか、binutilsはなぜエラーにならないのだ? しかもちゃんと/usr/local/cygwinにインストールされてるし。 俺の意図を汲んでくれたか、賢いconfigureよ。 と、それについては深く考えないことしよう。
とにかく、これでPS2Linux上にもクロス環境ができたわけだ。
あれ?更新してなかったっけ?そろそろ催促されそうな雰囲気だ。
近くの電柱に雷が落ちたらしく、21:50ぐらいから1時間程停電。 ReiserFSにしといてよかったよ。
電源入らず。もうだめみたいだ。LCDを買うか。
PS2Linuxの出力をntscにしてて気づいたんだけど、 どうもうちTVは左右が切れてるようだ。 ふつうにTVを見てても左端が切れてるんじゃないかなとは、 うすうす感じてはいたんだけど、実際にPS2Linuxのboot messageを見ると一目瞭然だ。 で、昔のTVだと後ろにそういったつまみがあったんだが、 こいつはない。あ、ものはSONYのWEGA KV-21MF1だ。 そんなときはgoogleだと、
ソニー リモコン
で検索したら 「ソニーKVシリーズ カラーテレビのサービスモード」 というページが見つかった。隠しコマンドか。
実際にrubyをmakeしてみた。okだ。
会社のそばのセブンイレブンで買う。予約しなくてもok。穴場だ。
HDDはPS2Linux用のがそのまま使用可能みたい。 Ext2FSには10GB割り当てたので、30GBほど残ってる。 FF Xを立ち上げて「インストール」を選ぶと、 キャッシュデータをコピーするようだ。 てゆか「インストール」って言ってるぐらいだから、 DVDの内容そのものをHDDにインストールしてるってことか。 10分ほどかかった。ここでとりあえずゲームは明日にして、 PS2Linuxを立ち上げてfdiskしてみる。
% sudo fdisk -l /dev/hda Disk /dev/hda: 255 heads, 63 sectors, 4863 cylinders Units = cylinders of 16065 * 512 bytes Disk /dev/hda doesn't contain a valid partition table
うーむ。だめか。しまったな。あらかじめメモっとくべきだったな。 それにしてもこの状態でよくmountできるなあ。 こりゃインストールし直したほうがよさそうだな。 が、どっちを先にすべき? とりあえずホームディレクトリだけバックアップ取っとこ。
で、インストーラを立ち上げてdisk druidしてみるとちゃんと、 /dev/hda1も/dev/hda2も存在する。fdiskしても存在する。 でも普通にbootするとやっぱり昨日と同じ。 どうなってんだろう? でも、なんかfdiskの表示が見慣れない形式だなあ。 あ、/sbin/ps2fdiskか。しまった。これを忘れてた。 インストーラよ、fdiskじゃなくてps2fdiskと表示してくれと思った。
% sudo ps2fdisk -l /dev/hda Disk /dev/hda: 38144MB total / 25984MB free Device Size Partition ID /dev/hda1 10112MB linux 1 (0.9beta linux 1) /dev/hda2 128MB linux 2 (0.9beta linux 2) ---- 1920MB (another system)
linux 2がswapだ。another systemがゲーム用の領域だろう。 約2GB喰ってるから、DVD-ROMの内容すべてをコピーしてると思われる。 つまりこれからFFX三昧の日々となる。たぶん週末だけだけど。
インストールしなおそうとして気づいたんだけど、 以前インストールされたメモリカードがあると、 そのカーネルを使ってbootするようだ。 だからps2lboot.optの内容が有効でTVを使ってインストールできるようになる。 うちみたいに壊れかけのディスプレイの場合便利だ。って買えよ。
binutilsのconfigureを見ると
--prefix* | --pre*) prefix=$optarg prefixoption="--prefix=$optarg" ;;
とある。一方libibertyのconfigureは
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix="$ac_optarg" ;;
となってる。なるほど。この違いだったのか。