“ошибка, в то время как загрузка совместно использовала библиотеки: libGL.so.1: неправильный класс ELF: ELFCLASS32” установка драйверов ATI

Я следовал инструкциям на разделе 3.2 из этой страницы.

Все подходило до шага 8, который должен использовать sudo amdconfig --initial для создания нового xorg.conf файла но я получаю следующую ошибку:

amdconfig: error while loading shared libraries: libGL.so.1: wrong ELF class: ELFCLASS32

Я пытался создать файл /etc/ld.so.conf.d/lib32.conf с /usr/lib32 внутри, как второй ответ, здесь предложенный, и, работал sudo ldconfig но ничто не изменилось.

Править: Установленный libgl1-mesa-glx:i386 и работал sudo ldconfig, и проблема, сохраненная даже после перезагрузки.

EDIT2: Начиная с шага семь из первой ссылки после перезагрузки моих верхних и боковых панелей единицы и также отсутствует тире, но я предполагаю, что это будет зафиксировано, когда я закончу установку драйверов.

EDIT3: Та же ошибка происходит с fglrxinfo и glxinfo команда (прежде чем следующий шаг 7 glx информации был нормален).

EDIT4: вывод lspci -v | grep -A10 VGA (завершите вывод),

00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
    Subsystem: Dell Device 0572
    Flags: bus master, fast devsel, latency 0, IRQ 45
    Memory at c1000000 (64-bit, non-prefetchable) [size=4M]
    Memory at b0000000 (64-bit, prefetchable) [size=256M]
    I/O ports at 4000 [size=64]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: <access denied>
    Kernel driver in use: i915
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Chelsea LP [Radeon HD 7730M] (prog-if 00 [VGA controller])
    Subsystem: Dell Device 0572
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at a0000000 (64-bit, prefetchable) [size=256M]
    Memory at c0000000 (64-bit, non-prefetchable) [size=256K]
    I/O ports at 3000 [size=256]
    Expansion ROM at c0040000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: fglrx_pci

Править: вывод dpkg -S libGL.so.1:

       libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
       libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
6
задан 13 April 2017 в 15:24

3 ответа

Обратите внимание:

Для Ubuntu 16.04 LTS и выше драйвер AMD Catalyst или fglrx больше не поддерживается AMD.

Если вы используете 16.04 LTS или выше, скорее всего, вы сами. Следующее предназначено только для случая, описанного в вопросе. Я не могу гарантировать, что это будет работать на более поздних версиях.

Проблема, которую мы решили прокомментировать, заключалась в том, что вы использовали 32-битные библиотеки в 64-битной системе.

неправильный класс ELF: ELFCLASS32

Окончание класса должно было составлять 64, что приводит к этой ошибке. Для этого нужно очистить 32-битные библиотеки, а затем переустановить 64-битные.

sudo apt-get purge libgl1-mesa-glx:i386
sudo apt-get --reinstall install libgl1-mesa-glx

И обновление нашего компоновщика GNU:

sudo ldconfig

Когда все будет в порядке, ldconfig -p | grep libGL.so.1 должно показать:

libGL.so.1 (libc6) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libGL.so.1 (libc6) => /usr/local/lib/libGL.so.1

Если вам когда-нибудь понадобятся 32-битные библиотеки для запуска 32-битных приложений вы можете сделать это, установив пакет libgl1-mesa-glx:i386. Но в этом случае не забудьте временно установить LD_LIBRARY_PATH в то место, где находятся 32-битные библиотеки, чтобы это не испортило ваши другие программы.

 export LD_LIBRARY_PATH="/path/to/library/"
 ./run_some_32_bit_program
0
ответ дан 13 April 2017 в 15:24

Вместо того, чтобы редактировать файл ld.so.conf непосредственно, создайте файл, названный local.conf в подкаталоге/etc/ld.so.conf.d содержащий просто строку/usr/local/lib. Таким образом,

Содержание/etc/ld.so.conf.d/local.conf:

/usr/lib64

Затем выполните команду ldconfig. (Это предполагает, что файл/etc/ld.so.conf содержит строку, включают/etc/ld.so.conf.d / *.conf.)

Только необходимо сделать это однажды.

0
ответ дан 13 April 2017 в 15:24

У меня внезапно возникла та же проблема после обновления ядра. Мне не удалось войти в графический интерфейс. Запустив команду «aticonfig», я получил эту ошибку и обнаружил ее также в Xorg.0.log. Я использую 64-битную систему Debian Jessie с 32-битными библиотеками для таких программ, как wine и skype. Удаление пакета «libgl1-mesa-glx: i386» также удалило скайп и wine32, но не решило проблему.

Я обнаружил, что установщик драйверов AMD создает неправильную ссылку на 32-битную библиотеку из-за неправильной интерпретации архитектуры системы, хотя он, очевидно, правильно распознал архитектуру в программе установщика.

Выполнение команды локализации для библиотеки может дать вам следующую информацию:

# find / -name libGL.so*
/usr/lib/i386-linux-gnu/libGL.so.1
/usr/lib/i386-linux-gnu/libGL.so
/usr/lib/i386-linux-gnu/libGL.so.1.2
/usr/lib/i386-linux-gnu/libGL.so.1.2.0
/usr/lib/libGL.so
/usr/lib/libGL.so.1.2
/usr/lib/libGL.so.1
/usr/lib64/libGL.so.1.2
/usr/lib64/libGL.so.1
/usr/lib64/libGL.so

Но вы обнаружите, что стандартные библиотеки системы в "/ usr / lib" ссылаются на версии библиотеки в "/ usr / lib / i386-linux-gnu /", что делает 32-битную версию библиотеки libGL.so.1 версией по умолчанию. Эта ссылка создана установщиком драйвера AMD из-за неправильного толкования структуры системы. Эта ошибка происходит из-за наличия в системе каталога "/ usr / lib64 /". В 64-битной системе нет папки «/ usr / lib64 /», поскольку все 64-битные версии библиотек находятся в «/ usr / lib /». Таким образом, Установщик ошибочно принимает Систему за 32-битную Систему и создает ссылку на 32-битную версию "libGL.so.1"

Как это можно исправить? - Сначала запустите деинсталлятор драйвера в "/ usr / share / ati"

# ls -lah /usr/share/ati
-rw-r--r--   1 root root 2,4K oct 19 20:51 fglrx-install.log
-rwxr--r--   1 root root  18K oct 19 20:51 fglrx-uninstall.sh

. Это удалит все неправильные ссылки.

Даже после этого шага я уже смог получить графический логин с предупреждением о том, что у него нет Пропускного Водителя.

  • Далее вы переименуете каталог «/ usr / lib64 /», чтобы отключить его.
    # cd /usr
    # ls -lah
    drwxr-xr-x 182 root root   40K oct 19 20:50 lib
    drwxr-xr-x   5 root root  4,0K oct 19 20:40 lib64
    # pwd
    /usr
    # mv lib64 lib64_2015-10-19
    # ls -lah
    drwxr-xr-x 182 root root   40K oct 19 20:50 lib
    drwxr-xr-x   5 root root  4,0K oct 19 20:40 lib64_2015-10-19
  • Затем вернитесь к установщику драйверов AMD и снова запустите его.

Теперь вы найдете правильную ссылку на 64-битную версию libGL.so.1.

# ls -lah /usr/lib/libGL.so.1.2
lrwxrwxrwx 1 root root 33 oct 19 20:50 /usr/lib/libGL.so.1.2 -> /usr/lib/fglrx/fglrx-libGL.so.1.2

Теперь вы можете снова получить графический логин в обычном режиме.

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: