На ноут с такой видеокартой поставил OpenSolaris 2009.06. На момент выпуска дистриба такой видюхи еще не было и вместо специализированного драйвера (ati или radeonhd) загружается vesa. Разрешение экрана ноута не попадает в список стандартных расширений vesa, поэтому все отображается искаженно. Попробую скомпилировать свежий (17-Mar-2011) драйвер:
http://ftp.x.org/pub/individual/driver/xf86-video-ati-6.14.1.tar.bz2./configure
checking for DRI... configure: error: Package requirements (libdrm >= 2.2 xf86driproto) were not met:
No package 'libdrm' found
Как выяснилось, проблема в том, что версия имеющегося в репозитории libdrm ниже версии 2.2, значит надо компилировать.
скачать
http://dri.freedesktop.org/libdrm/libdrm-2.4.24.tar.bz2распаковать
./configure
make
pfexec make install
test -z "/usr/local/lib" || /usr/gnu/bin/mkdir -p "/usr/local/lib"
/bin/sh ./libtool --mode=install /usr/bin/ginstall -c libdrm.la '/usr/local/lib'
libtool: install: /usr/bin/ginstall -c .libs/libdrm.so.2.4.0 /usr/local/lib/libdrm.so.2.4.0
libtool: install: (cd /usr/local/lib && { ln -s -f libdrm.so.2.4.0 libdrm.so.2 || { rm -f libdrm.so.2 && ln -s libdrm.so.2.4.0 libdrm.so.2; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libdrm.so.2.4.0 libdrm.so || { rm -f libdrm.so && ln -s libdrm.so.2.4.0 libdrm.so; }; })
libtool: install: chmod +x /usr/local/lib/libdrm.so.2.4.0
libtool: install: /usr/bin/ginstall -c .libs/libdrm.lai /usr/local/lib/libdrm.la
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib
----------------------------------------------------------------------
test -z "/usr/local/include" || /usr/gnu/bin/mkdir -p "/usr/local/include"
/usr/bin/ginstall -c -m 644 xf86drm.h xf86drmMode.h '/usr/local/include'
test -z "/usr/local/lib/pkgconfig" || /usr/gnu/bin/mkdir -p "/usr/local/lib/pkgconfig"
/usr/bin/ginstall -c -m 644 libdrm.pc '/usr/local/lib/pkgconfig'
test -z "/usr/local/lib" || /usr/gnu/bin/mkdir -p "/usr/local/lib"
/bin/sh ../libtool --mode=install /usr/bin/ginstall -c libdrm_intel.la '/usr/local/lib'
libtool: install: warning: relinking `libdrm_intel.la'
libtool: install: (cd /export/home/keremet/compilation/libdrm-2.4.24/intel; /bin/sh /export/home/keremet/compilation/libdrm-2.4.24/libtool --silent --tag CC --mode=relink gcc -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wdeclaration-after-statement -Wold-style-definition -Wno-unused-parameter -Wno-long-long -Winline -I.. -I../intel -I../include/drm -g -O2 -version-number 1:0:0 -no-undefined -o libdrm_intel.la -rpath /usr/local/lib intel_bufmgr.lo intel_bufmgr_fake.lo intel_bufmgr_gem.lo mm.lo ../libdrm.la )
libtool: install: /usr/bin/ginstall -c .libs/libdrm_intel.so.1.0.0T /usr/local/lib/libdrm_intel.so.1.0.0
libtool: install: (cd /usr/local/lib && { ln -s -f libdrm_intel.so.1.0.0 libdrm_intel.so.1 || { rm -f libdrm_intel.so.1 && ln -s libdrm_intel.so.1.0.0 libdrm_intel.so.1; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libdrm_intel.so.1.0.0 libdrm_intel.so || { rm -f libdrm_intel.so && ln -s libdrm_intel.so.1.0.0 libdrm_intel.so; }; })
libtool: install: chmod +x /usr/local/lib/libdrm_intel.so.1.0.0
libtool: install: /usr/bin/ginstall -c .libs/libdrm_intel.lai /usr/local/lib/libdrm_intel.la
test -z "/usr/local/include/libdrm" || /usr/gnu/bin/mkdir -p "/usr/local/include/libdrm"
/usr/bin/ginstall -c -m 644 intel_bufmgr.h '/usr/local/include/libdrm'
test -z "/usr/local/lib/pkgconfig" || /usr/gnu/bin/mkdir -p "/usr/local/lib/pkgconfig"
/usr/bin/ginstall -c -m 644 libdrm_intel.pc '/usr/local/lib/pkgconfig'
/bin/sh ../libtool --mode=install /usr/bin/ginstall -c libdrm_radeon.la '/usr/local/lib'
libtool: install: warning: relinking `libdrm_radeon.la'
libtool: install: (cd /export/home/keremet/compilation/libdrm-2.4.24/radeon; /bin/sh /export/home/keremet/compilation/libdrm-2.4.24/libtool --silent --tag CC --mode=relink gcc -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wdeclaration-after-statement -Wold-style-definition -Wno-unused-parameter -Wno-long-long -Winline -I.. -I../radeon -I../include/drm -g -O2 -version-number 1:0:0 -no-undefined -o libdrm_radeon.la -rpath /usr/local/lib radeon_bo_gem.lo radeon_cs_gem.lo radeon_cs_space.lo radeon_bo.lo radeon_cs.lo bof.lo ../libdrm.la )
libtool: install: /usr/bin/ginstall -c .libs/libdrm_radeon.so.1.0.0T /usr/local/lib/libdrm_radeon.so.1.0.0
libtool: install: (cd /usr/local/lib && { ln -s -f libdrm_radeon.so.1.0.0 libdrm_radeon.so.1 || { rm -f libdrm_radeon.so.1 && ln -s libdrm_radeon.so.1.0.0 libdrm_radeon.so.1; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libdrm_radeon.so.1.0.0 libdrm_radeon.so || { rm -f libdrm_radeon.so && ln -s libdrm_radeon.so.1.0.0 libdrm_radeon.so; }; })
libtool: install: chmod +x /usr/local/lib/libdrm_radeon.so.1.0.0
libtool: install: /usr/bin/ginstall -c .libs/libdrm_radeon.lai /usr/local/lib/libdrm_radeon.la
test -z "/usr/local/include/libdrm" || /usr/gnu/bin/mkdir -p "/usr/local/include/libdrm"
/usr/bin/ginstall -c -m 644 radeon_bo.h radeon_cs.h radeon_bo_gem.h radeon_cs_gem.h radeon_bo_int.h radeon_cs_int.h '/usr/local/include/libdrm'
test -z "/usr/local/lib/pkgconfig" || /usr/gnu/bin/mkdir -p "/usr/local/lib/pkgconfig"
/usr/bin/ginstall -c -m 644 libdrm_radeon.pc '/usr/local/lib/pkgconfig'
test -z "/usr/local/include/libdrm" || /usr/gnu/bin/mkdir -p "/usr/local/include/libdrm"
/usr/bin/ginstall -c -m 644 drm.h drm_mode.h drm_sarea.h i915_drm.h mga_drm.h nouveau_drm.h r128_drm.h radeon_drm.h savage_drm.h sis_drm.h via_drm.h mach64_drm.h '/usr/local/include/libdrm'
PKG_CONFIG_PATH Задается, чтобы указать на скомпилированную версию libdrm.
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ ./configure
make
pfexec make install
Making install in src
test -z "/usr/local/lib/xorg/modules/drivers" || /usr/gnu/bin/mkdir -p "/usr/local/lib/xorg/modules/drivers"
/bin/sh ../libtool --mode=install /usr/bin/ginstall -c ati_drv.la '/usr/local/lib/xorg/modules/drivers'
libtool: install: /usr/bin/ginstall -c .libs/ati_drv.so /usr/local/lib/xorg/modules/drivers/ati_drv.so
libtool: install: chmod +x /usr/local/lib/xorg/modules/drivers/ati_drv.so
libtool: install: /usr/bin/ginstall -c .libs/ati_drv.lai /usr/local/lib/xorg/modules/drivers/ati_drv.la
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib/xorg/modules/drivers
----------------------------------------------------------------------
test -z "/usr/local/lib/xorg/modules/drivers" || /usr/gnu/bin/mkdir -p "/usr/local/lib/xorg/modules/drivers"
/bin/sh ../libtool --mode=install /usr/bin/ginstall -c radeon_drv.la '/usr/local/lib/xorg/modules/drivers'
libtool: install: /usr/bin/ginstall -c .libs/radeon_drv.so /usr/local/lib/xorg/modules/drivers/radeon_drv.so
libtool: install: chmod +x /usr/local/lib/xorg/modules/drivers/radeon_drv.so
libtool: install: /usr/bin/ginstall -c .libs/radeon_drv.lai /usr/local/lib/xorg/modules/drivers/radeon_drv.la
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib/xorg/modules/drivers
----------------------------------------------------------------------
test -z "/usr/local/lib/xorg/modules/multimedia" || /usr/gnu/bin/mkdir -p "/usr/local/lib/xorg/modules/multimedia"
/bin/sh ../libtool --mode=install /usr/bin/ginstall -c theatre200_drv.la '/usr/local/lib/xorg/modules/multimedia'
libtool: install: /usr/bin/ginstall -c .libs/theatre200_drv.so /usr/local/lib/xorg/modules/multimedia/theatre200_drv.so
libtool: install: chmod +x /usr/local/lib/xorg/modules/multimedia/theatre200_drv.so
libtool: install: /usr/bin/ginstall -c .libs/theatre200_drv.lai /usr/local/lib/xorg/modules/multimedia/theatre200_drv.la
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib/xorg/modules/multimedia
----------------------------------------------------------------------
test -z "/usr/local/lib/xorg/modules/multimedia" || /usr/gnu/bin/mkdir -p "/usr/local/lib/xorg/modules/multimedia"
/bin/sh ../libtool --mode=install /usr/bin/ginstall -c theatre_detect_drv.la '/usr/local/lib/xorg/modules/multimedia'
libtool: install: /usr/bin/ginstall -c .libs/theatre_detect_drv.so /usr/local/lib/xorg/modules/multimedia/theatre_detect_drv.so
libtool: install: chmod +x /usr/local/lib/xorg/modules/multimedia/theatre_detect_drv.so
libtool: install: /usr/bin/ginstall -c .libs/theatre_detect_drv.lai /usr/local/lib/xorg/modules/multimedia/theatre_detect_drv.la
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib/xorg/modules/multimedia
----------------------------------------------------------------------
test -z "/usr/local/lib/xorg/modules/multimedia" || /usr/gnu/bin/mkdir -p "/usr/local/lib/xorg/modules/multimedia"
/bin/sh ../libtool --mode=install /usr/bin/ginstall -c theatre_drv.la '/usr/local/lib/xorg/modules/multimedia'
libtool: install: /usr/bin/ginstall -c .libs/theatre_drv.so /usr/local/lib/xorg/modules/multimedia/theatre_drv.so
libtool: install: chmod +x /usr/local/lib/xorg/modules/multimedia/theatre_drv.so
libtool: install: /usr/bin/ginstall -c .libs/theatre_drv.lai /usr/local/lib/xorg/modules/multimedia/theatre_drv.la
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib/xorg/modules/multimedia
----------------------------------------------------------------------
test -z "/usr/local/share/man/man7" || /usr/gnu/bin/mkdir -p "/usr/local/share/man/man7"
/usr/bin/ginstall -c -m 644 ati.7 radeon.7 '/usr/local/share/man/man7'
Получились 32-битные драйвера в каталоге /usr/local/lib/xorg
./modules/drivers/radeon_drv.so
./modules/drivers/ati_drv.so
./modules/multimedia/theatre_detect_drv.so
./modules/multimedia/theatre_drv.so
./modules/multimedia/theatre200_drv.so
Заменил ими имеющиеся в /usr/X11/lib/modules/ файлы с теми же именами. radeon_drv.so зависит от libdrm.so.2. Разместил libdrm.so.2.4.0 в /usr/X11/lib/ и сделал на нее ссылку libdrm.so.2 из /usr/lib
При запуске с 32-битным ядром они работают хорошо, по крайней мере проблема с разрешением решена. Для полного решения вопроса надо скомпилить 64-битные версии (оптимизированные и без отладочной информации):
wget
http://dri.freedesktop.org/libdrm/libdrm-2.4.24.tar.bz2tar xf libdrm-2.4.24.tar.bz2
cd libdrm-2.4.24
CFLAGS="-m64 -O3" ./configure --prefix=/data/solaris/compilation/atiout
make
make install
wget
http://ftp.x.org/pub/individual/driver/xf86-video-ati-6.14.1.tar.bz2tar xf xf86-video-ati-6.14.1.tar.bz2
cd xf86-video-ati-6.14.1
PKG_CONFIG_PATH=/data/solaris/compilation/atiout/lib/pkgconfig/ CFLAGS="-m64 -O3" ./configure --prefix=/data/solaris/compilation/atiout
make
make install
Полученные so разместил аналогично прежним, но в подкаталогах amd64. Разрешение на ноуте установилось адекватное как в 32-ом, так и в 64-битном режимах.