[Pkg-fglrx-devel] Bug#537958: Bug#537958: Workaround

Patrick Matthäi pmatthaei at debian.org
Wed Jul 22 11:59:25 UTC 2009


Don Pellegrino schrieb:
> I found a number of issues while attempting to get fglrx packages for
> Catalyst 9.6 going on Debian/unstable amd64.  As a work-around I made
> some modifications to the installer distributed by AMD
> (http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx?type=2.4.1&product=2.4.1.3.36&lang=English).
> 
> Installation of the AMD packages requires pinning their versions
> in /etc/apt/preferences or module-assistant will try to upgrade them to
> the ones from Debian during installation.
> 
>         Package: fglrx-amdcccle
>         Pin: version 8.62-1
>         Pin-Priority: 1001
>         
>         Package: fglrx-driver
>         Pin: version 8.62-1
>         Pin-Priority: 1001
>         
>         Package: fglrx-driver-dev
>         Pin: version 8.62-1
>         Pin-Priority: 1001
>         
>         Package: fglrx-kernel-src
>         Pin: version 8.62-1
>         Pin-Priority: 1001
> 
> I also have libdrm2 pinned as per Bug 521323 but that bug has since been
> closed.  I have not tried to release this pin yet so I am including it
> just for completeness:
> 
>         # Debian Bug 521323.  Note that this bug has been marked closed
>         # as libdrm2 should work with ATI Catalyst 9.4.
>         Package: libdrm2
>         Pin: release a=testing
>         Pin-Priority: 1001
> 
> ATI's drivers are incompatible with 2.6.29 and above as far as I know so
> I pin the kernel back to 2.6.26.  This is documented over in ATI
> Bugzilla (http://ati.cchtml.com/show_bug.cgi?id=1440).
> 
>         # ATI Bug 1440.
>         Package: linux-image-2.6-amd64
>         Pin: version 2.6.26
>         Pin-Priority: 1001
> 
> The drivers also don't handle the latest X.Org X Server so I pin the
> core back to 1.4.  This is documented over in ATI Bugzilla
> (http://ati.cchtml.com/show_bug.cgi?id=1423).
> 
>         # ATI Bug 1423.
>         Package: xserver-xorg-core
>         Pin: version 2:1.4.2
>         Pin-Priority: 1001
> 
> As you found there is a dependency on ia32-libs.  This is tricky since
> this package is modified between stable and unstable to reflect a shift
> in how 32-bit libraries are handled in a 64-bit installation.  Therefore
> installing ia32-libs from unstable won't work.  Additionally the control
> center GUI wants the ia32-libs-gtk so I just pin that and I believe it
> has a dependency to include the older ia32-libs as well.  Sadly this
> holds back gcc which is very annoying.
> 
>         # I need this package for the Catalyst Control Center
>         Package: ia32-libs-gtk
>         Pin: version 2.7
>         Pin-Priority: 1001
> 
> So with the four fglrx pins in place the ATI Catalyst 9.6 can be
> installed.  With the libdrm2, linux-image-2.6-amd64, xserver-xorg-core
> and ia32-libs-gtk pins packages will downgrade to meet the dependencies
> of the driver.  I have not tested all the intermediate releases between
> these pins and unstable so you may be able to move some of them further
> upstream.  These work for me though.
> 
> With the pinning and downgrades complete there are a few patches to be
> done to the installer itself.  I bumped into the libfglrx_gamma.so.1
> issue documented at
> http://wiki.cchtml.com/index.php/Ubuntu_Hardy_Installation_Guide#Fix_for_an_error:  Adding the symlink as described got that fixed up.  I also applied the patch as per ATI Bug 1518 from Jayen Ashar.  I actually applied the patch to all of the dists under Debian, not just etch:
> 
> # diff -r driver driver-patched/
> Only in driver-patched/arch/x86_64/usr/X11R6/lib64: libfglrx_gamma.so.1
> diff -r driver/packages/Debian/dists/etch/fglrx-driver.postrm
> driver-patched/packages/Debian/dists/etch/fglrx-driver.postrm
> 47a48,60
>> # usage: undivert_libglx DIR
>> undivert_libglx ()
>> {
>> 	dpkg-divert --remove --package fglrx-driver \
>>         --divert "$1/fglrx/diversions/libglx.so" \
>>         --rename "$1/xorg/modules/extensions/libglx.so"
>>
>>     if [ -d "$1/fglrx/diversions" ]; then
>>         rmdir "$1/fglrx/diversions" || true
>>         rmdir "$1/fglrx"            || true
>>     fi
>> }
>>
> 106a120
>> 	undivert_libglx /usr/lib
> diff -r driver/packages/Debian/dists/etch/fglrx-driver.preinst
> driver-patched/packages/Debian/dists/etch/fglrx-driver.preinst
> 57a58,69
>> # usage: divert_libglx DIR
>> divert_libglx ()
>> {
>>     if [ ! -d "$1/fglrx/diversions" ]; then
>>         mkdir -p "$1/fglrx/diversions"
>>     fi
>>
>> 	dpkg-divert --add --package fglrx-driver \
>>         --divert "$1/fglrx/diversions/libglx.so" \
>>         --rename "$1/xorg/modules/extensions/libglx.so"
>> }
>>
> 86a99
>> 	divert_libglx /usr/lib
> diff -r driver/packages/Debian/dists/experimental/fglrx-driver.postrm
> driver-patched/packages/Debian/dists/experimental/fglrx-driver.postrm
> 47a48,60
>> # usage: undivert_libglx DIR
>> undivert_libglx ()
>> {
>> 	dpkg-divert --remove --package fglrx-driver \
>>         --divert "$1/fglrx/diversions/libglx.so" \
>>         --rename "$1/xorg/modules/extensions/libglx.so"
>>
>>     if [ -d "$1/fglrx/diversions" ]; then
>>         rmdir "$1/fglrx/diversions" || true
>>         rmdir "$1/fglrx"            || true
>>     fi
>> }
>>
> 106a120
>> 	undivert_libglx /usr/lib
> diff -r driver/packages/Debian/dists/experimental/fglrx-driver.preinst
> driver-patched/packages/Debian/dists/experimental/fglrx-driver.preinst
> 57a58,69
>> # usage: divert_libglx DIR
>> divert_libglx ()
>> {
>>     if [ ! -d "$1/fglrx/diversions" ]; then
>>         mkdir -p "$1/fglrx/diversions"
>>     fi
>>
>> 	dpkg-divert --add --package fglrx-driver \
>>         --divert "$1/fglrx/diversions/libglx.so" \
>>         --rename "$1/xorg/modules/extensions/libglx.so"
>> }
>>
> 86a99
>> 	divert_libglx /usr/lib
> diff -r driver/packages/Debian/dists/lenny/fglrx-driver.postrm
> driver-patched/packages/Debian/dists/lenny/fglrx-driver.postrm
> 47a48,60
>> # usage: undivert_libglx DIR
>> undivert_libglx ()
>> {
>> 	dpkg-divert --remove --package fglrx-driver \
>>         --divert "$1/fglrx/diversions/libglx.so" \
>>         --rename "$1/xorg/modules/extensions/libglx.so"
>>
>>     if [ -d "$1/fglrx/diversions" ]; then
>>         rmdir "$1/fglrx/diversions" || true
>>         rmdir "$1/fglrx"            || true
>>     fi
>> }
>>
> 106a120
>> 	undivert_libglx /usr/lib
> diff -r driver/packages/Debian/dists/lenny/fglrx-driver.preinst
> driver-patched/packages/Debian/dists/lenny/fglrx-driver.preinst
> 57a58,69
>> # usage: divert_libglx DIR
>> divert_libglx ()
>> {
>>     if [ ! -d "$1/fglrx/diversions" ]; then
>>         mkdir -p "$1/fglrx/diversions"
>>     fi
>>
>> 	dpkg-divert --add --package fglrx-driver \
>>         --divert "$1/fglrx/diversions/libglx.so" \
>>         --rename "$1/xorg/modules/extensions/libglx.so"
>> }
>>
> 86a99
>> 	divert_libglx /usr/lib
> diff -r driver/packages/Debian/dists/sid/fglrx-driver.postrm
> driver-patched/packages/Debian/dists/sid/fglrx-driver.postrm
> 47a48,60
>> # usage: undivert_libglx DIR
>> undivert_libglx ()
>> {
>> 	dpkg-divert --remove --package fglrx-driver \
>>         --divert "$1/fglrx/diversions/libglx.so" \
>>         --rename "$1/xorg/modules/extensions/libglx.so"
>>
>>     if [ -d "$1/fglrx/diversions" ]; then
>>         rmdir "$1/fglrx/diversions" || true
>>         rmdir "$1/fglrx"            || true
>>     fi
>> }
>>
> 106a120
>> 	undivert_libglx /usr/lib
> diff -r driver/packages/Debian/dists/sid/fglrx-driver.preinst
> driver-patched/packages/Debian/dists/sid/fglrx-driver.preinst
> 57a58,69
>> # usage: divert_libglx DIR
>> divert_libglx ()
>> {
>>     if [ ! -d "$1/fglrx/diversions" ]; then
>>         mkdir -p "$1/fglrx/diversions"
>>     fi
>>
>> 	dpkg-divert --add --package fglrx-driver \
>>         --divert "$1/fglrx/diversions/libglx.so" \
>>         --rename "$1/xorg/modules/extensions/libglx.so"
>> }
>>
> 86a99
>> 	divert_libglx /usr/lib
> 
> So while the Debian fglrx packages are preferable maybe something can be
> learned from this work-around.  Perhaps adding these dependencies to the
> Debian fglrx packages would help as would the patches to the code.
> Maybe the patches should be rolled into the git repository at
> http://www.phorogit.com/ but I don't know who to contact to get that
> done.

Are you interested in testing the newest svn trunk of fglrx-driver with 
debian sid?





More information about the Pkg-fglrx-devel mailing list