<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Dec 10, 2009, at 8:06 AM, Dave Airlie wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On Thu, 2009-12-10 at 07:32 +0300, Vasily Levchenko wrote:<br><blockquote type="cite">Hi, folks.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Currently at Virtualbox has introduced UEFI support in 3.1 release.<br></blockquote><blockquote type="cite">But there is one issue with X server. When trying configure X with<br></blockquote><blockquote type="cite">-configure. Resulted xorg.conf.new looks right except missed Modes.<br></blockquote><blockquote type="cite">Observing code I've supposed that missed information should be somehow<br></blockquote><blockquote type="cite">fetched from screen info (prepared by EFIFB)<br></blockquote><blockquote type="cite">via ioctl(..,FBIOGET_FSCREENINFO,...), but for some reasons it isn't<br></blockquote><blockquote type="cite">called and doing strace of X -configure the /dev/fb0 is open and than<br></blockquote><blockquote type="cite">immediately closed ([<a href="http://pastebin.org">pastebin.org</a>]). So the question is what should be<br></blockquote><blockquote type="cite">added in VirtualBox/UEFI firmware to get full xorg.conf? <br></blockquote><blockquote type="cite"><br></blockquote><br>Does it not work without an xorg.conf, that would be the first goal.<br><br></div></blockquote><div>Right, ability to work with built-in config would be excellent  :).</div><div>I've debugged X and X -configure and noticed in both cases </div><div><br></div><div><div>#0  fbdev_open (scrnIndex=<value optimized out>, dev=0x1501fc "/dev/fb0", namep=0x0) at fbdevhw.c:412</div><div>#1  0x0014fc80 in fbdevHWProbe (pPci=0x0, device=0x0, namep=0x0) at fbdevhw.c:442</div><div>#2  0x00c5e4b5 in FBDevProbe (drv=0x8236b00, flags=<value optimized out>) at fbdev.c:394</div><div>#3  0x080a7c4e in xf86CallDriverProbe (drv=0x8236b00, detect_only=0) at xf86Init.c:663</div><div>#4  0x080a92fe in InitOutput (pScreenInfo=0x8212500, argc=1, argv=0xbfd96fc4) at xf86Init.c:939</div><div>#5  0x0806ba2b in main (argc=1, argv=0xbfd96fc4, envp=0xbfd96fcc) at main.c:315</div><div><br></div><div><br></div><div>fbdev_open called with namep = 0, that blocks fetch information from efifb </div><div><br></div><div><div>if (namep) {</div><div>            if (-1 == ioctl(fd,FBIOGET_FSCREENINFO,(void*)(&fix))) {</div><div>                *namep = NULL;</div><div>                xf86DrvMsg(scrnIndex, X_ERROR,</div><div>                           "FBIOGET_FSCREENINFO: %s\n", strerror(errno));</div><div>                return -1;</div><div>            } else {</div><div>                *namep = xnfalloc(16);</div><div>                strncpy(*namep,fix.id,16);</div><div>            }</div><div>        }</div><div><br></div></div><div>calling right ioctl from gdb:</div><div><span class="Apple-style-span" style="font-family: Sans, Verdana, sans-serif; font-size: small; line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><pre style="overflow-x: auto; overflow-y: auto; ">(gdb) call ioctl(fd,0x4602,(void*)(&fix))
$2 = 0
(gdb) p fix
$3 = {id = "EFI VGA\0\0\0\0\0\0\0\0", smem_start = 0x80000000 <Address 0x80000000 out of bounds>, smem_len = 6291456, type = 0, 
  type_aux = 0, visual = 2, xpanstep = 0, ypanstep = 0, ywrapstep = 0, line_length = 4096, mmio_start = 0x0, mmio_len = 0, accel = 0, 
  reserved = {0, 0, 0}}</pre></span><div>shows that efifb prepared right information for frame buffer clients.</div></div><div><br></div><div>the difference between X and X -configure, is vesa driver (it seems)  tries to occur  information via libint10, assuming existence of VGA BIOS, which ofc is absent in our case.</div><div><br></div><div><div>(II) Loading sub module "vbe"</div><div>(II) LoadModule: "vbe"</div><div>(II) Loading /usr/lib/xorg/modules//libvbe.so</div><div>(II) Module vbe: vendor="<a href="http://X.Org">X.Org</a> Foundation"</div><div>        compiled for 1.6.3.901, module version = 1.1.0</div><div>        ABI class: <a href="http://X.Org">X.Org</a> Video Driver, version 5.0</div><div>(II) Loading sub module "int10"</div><div>(II) LoadModule: "int10"</div><div>(II) Loading /usr/lib/xorg/modules//libint10.so</div><div>(II) Module int10: vendor="<a href="http://X.Org">X.Org</a> Foundation"</div><div>        compiled for 1.6.3.901, module version = 1.0.0</div><div>        ABI class: <a href="http://X.Org">X.Org</a> Video Driver, version 5.0</div><div>(II) VESA(0): initializing int10</div><div>(EE) VESA(0): V_BIOS address 0x0 out of range</div><div>(II) UnloadModule: "vesa"</div><div>(II) UnloadModule: "int10"</div><div>(II) Unloading /usr/lib/xorg/modules//libint10.so</div><div>(II) UnloadModule: "vbe"</div><div>(II) Unloading /usr/lib/xorg/modules//libvbe.so</div><div>(EE) Screen(s) found, but none have a usable configuration.</div></div></div><br><blockquote type="cite"><div>Dave.<br><br><br><br>-- <br>fedora-devel-list mailing list<br><a href="mailto:fedora-devel-list@redhat.com">fedora-devel-list@redhat.com</a><br>https://www.redhat.com/mailman/listinfo/fedora-devel-list<br></div></blockquote></div><br></body></html>