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

From Organic Design wiki
m (Mesa)
(mesa config)
Line 44: Line 44:
 
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa co Mesa
 
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa co Mesa
 
</pre>
 
</pre>
 +
 +
Need to patch the config file to make it install things in our ''install'' directory
 +
<pre>
 +
cd Mesa
 +
export OD_INSTALL='/home/rob/framebuffer/install'
 +
sed -ri 's|INSTALL_DIR = .*$|INSTALL_DIR = $(OD_INSTALL)|' configs/default
 +
sed -ri 's|DRI_DRIVER_INSTALL_DIR = .*$|DRI_DRIVER_INSTALL_DIR = $(OD_INSTALL)' configs/default
 +
make realclean
 +
</pre>
 +
 
All going well you will end up with a bunch of .o files in your ''~/drm/drm/linux-core'' directory.
 
All going well you will end up with a bunch of .o files in your ''~/drm/drm/linux-core'' directory.
  
Line 49: Line 59:
 
<pre>
 
<pre>
 
cd ~/mesa/Mesa-6.5.2
 
cd ~/mesa/Mesa-6.5.2
make realclean
+
 
sed -ri 's|DRM_SOURCE_PATH.+$|DRM_SOURCE_PATH = $(TOP)/../../drm/drm|' configs/default
 
 
</pre>
 
</pre>
 
We need to edit the config to point to the DRM modules. And make it.
 
We need to edit the config to point to the DRM modules. And make it.
Line 56: Line 65:
 
make linux-solo
 
make linux-solo
 
</pre>
 
</pre>
 +
 
==dri==
 
==dri==
 
<pre>
 
<pre>

Revision as of 00:52, 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.

Mesa

cd
mkdir mesa
cd mesa
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa co Mesa

Need to patch the config file to make it install things in our install directory

cd Mesa
export OD_INSTALL='/home/rob/framebuffer/install'
sed -ri 's|INSTALL_DIR = .*$|INSTALL_DIR = $(OD_INSTALL)|' configs/default
sed -ri 's|DRI_DRIVER_INSTALL_DIR = .*$|DRI_DRIVER_INSTALL_DIR = $(OD_INSTALL)' configs/default
make realclean

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

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

make linux-solo

dri

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/

See also