[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