Parar o fglrx de carregar no boot / unload do módulo fglrx sem desinstalá-lo

2

Eu tenho uma instalação do Fedora 19 em um laptop, que tem placa gráfica integrada Intel & gráficos discretos da AMD. Eu tenho usado o driver radeon , que funciona para a maioria das coisas - embora eu tenha tentado recentemente o driver fglrx , e achei que ele seja um pouco mais rápido e tenha melhor gerenciamento de energia, embora alguns programas baseados em OpenGL não funcionar corretamente.

Então, como posso desativar o carregamento do driver fglrx na inicialização, para que ele volte para o driver radeon ?

Eu tentei fazer isso editando o arquivo /etc/modprobe.d/blacklist-fglrx.conf

# Advanced Micro Devices, Inc.
# radeon conflicts with AMD Linux Graphics Driver
blacklist radeon

comentando a linha blacklist radeon e adicionando 'blacklist fglrx_pci

  • Item da lista

'abaixo dele. Isso só resultou na tela de login da GUI não carregando, então eu tive que mudar para um TTY e editar de volta para o que era.

lspci -k com fglrx instalado (a única diferença com ele não instalada é Subsystem: Lenovo Radeon HD 6370M/7370M não é mostrado, e radeon é usado como o driver AMD * - quando apenas está na lista negra < em> eu acho que a única mudança é radeon é usado) :

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

Aqui é o RPM feito pelo instalador (o instalador oferece instalar diretamente ou construir pacotes para o openSUSE ou RedHat, eu usei a última opção do RedHat 64a) , e aqui são os scripts de instalação / desinstalação do RPM extraídos dele.

Sei que tentei usar modprobe para remover o módulo quando o sistema foi inicializado - isso não funciona, resultando em modprobe: FATAL: Module fglrx is in use .

Na lista negra do driver (e removendo /etc/X11/xorg.conf - é necessário criar uma após a instalação do fglrx (parece this ), e o não precisa de nenhum ) trabalha em que o driver radeon é usado - o problema aqui é que algumas aplicações não funcionam e o Gnome Shell & GDM mostra isso:

Noentanto,desinstalarodriverereinicializarsemprefunciona.

Porexemplo,aplicandoestalistanegraem/etc/modprobe.d/blacklist-fglrx.conf:

#AdvancedMicroDevices,Inc.#radeonconflictswithAMDLinuxGraphicsDriver#blacklistradeonblacklistfglrxblacklistamd_iommu_v2blacklistfglrx_pci

eremovendoxorg.confresultanoerroGDMacima.Eupossoentão(eter)mudadoparaumTTY,eusadosystemctlparamudardoGDMparaoLightDMelogarnoXfce(queparecefuncionarnormalmente).Aplicativoscomocairo-dockfalhamcomfalhasdesegmentação.glxinfodá:

nameofdisplay::0.0XErroroffailedrequest:BadRequest(invalidrequestcodeornosuchoperation)Majoropcodeoffailedrequest:153(GLX)Minoropcodeoffailedrequest:19(X_GLXQueryServerString)Serialnumberoffailedrequest:12Currentserialnumberinoutputstream:12

systemctlmostraissocomoostatusdoGDM(antesdeeumudarparaoLightDM+Xfce),mesmoquetenhafalhado:

gdm.service-GNOMEDisplayManagerLoaded:loaded(/usr/lib/systemd/system/gdm.service;enabled)Active:active(running)sinceMon2014-11-1017:15:27GMT;1min34sagoMainPID: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-backgroundnone-verbose-auth/run/gdm/auth-for-gdm-l88Ufh/database-seatseat0-nolistentcpvt1└─1102gdm-session-worker[pam/gdm-launch-environment]

elspci-ksãoosseguintes:

00:00.0Hostbridge:IntelCorporation2ndGenerationCoreProcessorFamilyDRAMController(rev09)Subsystem:LenovoDevice397500:01.0PCIbridge:IntelCorporationXeonE3-1200/2ndGenerationCoreProcessorFamilyPCIExpressRootPort(rev09)Kerneldriverinuse:pcieport00:02.0VGAcompatiblecontroller:IntelCorporation2ndGenerationCoreProcessorFamilyIntegratedGraphicsController(rev09)Subsystem:LenovoDevice397aKerneldriverinuse:i91500:16.0Communicationcontroller:IntelCorporation6Series/C200SeriesChipsetFamilyMEIController#1(rev04)Subsystem:LenovoDevice3975Kerneldriverinuse:mei00:1a.0USBcontroller:IntelCorporation6Series/C200SeriesChipsetFamilyUSBEnhancedHostController#2(rev05)Subsystem:LenovoDevice3975Kerneldriverinuse:ehci-pci00:1b.0Audiodevice:IntelCorporation6Series/C200SeriesChipsetFamilyHighDefinitionAudioController(rev05)Subsystem:LenovoDevice3975Kerneldriverinuse:snd_hda_intel00:1c.0PCIbridge:IntelCorporation6Series/C200SeriesChipsetFamilyPCIExpressRootPort1(revb5)Kerneldriverinuse:pcieport00:1c.1PCIbridge:IntelCorporation6Series/C200SeriesChipsetFamilyPCIExpressRootPort2(revb5)Kerneldriverinuse:pcieport00:1d.0USBcontroller:IntelCorporation6Series/C200SeriesChipsetFamilyUSBEnhancedHostController#1(rev05)Subsystem:LenovoDevice3975Kerneldriverinuse:ehci-pci00:1f.0ISAbridge:IntelCorporationHM65ExpressChipsetFamilyLPCController(rev05)Subsystem:LenovoDevice3975Kerneldriverinuse:lpc_ich00:1f.2IDEinterface:IntelCorporation6Series/C200SeriesChipsetFamily4portSATAIDEController(rev05)Subsystem:LenovoDevice3975Kerneldriverinuse:ata_piix00:1f.3SMBus:IntelCorporation6Series/C200SeriesChipsetFamilySMBusController(rev05)Subsystem:LenovoDevice397500:1f.5IDEinterface:IntelCorporation6Series/C200SeriesChipsetFamily2portSATAIDEController(rev05)Subsystem:LenovoDevice3975Kerneldriverinuse:ata_piix01:00.0VGAcompatiblecontroller:AdvancedMicroDevices,Inc.[AMD/ATI]RobsonCE[RadeonHD6370M/7370M]Subsystem:LenovoRadeonHD6370M/7370MKerneldriverinuse:radeon07:00.0Ethernetcontroller:QualcommAtherosAR8152v2.0FastEthernet(revc1)Subsystem:LenovoDevice3979Kerneldriverinuse:atl1c08:00.0Networkcontroller:BroadcomCorporationBCM4313802.11bgnWirelessNetworkAdapter(rev01)Subsystem:BroadcomCorporationDevice051bKerneldriverinuse:bcma-pci-bridge

Aquitambémestãoosregistrosde /var/log/gdm/:0.log , /var/log/Xorg.0.log & /var/log/Xorg.0.log.old - Eu verifiquei os timestamps de cada log, e acho que o GDM & os logs antigos do Xorg são os logs corretos - o último log do Xorg é o da sessão atual do Xfce e também deve ser relevante.

Eu acho que o problema é ou ainda há alguma configuração em algum lugar dizendo para usar o driver fglrx, ou há uma versão corrigida da libGL (ou algo semelhante) que fglrx instalado que precisa fglrx (caso em que isso pode ser insolúvel .......).

    
por Wilf 09.11.2014 / 00:21

2 respostas

1

Acabei de escrever um script que poderia ser usado para instalar e desinstalar o driver, bem como configurar o xorg.conf como o meu sistema exigia:

#!/bin/bash
if [[ ! $(whoami) = "root" ]]; then
    echo -e "3[1;31mPlease run this as root3[0m"
    exit 1
fi

if [ "$1" = "enable" ]; then
    echo -e "3[22;34mInstalling fglrx... ('/usr/share/fglrx64_p_i_c.x86_64')3[1m3[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 "3[22;34mUninstalling fglrx... ('fglrx64_p_i_c.x86_64')3[1m3[0m"
    sleep 3
    sudo rpm -ev fglrx64_p_i_c.x86_64
else
    lsmod | grep fglrx
    echo -e "3[22;34mThe options for the script are 'enable' 'disable'3[1m3[0m"

fi
exit

Eu poderia, talvez, ter desmontado o scripts rpm para ver o que ele fez durante a instalação / desinstalação, mas a solução acima eu acho que é mais simples.

    
por 19.11.2014 / 20:47
2

Use o comando modprobe . Assumindo que os drivers são chamados de radeon e fglrx, você pode:

modprobe -r radeon 
modprobe -r fglrx

Para verificar se esses são realmente os módulos corretos, faça um lsmod

Supondo que esses procedimentos façam o que você precisa, edite seu módulos

    
por 09.11.2014 / 03:59