Difference between revisions of "Building mesa with dri for fbcon"

From Organic Design wiki
m (libdrm)
m (libdrm)
Line 31: Line 31:
 
--mandir=$ROOT/usr/man \
 
--mandir=$ROOT/usr/man \
 
--infodir=$ROOT/usr/info
 
--infodir=$ROOT/usr/info
 +
 +
make install
 
</pre>
 
</pre>
  
Then
+
This create some files in ''/home/rob/framebuffer/install/usr/lib'', and others.
  
 
<pre>
 
<pre>

Revision as of 00:41, 4 December 2006

You will need

Sources:

  • libdrm-2.2
  • MesaLib-6.5.2
  • Kernel-2.6.16.18

Process

The process requires both kernel space and user space software. You will need the kernel, the DRM/DRI and mesa source trees.

libdrm

These are the user space libs. Here is an example configure script to set some options for sandbox style compilation - where we don't want to install binaries on the host system. This is because we eventually want to cross compile for a target system.

I obtained the DRM source with git.

cd
mkdir drm
cd drm
git clone git://anongit.freedesktop.org/git/mesa/drm

export ROOT=/home/rob/framebuffer/install
cd drm
./configure \
--prefix=$ROOT/usr \
--exec-prefix=$ROOT/usr \
--bindir=$ROOT/usr/bin \
--sbindir=$ROOT/usr/sbin \
--libexecdir=$ROOT/usr/lib \
--sysconfdir=$ROOT/etc \
--datadir=$ROOT/usr/share \
--localstatedir=$ROOT/var \
--mandir=$ROOT/usr/man \
--infodir=$ROOT/usr/info

make install

This create some files in /home/rob/framebuffer/install/usr/lib, and others.

cd
mkdir mesa
cd mesa
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa co Mesa
cd
mkdir kernel
cd kernel
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.18.tar.bz2
tar xjf linux-2.6.16.18.tar.bz2
cd ~/drm/drm/linux-core
make LINUXDIR=~/kernel/linux-2.6.18/

All going well you will end up with a bunch of .o files in your ~/drm/drm/linux-core directory.

Now you need to build mesa linking against these .o files.

cd ~/mesa/Mesa-6.5.2
make realclean
sed -ri 's|DRM_SOURCE_PATH.+$|DRM_SOURCE_PATH = $(TOP)/../../drm/drm|' configs/default

We need to edit the config to point to the DRM modules. And make it.

make linux-solo

See also