Я пытаюсь установить проприетарные драйверы для своего Radeon R9 Видеокарта Fury. Это файлы fglrx_15.302 и т. Д., И я получаю их из здесь, в AMD Drivers :
Я устанавливаю на Ubuntu Server 14.04.5, используя инструкции на связанной странице.
Убедившись, что пакеты еще не установлены, я пытаюсь собрать их с помощью (используя *, чтобы не вводить очень длинные имена файлов):
sudo dpkg -i fglrx_15.302* fglrx-core_15.302* fglrx-dev_15.302* \
fglrx-amdcccle_15.302*
Вывод сборки содержит следующую строку:
Error! Bad return status for module build on kernel: 4.4.0-38-generic (x86_64)
Consult /var/lib/dkms/fglrx-core/15.302/build/make.log for more information
В журнале показаны 2 ошибки в файл firegl_public.c :
error: void value not ignored as it ought to be
len=seq_printf(m, "%d\n", major);
error: 'XSTATE_FP' undeclared (first use in this function)
if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
Итак, сборка завершается неудачно из-за ошибок в этом файле
Глядя на примечания к выпуску на связанной странице, я вижу, что мое ядро (4.4) находится вне их рекомендуемый диапазон (от 2,6 до 3,19), и что моя версия glibc - 2,19, что выходит за пределы рекомендуемого диапазона 2,2 или 2,3. Обычно я продолжаю обновлять ядро и glibc: однако это довольно часто откатывает ядро, и (из Google) я не нашел другого способа установить glibc 2.2 в 14.04, кроме сборки его из исходников.
У меня вопрос: стоит ли мне все равно обновлять их, или это вряд ли решит проблему (и если да, то что мне теперь делать)?
OP здесь. В итоге я загрузил старую версию драйверов (15.2) с веб-сайта AMD и выполнил чистую установку. Произошла ошибка с одной ошибкой: компилятор не смог найти файл i387.h . В моем ядре это связано с тем, что этот файл был переименован в api.h и перемещен командой Linux в другой каталог (очевидно, поскольку пакет драйверов был собран). Я нашел его здесь:
/usr/src/linux-headers-4.40-42-generic/arch/x86/include/asm/fpu/api.h
Сначала я переименовал его в i387.h и переместил в каталог / asm , где его ожидал пакет. Это устранило ошибку, но я также получил другие ошибки #include для mman.h , poll.h и ioctl32.h . Первые два файла также были перемещены после сборки пакета, а я вообще не могу найти ioctl32.h (и даже не уверен, что он мне нужен для 64-битной сборки).
Прямо сейчас я пытаюсь решить, переместить ли два других заголовка и посмотреть, будет ли он построен без ioctl32.h , или зайти в пакет и изменить операторы #include на правильные места (что, вероятно, является правильным способом сделать это, но также является большой проблемой).