Building the DRI with X.org and Mesa - jak to się je?

Czyli jak najefektywniej (lub efektowniej) skonfigurować Slackware'a w komputerze domowym

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
pelzak
Użytkownik
Posty: 50
Rejestracja: 2006-03-03, 12:04
Lokalizacja: Bydgoszcz

Building the DRI with X.org and Mesa - jak to się je?

Post autor: pelzak »

Witam

Ponieważ miałem problemy z OpenGL'em dlatego po długich poszukiwaniach w sieci postanowiłem zaatakowac DRI
Direct Rendering Open Source Project

No i już od samego poczatku moje umiejętności linuxowe (a raczej ich brak) dały się we znaki.
Postępując zgodnie z instrukcją:

Kod: Zaznacz cały

1. Building the DRI with X.org and Mesa

This is a basic guide to building DRI from source. This guide only covers building the client-side 3D drivers. Since the transition to the modular X.org build, building an X-server and 2D drivers is beyond the scope of this document. That information can be found in the [WWW]X.org Modular Developer's Guide.

KDrive servers are not supported at this time. Please report any problems with these instructions on the dri-users mailing list or on IRC.

The 2D drivers with DRI support, server-side GLX support and the GL library capable of loading DRI 3D drivers are developed upstream in X.org CVS. The 3D drivers now live in the Mesa tree, so you will have to check out the Mesa CVS tree too. You should also get the DRM tree for the updated kernel modules. The following instructions will guide you through the process step by step.

In addition to having a current version (7.0 as of this writing) of X.org (core and development packages) installed on your system, you will likely need an up to date version of the [WWW]glproto package. At the very least, [WWW]version 1.4.5 is required, but later versions may be available.

Warning: In case you didn't notice, you are about to compile and install experimental software. This will allow you to test the latest features and bug fixes. It may, however, also introduce new bugs. Be prepared for problems every now and then. 
Ściągnąłem najnowsze glproto-1.4.6.tar.bz2 i po rozpakowaniu i przeniesieniu do /usr/local/glproto-1.4.6 i rozpocząłem zabawę.

Kod: Zaznacz cały

# ./configure
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating glproto.pc
po czym standardowo chciałem zapodać

Kod: Zaznacz cały

# make
make: Nie nic do roboty w `all'.
Jak świat piękny i wesoły na pewno o czymś zapomniałem albo zrobiłem źle ale niesty do glproto-1.4.6 nie dołączono żadnego readme więc jestem bezsilny.
Proszę o pomoc ... i wyrozumiałość. ;-)

P.S. Smacznego jajka. :-)

EDIT:
Po make install otrzymuje:

Kod: Zaznacz cały

# make install
make[1]: Entering directory `/usr/local/glproto-1.4.6'
make[1]: Nie nic do roboty w `install-exec-am'.
test -z "/usr/local/include/GL" || mkdir -p -- "/usr/local/include/GL"
 /usr/bin/ginstall -c -m 644 'glxint.h' '/usr/local/include/GL/glxint.h'
 /usr/bin/ginstall -c -m 644 'glxmd.h' '/usr/local/include/GL/glxmd.h'
 /usr/bin/ginstall -c -m 644 'glxproto.h' '/usr/local/include/GL/glxproto.h'
 /usr/bin/ginstall -c -m 644 'glxtokens.h' '/usr/local/include/GL/glxtokens.h'
test -z "/usr/local/include/GL/internal" || mkdir -p -- "/usr/local/include/GL/internal"
 /usr/bin/ginstall -c -m 644 'glcore.h' '/usr/local/include/GL/internal/glcore.h'
test -z "/usr/local/lib/pkgconfig" || mkdir -p -- "/usr/local/lib/pkgconfig"
 /usr/bin/ginstall -c -m 644 'glproto.pc' '/usr/local/lib/pkgconfig/glproto.pc'
make[1]: Leaving directory `/usr/local/glproto-1.4.6'
Co to oznacza? Czy instalacja powiodła się czy nie?
Ostatnio zmieniony 2006-04-16, 19:27 przez pelzak, łącznie zmieniany 1 raz.
Pozdrawiam
h4llbX
Użytkownik
Posty: 11
Rejestracja: 2005-12-21, 09:36

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: h4llbX »

Tak instalacja glproto-1.4.6 powiodla sie. Takie pytanie jaka masz grafike ? i jaka masz wersje X11 ?

P.s.czasem sie zdarzaja przypadki ze dana aplikacja nie ma make tylko odrazu make install, sato np.wszystkie prot'a do X11 w wersji 7.0 .
Awatar użytkownika
pelzak
Użytkownik
Posty: 50
Rejestracja: 2006-03-03, 12:04
Lokalizacja: Bydgoszcz

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: pelzak »

Kartę graficzną mam następującą:

Kod: Zaznacz cały

Intel 910GML integrated 3D graphics, featuring Intel Graphics Media Accelerator 900
A jak sprawdzić wersję X11?
Pozdrawiam
Sajmon
Moderator
Posty: 1215
Rejestracja: 2004-05-22, 23:19
Lokalizacja: Graz
Kontakt:

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: Sajmon »

$ ls /var/log/packages/x11-*
[url=http://polish-32053322658.spampoison.com][img]http://pics8.inxhost.com/images/sticker.gif[/img][/url]
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
Awatar użytkownika
pelzak
Użytkownik
Posty: 50
Rejestracja: 2006-03-03, 12:04
Lokalizacja: Bydgoszcz

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: pelzak »

Kod: Zaznacz cały

# ls /var/log/packages/x11-*
/var/log/packages/x11-6.8.2-i686-7dl
/var/log/packages/x11-cursors-6.8.2-noarch-7dl
/var/log/packages/x11-devel-6.8.2-i686-7dl
/var/log/packages/x11-docs-6.8.2-noarch-7dl
/var/log/packages/x11-docs-html-6.8.2-noarch-7dl
/var/log/packages/x11-fonts-100dpi-6.8.2-noarch-7dl
/var/log/packages/x11-fonts-cyrillic-6.8.2-noarch-7dl
/var/log/packages/x11-fonts-misc-6.8.2-noarch-7dl
/var/log/packages/x11-fonts-scale-6.8.2-noarch-7dl
/var/log/packages/x11-xdmx-6.8.2-i686-7dl
/var/log/packages/x11-xnest-6.8.2-i686-7dl
/var/log/packages/x11-xprt-6.8.2-i686-7dl
/var/log/packages/x11-xvfb-6.8.2-i686-7dl
:-)
Pozdrawiam
Awatar użytkownika
pelzak
Użytkownik
Posty: 50
Rejestracja: 2006-03-03, 12:04
Lokalizacja: Bydgoszcz

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: pelzak »

Problemów cześć dalsza :-)
Postępując zgodnie z instrukcją:

Kod: Zaznacz cały

1.1. Getting the CVS trees

Get the CVS trees using the cvs command. There is no password for anonymous CVS so just hit enter when prompted. You should run all of these commands from the same directory. Once they've all run, you will have two new subdirectories: Mesa, and drm.
1.1.1. Getting DRM

The clean source tree takes about 4MB of disk space.

cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri login

cvs -z3 -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri co drm

Otrzymuje coś takiego

Kod: Zaznacz cały

/usr/X11R6/dri# cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri login
Logging in to :pserver:anonymous@anoncvs.freedesktop.org:2401/cvs/dri
CVS password:
cvs login: warning: failed to open /root/.cvspass for reading: No such file or directory
Co z tym fantem zrobić? Muszę się przyznać że to jest mój pierwszy kontakt z CVS.
Ostatnio zmieniony 2006-04-17, 11:05 przez pelzak, łącznie zmieniany 1 raz.
Pozdrawiam
Sajmon
Moderator
Posty: 1215
Rejestracja: 2004-05-22, 23:19
Lokalizacja: Graz
Kontakt:

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: Sajmon »

# touch /root/.cvspass
i wydaj ponownie komendę.
[url=http://polish-32053322658.spampoison.com][img]http://pics8.inxhost.com/images/sticker.gif[/img][/url]
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
Awatar użytkownika
pelzak
Użytkownik
Posty: 50
Rejestracja: 2006-03-03, 12:04
Lokalizacja: Bydgoszcz

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: pelzak »

Ok, dzięki za pomoc, punkty dodaje na bieżąco ;-)

A teraz dalsza część przygód Kaczora Donalda:
Postępując zgodnie z instrukcją:

Kod: Zaznacz cały

1.1.2. Getting libdrm

The CVS version is in DRM cvs (see above).
1.1.3. Getting Mesa

The clean source tree takes about 32MB of disk space.

cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa login

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


1.2. Building libdrm

The Mesa drivers now require libdrm to be installed. Do the following to build libdrm:

cd drm
./autogen.sh

Note: libdrm installs to /usr/local/lib by default. To install in /usr/lib run:

./configure --prefix=/usr --exec-prefix=/

Then as root, to install:

make install

Ta część przeszła bez jakiś niespodzianek.
Ale z okazji Wielkanocy jaja zaczęły się tutaj:

Kod: Zaznacz cały

1.3. Building Mesa 3D Drivers on Linux

The DRI 3D drivers are now built from the Mesa source. Choose the right 'make' target depending on the hardware architecture you're compiling for. linux-dri should work for all architectures. linux-dri-x86 includes x86-specific assembler optimizations. linux-dri-x86-64 is for the AMD x86-64 architecture.

Before you start, you may need to edit the default configuration file Mesa/configs/default and set up the absolute location of the DRM source tree. If you downloaded the Mesa and DRM sources like described above into one directory then no change is required.

DRM_SOURCE_PATH = <path to drm>

Next, optionally edit the architecture configuration files. Mesa/configs/linux-dri is for Linux. Mesa/configs/freebsd-dri is for FreeBSD. The first line defines some compiler optimization/debugging flags. If you don't know what to put here you can leave it out as there are reasonable default settings. The second line can be used to trim the build even further by compiling only the drivers you need.

OPT_FLAGS = <compiler flags>
DRI_DIRS = <dri drivers>

The full set of supported drivers is currently:

DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 radeon s3v \
           savage sis tdfx trident unichrome r300

Note: The i830 driver is deprecated in X.org. Use i915 instead.

Note: You will need to install libdrm for Mesa to build properly. You should have done that at step 1.5 when doing the "make install".

Note: You will need to update PKG_CONFIG_PATH if you installed libdrm in /usr/local/lib. For example, export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH.

Now you're ready to compile it. For x86 you would type:

make linux-dri-x86
A dokładnie w ostatniej linijce instrukcji :-)

Kod: Zaznacz cały

/usr/X11R6/dri/Mesa# make linux-dri-x86
(cd configs && rm -f current && ln -s linux-dri-x86 current)
make default
make[1]: Entering directory `/usr/X11R6/dri/Mesa'
make[2]: Entering directory `/usr/X11R6/dri/Mesa/src'
Making sources for linux-dri-x86
mkdir ../lib
make[3]: Entering directory `/usr/X11R6/dri/Mesa/src/glx/x11'
Makefile:92: depend: Nie ma takiego pliku ani katalogu
ln -s ../../../src/mesa/drivers/dri/common/glcontextmodes.c .
touch depend
makedepend -fdepend -I. -I../../../include -I../../../include/GL/internal -I../../../src/mesa/main -I../../../src/mesa/glapi -I../../../src/mesa/drivers/dri/common `pkg-config --cflags libdrm` -I/usr/X11R6/include glcontextmodes.c clientattrib.c compsize.c eval.c glxcmds.c glxext.c glxextensions.c indirect.c indirect_init.c indirect_size.c indirect_window_pos.c indirect_transpose_matrix.c indirect_vertex_array.c indirect_vertex_program.c pixel.c pixelstore.c render2.c renderpix.c single2.c singlepix.c vertarr.c xfont.c glx_pbuffer.c glx_query.c glx_texture_compression.c dri_glx.c XF86dri.c \
        ../../../src/mesa/main/dispatch.c ../../../src/mesa/glapi/glapi.c ../../../src/mesa/glapi/glthread.c ../../../src/mesa/x86/glapi_x86.S
Package libdrm was not found in the pkg-config search path.
Perhaps you should add the directory containing `libdrm.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libdrm' found
/bin/sh: makedepend: command not found
make[3]: *** [depend] Błąd 127
make[3]: Leaving directory `/usr/X11R6/dri/Mesa/src/glx/x11'
make[2]: *** [subdirs] Błąd 1
make[2]: Leaving directory `/usr/X11R6/dri/Mesa/src'
make[1]: *** [default] Błąd 1
make[1]: Leaving directory `/usr/X11R6/dri/Mesa'
make: *** [linux-dri-x86] Błąd 2
Jak to ugryźć?
Z góry dzięki za pomoc :-)
Pozdrawiam
Sajmon
Moderator
Posty: 1215
Rejestracja: 2004-05-22, 23:19
Lokalizacja: Graz
Kontakt:

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: Sajmon »

Pisze jak wół:
Package libdrm was not found in the pkg-config search path.
Perhaps you should add the directory containing `libdrm.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libdrm' found
Doinstaluj przed kompilacją libdrm

< edit >
http://dri.freedesktop.org/wiki/Building
</ edit >
Ostatnio zmieniony 2006-04-17, 14:05 przez Sajmon, łącznie zmieniany 2 razy.
Awatar użytkownika
fractal
Użytkownik
Posty: 4
Rejestracja: 2006-03-06, 14:27
Lokalizacja: Iława

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: fractal »

Awatar użytkownika
pelzak
Użytkownik
Posty: 50
Rejestracja: 2006-03-03, 12:04
Lokalizacja: Bydgoszcz

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: pelzak »

Dzieki :-)
Teraz bynajmniej wiem czemu po instalacji DRI ze snapshotow caly system mi padl... bo nie mam kernela 2.6.*

No wiec raznym krokiem ruszylem w strone kompilacji nowego jadra i...
mialo byc fajnie a wyszlo jak zwykle...

Wszystko pieknie ladnie z godzine czytalem menuconfig i wybieralem opcje ale po kompilacji okazalo sie ze sieciowka zniknela..., a jestem przekonany ze w kernelu zaznaczalem zeby byla...
Jak to mozna teraz ugryzc? Bo bez netu troche smutno ;-)

Z gory dzieki za pomoc.
Pozdrawiam
Dario

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: Dario »

Przekompilować jądro jeszcze raz, albo sprawdzić czy nie skompilowałeś sterownika do sieciówki jako moduł. Jeżeli masz jako moduł to spróbuj go załadować.
Awatar użytkownika
pelzak
Użytkownik
Posty: 50
Rejestracja: 2006-03-03, 12:04
Lokalizacja: Bydgoszcz

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: pelzak »

A jak to sprawdic?
Bo z modulami nie jestem zaprzyjazniony ;-)
Pozdrawiam
Dario

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: Dario »

/lib/modules/2.6.x/kernel/drivers/net - jeśli kompilowałeś jako moduł to powinieneś tu mieć moduł nazwa.ko
Awatar użytkownika
pelzak
Użytkownik
Posty: 50
Rejestracja: 2006-03-03, 12:04
Lokalizacja: Bydgoszcz

Re: Building the DRI with X.org and Mesa - jak to się je?

Post autor: pelzak »

Dario pisze:/lib/modules/2.6.x/kernel/drivers/net - jeśli kompilowałeś jako moduł to powinieneś tu mieć moduł nazwa.ko

Kod: Zaznacz cały

$ dir
8139too.ko  wireless/
Czy to jest to o co mi chodzi? Czy to 8139too.ko mnie nie interesuje?
Dla ulatwienia powiem ze mam Slacka 10.2, kernel ktory usilnie kompiluje to 2.6.16.7, a lan mam standardowy w laptopie (Acer TravelMate 2400).
Pozdrawiam
ODPOWIEDZ