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

From Organic Design wiki
m (libdrm)
m
 
(11 intermediate revisions by one other user not shown)
Line 5: Line 5:
 
*MesaLib-6.5.2
 
*MesaLib-6.5.2
 
*Kernel-2.6.16.18
 
*Kernel-2.6.16.18
 +
*libegl?
 +
 
=Process=
 
=Process=
 
The process requires both kernel space and user space software. You will need the kernel, the DRM/DRI and mesa source trees.
 
The process requires both kernel space and user space software. You will need the kernel, the DRM/DRI and mesa source trees.
  
 
==libdrm==
 
==libdrm==
These are the kernel modules. 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.
+
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.
 
I obtained the DRM source with git.
Line 31: Line 33:
 
--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.
  
 +
==Mesa==
 
<pre>
 
<pre>
 
cd
 
cd
Line 40: Line 45:
 
cd mesa
 
cd mesa
 
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa co 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/
 
 
</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'
 +
export PKG_CONFIG_PATH="$OD_INSTALL/usr/lib/pkgconfig"
 +
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
 +
sed -ri "s|DRM_SOURCE_PATH=.*$|DRM_SOURCE_PATH = $OD_INSTALL/../drm|" 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 53: Line 63:
 
<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.
 
<pre>
 
<pre>
 
make linux-solo
 
make linux-solo
 +
</pre>
 +
 +
==dri==
 +
<pre>
 +
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/
 
</pre>
 
</pre>
  

Latest revision as of 08:17, 4 December 2006

You will need

Sources:

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

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'
export PKG_CONFIG_PATH="$OD_INSTALL/usr/lib/pkgconfig"
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
sed -ri "s|DRM_SOURCE_PATH=.*$|DRM_SOURCE_PATH = $OD_INSTALL/../drm|" 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