DOSEmuメモ (1)

これまでの経緯をざっとまとめますと,Windowsへの依存なくDOSアプリを動かすために,FreeDOS/V + 鳳(単漢変換FEP)の動く環境をいろいろ試してきました.

その結果VMWare FusionBochsではFreeDOS/V + 鳳はブートして日本語フォントがロードされ,プロンプトまで出ますがその後エラーになって使えません.

QEMU/KVMではプロンプトが出ても安定ですが,Control+Spaceで単漢変換モードになりません.

Manjaro AMD64のもとで動くQEMU/KVMで,FreeDOS/V + 鳳をインストールしたHDDイメージからブートして日本語モードとなり安定であるが,CNTL+Spaceを押しても漢字入力モードにならない.

結局昔から動いていたDOSEmu以外はNGです.DOSEmuは素晴らしいですがCPUのエミュレーションはしてくれません.また,macOS + MacPortsではbuildできないので,現在までに確認したDOSEmu + FreeDOS/V + 鳳を動かせる環境は,

です.なぜ同じVMWare FusionでFreeDOS/V + 鳳を直接動かすことはできないのに,VMWare Fusion上のSlackware64の上のDOSEmuで動くのかは不明です.

また,まだ試していませんが,

  • x86_64の実機で動くManjaroのQEMU/KVMのもとで動くSlackware64の中のDOSEmu

でFreedos/V + 鳳が動く可能性はあります.しかし,Manjaro AMD64でDOSEmuが動きますから,これはあまり意味がないです.

いずれにしてもCPUのエミュレーション機能がないDOSEmuということで,Raspberry Pi 4/5 Model Bでの作動はあきらめざるを得ません.

仮想マシンを動かしてその中でエミュレーターを動かすというのは,今ひとつスマートさに欠けますが,動かないのでは話しにならないのでしょうがないです.

Linux上のDOSEmuで行くとなると話は単純で,アマチュア無線のログのオリジナルを保存しているRaspberry PiのサーバーのディレクトリーをDOSEmuのホストのLinuxのファイルシステムのどこかに何らかの形でマウントすればいい,ということになります.

とりあえずはNFSでやってみますが,もう何年もいじってないのでどうなるかはわかりません.動くところまでたどり着くのは紆余曲折あって構いませんが,動き出したら安定して動くことが重要です.

特にmacOS下では.

Bochsメモ (3) dosemu以外だめな模様

結局,dosemu以外では動きませんでした.

なかなかFreeDOS/VをHDDにインストールできませんでした.FreeDOS/V 1.38のフロッピーイメージから起動して,空のディスクイメージファイルをHDSETUP.BATでフォーマットしようとしてもエラーが出ます.

そこで,FreeDOSの最新版(英語版)を当該のディスクイメージにインストールして,HDDイメージからブートできることを確認したうえで,FreeDOS/Vのフロッピーからブートして,

FORMAT C: /S

を実行したらエラーなくフォーマットできましたので,このあと手作業でFreeDOS/Vのファイルをコピーしました.

そうしたら,KVM/QEMUでもBochsでもこのディスクイメージからブートできるようになりました.

しかし,Control + Space を押しても鳳が起動しません.

macOS上のBochsにて,ディスクイメージにインストールできたFreeDOS/V 1.38を起動したところ.CNTL+Spaceを押しても半角スペースが入力されるだけで鳳が起動しない.

KVM/QEMUでも同じです.

一方dosemuで起動後に Control + Spaceを押すと,

dosemuが起動して, CNTL + Spaceを押して鳳を起動したところ.

このように,右下の隅に “鳳” の文字が表示され,単漢入力モードになります.

残念ながらFreeDOS/V + 鳳をインストールしても,dosemu以外(Bochs, KVM/QEMU)では単漢入力ができない,というのが現時点での結論です.

Bochsメモ (2) KVM/QEMUでやってみる

Isn’t Wayback Machine Great!

しばらく直接は取り組んでいませんでしたが,段取りを考えたり,若干の調べものはしてました.

まず,現在,Bochsを中心に進めていく方針に対して大きな懸念材料があります.それはDOSのコンソールから “:” が入力できないことです.これは,とてもプリミティブな問題で解決方法があるはずと思い調べたり心当たりを試しましたが,解決できていません. “:” をキーボードから入力できないというのは, DOSの作業においては致命的です.

そこで,代替案として,KVM/QEMUでやってみよう,ということを考えています.

なお,今回FreeDOS/V + 鳳のインストールイメージを発見できました.Wayback Machineに当該のページを見つけました.

フロッピーイメージも収録されています.ただ,自己展開のexeとかLHA形式とか今更どうするんだって思いましたが,このファイル名から自分のSSDのどこかにあるだろうと,

locate fdos0138

で探すと,展開済みのfdos0138.imgが見つかりました.タイムスタンプは,2006年1月2日なので,間違いなくオリジナルを展開したものとわかります.Wayback Machineを参照しなかったら,ここまでの進展はなかったです.

このイメージをフロッピーイメージとして,新しく仕立てるKVM/QEMUの仮想マシンにつなぎ,bximageで用意した仮想ディスクもつないで,ああだこうだしてみようと思います.

結局,最初のKVM/QEMUに戻るわけですが,うまく行かなかったら,第二案としてBochsでなんとかならないかやってみます.

Bochsメモ (1) Slackware64 15.0

PC/DOSエミュレーター遊びの続きというかリブート版ですが,最終的に使うエミュレーターはBochsにすることにしたので,このような表題にしました.

さて,DebianがBochsについては解りにくくて使いにくいので,実マシンから仮想マシンへ退避させ,開けたパーティションに仮想マシンでupdateを続けてきたSlackware64 15.0をコピーして実マシン化しました.

久しぶりの作業で多少手間取りましたが,最終的に仮想化したDebianは問題なくブートできるようになりましたし,Slackware64はManjaroのGRUBのメニューからも,自前のEFIを仕込んだ別のディスクからもブートできるようになりました.

これで下準備(の下準備かも)は完了です.dosemuはすでにインストール済みで動作を確認しました.

次は,Bochsのインストールです.これもsbopkgで簡単にできました.

Freedosのお仕着せの設定のままです.CD-ROMドライブを設定していないのでエラーになっています.

Slackware64 15.0には,いつインストールしたか定かでありませんが,qemu-nbdも入ってました.

一通り準備ができてたようなので,明日から続きをします.

DOS/PCエミュレーターのインストールと動作

Tested DOS/PC Emulators Update

PCOSDosemuDOSBoxDOSBox-XBochs
Mac mini 2018 (Core i7)macOS Sonoma 14.4.1 (w/ MacPorts)N/ABuild failsInstalled and RunningInstalled and Running
Macbook Retina 12" 2017 (Core i7)macOS Ventura 13.6.6 (w/ MacPorts)N/ABuild failsInstalled and RunningInstalled and Running
PC Core i7-4790SManjaro AMD64Installed and RunningInstalled and RunningN/A *2N/A
Debian AMD64 Bookworm 12.5N/AInstalled and Ran *3N/A *2Installed but NOT working *5
Slackware64 15.0Installed and RunningNot TestedNot TestedInstalled and Running
Raspberry Pi 4 Model BSlackware ARM (32bit) 15.0N/A *1N/AN/A *2 *4Installed and Running
Raspberry Pi 5 Model BRaspberry Pi OS Bookworm 12.5N/A *1Installed and RunningN/A *2Installed but NOT working *5
Slackware AArch64 currentN/A *1N/AN/A *2 *4Installed and Running
Manjaro ARM (64bit)N/A *1Installed and RunningN/A *2N/A
Notes
*1 Dosemu requires x86/AMD CPU.
*2 Maybe available via Flatpak
*3 No longer installed for certain reasons.
*4 Flatpak installation fails on the respective environment.
*5 Drops into the debugger at every start-up.
すべて当社調べ.
いつどういう経緯でインストールしたかは不明.

仮想マシンと実マシンの行き来についてまとめ update 2

前項「仮想マシンと実マシンの行き来についてまとめ update」に関して,その後新しいことがわかったのでupdateします.

実マシンから仮想マシンへの移行

これは比較的楽です.Linux distroの32 bit版でも64 bit版でもたいていうまくいきます.仮想マシンの仮想ディスクイメージ(以下「仮想イメージ」と略します)は,MBRでもGPTパーティションでも大丈夫です.仮想マシンでマルチブートする必要はありませんし,SWAPにzramを使用すれば,MBRではroot用の1本のパーティションで済みます

ブートローダーの設定は,Slackware64 15.0のインストール用DVDイメージからブートさせて,chrootして設定します.もちろん他のdistroのインストールDVDイメージでもできますが,使い慣れていることもあり一番堅実な感じがします.

32bit OSについては同様にSlackwareのオリジナル(32bit版)を使用します.

これで,Slackware 32/64, Debian 32/64, Manjaro 64のそれぞれの実マシンを仮想化できています.

特に他の設定で引っかかるところもありません.fstabの記述は最初は/dev/sda1などにしておいて,必要に応じてUUIDなどに書き換えれば良いと思います.

十分習熟したこともありますがほぼまちがいなく仮想化できます.

仮想マシンから実マシンへの移行

こちらは,難易度が少し高いです.基本的には第1OSのManjaroのGRUBから起動するようにします(ただし,grub.cfgの手直しが必要).

64bit版 Linux

64bit版については,第1OSであるManjaroのGRUBから,Debian, Slackware64, Manjaroをブートできるようにできました.

設定の要所としては,第1OSのManjaroのgrub.cfgの手直しと,コピーした第2OSのfstabの記述をUUIDにしておくくらいでしょうか.

唯一Debian AMD64については,第1OSのManjaroのEFI+GRUBからのブートに加えて,自前のEFI+GRUBからのブートもできるようになりました.しかし,過去にはうまく行かなかったこともあり,どうするとうまく行ってどうすると失敗するのかは解っていません.

32bit版 Linux

32bit版に関しては,基本的に64bit版と同じ手順・注意で実マシンの移行自体はできています.しかし,引越し先のハードとのインコンパチが原因と思われるトラブルにつきまとわれています.

Slackware 15.0 の32bit 版は,第1OS ManjaroのGRUBから起動はしますが,何回かに1度ブートに失敗して,BIOSのブート画面に戻りますが,再度ブートすればたいていsddmが表示され,KDEにログインできます.

Debian 32bit paeについては,CUIは起動しますが,GUIではXは起動しますが,sddmが起動してくれません.いや,起動はしているのですが画面が全面黒でポインティングディバイスに連れてポインターは動き,場所に応じてIビームや矢印になります.試しにパスワードを入力してみると,ログインできたようですが,KDEのデスクトップは表示されず黒画面のままです.

これは,ビデオドライバーのインコンパチに違いないと当たりをつけ,Xorg.0.logを見ると,glamoreglというドライバーが選択されています.ビデオカードは “NVidia GeForce GT 640” という古いものです.たぶん,64bitでは問題ないのでしょうが今更32bit版を使う人も少ないので32bit版ではバグが潰しきれていないのではないでしょう.

/etc/X11/xorg.conf.d/内に,01-video-driver.confというテキストファイルを作りました.内容は,

Section "Device"
     Identifier "Card1"
     # Driver "nouveau"
     Driver "fbdev"
     BusID "PCI:1:0:0"
EndSection

です.そう,最初に “nouveau” を試しましたが,sddmは表示されログインできますが,KDEのデスクトップが表示されたところで画面はフリーズしてしまうので, “fbdev” にしたところ,いろいろDesktop Effectsは使えませんが,とりあえずはKDEが使えるようになりました

仮想マシンの実マシン化に直接は関係ありませんが,付随した問題なので記録しておく次第です.

“distribution” の略は “distro” です.「ディストリ」と略して書くと,英語のドキュメントを読んでないことがバレます.
GPTの場合はBIOS BOOTパーティションが必要.
特に電源投入後初回のブート時はほぼ100%失敗します.
Debian 9時代まで実マシンだった.
この記事も,Debian 32bit pae bookwormのKDEで動くFirefoxから書いてます.