AMD Catalyst 15.302 Falha de compilação no Ubuntu Server 14.04.05

0

Estou tentando instalar os drivers proprietários para minha placa gráfica Radeon R9 Fury. Os arquivos são fglrx_15.302, etc., e estou obtendo-os de aqui nos drivers da AMD :

Estou instalando no Ubuntu Server 14.04.5 usando as instruções na página vinculada.

Depois de verificar se os pacotes ainda não estão instalados, tento compilá-los com (usando * para evitar digitar os nomes de arquivo muito longos):

sudo dpkg -i fglrx_15.302* fglrx-core_15.302* fglrx-dev_15.302* \
fglrx-amdcccle_15.302*

A saída da compilação contém esta linha:

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

O log mostra 2 erros no arquivo 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))

Portanto, a construção está falhando devido a erros nesse arquivo

Olhando as Notas de Lançamento na página vinculada, vejo que meu kernel (4.4) está fora do intervalo recomendado (2.6 a 3.19), e que minha versão do glibc é 2.19, que está fora do intervalo recomendado de 2.2 ou 2.3. Normalmente, eu continuaria atualizando o kernel e o glibc: no entanto, isso reverteria bastante o kernel, e (do Googling) eu não encontrei uma maneira de instalar o glibc 2.2 no 14.04 além de compilá-lo a partir do código-fonte. / p>

A minha pergunta é: devo morder a bala e atualizá-los de qualquer maneira, ou é improvável que isso resolva o problema (e em caso afirmativo, o que eu faço agora)?

    
por Nester 10.10.2016 / 19:16

1 resposta

0

OP aqui. Eu acabei baixando na versão antiga dos drivers (15.2) do site da AMD e fazendo uma instalação limpa. Ele falhou com um erro, que foi o de que o compilador não conseguiu encontrar o arquivo i387.h . No meu kernel, isso ocorre porque esse arquivo foi renomeado para api.h e movido para um diretório diferente pela equipe do Linux (obviamente desde que o pacote do driver foi criado). Eu encontrei aqui:

/usr/src/linux-headers-4.40-42-generic/arch/x86/include/asm/fpu/api.h

Primeiro, eu o renomei para i387.h e o movi para o diretório / asm , onde o pacote esperava. Isso corrigiu o erro, mas eu também recebi outros erros #include para mman.h , poll.h e ioctl32.h . Os dois primeiros arquivos também foram movidos desde a compilação do pacote, enquanto eu não consigo encontrar o ioctl32.h (e nem tenho certeza se preciso dele para uma compilação de 64 bits).

Neste momento, estou tentando decidir se movo os outros 2 cabeçalhos e ver se ele é compilado sem ioctl32.h , ou entro no pacote e altero as instruções #include para a correta locais (que é provavelmente o caminho certo para fazê-lo, mas também uma grande dor).

    
por 27.10.2016 / 12:53