저는 최근에 RX480이 탑재된 PC를 구축하고 다음에 따라 오픈 소스 AMDGPU 드라이버 스택을 설치했습니다.이 가이드. 내가 완전히 따르지 않은 유일한 단계는 커널 컴파일이었습니다. 방금 데비안 실험 저장소에서 4.7.0rc7 커널을 다운로드했습니다.
출력 uname -a
:
Linux Eleanor 4.7.0-rc7-amd64 #1 SMP Debian 4.7~rc7-1~exp1 (2016-07-14) x86_64 GNU/Linux
그래픽 카드 초기화는 잘 되는 것 같은데...
출력 dmesg | grep amd
:
[ 0.000000] Linux version 4.7.0-rc7-amd64 ([email protected]) (gcc version 5.4.0 20160609 (Debian 5.4.0-6) ) #1 SMP Debian 4.7~rc7-1~exp1 (2016-07-14)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.7.0-rc7-amd64 root=UUID=3117fb8f-0774-4d8e-97aa-3b8e936eff78 ro quiet
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.7.0-rc7-amd64 root=UUID=3117fb8f-0774-4d8e-97aa-3b8e936eff78 ro quiet
[ 2.153126] usb usb1: Manufacturer: Linux 4.7.0-rc7-amd64 ehci_hcd
[ 2.165066] usb usb2: Manufacturer: Linux 4.7.0-rc7-amd64 ehci_hcd
[ 2.166215] usb usb3: Manufacturer: Linux 4.7.0-rc7-amd64 xhci-hcd
[ 2.169419] usb usb4: Manufacturer: Linux 4.7.0-rc7-amd64 xhci-hcd
[ 2.170615] usb usb5: Manufacturer: Linux 4.7.0-rc7-amd64 xhci-hcd
[ 2.173869] usb usb6: Manufacturer: Linux 4.7.0-rc7-amd64 xhci-hcd
[ 2.249402] usb usb7: Manufacturer: Linux 4.7.0-rc7-amd64 ohci_hcd
[ 2.309116] usb usb8: Manufacturer: Linux 4.7.0-rc7-amd64 ohci_hcd
[ 2.369146] usb usb9: Manufacturer: Linux 4.7.0-rc7-amd64 ohci_hcd
[ 3.586002] [drm] amdgpu kernel modesetting enabled.
[ 3.596360] amdgpu 0000:01:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
[ 3.597447] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_mc.bin
[ 3.597459] amdgpu 0000:01:00.0: VRAM: 8192M 0x0000000000000000 - 0x00000001FFFFFFFF (8192M used)
[ 3.597460] amdgpu 0000:01:00.0: GTT: 8192M 0x0000000200000000 - 0x00000003FFFFFFFF
[ 3.600719] [drm] amdgpu: 8192M of VRAM memory ready
[ 3.600720] [drm] amdgpu: 8192M of GTT memory ready.
[ 3.602047] amdgpu 0000:01:00.0: amdgpu: using MSI.
[ 3.602072] [drm] amdgpu: irq initialized.
[ 3.602267] amdgpu: powerplay initialized
[ 3.603145] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_pfp.bin
[ 3.603623] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_me.bin
[ 3.604144] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_ce.bin
[ 3.604371] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_rlc.bin
[ 3.605133] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_mec.bin
[ 3.605991] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_mec2.bin
[ 3.606549] amdgpu 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000200000008, cpu addr 0xffff8800b7e0f008
[ 3.606652] amdgpu 0000:01:00.0: fence driver on ring 1 use gpu addr 0x000000020000001c, cpu addr 0xffff8800b7e0f01c
[ 3.606681] amdgpu 0000:01:00.0: fence driver on ring 2 use gpu addr 0x0000000200000030, cpu addr 0xffff8800b7e0f030
[ 3.607618] amdgpu 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000200000044, cpu addr 0xffff8800b7e0f044
[ 3.607885] amdgpu 0000:01:00.0: fence driver on ring 4 use gpu addr 0x0000000200000058, cpu addr 0xffff8800b7e0f058
[ 3.607936] amdgpu 0000:01:00.0: fence driver on ring 5 use gpu addr 0x000000020000006c, cpu addr 0xffff8800b7e0f06c
[ 3.607959] amdgpu 0000:01:00.0: fence driver on ring 6 use gpu addr 0x0000000200000080, cpu addr 0xffff8800b7e0f080
[ 3.607981] amdgpu 0000:01:00.0: fence driver on ring 7 use gpu addr 0x0000000200000094, cpu addr 0xffff8800b7e0f094
[ 3.608003] amdgpu 0000:01:00.0: fence driver on ring 8 use gpu addr 0x00000002000000a8, cpu addr 0xffff8800b7e0f0a8
[ 3.608401] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_sdma.bin
[ 3.610223] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_sdma1.bin
[ 3.623985] amdgpu 0000:01:00.0: fence driver on ring 9 use gpu addr 0x00000002000000bc, cpu addr 0xffff8800b7e0f0bc
[ 3.624056] amdgpu 0000:01:00.0: fence driver on ring 10 use gpu addr 0x00000002000000d0, cpu addr 0xffff8800b7e0f0d0
[ 3.633260] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_uvd.bin
[ 3.647029] amdgpu 0000:01:00.0: fence driver on ring 11 use gpu addr 0x000000000109c420, cpu addr 0xffffc9000325a420
[ 3.648313] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_vce.bin
[ 3.653698] amdgpu 0000:01:00.0: fence driver on ring 12 use gpu addr 0x00000002000000f8, cpu addr 0xffff8800b7e0f0f8
[ 3.654283] amdgpu 0000:01:00.0: fence driver on ring 13 use gpu addr 0x000000020000010c, cpu addr 0xffff8800b7e0f10c
[ 3.725085] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_smc.bin
[ 4.358248] fbcon: amdgpudrmfb (fb0) is primary device
[ 4.767814] amdgpu 0000:01:00.0: fb0: amdgpudrmfb frame buffer device
[ 4.784116] [drm] Initialized amdgpu 3.2.0 20150101 for 0000:01:00.0 on minor 0
GDM3은 그래픽 오류 없이 성공적으로 시작되었지만 드라이버가 설치될 때까지 실행되지도 않았습니다. 하지만, 뒤쳐진다무섭게GNOME의 애니메이션이 비활성화되고 데스크탑 환경이 여전히 동전을 수집하려는 늙은 여자처럼 프레임을 떨어뜨리기 때문에 드라이버가 실제로 완전히 로드되지 않는다는 것은 매우 분명합니다. GNOME을 시작한 후 Xorg 로그 파일의 오류 메시지를 살펴보겠습니다.
출력 cat .local/share/xorg/Xorg.0.log | grep "(EE)"
:
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 216.095] (EE) Failed to load module "ati" (module does not exist, 0)
[ 216.096] (EE) Failed to load module "fbdev" (module does not exist, 0)
[ 216.096] (EE) Failed to load module "vesa" (module does not exist, 0)
[ 216.220] (EE) AMDGPU(0): glamor detected, failed to initialize EGL.
[ 216.952] (EE) AIGLX error: Calling driver entry point failed
[ 216.952] (EE) AIGLX: reverting to software rendering
소프트웨어 렌더러를 통해 실행했음에도 불구하고 실행은 여전히 많은 프레임을 출력 glxgears
하지만 문제는 거의 같습니다...
출력 LIBGL_DEBUG=verbose glxgears
:
pci id for fd 4: 1002:67df, driver (null)
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/radeonsi_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
pci id for fd 5: 1002:67df, driver (null)
libGL error: failed to create dri screen
libGL error: failed to load driver: radeonsi
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: Can't open configuration file /home/jessie/.drirc: No such file or directory.
libGL: Can't open configuration file /home/jessie/.drirc: No such file or directory.
5197 frames in 5.0 seconds = 1039.346 FPS
드라이버가 실제로 존재하는지 확인하기 위해 빠른 검사를 수행했으므로 /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
누락된 문제는 아니었습니다. glxinfo
출력을 어떻게 해야 할지 잘 모르겠지만 동일한 오류가 발생합니다.
출력 glxinfo | grep OpenGL
:
pci id for fd 4: 1002:67df, driver (null)
pci id for fd 5: 1002:67df, driver (null)
libGL error: failed to create dri screen
libGL error: failed to load driver: radeonsi
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.8, 128 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.2.2
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 11.2.2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.2.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
상황을 살펴보면 문제가 어디에 있는지 알 수 있습니다.가능한"AMDGPU(0): 매력이 감지되어 EGL을 초기화할 수 없습니다"와 관련됩니다. 이 오류 후에 드라이버를 직접 로드할 수 없기 때문에 X 서버를 시작할 때 생성되는 메시지입니다. 그러나 오류를 찾아보았지만 내 특정 상황과 관련된 내용을 찾을 수 없습니다. 드라이버 설치에 대한 설명서와 지침도 제공됩니다.믿을 수 없는존재하지 않는 것은 아니지만 드물다. 위의 가이드 중 데비안에서 작동하는 가이드는 하나만 찾을 수 있었습니다. 실험적인 드라이버를 실행하는 새로운 아키텍처를 기반으로 구축된 새로운 카드를 구입할 때 이것이 제가 요구하는 것 같습니다. 여기까지 오기 위해 10시간 동안 헤매다가 결국 막혔습니다. 다음에 어디로 가야할지, 아니면 문제의 원인이 무엇인지 아는 사람이 있습니까?
게다가 이 설치는 완전히 신선합니다. 시스템을 새로 설치한 후 즉시 드라이버를 구축하고 설치하는 것과 같습니다. 그 전에 제가 간섭을 일으킬 수 있었던 유일한 일은 AMD 웹사이트에서 독점 드라이버를 설치하려고 시도하는 것이었습니다. 나는 비참하게 실패했고 거의 작동하지 않았습니다. 아마도 패키지가 Ubuntu 시스템용이기 때문일 것입니다. 패키지 중 절반만 설치되었으며 전체 세트를 설치할 수 없어서 즉시 패키지를 모두 제거했습니다.
감사해요.
답변1
패키지에 누락된 AMD GPU 펌웨어가 포함되어 있습니다.펌웨어 AMD 그래픽 카드. 그러나 현재 Debian Sid에 포함된 버전은 꽤 오래된 버전(20160110-1)이며 아직 필요한 펌웨어가 포함되어 있지 않습니다. 업데이트를 기다리고 싶지 않다면 트렁크에서 직접 최신 버전을 가져와볼 수 있습니다.
http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/폴라리스10_mc.bin
파일을 다음 위치에 복사하세요./lib/펌웨어/amdgpu/.
설치하고 싶을 수도 있습니다.xserver-xorg-비디오-amdgpu일치를 위한 x-server 구성 요소입니다.