銀河の歴史がまた1ページ(日記)

Last Update (2025/01/05 18:09:36)
1997.09.06から数えて counter 番目のアクセスです。

ミラーサイト [www.ceres.dti.ne.jp] [yk.rim.or.jp]

[ホームページ] [日記] [日記ファイル一覧] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

ページ内目次


■ 宇宙暦 2010.03.01

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100301

2010.03.01(月) PS3 謎の集団タイムリープ? → 3/2 AM 09 JSTには解決

どうも全世界規模で旧型PS3(20GB, 60GB HDDタイプ)の時計が2000年1月1日に戻り、時刻設定不可能になる怪奇現象が起きているらしい。 40GB HDDタイプは大丈夫なのとダメなのが居るらしい。 80GB, 120GB HDD型、Slim型は大丈夫らしい。

日本時間の3/1 09:00まではPS3を起動しても平気だったが、それ以降は起動するだけでおかしくなる(トロフィーが消える、セーブデータがこわれる)とか。 UTCで2010/03/01 00:00に何かが起きるタイマーでもあっんだろうか。 data/nazo.gif 481bytes

2ちゃんねるのゲハ板では、PS3内部には有料ビデオやDLCなどの期限確認用などで使う内蔵カレンダーA(一切調整不可)と ユーザー用の内蔵カレンダーB(調整可能)があって、今回は調整不可のカレンダーAが不調になっているという説が流れている。 カレンダーAはアンタッチャブルな場所にあるので、パッチで修正できるのか疑問視されているが....あくまでうわさである。

とりあえず、旧型PS3持っている人は電源いれちゃダメ。 SONY公式パッチを待つべし。

03.02追記。 2010/03/02 AM 09:00 JST ごろから、旧型PS3でも時刻の設定が可能になった模様。 どうも、カレンダーAの方は、2010年をうるう年だと思っていたらしく、実在しない2/29日になって日付不一致エラーになっていたようだ。 めずらしいタイプのうるう年誤認識バグだったなぁ。 トロフィーが消えてしまった人や、セーブデータが壊れた人に対しては、現在のところ特に何も発表されていない。

03.11追記。 http://www.bsddiary.net/d/201003.html#03 BCD表現の0x2010に対してうるう年判定をかけてたら確かに誤爆するかも。 0x2010年って西暦8208年か。なんかすげー世界だ。 ん〜と、0x2008年は西暦8200年扱い。100除算ルールが適用されて、うるう年ではないが、実際にはうるう年。 2年前には今回のような事件は起きていなかったので、BCDで下2桁だけ保持していると考えるのが妥当かな。 PS3的にいえば、今年は西暦16年。次に何かが起きるのは2年後ですねぃ。


■ 宇宙暦 2010.03.07

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100307

2010.03.07(日) wikiから日記投入実験

自宅内部で動かしているWikiの出力データを加工してWeb日記フォーマットに変換してみるテスト。

ウチのWeb日記の場合、目次生成とか最後の7日分生成とか近所のファイル一覧生成のために、色々なperlスクリプトが混ざっていて、結構難儀だった罠。

あっさりWordPressとかに全面リプレースした方がいいのかもしれん...。 自宅サーバを公開する勇気はないけどなー。

2010.03.07(日) ついったーにアカウントとってみた

特につぶやくほどのネタは持ち合わせてないんだけど、 がんがん投稿している人をフォローすれば、見物してるだけでも面白いかも。

つなぎっぱなしにしてたIRCみたいな雰囲気かも?

表示形式的には大量にフォロー入れると大変なことになりそうなので、 そこから先は専用クライアントが必要になるかも。

2010.03.07(日) Sun VirtualBox 3.1.4 インストール / 仮想マシンへ Ubuntu 9.04 インストール

SheevaPlug Dev Kit用のクロスコンパイル母艦として、Linux機を一台用意する。 あいている機械(E6850)もあるんだけど、コイツはFreeBSD 8.0用にするということで、 Sun VirtualBox上にLinux Boxを用意することにした。

  1. Sun VirtualBox 3.1.4 インストール
    1. VirtualBoxインストール時には、ネットワーク接続は一度切れるよーということで、PoderosaとかTwitterとかを終了させる。
    2. Windows Vista/7 64bit版対応のためか、仮想ネットワークデバイスドライバはSun Microsystemsの署名入りになってた。
    3. 割とあっさりインストール完了。
  2. Sun VirtualBox の設定変更。
    1. ファイル→環境設定→入力 右CtrlになっているホストキーをPauseに変更。Happy Hacking Keyboardには右コントロールが無いので。
  3. Sun VirtualBoxの上でUbuntu 9.04 64bit用の仮想マシンを作成。
    1. ゲストOSにUbuntu 64bitを選択して、あとはデフォルトな感じ。
  4. 仮想マシンの設定。
    1. 設定→ネットワーク→アダプタ1を選択。ひょっとすると、SheevaPlug相手にTFTPBOOTとかnfsrootをやるかもしれんので、ブリッジを選択しておく。
    2. 設定→ストレージ→IDEコントローラのCD-ROMの所に、ubuntu-9.04-desktop-amd64.isoファイルを指定。これでUbuntu 9.04 インストール準備は完了。
  5. Ubuntu 9.04 64bit版のインストール
    1. 仮想マシンの起動
    2. Ubuntuインストーラのキーボード選択のところで、USAキーボードを選択すると、HHK 英語配列のの\と`が反応しない。むむ。
    3. Ubuntuのインストールが完了したら、設定→ストレージ→IDEコントローラのCD-ROMのところから、isoイメージを解除。
    4. こちらもあっさりインストール完了。
  6. 仮想マシン再起動
    1. 仮想マシンからネットワークの認識はOK。ブリッジ接続している。(ウチの環境だと、DHCPサーバにMACアドレス登録していないと、ちょっぴり変わったIPアドレスになるのでわかる)

VirtualBox 2.2.4の頃に比べて、すげー楽になったなぁ。 設定とか何もいらねー。

jdiaryB00301-vb-1.jpg 90,143bytes


■ 宇宙暦 2010.03.08

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100308

2010.03.08(月) Ubuntu 9.04の初期設定 sshd

Ubuntu 9.04の初期設定 sshd

sshdが起動していないようなので、インストールする。

  # パッケージ情報の更新。まず最初にコレ。
  sudo apt-get update
  # パッケージ情報キャッシュからパッケージ名検索
  apt-cache search sshd
  george@lynfield-vubu:~$ apt-cache search sshd
  libjsch-java - java secure channel
  libjsch-java-doc - java secure channel examples
  openssh-server - secure shell server, an rshd replacement

openssh-serverというのがsshdのパッケージだね。

  # sshdのインストール
  sudo apt-get install openssh-server

これで外部のマシンからsloginできるようになった。

ホストOSのWindowsファイアーウォールの設定で、ポート22番の受信を許可しなくても平気っぽい。デバイスドライバから直通させてるのかな。


■ 宇宙暦 2010.03.09

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100309

2010.03.09(火) SheevaPlug uboot更新 part 1

基本的には http://xeon.cocolog-pikara.com/blog/2009/08/sheevaplug-uboo.html と同じ操作を実施してみる。

ホスト機がWindows 7 64bitなので、ドライバのインストールの様子がちょっと違う。

  1. 付属のSheevaPlug Development Kit Version 1.2bのCDからSheevaPlug_Host_SWsupportPackageWindowsHost1.2.zipを解凍
  2. SheevaPlugと付属のUSBケーブルでWindows 7 64bitマシンと接続
  3. SheevaPlugの電源をONにするとドライバを探索しはじめるが、自動的に失敗する。(Windows7はドライバファイルはどこですかーとか聞いてこない)
  4. 1.のドライバは、コントロールパネル→デバイスマネージャ→?がついているデバイスで右クリックしてドライバーソフトウェアの更新→コンピュータの中からファイル検索を経てインストールする。USB Serial Converter A / USB Serial Converter B / USB Serial Port (COM4) がデバイスマネージャーに表示される。
  5. PoderosaからCOM4シリアルポートの速度を115200bpsで開く
  6. SheevaPlugの起動中にCOM4からEnterキーを入力するか、ssh経由で入った後にshutdown -r nowすればu-Bootのコンソール画面がでるはず...だが...?

PoderosaのCOM4は沈黙したままだ。

これはひょっとすると、Poderosaがダメなんじゃ...。 Wikiでお勧めされているTeraTermにしてみるか。

  1. http://plugcomputer.org/plugwiki/index.php/Serial_terminal_program を見ながら http://ttssh2.sourceforge.jp/ TeraTerm 4.65をインストール。
  2. TeraTerm上でCOM4を選択するが、ボーレートの設定が画面上には無くて9600固定のようだ。
  3. C:\Program Files (x86)\teraterm\TERATERM.INI を編集して、COM4 、 ボーレート 115200 と記入。その他のパラメータはデフォルトのままでOK。
  4. SheevaPlugのコンソール画面見えたよ!

TERATERM.INIの変更後を以下に示す。

;	Serial port parameters
;	  Port number
ComPort=4
;	  Baud rate
BaudRate=115200

記念にSheevaPlugのコンソール画面。

512 MB

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0

NAND read: device 0 offset 0x100000, size 0x400000

Reading data from 0x4ff800 -- 100% complete.
 4194304 bytes read: OK
## Booting image at 00800000 ...
   Image Name:   Linux-2.6.22.18
   Created:      2009-03-19   9:18:16 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2106696 Bytes =  2 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux...................................................
......................................................................
........... done, booting the kernel.
Linux version 2.6.22.18 (dhaval@devbox) (gcc version 4.2.1) #1 Thu Mar 19 14:46:22 IST 2009
CPU: ARM926EJ-S [56251311] revision 1 (ARMv5TE), cr=00053177
Machine: Feroceon-KW
Using UBoot passing parameters structure
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets

TeraTermは偉大だ。 つか、Poderosaを動くように修正してやりてえええぇぇぇぇ。

2010.03.09(火) 3月にはいってから雪とな!?

なんか今日は寒いと思っていたら、夕方ごろ雪。 夜には雨に変わっていたので、積雪にはならないかな。

2010.03.09(火) SheevaPlug u-boot入れ替え part 2

さて、今日こそ http://xeon.cocolog-pikara.com/blog/2009/08/sheevaplug-uboo.html と同じ操作を実施してみる。

  1. Windows 7機とUSBケーブルで接続して、SheevaPlug の電源投入。
  2. Windows 7機のデバイスドライバが反応して、ぼこん、という音と共にCOM4があらわれる。
  3. TeraTerm の COM4 (115200 bps) で接続。
  4. しばらく待つとTeraTerm上にOSの起動メッセージが表示される。Enterを押すとログインプロンプトが表示される。
  5. root / nosoup4u でログイン
  6. shutdown -r nowでリブート
  7. 「Hit any key to stop autoboot: 1」とか表示されたら、素早くEnterキーを入力してubootに入る。
  8. versionコマンドでバージョンを確認
CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0 ■ここで素早くEnter。3秒くらいしか待たないよ。
Marvell>>
Marvell>> version

U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16
Marvell>>

ウチのSheevaPlugも不具合ありのu-bootだった。

記念に初期状態の環境変数を採取。 u-bootを入れ替えると、MACアドレスを忘れるらしいので、ここで採取しておかないと後がない。

Marvell>> printenv
baudrate=115200
loads_echo=0
rootpath=/mnt/ARM_FS/
netmask=255.255.0.0
console=console=ttyS0,115200
CASset=min
MALLOC_len=1
ethprime=egiga0
bootargs_root=root=/dev/mtdblock2 ro
ethmtu=1500
usb0Mode=host
nandEcc=1bit
ethact=egiga0
serverip=10.10.0.2
ipaddr=10.10.0.1
cesvcid=ULULULULULULPPULULULULULDA
bootargs_end=:::DB88FXX81:eth0:none
image_name=uImage
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
yuk_ethaddr=00:00:00:EE:51:81
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
run_diag=no
bootargs=console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1 rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none
bootcmd=nand read.e 0x800000 0x100000 0x400000; bootm 0x800000
ethaddr=00:50:43:01:42:EA
stdin=serial
stdout=serial
stderr=serial
mainlineLinux=no
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=3
disaMvPnp=no
enaAutoRecovery=yes

Environment size: 1304/131068 bytes
Marvell>>

2010.03.09(火) Ubuntu 9.04でtftpサーバ設定

Ubuntu 9.04でtftpサーバ設定

さて、tftpサーバは、Sun Virtual Box内部のUbuntuマシンにやってもらおう。

  george@lynfield-vubu:~$ apt-cache search tftpd
  tftpd-hpa - HPA's tftp server
  atftpd - advanced TFTP server
  tftpd - Trivial file transfer protocol server

一番基本的なヤツにしとくか。

  george@lynfield-vubu:~$ sudo apt-get install tftpd

自動でopenbsd-inetdもインストールされた。 /etc/inetd.confも自動で設定された。

  george@lynfield-vubu:~$ cat /etc/inetd.conf
  tftp            dgram   udp     wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd /srv/tftp

inetd.confの設定内容からすると、公開したいファイルは /srv/tftp/ の下に置いておく感じか。

なぜか/srvディレクトリしかできていなかったので sudo mkdir /srv/tftp ; sudo chmod 755 /srv/tftp しておいた。

tcpd経由でin.tftpdが起動されているということは、アクセス制御の設定をしとかんと、弾かれる可能性があるな。 /etc/hosts.allow , /etc/hosts.deny 共に全部コメントになってる状態。とりあえずこのままでよさそう。

inetdは、/etc/rcから起動されるべき...らしいので、apt-get installしてもinetdデーモンは起動されていない。 というわけで、Ubuntuをshutdown -r now する。

接続試験用にtftpクライアントもインストール。

  george@lynfield-vubu:/srv$ sudo apt-get install tftp

sudo echo "tftp_test" > /srv/tftp/test.txt とか適当なファイルを置いて、tftp localhost、 get test.txt 、quit などとして確認。 テキストファイルは採取できる。ふむ。

2010.03.09(火) SheevaPlug u-boot入れ替え part 3

http://xeon.cocolog-pikara.com/blog/2009/08/sheevaplug-uboo.html を参考に、 付属のSheevaPlug Development Kit Version 1.2のCDからSheevaPlug_U-Boot.zipを展開・・・って SheevaPlug_U-Boot.zipファイルがないw

ウチのSheevaPlug付属のCDは1.2(b)なので、ちょっと違うのか。

u-boot-3.4.19.zipがあるので、これを展開。 u-boot-3.4.19\u-boot-rd88f6281Sheevaplug_400db_nand.binをwin scp経由でUbuntu機の/srv/tftp/以下にコピー。

TeraTermから以下のように入力してIPアドレスを設定して、u-bootのバージョンアップを行う。

Marvell>> set ipaddr 192.168.1.29     ← SheevaPlugのIPアドレス
Marvell>> set serverip 192.168.1.30   ← UbuntuマシンのIPアドレス
Marvell>> set netmask 255.255.255.0
Marvell>> saveenv                     ← 環境変数保存
Marvell>>  bubt u-boot-rd88f6281Sheevaplug_400db_nand.bin  ← u-bootファイル名を指定してバージョンアップ
Override Env parameters? (y/n) n      ←必ずnを選択
Marvell>> reset                       ←リブートする

というわけで、u-bootが3.4.19になった。

Hit any key to stop autoboot:  0
Marvell>> version

U-Boot 1.1.4 (Sep 14 2009 - 15:36:37) Marvell version: 3.4.19
Marvell>>

日本語の導入記事があるとらくちんだ〜 data/niko.gif 481bytes


■ 宇宙暦 2010.03.11

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100311

2010.03.11(木) SheevaPlugの初期設定 part2

SheevaPlugの初期設定 part2

上のページに従って、初期インストールされたUbuntuの設定をしておく。

タイムゾーン設定をAsia/Tokyoに。

root@debian:~# dpkg-reconfigure tzdata

Current default timezone: 'Asia/Tokyo'
Local time is now:      Wed Mar 10 23:39:12 JST 2010.
Universal Time is now:  Wed Mar 10 14:39:12 UTC 2010.

ホスト名の変更。/etc/hostnameを修正して、sheevaにする。

/etc/hostsの変更。自宅マシン群の定義をコピー。

UTF-8ロケールの生成。

  /bin/sh -c 'echo 'LANG="ja_JP.UTF-8"' > /etc/default/locale'
  locale-gen "ja_JP.UTF-8"

一般ユーザーアカウントの作成。

  1. adduser georgeを実行。

一般ユーザーアカウントでsudoできるようにする

  1. vigr コマンドで作成したユーザーを"sudo"ユーザーグループに追加
  2. visudoコマンドを実行し,sudoersファイルに「%sudo ALL=(ALL) ALL」という行を追加
  3. ウチのsheevaの場合、/usr/bin/sudoにsetuidが立っていなかったので、chmod 4111 /usr/bin/sudo が必要だった。
  sudoできないエラーメッセージの例
  george@sheeva:~$ sudo ls
  sudo: must be setuid root
  setuidの前後
  root@sheeva:~# ls -la /usr/bin/sudo
  -rwxr-xr-x 1 root root 114976 2008-11-15 21:11 /usr/bin/sudo
  root@sheeva:~# chmod 4111 /usr/bin/sudo
  root@sheeva:~# ls -la /usr/bin/sudo
  ---s--x--x 1 root root 114976 2008-11-15 21:11 /usr/bin/sudo

固定IP設定とかは、いずれそのうちに。


■ 宇宙暦 2010.03.13

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100313

2010.03.13(土) Master of Epic ビスク西でメモリエラーとかいわれて落ちる現象対策 ... 微妙な効果だった

Master of Epic ビスク西でメモリエラーとかいわれて落とされる現象は、 ゲーム開始時のOPTIONからPureDevice使用をオフにすると落ちなくなるという噂。

ちょっと試してみたが、確かに落ちない。 土曜の午前中なので、まだ人が少ないのもあるか。 カオス時間になっても落ちなければ本物だね。

カオス時間に西銀に入った後、鍛冶屋をまわり、武閃ギルドまで走っていくと、落ちた。 PureDevice使用オンより落ちにくい印象はあるけど、やっぱりダメぽ。


■ 宇宙暦 2010.03.14

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100314

2010.03.14(日) HHK PS/2タイプからUSBタイプに交換

新キーボード(HHK lite2 USB)は、キータッチがふかふかしててなんか新鮮だ。

キーボードの寿命って、機械部品の寿命つーより、埃とか汚れでキーストローク感がダメになっていくんだよなー。 水洗い可能なHHK、どっか出さないかな。

ちなみに、古いPS/2 HHK Lite2は、禁断の水洗い(!)を実施して、陰干し1週間してから予備パーツとして保存予定。

キーボードなんて水洗いしてドライヤーで念入りに乾燥させれば、すぐ使えるようになるよ!という兵もいるけど、、自分じゃ試したことない。


■ 宇宙暦 2010.03.19

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100319

2010.03.19(金) シュタインズ;ゲート

ゲハ板のごく一部で話題になっていたので購入してあったシュタインズ;ゲートを起動してみる。

プロローグから妙なテンションの主人公w

  静まれ!俺の右腕!
  お前を運命に巻き込みたくはない...。

そしてとある事件が起こり... 2ちゃんねる用語も散りばめつつ、ハードSFっぽい理論説明シーンもあったり。

序盤の展開は気に入ったwww

これなら、おじさんが多く住む2ちゃんねるのゲハあたりで話題にはなるわな。


■ 宇宙暦 2010.03.20

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100320

2010.03.20(土) シュタインズゲート 2

中盤の山場までたぶんきた。

序盤はいいテンポなんだけど、ちと途中で中だるみ気味。

いわゆるギャルゲータイプのADVなんだけど、 選択肢がはっきり表示されるわけじゃなくて、 「携帯を操作するボタンを押す」か、「次の段落を読むボタンを押す」かでシナリオが分岐する(世界の運命が分かれる)。

「次の段落を読む」を連射していると、ひどいことになる。 というか、なった。 data/nikotara.png 328bytes

AUTOで進めていると、世界の分岐点で自動進行が止まるので、 基本はAUTO進行が良いようだ。

ええええええー。中盤は鬱展開ループかー。これ結構キツくね? data/syobo.png 317bytes

2010.03.20(土) シュタインズゲート 3

選択肢表示されないので&Aボタン連射していたので、 どこで世界の運命を選択したのかわからん...。

1週目フェイリスEND。 パパさん格好イイ!

2週目は、世界の運命が分岐する箇所で赤いマークが出るので、わかりやすくなった。 鈴羽END。うむむむむぅ・・・そうきたか...。この後どうなったんだろう?

ルカ子END。 3週目にルール理解。なるほど。 そーゆー理由でエンディングが分岐するのか。

紅莉栖END Trueまで到達。 なるほどねー。伏線の回収お見事。 最初の悲鳴に違和感があったけど、そゆ理由だったのか。

まゆしぃ☆END。 こちらはきれいにまとまってる。

紅莉栖END。こちらはTrue Endまでの前座で、歯切れが悪い。

SF好きが言うことじゃないが、 これって科学的説明セリフをもっと削って、 途中でダレが来る冗長な部分削ったらもっと売れたんじゃ...。

作者いわく、想定科学でSFではないらしい。 あと、明示的な選択メニューが出てくるのは、作者は嫌いらしい。ほむ。


■ 宇宙暦 2010.03.26

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100326

2010.03.26(金) PSU フリーコースでログインだけしてみた

Windows 7 (64bit)でもゲームが起動するのはある意味すげぇ。

手持ちのPS2パッド〜USB変換コネクタは、Windows 7 64bit版 ドライバが存在しなくて使用できないようだ。 さすがにキーボードでPSUをプレイするのは無理があるので、静かにログアウト。

PC用に販売されているUSB接続型のアナログパッドは異常に安っぽいので、 できればPS2コントローラが使いたいところだが...ドライバが無いのでは仕方ない。

XBox360用のUSB有線コントローラか、PS3のUSBコントローラで、 Windows 7 64bitドライバがどっかに落ちていればいいんだけど。

もっとも、PSUフリーコースの場合、マイルームが使用できないのでまともに遊べないんだけどね。

どうやらWindows 7 64bit版のドライバがダウンロードできるようだ。 USBケーブル付のコントローラを注文しておくかな。

結局、AmazonでPC用周辺機器として販売されているXBox360 ワイヤレスコントローラをポチる。 PC用周辺機器として販売されているXBox360コントローラの場合、ドライバCD-ROMがついてくるらしい。 Windows 7 64bit版のドライバもあるらしい。

2010.03.26(金) Tcl/Tkについてメモ

日本語のTcl/Tk書籍は絶版になってて、Tclの文法がよくわからん。

上のサイトで文法をチェック。 一般的なスクリプト言語にできることは大抵できるみたいね。

Tclというか、expectを使おうとして

  expect "login: "
  exp_send "george\r"

しか思いつかなかったので、ちとメモメモ。


■ 宇宙暦 2010.03.28

http://www.ceres.dti.ne.jp/~george/jdiaryB00301.html#20100328

2010.03.28(日) tclのサイトを見ながら、expect / tclスクリプト expect-auto-script.exp を作ってみた

情報源は以下。まとまっているページがあって助かったわ。

expect-auto-script.expのメモ

expect-auto-script.exp の使い方

./expect-auto-script.exp -b login.txt -e logout.txt -f cmd.txt

ログイン用expectスクリプト

ssh george@dv6 ~/2010-0327-expect-tcl $ cat login.txt 
spawn slogin george@localhost

ログアウト用expectスクリプト

ssh george@dv6 ~/2010-0327-expect-tcl $ cat logout.txt 
expect -re $prompt_regex
exp_send "exit\r"

ログインした先で、自動実行させるコマンドのテキスト例

ssh george@dv6 ~/2010-0327-expect-tcl $ cat cmd.txt 
ls -F
date
df

expect-auto-script.expスクリプト本体

ssh george@dv6 ~/2010-0327-expect-tcl $ cat expect-auto-script.exp 
#!/usr/local/bin/expect --
#
# expect sample program
#   usage) ./expect-auto-script.exp -b login.txt -e logout.txt -f cmd.txt
#   special thanks to http://www.interq.or.jp/japan/s-imai/tcltk/basis.html
#
# 2010.03.28 Jun Obama
#

# set prompt regex
set prompt_regex "(#|%|\\$) $"

# set default values
set log_prefix "log-"
set cmd_file ""
set login_script_file ""
set logout_script_file ""
set dbg 1
set last_interact 0

# usage procedure
proc usage {msg} {
    puts stdout "expect-auto-script.exp - expect sample"
    puts stdout "    usage) ./expect-auto-script.exp -b login.txt -e logout.txt -f cmd.txt"
    puts stdout "    options)"
    puts stdout "        -h  --help           print this."
    puts stdout "        -l  --log-prefix     set log file prefix."
    puts stdout "  (*1)  -b  --login-script   login script file."
    puts stdout "        -f  --cmd-file       read commands from file and send."
    puts stdout "  (*2)  -i  --interact       do interact. (exclusive to logout-script)"
    puts stdout "  (*2)  -e  --logout-script  logout script file. (exclusive interact)"
    puts stdout "  (*1) and (*2) are must to set."
    puts stdout "$msg"
}

# debug print procedure
proc dbgmsg {msg} {
    global dbg
    if { $dbg } {
        puts stdout $msg
    }
}

# file check procedure (return 0:success)
proc checkmustfile {fname} {
    if { 0 == [string length $fname] } {
        return 1
    }
    if { ! [file exists $fname] } {
        return 1
    }
    return 0
}

# check arguments
set optidx 0
for { set i 0 } { $i < [llength $argv] } {incr i} {
    set curarg [lindex $argv $i]
    set optidx [expr $i + 1]
    set optarg [lindex $argv $optidx]
    switch -re -- $curarg {
        (-h|--help) { usage "" ; exit 0 }
        (-f|--cmd-file) { set cmd_file $optarg ; incr i  }
        (-b|--login-script) { set login_script_file $optarg ; incr i  }
        (-e|--logout-script) { set logout_script_file $optarg ; incr i  }
        (-l|--log-prefix) { set log_prefix $optarg ; incr i  }
        (-i|--interact) { set last_interact 1 }
    }
}

# check condition
if { [checkmustfile $login_script_file] != 0 } { usage "login script file is not set." ; exit 1 }
if { [checkmustfile $cmd_file] != 0 } { dbgmsg "warinng: cmd_file is not set." }
if { $last_interact == 0 && [checkmustfile $logout_script_file] != 0 } { usage "last interact or logout script is not set" ; exit 1 }

# set log file name
set today_str [exec date +%Y%m%d-%H%M%S]
set logfile_name "$log_prefix$today_str.log"


# debug output
dbgmsg "login_script_file  = $login_script_file"
dbgmsg "cmd_file           = $cmd_file"
dbgmsg "logout_script_file = $logout_script_file"
dbgmsg "logfile_name       = $logfile_name"
dbgmsg "last_interact      = $last_interact"

# start logging
log_file -a $logfile_name

# run login script
set login_success 0
if { 0 != [string length $login_script_file] } {
    if { [file exists $login_script_file] } {
        set fd [open $login_script_file r]
        while { true } {
            gets $fd line
            if { [eof $fd] } {
                break
            }
            # eval script
            eval $line
        }
        close $fd
        set login_success 1
    }
}
if { $login_success == 0 } {
    puts stderr "login script failure. abort."
    exit 1
}

# read cmd_file , if there
if { 0 != [string length $cmd_file] } {
    if { [file exists $cmd_file] } {
        set fd [open $cmd_file r]
        while { true } {
            gets $fd line
            if { [eof $fd] } {
                break
            }

            # wait for prompt
            expect -re $prompt_regex
            # send command from cmd_file
            append line "\r"
            exp_send "$line"

        }
        close $fd
    }
}

# at last interact or exit
if { $last_interact } { 
    interact
} else {
    # run logout script
    set logout_success 0
    if { 0 != [string length $logout_script_file] } {
        if { [file exists $logout_script_file] } {
            set fd [open $logout_script_file r]
            while { true } {
                gets $fd line
                if { [eof $fd] } {
                    break
                }
                # eval script
                eval $line
            }
            close $fd
            set logout_success 1
        }
    }
    if { $logout_success == 0 } {
        puts stderr "logout script failure. abort."
        exit 1
    }
}

# end of file

2010.03.28(日) poderosa 4.1.0 自宅でビルドしてみる

C#で書かれたアプリ poderosa 4.1.0 をちょっとこねこねしてみる。

Visual C# 2008 Express Editionを使ったんだけど、poderosa 4.1.0 ソースが取り込めなくてびびった。

無料のExpress Editionだと、ソリューション取り込み時に強制的に .NET 3.5に変換されてしまうらしく、もう変換エラーてんこもりでズタボロ。 Vesual Studioの各種レビュー記事では「問題なく (.NET 2.0 から) .NET 3.5に変換できる」とか書いてあるけど、んなこたーねえぇぇぇぇぇよ!、と小一時間ツッコミまくりたい。 IDEで作られたソースの扱いの難しさを痛感した次第。 このあたり、マジでなんとかならんのか。

そういや、Eclipseでも別人が使っているEclipse環境からソースを持ち込むのは面倒な話で、 1プロジェクト毎に、Eclipse本体をそのプロジェクト専用としてインストールして、 Eclipse本体+各種プラグイン+そのアプリのプロジェクトのワークスペース全体を1セットとして配布するのが確実だったな。

んで、ごにょごにょ編集してPoderosaをデバッグ開始。 すると、Poderosaを起動したらアプリが即終了する。 どうやら、プラグインの初期化順序がマズイらしくて、初期化してない変数をアクセスしてるようだ。 プラグイン間の初期化順序を依存関係をまじめに書かないといけないのか。 バイナリ配布されているPoderosaはどうやって動いているのか、かなり謎に思えてきた。

一応、Visual Studio 上でデバッグ開始されたPoderosaからSSHで通信はできるようになったけど、 ツール→オプション画面の表示で初期化してない変数アクセスが発生している。 うーん。先は長い。

2010.03.28(日) XBox 360 Wireless Controler for Windows ボタン配置メモ

Amazonから届いたのでメモ。

PCゲーの場合、ゲームごとに設定変更しないといかんので面倒だ。


        LT Z軸+                        RT Z軸-
        LB 5                           RB 6

  左アナログ X軸/Y軸                            Y 4
  押し込み 9           Back 7   Start 8    X 3        B 2
                                                A 1

    ハットスイッチ          右アナログ X回転/Y回転
                            押し込み 10

PSUの設定では、以下のようにした。 PS2コントローラよりボタンが少ない(RT,LTがボタンじゃなくてZ軸)ので、割り当てできていない機能が2個できる。

初期化パターン2から変更
                                                  PS2      XBox   ボタン番号
決定、会話、調べる、アイテムを拾う        ○    A  1
キャンセル、アクションパレット呼び出し      ×    B  2
通常攻撃、バレット、テクニック          □    X  3
打撃系武器のスキル、法撃系武器のテクニック    △    Y  4
ロックオン、カメラ、左ページ送り         L1    LB  5
武器の切り替え、右ページ送り           R1    RB  6
左ページ送り                   L2       なし
右ページ送り、チャットログ            L3       なし
自己視点カメラのON/OFF              R3    右押 10
メインメニューの表示/非表示、ムービースキップ  START   Start 8
キャラクター情報表示の切り替え          R2    Back 7
方向キー上                    ↑       なし(動作する)
方向キー右                    →       なし(動作する)
方向キー下                    ↓       なし(動作する)
方向キー左                    ←       なし(動作する)
カメラ左右                    Z軸      X軸回転
カメラ上下                    Z軸回転    Y軸回転

1ミッションやってみたが、コントローラはちゃんと動いた。

キーボードとマウスに触れていないせいか、ゲーム中にノートン先生がアイドル時スキャンをはじめおったが・・・w

PSUはフリーコースだとマイルームが使えないので、武器交換、装備交換ができなくて無理ゲーっぽい。 この設定だと、月額課金必須だね。


日記ファイルリスト


Copyright(c) 1996-2024 George(小濱 純). All rights reserved.
私の作成したページへのリンクはご自由にどうぞ。
このページに間違いや要望などがありましたら george@yk.rim.or.jp まで御連絡ください。
メール本文に 6020-5440-3372 とか私の 本名 を漢字で書いて頂くと、ウチのSPAMフィルタを通過できます。

[ホームページ] [日記] [日記ファイル一覧] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

home: <george@yk.rim.or.jp> or <george@ceres.dti.ne.jp>
(I am using white list SPAM filter. To avoid it, please write 6020-5440-3372 in mail body. This key word is valid since 2009-06-14 until 2024-12-31.)