On 5/24/2011 4:10 PM, 胡松涛 wrote:
Hi,
When I learn http://www.openfirmware.org/1275/practice/#graphics I found that: I Can't get /pci/display ihandle under vbox,
That is because there is no suitable driver in the demo build.
VirtualBox emulates a linear frame buffer that is managed with VESA BIOS extensions. The demo build, when running under syslinux, has some words to access VESA BIOS functions - they are defined in cpu/x86/pc/biosload/callvbe.fth . You could use them to put the display into VESA linear framebuffer mode, then access the framebuffer with the functions in dev/video/common/rectangl.fth .
You would need to use a serial console for this, because as soon as you switched to VESA linear mode, you would lose the text-mode console display.
when I boot
up with usb-disk on my laptop, I can't get ihandle as well.
Again, the problem is the lack of a driver for the graphics card on your laptop. Modern PC graphics cards are very complex, and often undocumented.
If your laptop has a conventional BIOS that supports VESA, you could use the VESA technique outlined above to access its display in graphics mode. If it has an EFI BIOS, some other technique would be required.
but I can get /pci/vga ihandle under qemu. And it works fine with graphics.
qemu emulates an old Cirrus logic display controller for which OFW has a driver (the source code is in dev/video/cirrus.bth).
Which graphics methods are you using with /pci/vga ?