LFS: Difference between revisions

From cchtml.com
No edit summary
 
No edit summary
 
(33 intermediate revisions by 16 users not shown)
Line 2: Line 2:
== Getting 3D for your ATI Radeon card in LFS [http://www.linuxfromscratch.org/] ==
== Getting 3D for your ATI Radeon card in LFS [http://www.linuxfromscratch.org/] ==


Required
Used here
* Kernel with agp and DRM
* Kernel 2.6.15 (with agp and DRM configured)
* Fresh LFS install
* Fresh LFS install
* Xorg 6.8.2 (By BLFS)
* Xorg 6.8.2 (By BLFS)
* Driver (either proprietary fglrx or r300_dri)  
* Driver (proprietary fglrx 8.20.8)  


Probably not needed (and might even interfere!) Please verify and edit if possible.
Probably not needed (and might even interfere!) Please verify and edit if possible.
* Mesa-6.4.1 (leftovers after failed attempt at installing r300_dri)   
* Mesa-6.4.1 (leftovers after failed attempt at installing r300_dri)
   
----
----


After browsing ATI's homepage for drivers I decided to use the installer-package (version 8.20.8), as I didn't have any easy way to convert rpms into tarballs.
After browsing ATI's homepage for drivers I decided to use the installer-package, as I didn't have any easy way to convert rpms into tarballs.


If you decide to use the installer provided by ATI, make sure you don't have any libGL.so.* lying around in /usr/X11R6/lib before running the installer binary. It appears to rename installed files rather than overwriting old. Move any existing just to be safe:
If you decide to use the installer provided by ATI, make sure you don't have any libGL.so.* lying around in /usr/X11R6/lib before running the installer binary. It appears to rename installed files rather than overwriting old. Move any existing just to be safe:


<code>
<code>
mkdir /root/old_libGL
mkdir /root/old_libGL <br>
mv /usr/X11R6/lib/libGL.so* /root/old_libGL
mv /usr/X11R6/lib/libGL.so* /root/old_libGL
</code>
</code>
Line 24: Line 25:


After the installer exits you should have a directory /lib/modules/fglrx/build_mod
After the installer exits you should have a directory /lib/modules/fglrx/build_mod
with a script "make.sh" to re-build the fglrx driver. If the script complains about not being run from a real console, you could try to hack it a bit to go on anyway.
with a script "make.sh" to re-build the fglrx driver. Now for kernel 2.6.15 with fglrx 8.20.8 you'll need to apply a patch for avoiding errors of:
 
Bad page state at free_hot_cold_page
I pathched manually, since all you need to do is change line 2624 in firegl_public.c to
#if LINUX_VERSION_CODE >= 0x02060f
 
If the script complains about not being run from a real console, you could try to hack it a bit to go on anyway.


<code>
<code>
cd /lib/modules/fglrx/build_mod
cd /lib/modules/fglrx/build_mod <br>
vi make.sh
vi make.sh
</code>
</code>
Line 41: Line 48:
   fi
   fi


and delete the line with 'exit 1' to get past that annoyance.
and delete the line with 'exit 1' to get past that annoyance. Run it to build the modules. Then change to the parent directory and run "make_install.sh", hack as needed. This installs the kernel module and it's conterpart in /lib/X11R6/modules/
 
 
Finally, when all of this is done, you might need an old version of libstdc++
check it by typing:
 
[shell]$ ldd /usr/X11R6/lib/modules/dri/fglrx_dri.so
libm.so.6 => /lib/libm.so.6 (0x408a5000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x408c7000)
 
Since I had only version 6 on my system I also installed version 5 to make fglrx happy.
 
Alternatively, setting LIBGL_DEBUG might also reveal old libstdc++ dependencies.
 
run fglrxconfig, answer a lot of questions, start X and pray.
 
Good luck!
/Jeol
 
(...think I forgot somthing, hm.)


== Troubleshooting tips ==
Read the log, look for errors (EE)<br>
<code>
cat /var/log/Xorg.0.log | grep EE <br>
LIBGL_DEBUG=verbose glxinfo
</code>


-Had to quit, finish later
{{VCT}}
[[Category:Distributions]]

Latest revision as of 17:30, 22 January 2012

For all of you that like to do things the hard way:

Getting 3D for your ATI Radeon card in LFS [1]

Used here

  • Kernel 2.6.15 (with agp and DRM configured)
  • Fresh LFS install
  • Xorg 6.8.2 (By BLFS)
  • Driver (proprietary fglrx 8.20.8)

Probably not needed (and might even interfere!) Please verify and edit if possible.

  • Mesa-6.4.1 (leftovers after failed attempt at installing r300_dri)

After browsing ATI's homepage for drivers I decided to use the installer-package, as I didn't have any easy way to convert rpms into tarballs.

If you decide to use the installer provided by ATI, make sure you don't have any libGL.so.* lying around in /usr/X11R6/lib before running the installer binary. It appears to rename installed files rather than overwriting old. Move any existing just to be safe:

mkdir /root/old_libGL
mv /usr/X11R6/lib/libGL.so* /root/old_libGL

Run the installer, it does some checks and then opens a graphical point-and-clickety install window. Follow instructions and install the correct driver. Maybe it works now already? Never has for me, so I'll continue..

After the installer exits you should have a directory /lib/modules/fglrx/build_mod with a script "make.sh" to re-build the fglrx driver. Now for kernel 2.6.15 with fglrx 8.20.8 you'll need to apply a patch for avoiding errors of:

Bad page state at free_hot_cold_page I pathched manually, since all you need to do is change line 2624 in firegl_public.c to

  1. if LINUX_VERSION_CODE >= 0x02060f

If the script complains about not being run from a real console, you could try to hack it a bit to go on anyway.

cd /lib/modules/fglrx/build_mod
vi make.sh

search for:

if [ $? -ne 0 ];
 then
   echo "You arent running in a 'login shell'."
   echo "Please login directly from a console"
   echo "or use 'su -l' to get the same result."
   exit 1
 fi

and delete the line with 'exit 1' to get past that annoyance. Run it to build the modules. Then change to the parent directory and run "make_install.sh", hack as needed. This installs the kernel module and it's conterpart in /lib/X11R6/modules/


Finally, when all of this is done, you might need an old version of libstdc++ check it by typing:

[shell]$ ldd /usr/X11R6/lib/modules/dri/fglrx_dri.so
libm.so.6 => /lib/libm.so.6 (0x408a5000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x408c7000)

Since I had only version 6 on my system I also installed version 5 to make fglrx happy.

Alternatively, setting LIBGL_DEBUG might also reveal old libstdc++ dependencies.

run fglrxconfig, answer a lot of questions, start X and pray.

Good luck! /Jeol

(...think I forgot somthing, hm.)

Troubleshooting tips

Read the log, look for errors (EE)
cat /var/log/Xorg.0.log | grep EE
LIBGL_DEBUG=verbose glxinfo


Distribution Neutral Steps

Verifying | Configuring | Troubleshooting