0

I'm using Xorg with the FBDEV driver, configuration:

Section "Device"
    Identifier "Device0"
    Driver "fbdev"
    Option "fbdev" "/dev/fb0"
    Option "ShadowFB" "false"
EndSection

I got a new framebuffer device to my system, it's /dev/fb1. I adjusted the config:

Section "Device"
    Identifier "Device0"
    Driver "fbdev"
    Option "fbdev" "/dev/fb1"
    Option "ShadowFB" "false"
EndSection

But it doesn't work, it still uses /dev/fb0, and doesn't even open /dev/fb1. I'm using Ubuntu-based (jammy-based) OS with xserver-xorg-video-fbdev package installed. Everything works if I do

mount --bind /dev/fb1 /dev/fb0

But it's not an option because I want to have access to both the framebuffers (so I did umount /dev/fb0 to undo it).
Thanks for any help

1 Answer 1

1

Xorg's FBDEV driver requires a BusID option to be passed in Config, not only a path to the framebuffer's char-device. I don't know why is that, but here is how to configure it:

First is to figure out the "bus id" of the framebuffer device. Assuming that the wanted framebuffer device is fb1:

ls /sys/class/graphics/fb1/device/driver

The example output (the output in my case) is:

bind  module  uevent  unbind  vfb.0

From this list of entries you should ignore (don't pay attention) to bind, module, uevent, unbind and ANYTHING_id (if exists).
Then you're left with exactly that "bus id" of your Framebuffer. (In my case, vfb.0).
Here is a different example with my fb0 device, by the way, which is a real FB from nouveaudrmfb:

# ls /sys/class/graphics/fb0/device/driver

0000:03:00.0  bind  module  new_id  remove_id  uevent  unbind

In this case, you can see that the "bus id" is 0000:03:00.0.

Knowing the Bus ID, you can finally configure the FBDEV driver in the Xorg conf:

Section "Device"
    Identifier "Device0"
    Driver "fbdev"
    BusID "vfb.0"
    Option "fbdev" "/dev/fb1"
EndSection

This is an example configuration for a fb1 device with vfb.0 BusID.
That's it.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .