Intel 통합 그래픽과 별도의 AMD 그래픽이 있는 노트북에 Fedora 19를 설치했습니다. 저는 이 드라이버를 사용해 왔으며 radeon
대부분의 경우 잘 작동합니다. 최근에 드라이버를 사용해 본 결과 fglrx
더 빠르고 전원 관리도 더 나은 것으로 나타났지만 일부 OpenGL 기반 프로그램은 올바르게 실행되지 않습니다.
fglrx
그러면 시작 시 드라이버가 로드되지 않도록 어떻게 비활성화할 수 있습니까 ?radeon
그래서 운전자에게 돌아갑니다.?
파일을 편집해서 /etc/modprobe.d/blacklist-fglrx.conf
하려고 했는데
# Advanced Micro Devices, Inc.
# radeon conflicts with AMD Linux Graphics Driver
blacklist radeon
해당 줄을 주석 처리 blacklist radeon
하고 "blacklist fglrx_pci"를 추가합니다.
- 항목 목록
'그 밑에. 이로 인해 GUI 로그인 화면이 로드되지 않으므로 TTY로 전환하고 원래 상태로 다시 편집해야 합니다.
lspci -k
fglrx
설치(유일한 차이점은설치되지 않음은 Subsystem: Lenovo Radeon HD 6370M/7370M
표시 되지 않고 radeon
AMD 드라이버로 사용됩니다* - 블랙리스트에 등록된 경우나는 유일한 변화는 radeon
사용하는 것이라고 생각합니다):
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
Subsystem: Lenovo Device 3975
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
Kernel driver in use: pcieport
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
Subsystem: Lenovo Device 397a
Kernel driver in use: i915
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
Subsystem: Lenovo Device 3975
Kernel driver in use: mei
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: ehci-pci
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
Kernel driver in use: pcieport
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5)
Kernel driver in use: pcieport
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: ehci-pci
00:1f.0 ISA bridge: Intel Corporation HM65 Express Chipset Family LPC Controller (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: lpc_ich
00:1f.2 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family 4 port SATA IDE Controller (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: ata_piix
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
Subsystem: Lenovo Device 3975
00:1f.5 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family 2 port SATA IDE Controller (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: ata_piix
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Robson CE [Radeon HD 6370M/7370M]
Subsystem: Lenovo Radeon HD 6370M/7370M
Kernel driver in use: fglrx_pci
07:00.0 Ethernet controller: Qualcomm Atheros AR8152 v2.0 Fast Ethernet (rev c1)
Subsystem: Lenovo Device 3979
Kernel driver in use: atl1c
08:00.0 Network controller: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter (rev 01)
Subsystem: Broadcom Corporation Device 051b
Kernel driver in use: bcma-pci-bridge
여기설치자가 만든 RPM입니다.(설치 프로그램은 openSUSE 또는 RedHat용 직접 설치 또는 빌드 패키지를 제공합니다. 저는 최신 RedHat 64a 옵션을 사용했습니다.), 그리고여기에서 추출한 RPM 설치/제거 스크립트입니다.
시스템 시작 시 제거 모듈을 사용해 보았는데 modprobe
작동하지 않아 modprobe: FATAL: Module fglrx is in use
.
블랙리스트 드라이버(그리고 제거 /etc/X11/xorg.conf
- 설치 후에 하나를 만들어야 합니다 fglrx
.이것) 및 페도라어쨌든 필요하지 않음)radeon 드라이버를 사용하여 작동합니다. 여기서 문제는 많은 응용 프로그램이 작동하지 않는다는 것이며 Gnome Shell 및 GDM은 다음을 보여줍니다.
그러나 드라이버를 제거하고 재부팅하면 항상 작동합니다.
예를 들어 다음 블랙리스트를 적용하십시오 /etc/modprobe.d/blacklist-fglrx.conf
.
# Advanced Micro Devices, Inc.
# radeon conflicts with AMD Linux Graphics Driver
#blacklist radeon
blacklist fglrx
blacklist amd_iommu_v2
blacklist fglrx_pci
xorg.conf
위의 GDM 잘못된 결과를 제거합니다 . 그런 다음 TTY로 전환하고 systemctl
GDM에서 LightDM으로 전환하고 Xfce에 로그인하는 데 사용할 수 있습니다 (잘 작동하는 것 같습니다). 이와 같은 애플리케이션은 cairo-dock
분할 오류로 인해 실패할 수 있습니다. glxinfo
다음을 제공합니다:
name of display: :0.0
X Error of failed request: BadRequest (invalid request code or no such operation)
Major opcode of failed request: 153 (GLX)
Minor opcode of failed request: 19 (X_GLXQueryServerString)
Serial number of failed request: 12
Current serial number in output stream: 12
systemctl
충돌이 발생하더라도 GDM 상태(LightDM + Xfce로 전환하기 전)를 표시합니다.
gdm.service - GNOME Display Manager
Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled)
Active: active (running) since Mon 2014-11-10 17:15:27 GMT; 1min 34s ago
Main PID: 471 (gdm)
CGroup: name=systemd:/system/gdm.service
├─ 471 /usr/sbin/gdm
├─ 597 /usr/libexec/gdm-simple-slave --display-id /org/gnome/DisplayManager/Displays/_0
├─ 921 /usr/bin/Xorg :0 -background none -verbose -auth /run/gdm/auth-for-gdm-l88Ufh/database -seat seat0 -nolisten tcp vt1
└─1102 gdm-session-worker [pam/gdm-launch-environment]
다음과 같이 lspci -k
:
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
Subsystem: Lenovo Device 3975
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
Kernel driver in use: pcieport
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
Subsystem: Lenovo Device 397a
Kernel driver in use: i915
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
Subsystem: Lenovo Device 3975
Kernel driver in use: mei
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: ehci-pci
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
Kernel driver in use: pcieport
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5)
Kernel driver in use: pcieport
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: ehci-pci
00:1f.0 ISA bridge: Intel Corporation HM65 Express Chipset Family LPC Controller (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: lpc_ich
00:1f.2 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family 4 port SATA IDE Controller (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: ata_piix
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
Subsystem: Lenovo Device 3975
00:1f.5 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family 2 port SATA IDE Controller (rev 05)
Subsystem: Lenovo Device 3975
Kernel driver in use: ata_piix
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Robson CE [Radeon HD 6370M/7370M]
Subsystem: Lenovo Radeon HD 6370M/7370M
Kernel driver in use: radeon
07:00.0 Ethernet controller: Qualcomm Atheros AR8152 v2.0 Fast Ethernet (rev c1)
Subsystem: Lenovo Device 3979
Kernel driver in use: atl1c
08:00.0 Network controller: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter (rev 01)
Subsystem: Broadcom Corporation Device 051b
Kernel driver in use: bcma-pci-bridge
이것은 또한 다음의 로그입니다./var/log/gdm/:0.log
,/var/log/Xorg.0.log
&/var/log/Xorg.0.log.old
- 각 로그의 타임스탬프를 확인한 결과 GDM 및 이전 Xorg 로그가 올바른 로그라고 생각합니다. 최신 Xorg 로그는 현재 Xfce 세션에서 가져온 것이며 관련성이 있어야 합니다.
문제는 fglrx 드라이버를 사용하라는 구성이 아직 남아 있거나 fglrx를 필요로 하는 fglrx(또는 이와 유사한 것)에 의해 설치된 libGL의 패치 버전이 있다는 것입니다(이 경우 작동하지 않을 수 있습니다...). ....).
답변1
답변2
결국 드라이버를 설치 및 제거하고 xorg.conf
시스템 요구 사항에 따라 설정하는 데 사용할 수 있는 스크립트를 작성했습니다.
#!/bin/bash
if [[ ! $(whoami) = "root" ]]; then
echo -e "\033[1;31mPlease run this as root\033[0m"
exit 1
fi
if [ "$1" = "enable" ]; then
echo -e "\033[22;34mInstalling fglrx... ('/usr/share/fglrx64_p_i_c.x86_64')\033[1m\033[0m"
sleep 3
sudo rpm -ivh /usr/share/fglrx-amd-RPM/fglrx64_p_i_c-14.301.1001-1.x86_64.rpm
if [ -f "/etc/X11/xorg.conf" ]; then
echo "Backing up 'etc/X11/xorg.conf'"
mv "/etc/X11/xorg.conf" "/etc/X11/xorg.conf.bak.$(date)"
fi
echo "Preparing /etc/X11/xorg.conf"
echo -e 'Section "ServerLayout"\n Identifier "aticonfig Layout"\n Screen 0 "aticonfig-Screen[0]-0" 0 0\nEndSection\n\nSection "Module"\nEndSection\n\nSection "Monitor"\n Identifier "aticonfig-Monitor[0]-0"\n Option "VendorName" "ATI Proprietary Driver"\n Option "ModelName" "Generic Autodetecting Monitor"\n Option "DPMS" "true"\nEndSection\n\nSection "Device"\n Identifier "aticonfig-Device[0]-0"\n Driver "fglrx"\n BusID "PCI:1:0:0"\nEndSection\n\nSection "Screen"\n Identifier "aticonfig-Screen[0]-0"\n Device "aticonfig-Device[0]-0"\n Monitor "aticonfig-Monitor[0]-0"\n DefaultDepth 24\n SubSection "Display"\n Viewport 0 0\n Depth 24\n EndSubSection\nEndSection\n' > "/etc/X11/xorg.conf"
elif [ "$1" = "disable" ]; then
echo "\033[22;34mUninstalling fglrx... ('fglrx64_p_i_c.x86_64')\033[1m\033[0m"
sleep 3
sudo rpm -ev fglrx64_p_i_c.x86_64
else
lsmod | grep fglrx
echo -e "\033[22;34mThe options for the script are 'enable' 'disable'\033[1m\033[0m"
fi
exit
분해해 볼 수도 있겠네요rpm 스크립트설치/제거 프로세스 중에 수행되는 작업을 확인하세요. 하지만 위의 해결 방법이 더 간단하다고 생각합니다.