Description of problem: Updating to vgabios-0.6-0.6.c.fc11.noarch.rpm, running qemu-kvm with "-vga std" on a WinXP image brings up a 4-bit deep, 800x600 display. Reverting to vgabios-0.6-0.5.b.fc11.noarch.rpm makes it "work for me". Version-Release number of selected component (if applicable): vgabios-0.6-0.6.c.fc11.noarch.rpm qemu-img-0.10.4-5.fc11.x86_64 qemu-system-x86-0.10.4-5.fc11.x86_64 qemu-debuginfo-0.10.4-5.fc11.x86_64 qemu-kvm-tools-0.10.4-5.fc11.x86_64 qemu-common-0.10.4-5.fc11.x86_64 How reproducible: Every time Steps to Reproduce: 1. Install vgabios-0.6-0.6.c.fc11.noarch.rpm 2. start "qemu-kvm -vga std winXP.img" 3. You get small guest display, low resolution, ... :-( Actual results: Expected results: Additional info:
Thanks Tom, also confirmed by the reporter of #499060 We'll unpush the update from F-11, but leave it be for F-12 for now Note, there were only a small number of commits between 0.6b and 0.6c if anyone was interested in narrowing the problem down to a specific commit
Just reporting: This is back with (fc12) Rawhide and vgabios-0.6-0.6.c.fc12.noarch. Sorry, but I didn't attempt to bisect before :-(. Not sure if I know how, but I'll try to give it a shot now.
Try this: $> git clone git://git.kernel.org/pub/scm/virt/vgabios/vgabios.git $> git reset --hard v0.6c $> make $> rm /usr/share/qemu/vgabios.bin $> ln -s $(pwd)/VGABIOS-lgpl-latest.bin /usr/share/qemu/vgabios.bin $> qemu-kvm ... confirm that that's broken, then: $> git reset --hard v0.5b $> make $> qemu-kvm .. confirm that works, then: $> git bisect 0.6c 0.5b $> make $> qemu-kvm ... if that works, do "git bisect good", if not "git bisect bad", and continue until it identifies the responsible commit
Thanks. First make indeed fails (v0.6c). Second make fails to compile: [tbl@tlondon vgabios]$ git reset --hard v0.5b HEAD is now at 4896bce - updates for 0.5b release [tbl@tlondon vgabios]$ make gcc -o biossums biossums.c gcc -E vgabios.c -DVBE "-DVGABIOS_DATE=\"`date '+%d %b %Y'`\"" > _vgabios_.c bcc -o vgabios.s -C-c -D__i86__ -S -0 _vgabios_.c _vgabios_.c:1: error: Unknown preprocessor directive _vgabios_.c:2: error: Unknown preprocessor directive _vgabios_.c:3: error: Unknown preprocessor directive _vgabios_.c:4: error: Unknown preprocessor directive _vgabios_.c:5: error: Unknown preprocessor directive _vgabios_.c:6: error: Unknown preprocessor directive _vgabios_.c:15: error: Unknown preprocessor directive _vgabios_.c:18: error: Unknown preprocessor directive _vgabios_.c:171: error: Unknown preprocessor directive _vgabios_.c:369: error: Unknown preprocessor directive _vgabios_.c:480: error: Unknown preprocessor directive _vgabios_.c:481: error: Unknown preprocessor directive _vgabios_.c:704: error: Unknown preprocessor directive _vgabios_.c:705: error: Unknown preprocessor directive _vgabios_.c:1490: error: Unknown preprocessor directive _vgabios_.c:1636: error: Unknown preprocessor directive _vgabios_.c:3938: error: Unknown preprocessor directive _vgabios_.c:3979: error: Unknown preprocessor directive _vgabios_.c:4143: error: Unknown preprocessor directive _vgabios_.c:4202: error: Unknown preprocessor directive _vgabios_.c:4214: error: Unknown preprocessor directive _vgabios_.c:4381: error: Unknown preprocessor directive _vgabios_.c:4568: error: Unknown preprocessor directive _vgabios_.c:4623: error: Unknown preprocessor directive _vgabios_.c:4624: error: Unknown preprocessor directive _vgabios_.c:4625: error: Unknown preprocessor directive _vgabios_.c:4626: error: Unknown preprocessor directive _vgabios_.c:5897: error: Unknown preprocessor directive _vgabios_.c:5946: error: Unknown preprocessor directive _vgabios_.c:6329: error: Unknown preprocessor directive _vgabios_.c:6446: error: Unknown preprocessor directive _vgabios_.c:6496: error: Unknown preprocessor directive _vgabios_.c:6533: error: Unknown preprocessor directive _vgabios_.c:6567: error: Unknown preprocessor directive _vgabios_.c:6590: error: Unknown preprocessor directive _vgabios_.c:6594: error: Unknown preprocessor directive _vgabios_.c:6621: error: Unknown preprocessor directive _vgabios_.c:6655: error: Unknown preprocessor directive _vgabios_.c:6681: error: Unknown preprocessor directive _vgabios_.c:6714: error: Unknown preprocessor directive _vgabios_.c:6718: error: Unknown preprocessor directive _vgabios_.c:6722: error: Unknown preprocessor directive _vgabios_.c:6723: error: Unknown preprocessor directive make: *** [vgabios.bin] Error 1 [tbl@tlondon vgabios]$ "make clean" doesn't fix this. Looks like bcc doesn't like : [tbl@tlondon vgabios]$ head _vgabios_.c # 1 "vgabios.c" # 1 "<built-in>" # 1 "<command-line>" # 1 "vgabios.c" # 51 "vgabios.c" # 1 "vgabios.h" 1
Seems to compile if I run "make GCC='gcc -P'
Appears that: $> git reset --hard v0.5b $> make GCC="gcc -P" $> qemu-kvm .. works, but the largest mode is 1024x768.
I'm sorry, but I can't seem to get 'git bisect' to work for me. I keep getting: [tbl@tlondon vgabios]$ git bisect good Bisecting: 10 revisions left to test after this (roughly 4 steps) error: You have local changes to 'VGABIOS-lgpl-latest.bin'; cannot switch branches. [tbl@tlondon vgabios]$ And it appears not to move the "bisect pointer"...... No matter how many times I enter "git bisect good", it stays at "10 revisions".... A hint would be most welcome!
Removing all the '.bin' files appears to fix this..... Breaks after this: [tbl@tlondon vgabios]$ git bisect good Bisecting: 2 revisions left to test after this (roughly 2 steps) [44a76c3fb11fece3b1b08c762edc990f28cbfb73] - preparing for release 0.6c [tbl@tlondon vgabios]$ <<<< make here fails>>>> [tbl@tlondon vgabios]$ git bisect bad Bisecting: 1 revisions left to test after this (roughly 1 steps) [faf2e77fad85152479a20962900370b1e266ba61] - added support for a lot more non-standard VBE modes (e.g. widescreen modes) - requires latest Bochs VBE code (16 MB video memory, VBE_DISPI_ID5, VRAM size in 64k pages stored in VBE register) - check if VBE mode is supported with current VRAM size [tbl@tlondon vgabios]$ <<< make here fails >>>> [tbl@tlondon vgabios]$ git bisect bad Bisecting: 0 revisions left to test after this (roughly 0 steps) [f559d753eaebe0d27200ad12f7b14c05c16c9ade] - use VBE LFB address from PCI base address if present (rewrite of the cirrus specific function in main vgabios code) - removed unnecessary spaces [tbl@tlondon vgabios]$ <<< make here works >>>> Is this helpful?
Sorry, here is the full bisect report: [tbl@tlondon vgabios]$ git bisect good faf2e77fad85152479a20962900370b1e266ba61 is first bad commit commit faf2e77fad85152479a20962900370b1e266ba61 Author: vruppert <vruppert> Date: Sun Jan 25 15:46:25 2009 +0000 - added support for a lot more non-standard VBE modes (e.g. widescreen modes) - requires latest Bochs VBE code (16 MB video memory, VBE_DISPI_ID5, VRAM size in 64k pages stored in VBE register) - check if VBE mode is supported with current VRAM size :100644 100644 80097fcc2ceec6748806fc49d3de5f5a74c73bc2 9350265fd3711b3f01d19b9ecfcd23bf3e56e480 M VGABIOS-lgpl-latest.bin :100644 100644 ef74bdb60b27d7744460a058fd6ca3b83268d10c ed1e548f80e61074b401aa0cf4154f1e9b750258 M VGABIOS-lgpl-latest.cirrus.bin :100644 100644 21bdc22dccf70d5d54c7829fe8931f3f4b01956d 348f8f64478fa85713320d73b5868bf1603b3c84 M VGABIOS-lgpl-latest.cirrus.debug.bin :100644 100644 2050fd9519830a52fee832daa227d6cff532a5f1 f98561029c79f20cf1c20c29b5ae33a7c03f8fc5 M VGABIOS-lgpl-latest.debug.bin :100644 100644 92e3d0df36945c6180367e23bb863302cfdaf705 ecff90d726d3ad1c2c26635bd2aeb13fd45384c5 M vbe.c :100644 100644 60434ac7d79599092c66efad6d803b012ec65a27 72cb0454ead5dae5323e2ae1ec94b49491b2a69d M vbe.h :100644 100644 7014a16e77ed6262ca69361d89ccd8ba706aba38 550935a726a2eea1e80a263e8d864e5068cd9f27 M vbetables-gen.c [tbl@tlondon vgabios]$
Thanks Tom - try posting what you've found to Volker Ruppert <info vruppert de> and <vgabios-developers nongnu org> ?
OK, I've posted a message to Volker Ruppert via the savannah nongnu org interface. Believe I mailed a similar report to vgabios-developers groups as well. Anything more I can do?
(In reply to comment #9) Just looking through F-11 bochs to confirm these requirements: > - requires latest Bochs VBE code (16 MB video memory, check: #define VBE_DISPI_TOTAL_VIDEO_MEMORY_MB 16 > VBE_DISPI_ID5, check: if (value == VBE_DISPI_ID5) { // allow backwards compatible with previous dispi bioses BX_VGA_THIS vbe.cur_dispi=value; > VRAM size in 64k pages stored in VBE register) check: case VBE_DISPI_INDEX_VIDEO_MEMORY_64K: return (VBE_DISPI_TOTAL_VIDEO_MEMORY_KB >> 6);
Tom if you feel like doing more debugging, you could do the following: 1) Re-build qemu-kvm-0.10.5-3.fc11 with this patch: -static int serial_io[MAX_SERIAL_PORTS] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8 }; +static int serial_io[MAX_SERIAL_PORTS] = { 0x500, 0x2f8, 0x3e8, 0x2e8 }; (vgabios debugging goes to port 0x500) 2) With vgabios-0.6b, do: $> rm /usr/share/qemu/vgabios.bin $> ln -s /usr/share/vgabios/VGABIOS-lgpl-latest.debug.bin \ /usr/share/qemu/vgabios.bin $> qemu-kvm -serial stdio -vga std winXP.img 2>&1 | 0.6b-debug.log 3) Do it again with vgabios-0.6c and post both logs here
OK. I'll give this a try today. I'm currently running rawhide (except for vgabios). OK to debug with qemu-kvm-0.10.50-6.kvm86.fc12.x86_64, or do I need to revert to qemu-kvm-0.10.5-3.fc11?
Thanks - so long as it's broken with 0.6c and works with 0.6b, it doesn't matter what version of qemu you're using, I guess
Okay, nevermind Tom - Volker and Glauber have figured this out. Here's my understanding: 1) upstream qemu-kvm vgabios added support for higher resolutions back in kvm-62: http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=commitdiff;h=ebfac597cf 2) in F-11 we started using upstream vgabios-0.6b, which didn't have this patch - hence bug #499060 3) 0.6c *does* have this patch, but it also has other changes which are incompatible with current qemu - it requires both VBE_DISPI_INDEX_VIDEO_MEMORY_64K and VBE_DISPI_ID5 to be present 4) F-11 bochs has this support, but qemu has its own version of the code which needs to be updated Nickel summary - we'll have 0.6c for F-12, but we need qemu updated to support it; we'll patch 0.6b with the patch linked to above for F-11 and that will fix bug #499060
(In reply to comment #16) > Okay, nevermind Tom - Volker and Glauber have figured this out. Here's my > understanding: > > 1) upstream qemu-kvm vgabios added support for higher resolutions back > in kvm-62: > > http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=commitdiff;h=ebfac597cf > > 2) in F-11 we started using upstream vgabios-0.6b, which didn't have this > patch - hence bug #499060 > > 3) 0.6c *does* have this patch, but it also has other changes which are > incompatible with current qemu - it requires both > VBE_DISPI_INDEX_VIDEO_MEMORY_64K and VBE_DISPI_ID5 to be present > > 4) F-11 bochs has this support, but qemu has its own version of the code > which needs to be updated > > Nickel summary - we'll have 0.6c for F-12, but we need qemu updated to support > it; we'll patch 0.6b with the patch linked to above for F-11 and that will fix > bug #499060 OK, I've updated to vgabios-0.6b-2.fc11.noarch and this seems to work fine with qemu-kvm-0.10.50-6.kvm86.fc12.x86_64. If I understand this correctly, I should hunker down and wait for F-12 qemu-kvm updates before updating vgabios further.
To keep rawhide working, I've applied the same patch F11's vgabios has, in rawhide. So you can safely update it, and use it with qemu-kvm-0.10.50-6.kvm86.fc12.x86_64 Whenever qemu gets updated to use vgabios 0.6c, we'll reflect it in requires.
btw, if F11's vgabios do work for you, please karma it.
Okay, we should close this since rawhide doesn't have 0.6c anymore - we won't update to 0.6c again until we have the needed bits in qemu-kvm. Thanks for all the help Tom