24

How to OpenGL on Linux Platform Without X-Window System, can I send OpenGL Graphics Directly to Framebuffer Device?

There Is Project Named DirectFB (Direct FrameBuffer). With DirectFB We can do this but DirectFB needs for driver for each hardware and I want to user a graphic card that only have Linux driver.

3
  • 2
    Why do you want to avoid X? If you need OpenGL you really kinda need X... If it's just "I want it to go as fast as possible" you don't need to get rid of X, just don't start a compositor or desktop environment and only run your app inside X. Also if it is "I want speed" X is very unlikely to be the bottleneck since DRI rendering pretty much bypasses it entirely. Commented Jun 16, 2010 at 13:58
  • 5
    You Know , When u start the x i take a lot of seconds to loading and its not suitable for embedded platforms Commented Jun 16, 2010 at 18:54
  • related stackoverflow.com/questions/3326641/… Commented Aug 14, 2016 at 15:11

5 Answers 5

9

This is how i did it in my ubuntu 11.04 in detail: 1- Install the dependencies using the command:

sudo apt-get install xutils-dev libpciaccess-dev x11proto-dri2-dev x11proto-gl-dev libxdamage-dev libxfixes-dev

2- The mesa library needs libdrm version >= 2.4.24 which is not available in the ubuntu 11.04 repository (older version is available) so you have to download the source and build it using the following commands:

./configure
make
make install

3-Download mesa library and then compile it using the following commands: ./configure --prefix=install_directory

make realclean
make linux-fbdev
sudo make install

be careful when you choose the install_directory so that you don't overwrite the system's mesa library. after that compile your application using the options : -lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'

Sign up to request clarification or add additional context in comments.

Comments

6

Apparently is possible to have SDL running without X.

Basically, your kernel should have framebuffer support and you could use SDL on top of DirectFB.

These threads are ok:

http://lists.libsdl.org/pipermail/sdl-libsdl.org/2006-October/058305.html

http://forums.libsdl.org/viewtopic.php?t=4079

1 Comment

So which library among above proposed (directFB, SDL) provides OpenGL interface/implementation? None... Mesa does.
4

As you said, you need a driver to do this. 99.9% of all Linux graphics drivers use X11, so unless you have a DirectFB OpenGL driver for your hardware, you are stuck with using X11.

7 Comments

my video chipset is Intel GM855 , this chipset has normal Linux Driver for X . could it be used with DirectFB
so what can i do ? did u see MyOS X-Less ? geocities.com/ze_aks/myos.html
Why do you want to not use X11?
The Main Reason For X-Less Is Speed , I want Use Embedded Version Of Linux Kernel On Embedded Platform . The Linux Kernel with Lot Of Stuff Will Load 3 Sec After Bootloader Start . But If i use X More Seconds will be lost , for example the startx command will take about 10 seconds to load the x Completely .
@MatiasValdenegro It looks like the links in the comments here have decayed, why not see if you can wayback the links or quote the relevant text and summarize the comments in your answer so they can be deleted (please flag).
|
0

I use the SDL (Simple Direct Media Layer) for OpenGL programming in Linux. This site has some nice tutorials to get you set up. One advantage of using SDL is that it will port across platforms, so once you get something running on Linux, it'll transfer right over to Windows so long as you have SDL installed there.

2 Comments

I know SDL but SDL running in X Window and not only with Framebuffer Device
Got it, I didn't understand you couldn't use X.
0

You can use Mesa for framebuffer-based software rendering.

4 Comments

How ?! Is it Hardware Accelerated ?!
@user366250: Nope. Software rendering.
Mesa is both Hardware and Software
@donbright: Yeah nowadays accelerated X-less OpenGL is achievable via EGL but back in mid-2010 much less so :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.