CentOS 7のqemu-kvmでパラレルポートが使えない [電子工作・プログラミング]

数年ぶりにvitr-managerから仮想マシンでパラレルポート (ホストのPCIe増設パラレルポートの /dev/parport0 に接続) を使おうと思ったら、" 'isa-parallel' is not a valid device model name "のエラーが出て、起動できませんでした。調べると、CentOS7のqemu-kvmではパラレルポートのサポートが無効化されているようで:https://bugzilla.redhat.com/show_bug.cgi?id=1174145

代わりに入れると良いパッケージもあるようですが、中々上手く行かなかったので、qemuを手元でビルドして使うことにしました。どのページを参考にしたか失念したのですが、qemu-4.2.0.tar.xzをダウンロード・展開して、特別な設定無しにconfigure、make installしてできたqemuを使ったら、パラレルポートを使って無事起動し、仮想マシン内のアプリケーション (パラレルポートのI/Oアドレス0x378を仮定) から正常に動作しました。

・設定したconfigureオプションは'./configure --target-list=x86_64-softmmu --enable-kvm --enable-spice --prefix=/home/user/to/install'
・途中で足りないと言われたdevelパッケージはyumで入れる
・virt-managerで設定した仮想マシンに、手元でビルドして出来たバイナリ 'qemu-system-x86_64' を使うよう設定する方法として、virshを使った。'virsh edit 仮想マシン名' とするとviが起動するので、<emulator>タグにqemu-system-x86_64 のフルパスを入れる。また、<type>タグのmachine属性にチップセットの種類を入れるが、OS付属のqemu-kvmで対応しているmachine( 'pc-i440fx-rhel7.6.0' など)と手元でビルドしたqemuが対応するmachineは違うので、'qemu-system-x86_64 -machine help' で調べるか、単に 'pc' を入力する。
・手元の環境のCentOSのバージョンは7.9.2009だった。

11月30日24時5分
fartrip

2023年5月5日追記
qemuでのコマンドラインオプションは次の通り:
 -parallel /dev/parport0
もしくは、virt-managerが生成したものに沿って:
 -chardev parallel,id=charparallel0,path=/dev/parport0 -device '{"driver":"isa-parallel","chardev":"charparallel0","id":"parallel0"}'
いずれも、qemu 7.2.1のqemu-system-x86_64で動作確認。
コメント(0)