From: Helge H. <hel...@ai...> - 2005-08-26 08:10:50
|
Erik Walthinsen wrote: >Erik Walthinsen wrote: > > >>>Third workaround: Configure framebuffers in your kernel, >>>get a framebuffer for each and every screen. >>> >>> >>This is something I tried for a while, but didn't have much luck with. >>I'll give it another shot though. >> >> > >No go. When loading the radeonfb module, I get /dev/fb0 for the first >card, but no other cards load up. They all come back with "0k" VRAM and >refuse to create an FB device. There are hacks in the driver for a >couple of video cards to deal with this situation, but not for the same >reason. > > According to Documentation/fb/framebuffer.tct, you are supposed to get a fb for each _card_ at least. There are further difficulties if you're trying for a fb per head on a multihead card, but one fb per card is supposed to work. The device-nodes /dev/fb1, /dev/fb2, and so on exists? What happens if you compile the framebuffer driver into the kernel, instead of using a module? Or if you tries to load that module a second time? Also make sure vesafb is disabled (or the module _not_ loaded), for vesafb just gets in the way and supports only one card. Wait... You say they come up with 0k VRAM and refuse to load. That is typical for the case where the cards were found, but the bios haven't initialized them. If all your cards are the same type, check to see if the bios have an option for initializing more than one cards. It likely won't, though. There is a way around this, but it is long. Basically: 1. boot the machine. Make sure _no_ framebuffer modules load at this time. 2. Run X briefly. This special X should be configured to simply use all the cards, and initialize them via the int10 routine. This way, every card will get their bios initialization. Make sure this Xserver quits after initialization. For example, it could use /bin/false as "window manager". 3. _Now_ load the framebuffer driver. It should find that all the cards are initialized and have enough RAM and so on. You should get a framebuffer (but not a console) for each screen. You may verify this by cat somefile > /dev/fb1 cat somefile > /dev/fb2 ... and see how garbage appear on each screen as "somefile" contents is written to video memory. 4. Now start your regular xservers, those that use the framebuffers for managing resolution. Helge Hafting |