OpenSolaris, OpenIndiana, Nexenta Troubleshooting > Hardware

Драйвер для ATI Radeon HD 5650

(1/2) > >>

keremet:
На ноут с такой видеокартой поставил 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.bz2
tar 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.bz2
tar 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-битном режимах.

sCode:
Все сделал как написано в статье:

--- Код: ---ls /usr/X11/lib/modules/
amd64  drivers extensions  multimedia NVIDIA
ls /usr/X11/lib/modules/drivers
amd64  ati_drv.so  nvidia_drv.so  radeon_drv.so
/usr/X11/lib/modules/multimedia
theatre_detect_drv.la  theatre_drv.la  theatre200_drv.la
theatre_detect_drv.so  theatre_drv.so  theatre200_drv.so
ls /usr/X11/lib/ | grep libdrm
libdrm.so.2
libdrm.so.2.4.0
ls /usr/lib | grep libdrm
libdrm.so.2
--- Конец кода ---

Но окна по прежнему отображаются "рывками".
Я понял что нужно сгенерировать xorg.conf, но как это сделать под OpenSolaris?

--- Код: ---/usr/X11/bin/Xorg -configure
--- Конец кода ---
Переименование и перенос полученного xorg.conf.new в /etc/X11 ничего не дает.

P.S.: Драйверов для ati и radeon в папке /usr/X11/lib/modules/drivers изначально не было вообще, папки /usr/X11/lib/modules/multimedia тоже.

keremet:
Скинь сюда вывод команды
pfexec scanpci

sCode:

--- Код: ---pci bus 0x0000 cardnum 0x00 function 0x00: vendor 0x1022 device 0x9601
 Advanced Micro Devices [AMD] RS780 Host Bridge Alternate

pci bus 0x0000 cardnum 0x01 function 0x00: vendor 0x1022 device 0x9602
 Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (int gfx)

pci bus 0x0000 cardnum 0x05 function 0x00: vendor 0x1022 device 0x9605
 Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 1)

pci bus 0x0000 cardnum 0x06 function 0x00: vendor 0x1022 device 0x9606
 Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 2)

pci bus 0x0000 cardnum 0x11 function 0x00: vendor 0x1002 device 0x4391
 ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode]

pci bus 0x0000 cardnum 0x12 function 0x00: vendor 0x1002 device 0x4397
 ATI Technologies Inc SB700/SB800 USB OHCI0 Controller

pci bus 0x0000 cardnum 0x12 function 0x02: vendor 0x1002 device 0x4396
 ATI Technologies Inc SB700/SB800 USB EHCI Controller

pci bus 0x0000 cardnum 0x13 function 0x00: vendor 0x1002 device 0x4397
 ATI Technologies Inc SB700/SB800 USB OHCI0 Controller

pci bus 0x0000 cardnum 0x13 function 0x02: vendor 0x1002 device 0x4396
 ATI Technologies Inc SB700/SB800 USB EHCI Controller

pci bus 0x0000 cardnum 0x14 function 0x00: vendor 0x1002 device 0x4385
 ATI Technologies Inc SBx00 SMBus Controller

pci bus 0x0000 cardnum 0x14 function 0x02: vendor 0x1002 device 0x4383
 ATI Technologies Inc SBx00 Azalia (Intel HDA)

pci bus 0x0000 cardnum 0x14 function 0x03: vendor 0x1002 device 0x439d
 ATI Technologies Inc SB700/SB800 LPC host controller

pci bus 0x0000 cardnum 0x14 function 0x04: vendor 0x1002 device 0x4384
 ATI Technologies Inc SBx00 PCI to PCI Bridge

pci bus 0x0000 cardnum 0x14 function 0x05: vendor 0x1002 device 0x4399
 ATI Technologies Inc SB700/SB800 USB OHCI2 Controller

pci bus 0x0000 cardnum 0x16 function 0x00: vendor 0x1002 device 0x4397
 ATI Technologies Inc SB700/SB800 USB OHCI0 Controller

pci bus 0x0000 cardnum 0x16 function 0x02: vendor 0x1002 device 0x4396
 ATI Technologies Inc SB700/SB800 USB EHCI Controller

pci bus 0x0000 cardnum 0x18 function 0x00: vendor 0x1022 device 0x1200
 Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] HyperTransport Configuration

pci bus 0x0000 cardnum 0x18 function 0x01: vendor 0x1022 device 0x1201
 Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Address Map

pci bus 0x0000 cardnum 0x18 function 0x02: vendor 0x1022 device 0x1202
 Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] DRAM Controller

pci bus 0x0000 cardnum 0x18 function 0x03: vendor 0x1022 device 0x1203
 Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Miscellaneous Control

pci bus 0x0000 cardnum 0x18 function 0x04: vendor 0x1022 device 0x1204
 Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Link Control

pci bus 0x0001 cardnum 0x05 function 0x00: vendor 0x1002 device 0x9712
 ATI Technologies Inc M880G [Mobility Radeon HD 4200]

pci bus 0x0002 cardnum 0x00 function 0x00: vendor 0x168c device 0x002b
 Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express)

pci bus 0x0003 cardnum 0x00 function 0x00: vendor 0x10ec device 0x8136
 Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller

--- Конец кода ---

keremet:
Судя по исходникам, видюха должна поддерживаться. Ее id на PCI в исходниках упомянуты (0x1002, 0x9712).

Покажи содержимое /etc/X11/xorg.conf

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии