Hi all, I have had two trouble. There is a program named wbc and run it on WinXP that was on qemu+kvm+qxl+spice. https://drive.google.com/file/d/0BwZHW2TTkEdRNm1rVUZwakxrQTQ/view?usp=sharin...
###################################################### The first trouble: The program cause screen mess, looked like: https://drive.google.com/file/d/0BwZHW2TTkEdRajE5cUsyLWY0dU0/view?usp=sharin...
I have debugged vgabios and found gfx_write_char have never arrived. But looked nice after I commented this: ------------------------------------------------------------------------------------------- // Write a character to the screen. void vgafb_write_char(struct cursorpos cp, struct carattr ca) { struct vgamode_s *vmode_g = get_current_mode(); if (!vmode_g) return; vgafb_set_swcursor(0);
if (GET_GLOBAL(vmode_g->memmodel) != MM_TEXT) { //gfx_write_char(vmode_g, cp, ca); return; }
void *dest_far = text_address(cp); if (ca.use_attr) { u16 dummy = (ca.attr << 8) | ca.car; SET_FARVAR(GET_GLOBAL(vmode_g->sstart), *(u16*)dest_far, dummy); } else { SET_FARVAR(GET_GLOBAL(vmode_g->sstart), *(u8*)dest_far, ca.car); } } ------------------------------------------------------------------------------------------- looked like: https://drive.google.com/file/d/0BwZHW2TTkEdRMDhiNUY2emJFQm8/view?usp=sharin...
The following commit also effect screen: f864b6023ed7b5d6fe8355e7ef2c6f78cd23ecad vgabios: Rewrite vgafb.c graphics operations to set of 4 standard operators. And before patched it, looked like: https://drive.google.com/file/d/0BwZHW2TTkEdRQXZnWFBLaklwZTQ/view?usp=sharin...
###################################################### The Second trouble: Screen mess after I move mouse whenever I changed or commented anything, looked like: https://drive.google.com/file/d/0BwZHW2TTkEdRc3BCdXFZa013UEU/view?usp=sharin...
###################################################### In fact, I have tried more: On XP ---------------------------------- spice qxl ERROR gtk qxl ERROR spice cirrus ERROR spice VGA ERROR ----------------------------------
On spice: ---------------------------------- xp qxl ERROR win7 qxl ERROR dos qxl NICE * xp cirrus ERROR xp VGA ERROR ---------------------------------- *: work perfectly.
On XP: ------------------------------------------------------------ lgpl_vgabios qxl ERROR lgpl_vgabios cirrus ERROR seavgabios qxl ERROR seavgabios cirrus ERROR vmware_vgabios vmware_vga WORKED * ------------------------------------------------------------ *: vmware_vgabios is from vmware workstation. That worked but only support bpp 4 on desktop.
###################################################### I also tried LGPL VGABios and looked like before patch that commit. I have found the program didn't use vgabios api, but vgabios effect the screen.
###################################################### This is my qemu command: qemu-system-x86_64 \ -machine pc-i440fx-2.1,accel=kvm,usb=off \ -m 1024 \ -realtime mlock=off \ -smp 1,sockets=1,cores=1,threads=1 \ -no-user-config \ -nodefaults \ -rtc base=localtime \ -no-shutdown \ -global PIIX4_PM.disable_s3=1 \ -global PIIX4_PM.disable_s4=0 \ -boot strict=on \ -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \ -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 \ -drive file=/root/ram/xp.append,if=none,id=drive-ide0-0-0,format=qcow2,cache=writeback,discard=unmap \ -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 \ -chardev pty,id=charserial0 \ -device isa-serial,chardev=charserial0,id=serial0 \ -chardev pty,id=charserial1 \ -device isa-serial,chardev=charserial1,id=serial1 \ -chardev spicevmc,id=charchannel0,name=vdagent \ -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 \ -device usb-tablet,id=input0 \ -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on \ -device qxl-vga,id=video0,bus=pci.0,addr=0x2,romfile=/root/seabios/out/vgabios.bin \ -device AC97,id=sound0,bus=pci.0,addr=0x4 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 \ -cpu 'SandyBridge,hv-relaxed=on' \ -netdev user,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net1,bus=pci.0,addr=0x7 \ -chardev stdio,id=debugcon \ -device isa-serial,iobase=0x0402,chardev=debugcon \
Could anyone provide me some idea?
Thanks. eJim Lee