Building vgabios-stdvga.bin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Short version of the question:

How do I (re)build vgabios-stdvga.bin?

Here's why:  I want to run a Windows guest with some non-standard
customized display resolutions available.  In particular, I'm trying
to get 2556x1574 and 2556x1414 working (they play well with vnc when
I maximize the vnc client window on my actual display machines).
I'd settle for 2560x1440, but as long as I'm recompiling, I might
as well go for exactly what I want, right?

What have I tried?  Before I go into the whole saga, since I'm sure
most of you won't want to read it, I'd love to be pointed at some
kind of a "how to build vgabios" document, if such a thing exists.
Or, heck, a pointer to a current source distribution of dev86 would
probably go a long way.  Really, I'll take anything.

Failing that, here's what I tried.  Maybe someone can tell me
which part I can fix.

I downloaded the qemu-kvm sources and built the package.  That was
very easy, and the newly-created binaries worked just as well as
the precompiled binaries I got from the Arch Linux distribution.
Unfortunately, this doesn't build the vgabios*.bin files.

I noticed that there's a directory, kvm/vgabios, in the distribution
which appears to have source code for the relevant targets.  Indeed,
one of the source files there, vbetables-gen.c, seems to be the one
I need to modify to add my new display resolutions.  Great.
So naturally, I tried to run a make there, but it wanted to use bcc.

Some research later, and I find the dev86 package of tools which
contains bcc.  Unfortunately, I can't find a precompiled version
of that, so I downloaded the source code to version 0.16.17 from
    http://homepage.htlworld.com/robert.debath/dev86/
I'm honestly not sure if this is the right source for this,
especially since it appears to be almost 7 years old, but I
was unable to find anything more recent.  In any case, it
doesn't exactly compile cleanly on my machine.  First it complains
about having no rule for "libc3.a()" (note the parens at the end),
eventhough "libc3.a" seems to have been built just fine.

Searching the net suggests that there may be problems with my version
of make (3.82), but I don't have an easy way of downgrading that.
Besides, the error seems to be purely a 'make' problem, as the
relevant files are being built.  So I tried 'make -k' (still on dev86
here), and it built more stuff, then choked on an include file,
'sys/vm86.h'.  First I tried adding -I to CFLAGS to point the build
to the version that came with the distribution.  That didn't work,
claining MAX_INT wasn't being defined.  So I made a cheesy symlink,
/usr/include/sys/vm86.h pointing to /usr/include/asm/vm86.h, which
already existed, ran 'make -k' again, and...  surprise!  It built.
Someone dubious, I nevertheless installed the result.

With this questionable version of dev86, I went back to the kvm/vgabios
directory and tried to build there again.  Much to my surprise, it
actually ran, and built 4 variants on VGABIOS-lgpl-latest.bin...
Cool, says I, now what do I do with these?  I did the only thing
I could think of, and installed VGA-lgpl-latest.bin as
/usr/local/kvm/share/qemu/vgabios-stdvga.bin, the only vgabios-*
file being accessed (going by access times here) when I ran my
guest (using 'qemu-system-x86_64 -vga std').

At that point, running my guest worked...  rather poorly.  It briefly
displayed a 640x480 black screen, then showed "Microsoft Corporation"
with a "progress" bar (not really a progress bar since the little thumb
bounces back and forth normally, giving no indication of actual progress,
but you get the idea), then went black again, then froze (or perhaps
went into a busy loop -- hard to tell) forever.


Now, I realize that more than one part of this whole saga is guesswork,
poor procedure, or just plain wrong on my part.  I'm hoping someone
can tell me a better way.  

Of course, what this thing really needs is a way for us to configure,
at runtime, the available resolutions.  I have no idea how hard that
would be, but we're obviously not there now.

Thanks in advance for any help, suggestions, or pointers at more
documentation.  Cheers!

    -- Rick
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux