Radeon R9 Fury 그래픽 카드용 독점 드라이버를 설치하려고 합니다. 이 파일은 fglrx_15.302 등입니다.AMD 드라이버:
링크된 페이지의 지침을 사용하여 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.2 또는 2.3을 벗어난 2.19라는 것을 알 수 있습니다. 일반적으로 커널과 glibc를 계속 업데이트합니다. 그러나 이로 인해 커널이 상당히 롤백되고 (Google 검색에서) 소스에서 빌드하는 것 외에 14.04에 glibc 2.2를 설치하는 방법을 찾지 못했습니다.
내 질문은 다음과 같습니다. 바로 업데이트해야 합니까, 아니면 문제가 해결되지 않을 것 같습니까? 그렇다면 지금 어떻게 해야 합니까?
답변1
여기 있어요. 결국 AMD 웹사이트에서 이전 버전의 드라이버(15.2)를 다운로드하고 새로 설치했습니다. 컴파일러가 파일을 찾을 수 없다는 오류로 인해 실패합니다.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비트 빌드에 필요한지조차 모르겠습니다).
이제 다른 2개의 헤더를 이동할지 여부를 결정하고 없이도 작동하는지 확인하려고 합니다.ioctl32.h, 또는 패키지로 이동하여 #include 문을 올바른 위치로 변경합니다(이것은 올바른 접근 방식일 수 있지만 큰 고통이기도 합니다).