Aufruf z.B. mit "qemu-system-x86_64 Parameterliste" (siehe unten) ...

Nach monatelangen Versuchen habe ich insbesondere festgestellt, daß weder mit "-parallel /dev/parport0" noch mit
"-chardev parallel,id=test,path=/dev/parport0 -parallel chardev:test" innerhalb der Parameterliste ein Paralleldrucker
des Linux-Hostsystems zufriedenstellend angesprochen werden kann!

Der Trick besteht darin. ein Characterdevice vom Typ "file" zu definieren, dem ich den Namen "Druckerschnittstelle"
gegeben habe und das mit der ersten parallelen Druckerschnittstelle(ndatei) "lp0" im Verzeichnis /dev/ verbunden ist.
Der Parameter "-parallel" leitet alles, was an die virtuelle Schnittstelle LPT1 des Gastsystems DOS geschickt wird an
das definierte Charakterdevice des Hostsystems Linux weiter, Linux druckt also brav alles, was in /dev/lp0 ankommt!

In meinem speziellen Fall (OpenSuse 15.1) rufe ich wie folgt auf, wobei der erste Teil, in dem insbesondere die Variablen
$C [Partition C:] sowie $D [Partition D:] definiert werden, weggelassen ist:

if grep -q parport0 /proc/ioports; then # physikalische Parallelschnittstelle vorhanden?
DrPm1="-chardev file,id=Druckerschnittstelle,path=/dev/lp0"; DrPm2="chardevruckerschnittstelle"
else
DrPm2="none"
fi
if [ "$C" ]; then driveC="-drive file=/dev/sd$C,if=ide,format=raw,cache=writeback"; fi # existiert immer!
if [ "$D" ]; then driveD="-drive file=/dev/sd$D,if=ide,format=raw,cache=writeback"; fi # existiert manchmal!
qemu-system-x86_64 \
-display gtk,zoom-to-fit=on -enable-kvm -m 256 $DrPm1 -parallel $DrPm2 -rtc base=localtime,driftfix=slew \
-drive file=/home/lutz/diesUdas/hardUsoftware/DosBootFloppies/qemu.img,if=floppy,format=raw -boot a $driveC $driveD

Die beschriebene Lösung ist aber problemlos auch auf echte USB-Drucker übertragbar, d.h. mit entsprechend veränderten
Parametern, müßte man also auch von virtuell LPT1 auf echt-USB im Hostsystem drucken können! Ich denke, das
müßte (ungeprüft!) z.B. so aussehen:

... -usb -device usb-host,vendorid=0x0482,productid=0x065c -chardev file,id=test,path=/dev/usb/lp0 -parallel chardev:test ...

Bei Fragen: RLad(at)dueren.net