Як виправити драйвер ATI fglrx після оновлення ядра


1

Я перейшов на 12.04.4-літровий стек з 12.04.3:

sudo apt-get install --install-recommends linux-generic-lts-saucy xserver-xorg-lts-saucy libgl1-mesa-glx-lts-saucy

Це встановило ядро ​​3.11, щоб перейти з 3,8, який я мав раніше. Однак під час входу в систему я бачу, що я перебуваю в резервному режимі, і fglrx ніде не видно, з Xorg.0.log:

Loading extension GLX
FATAL: Module fglrx not found.
(WW) fglrx: No matching Device section for instance (BusID PCI:0@0:1:1) found
FATAL: Module fglrx not found.
Loading extension FGLRXEXTENSION

Я не можу завантажити його безпосередньо:

 > sudo modprobe fglrx
FATAL: Module fglrx not found.

Якщо я завантажуюся зі старим ядром 3.8, то все є оленячим. Проблем взагалі немає.

Я думаю, це може бути якась проблема dkms. У / lib / модулі у мене є:

drwxr-xr-x 4 root root 4096 Feb 10 20:43 3.8.0-35-generic
drwxr-xr-x 4 root root 4096 Feb 24 20:36 3.11.0-17-generic

Однак:

 > ls -l /var/lib/dkms/fglrx/13.251/
total 8
drwxr-xr-x 3 root root 4096 Feb  5 22:05 3.8.0-35-generic
drwxr-xr-x 4 root root 4096 Feb 24 20:36 build
lrwxrwxrwx 1 root root   21 Dec 27 17:06 source -> /usr/src/fglrx-13.251

Чи не повинно бути там ядра 3.11? Як оновити dkms, щоб побачити щойно встановлене ядро? Або це не проблема?


Я виявив , що команда DKMS , яка є недолік: sudo dkms install -m fglrx -v 13.251 -k 3.11.0-17-generic. Помилка така ж, як і в цьому запитанні: askubuntu.com/questions/428382/…
fig

Помилка:Error! Bad return status for module build on kernel: 3.11.0-17-generic (i686) Consult /var/lib/dkms/fglrx/13.251/build/make.log for more information.
фіг

Відповіді:


2

Зрозумів! :-)

sudo gedit /usr/src/fglrx-13.251/kcl_acpi.c

Видаліть ці три останні рядки з файлу:

     ((acpi_table_handler)handler)(hdr);
     return KCL_ACPI_OK;
}

замініть їх на:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,1)
    ((acpi_tbl_table_handler)handler)(hdr);
#else
    ((acpi_table_handler)handler)(hdr);
#endif
    return KCL_ACPI_OK;
}

Потім запустіть:

sudo dkms install -m fglrx -v 13.251 -k 3.11.0-17-generic

Потім перезавантажте. Для мене працювали - зараз працюю ядро ​​3.11 та fglrx!

(Я працював із цієї сторінки: https://gist.github.com/moldcraft/8116528 )


1

Не можу коментувати; Отже, ось "відповідь" - річ ...

Оновлення ядра перестало регенерувати модулі fglrx 12.04 деякий час тому (> 1 рік). Після перезавантаження (для активації нового ядра) lightdm дозволить вам увійти в систему, але потім ви швидко отримаєте помилку, пов’язану з розміром вашого віртуального екрана, і повернеться на екран входу. Первинний монітор має дуже низьку роздільну здатність. Вторинний монітор показує чорний колір.

Моїм рішенням було очищення fglrx та повторна інсталяція пакунків fglrx.

  • Ctrl + Alt + F1
  • Увійти.
  • dpkg -l | grep fglrx
  • sudo apt-get purge <packages output from previous command>
  • cd /path/to/generated/fglrx*.deb
  • sudo dpkg -i fglrx*.deb

Це "рішення" вимагає повторювати його щоразу, коли ви встановлюєте нове ядро, яке висмоктується.

@fig Чи потрібно повторно редагувати 'kcl_acpi.c' кожного разу, коли з’являється нове ядро? Кожен раз, коли з’являється новий fglrx?


Я вважаю, що новіші версії fglrx відмовляються від встановлення 12.04 через різні несумісності. Я повернувся до "альтернативних апаратних" драйверів fglrx, доступних для установки зсередини дистрибутива, оскільки вони насправді новіші, ніж найновіший AMD fglrx, який все ще успішно встановлюється ...
мал

0

мене теж врятувало. Помилка я отримав і лише знайшов помилкові відповіді на askubuntu.com

Проблема:

   tilo@t-ubuntu:~$ fglrxinfo
  X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  155 (ATIFGLEXTENSION)
  Minor opcode of failed request:  66 ()
  Serial number of failed request:  13
  Current serial number in output stream:  13

Використовуючи ваш опис, я отримав 12.04.4 з 3,11 пікантністю .

Після редагування кінця файлу 'kcl_acpi.c' я побіг

sudo dkms install -m fglrx -v 13.251 -k 3.11.0-19-generic 

Висновок як реф

tilo@t-ubuntu:~$ sudo dkms install -m fglrx -v 13.251 -k 3.11.0-19-generic 

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....
cd /var/lib/dkms/fglrx/13.251/build; sh make.sh --nohints --uname_r=3.11.0-19-generic --norootcheck.....
cleaning build area....

DKMS: build completed.

fglrx.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.11.0-19-generic/updates/dkms/

depmod.....

DKMS: install completed.
tilo@t-ubuntu:~$ 

Тепер fglrxinfo

tilo@t-ubuntu:~$ fglrxinfo
display: :0  screen: 0
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: ATI Mobility Radeon HD 5800 Series
OpenGL version string: 4.3.12618 Compatibility Profile Context 13.251

btw перед "Профілем сумісності контексту 9.012", але я також намагався перевстановити з веб-сайту ATI.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.