トップ

ディレクトリ

20100123

2010 年 1 月 23 日 BTRON Club 会員発表 配布資料 (控)

最近の私的超漢字事情

岸本 誠
BTRON Club 例会 会員発表
2010 年 1 月 23 日

VirtualBox での実行に(現在は)成功しています

以下の内容は、BTRON Club 例会での発表時のものです。その後、VirtualBox のバージョンアップや環境の変化もあったためか、FreeBSD 上の VirtualBox で、超漢字が動くことを確認しています。

(当日、パーソナルメディアの方からの助言にあった通り、ホスト環境( BIOS )で x86 仮想化支援機能( Intel VT か AMD-V )を有効にすることが必須のようです。)

概要

超漢字V を qemu というエミュレータから利用していたものを、VirtualBox というエミュレータに移行しようとした。しかし、VirtualBox 上では超漢字V は起動せず、移行できなかった。

発表者が利用している環境と、各エミュレータについて簡単に紹介した後、うまく動作しない部分について報告する。

他、発表者の最近の製作物と、発表者のものではないが、最近発表されたプログラムについて報告する。

VirtualBox への移行 (失敗)

従来環境

こんなアナウンスがあった

FreeBSD の /usr/ports/UPDATING より

> 20091206:
>   AFFECTS: users of emulators/qemu
>   AUTHOR: nox@FreeBSD.org
>
>   The port has been updated to 0.11.1, which no longer enables kqemu by
>   default (if built with KQEMU knob on), now you also have to explicitly
>   pass -enable-kqemu (or -kernel-kqemu as with the previous versions)
>   if you want to use it.  Also note the 0.11 stable branch is the last
>   qemu branch that still supports kqemu, so if you depend on reasonably
>   fast emulation on FreeBSD you should start looking for alternatives
>   some time soon.  (VirtualBox?)

( http://www.freebsd.org/cgi/cvsweb.cgi/ports/UPDATING.diff?r1=1.872;r2=1.873 )

そういうわけで VirtualBox を試してみることに

インストール

$ portinstall -s --batch emulators/virtualbox

HDD イメージの変換

$ VBoxManage convertfromraw CK5.img CK5.vdi

起動

$ VirtualBox

(GUI で設定、エミュレート開始)

その他の注意として、VirtualBox のデフォルトのホストキー(マウスのキャプチャを中止するホットキー)が右 Ctrl なのでμTRONキーボード(右 Ctrl キーが付いていない)を使っている場合は適当なファンクションキーなどに割当てを変えておく

起動中に止まる

デバッグモードで確認

シリアルポートへの出力 (エミュレータを設定して取得) では次のようになっている

> B-right/V Kernel Ver 4.540 (Thu Nov  6 17:34:43 JST 2008)
> Copyright (C) 1995-2008 by Personal Media Corporation
>
> ** InitSegmentMgr OK
> ** InitProcessMgr OK
> ** InitMemoryMgr OK
> ** InitMessageMgr OK
> ** InitTaskCommMgr OK
> ** InitGNameMgr OK
> ** InitDeviceMgr OK
> ** InitClockMgr OK
> ** InitEventMgr OK
> ** InitFileMgr OK
> ** InitCardMgr OK
> ** InitUsbMgr ER_SYS [0]
> ** PowerDriver OK (tskid=9)
> ** ClockDriver OK (tskid=10)
> ** BeepDriver OK (tskid=11)
> ** SysDiskDriver OK (tskid=12)

エミュレータのログ

エミュレータのログは $(HOME)/.VirtualBox/Machines/CK5/Logs/VBox.log にある
(長いので全体の引用は省略)
エミュレータを止める直前のログは以下のようになっている

> 00:00:04.731 Guest Log: BIOS: Boot from Floppy 0 failed
> 00:00:04.732 Guest Log: BIOS: CDROM boot failure code : 0003
> 00:00:04.732 Guest Log: BIOS: Boot from CD-ROM failed
> 00:00:04.733 Guest Log: BIOS: Booting from Hard Disk...
> 00:00:04.737 Display::handleDisplayResize(): uScreenId = 0, pvVRAM=0000000000000000 w=720 h=400 bpp=0 cbLine=0x0
> 00:00:04.737 Guest Log: BIOS: int13_harddisk: function 02, unmapped device for ELDL=81
> 00:00:07.097 Display::handleDisplayResize(): uScreenId = 0, pvVRAM=000000080a400000 w=640 h=480 bpp=0 cbLine=0x140
> 00:00:07.160 PIIX3 ATA: Ctl#0: RESET, DevSel=0 AIOIf=0 CmdIf0=0x20 (-1 usec ago) CmdIf1=0x00 (-1 usec ago)
> 00:00:07.160 PIIX3 ATA: Ctl#0: finished processing RESET
> 00:00:15.422 PIT: mode=3 count=0x2e9c (11932) - 99.99 Hz (ch=0)
> 00:00:15.524 PIIX3 ATA: Ctl#0: RESET, DevSel=0 AIOIf=0 CmdIf0=0x20 (-1 usec ago) CmdIf1=0x00 (-1 usec ago)
> 00:00:15.524 PIIX3 ATA: Ctl#0: finished processing RESET
> 00:00:15.531 PIIX3 ATA: Ctl#1: RESET, DevSel=0 AIOIf=0 CmdIf0=0xa0 (-1 usec ago) CmdIf1=0x00 (-1 usec ago)
> 00:00:15.531 PIIX3 ATA: Ctl#1: finished processing RESET
> 00:01:08.270 Changing the VM state from 'RUNNING' to 'SUSPENDED'.

確か昔 bochs というエミュレータでも同じような、サポートされてない ATA コマンドの問題があったような気もする

エミュレータの ATA チップセット選択に PIIX3 PIIX4 ICH6 とあるが、どれで試しても同じように止まる

結論

発表者の環境では VirtualBox では超漢字V を利用できなかった

*** 追加情報 ***

会場で PMC のかたからいただいた情報によれば、Windows ホストで、Intel VT-d が有効なプロセッサを使い、VT-d を有効にすると、VirtualBox でも動いた、という報告があるとのこと

私の環境では AMD AMD-V なので(ホストが Windows でないということもあるが)、確認できない。AMD-V の有効/無効を両方試してみたがダメだった

そのほかの話題

TRON Code Utility (拙作)

トロンコードのマッピングを確認するための実装
ウェブページでソースを公開中

JIS X 0213:2004 と新常用漢字

itto100pen さんにより smbclient が移植された