пʼятниця, 14 листопада 2008 р.

Драйвери AMD/ATI 8.552

Так вже повелося, що AMD щомісяця в районі 15-го числа випускає нові драйвери. Не став винятком і листопад, а тому 14-го числа, себто сьогодні, було анонсовано про випуск нової версії.

Що ж нас чекає в новій версії:

  1. перша і дуже бажана річ - підтримка X.org версії 7.4 (для тих, в кого вони є, але хто не має Убунти).
  2. друга річ - це підтримка ядер серії 2.6.27 (у попередній версії вони не підтримувалися, хоча згідно документації все повинно було працювати).
Одразу ж кидається у вічі - великий розмір пакунку ~72 мегабайти, а з таким зростанням починає зростати надія на безболісне встановлення. Окрім того, повідомлення про реліз поширюється у форматі pdf (до того був звичайний html).

Власне, причина, яка мене надихнула на перевірку пакунку є саме ядро 2.6.27, яке бачить мою бездротову картку від Atheros 6007 і бажання перевірити чи справді все так гладко.

Тому починаємо тестування із завантаження пакунку та створення на його основі пакетів для Debian.

З під адміністратора запускаємо генерацію пакунків для Дебіан:


# ./ati-driver-installer-8-11-x86.x86_64.run --buildpkg Debian/testing

та отримуємо перший глевкий шматок:

dpkg-shlibdeps: failure: couldn't find library libfglrx_gamma.so.1 needed by debian/fglrx-driver/usr/bin/fglrx_xgamma (its RPATH is '').

Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file.

To help dpkg-shlibdeps find private libraries, you might need to set LD_LIBRARY_PATH.

dh_shlibdeps: command returned error code 512

Однак справжні лінуксоїди (вб'ю того, хто надумав обзивати їх гіками (англ. "придурки")) так просто не здаються ;) Тому розпаковуємо архів до теки ati_deb

# ./ati-driver-installer-8-11-x86.x86_64.run --extract ati_deb

Після цього, скориставшись порадою, переходимо до теки ati_deb/arch/x86/usr/X11R6/lib та копіюємо файл, змінюючи йому назву (кажуть можна створити символьне посилання, але то вже на любителя):

# cp libfglrx_gamma.so.1.0 libfglrx_gamma.so.1

Аналогічно робимо для 64-х розрядних бібліотек:

# cd ../../../../x86_64/usr/X11R6/lib64/

# cp libfglrx_gamma.so.1.0 libfglrx_gamma.so.1

Повертаємося до "кореневої" теки

# cd ../../../../../

і тут нас чекає найцікавіше. Скрипт ati-installer.sh не хоче запускатися, тобто він запускається, але не знає навіщо:

# ./ati-installer.sh --buildpkg Debian/lenny

==================================================

ATI Technologies Linux Driver Installer/Packager

==================================================

Unrecognized parameter 'Debian/lenny' to ati-installer.sh

Проблема в тому, що для розуміння наших бажань він готовий зробити все, що ми вкажемо в третьому параметрі (першим вважається файл ati-installer.sh). Тобто третім параметром має бути --buildpkg Debian/lenny, а другим, що забажаєте. Я запропонував вивести довідку по роботі з встановлювачем, і він мене зрозумів ;) :

# ./ati-installer.sh --help --buildpkg Debian/lenny

==================================================

ATI Technologies Linux Driver Installer/Packager

==================================================

Generating package: Debian/lenny

Package /home/distr/Drivers/ati/fglrx-driver_8.552-1_amd64.deb has been successfully generated

Package /home/distr/Drivers/ati/fglrx-driver-dev_8.552-1_amd64.deb has been successfully generated

Package /home/distr/Drivers/ati/fglrx-kernel-src_8.552-1_amd64.deb has been successfully generated

Package /home/distr/Drivers/ati/fglrx-amdcccle_8.552-1_amd64.deb has been successfully generated

Тепер встановлюємо пакунки:

# cd../; dpkg -i *.deb

завантажуємо асистента модулів (module-assistant, m-a) та встановлюємо необхідний модуль.

Перевіряємо доступність модуля:

# modprobe fglrx

fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
[fglrx] Maximum main memory to use for locked dma buffers: 3556 MBytes.
[fglrx] vendor: 1002 device: 9612 count: 1
[fglrx] ioport: bar 1, base 0x5000, size: 0x100
pci 0000:01:05.0: power state changed by ACPI to D0
pci 0000:01:05.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
pci 0000:01:05.0: setting latency timer to 64
[fglrx] PAT is enabled successfully!
[fglrx] module loaded - fglrx 8.55.2 [Oct 28 2008] with 1 minors

Прописуємо модуль для встановлення:

# cat >> /etc/modules

fglrx

та вносимо зміни до налаштувань X сервера, з врахуванням можливості підключення другого монітору:

# aticonfig --initial=dual-head --screen-layout=above

Перезавантажуємось та насолоджуємось новим виглядом.

Згідно даних fgl_glxgears маємо наступну швидкодію:

$ fgl_glxgears
Using GLX_SGIX_pbuffer
2530 frames in 5.0 seconds = 506.000 FPS
2715 frames in 5.0 seconds = 543.000 FPS
2699 frames in 5.0 seconds = 539.800 FPS
3471 frames in 5.0 seconds = 694.200 FPS


У TuxRacer у повноекранному режимі (1280х800) з максимальними налаштуваннями маємо 68-73 кадри/сек.

Висновок: Незважаючи на невеличкі костилі, працює дуже добре. Наразі нарікань (за перші 5 хвилин запуску) немає.

2 коментарі:

belevtsoff сказав...

Ubuntu 8.10, ядро 2,6,27
При спробі підключити модуль, видає таку помилку:
"FATAL: Error inserting fglrx (/lib/modules/2.6.27-7-generic/updates/dkms/fglrx.ko): Unknown symbol in module, or unknown parameter (see dmesg)"

Wanderlust сказав...

Даруйте за пізню відповідь.
Гадаю, що проблема з тим, де взято модулі ядра. Уточніть, і тоді допоможу, чим зможу.