salta alla navigazione

Linux (amd64 x86_64): AGP NVIDIA IOMMU BLACK SCREEN 1 dicembre 2008 - 1:40

Inviato da Antonio De Luci (imu) in : Debian, Kernel, Linux, Nvidia, O.S. Revolution, Only Nerd, Pericolosi, Tips , trackback

UPDATE :

09/05/2009 – Dal Kernel 2.6.29.3 TUTTO È TORNATO ALLA NORMALITÀ! CHE DIO SIA LODATO!
07/02/2009 – Mi sono rotto ad inserire le patch, seguite la guida e buonanotte!

Adesso andrò ad illustrare un paio di workaround per ovviare ad un problema davvero molto ma molto fastidioso. Spero solo che sia un problema raro e che come al solito sia sfigato solo io.

Un po’ di storia :

In un attimo di frenata follia, l’altra notte mi è passato per la mente di provare la beta della prossima stable : Lenny e nello stesso preciso momento di provare la versione amd64 (x86_64). Nulla di strano fin qui, posseggo uno degli ultimi Intel Prescott (cpu family 15) EM64T ma per forza di cose ho sempre e solo usato la versione Debian Unstable i386. Purtroppo soffro di un grave problema di dipendenza, NVIDIA. Saranno 10 anni che uso queste schede e saranno 10 anni che subito dopo il reboot finale d’installazione devo obbligatoriamente installare i driver per la mia scheda video.

La mia esperienza con questo tipo di schede ed i suoi driver Closed mi porta ad eseguire determinate modifiche per farli girare al meglio e proprio seguendo le stesse operazioni

Blacklist dei moduli agpgart e intel_agp, inserimento nel file xorg.conf della voce “NvAgp  1″ etc. etc.

… appena avviato il server grafico mi sono ritrovato nella merda, una merda tutta nera.
Credetemi non ho mai perso così tanto tempo per sistemare qualcosa (credo ci abbia perso almeno tre notti), cioè immaginate la scena si avvia il server grafico ed appare una schermata nera con un underscore in alto a sinistra. Nessuna possibilità di cambiare console virtuali (tty* o vc*) e nessuna possibilità di accedere a qualche log per capire cosa stesse succedendo. Unica operazione possibile : RESET o grazie ai Magic Key SysrQ un bellissimo reboot.

Comunque gira e rigira la rete ed il forum nvidia fatalmente mi sono scontrato con un topic e da li restrigendo la ricerca sono giunto a delle conclusioni ed ho individuato il colpevole “IOMMU“.

##############

WorkAround per Kernel di default (i kernel ufficiali installati dalle distro).

Inserire la voce nel file di configurazione di grub (menu.lst) in modo da farla apparire in tutte le voci dei kernel presenti:

iommu=noaperture

Poi rimuovere eventuali voci riguardanti il proprio modulo agp (intel_agp, via_agp, amd64_agp, etc) dal file /etc/modprobe.d/blacklist .

Inserire tra le opzions dedicate a nvidia nel file xorg.conf la seguente :

Option     "NvAgp" "2"  # (usa agpgart)

Riavviate.

##############

WorkAround per smanettoni fai da te, patiti di hard recompiling kernel, gente a cui piace mettere le mani dappertutto :

Scaricate i sorgenti del kernel, scompattateli e fermatevi. Avviate il vostro editor di testo preferito e modificate il seguente file :

linux-$VERSION/arch/x86/Kconfig

Sul kernel 2.6.27.7 si trova sulla riga 508 :

config GART_IOMMU
bool "GART IOMMU support" if EMBEDDED <---- rimuovere
default y
select SWIOTLB
select AGP
depends on X86_64 && PCI
help
Support for full DMA access of devices with 32bit memory access only
on systems with more than 3GB. This is usually needed for USB,
sound, many IDE/SATA chipsets and some other devices.
Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
based hardware IOMMU and a software bounce buffer based IOMMU used
on Intel systems and as fallback.
The code is only active when needed (enough memory and limited
device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
too.

Rimuovete  la dicitura “ if EMBEDDED ” e cambiate la dicitura “ y ” in ” n “.

Dopo di che, iniziate la configurazione :

# make menuconfig

Settate come al solito le vostre opzioni e in : Processor type and Features, vedrete una nuova voce.

[ ] GART IOMMU support

Assicuratevi che sia deselezionata.

Poi in Graphics support, settate come modulo /dev/agpgart e nel menu settate il vostro chipset.

<M> /dev/agpgart (AGP Support) --->

Agp Support

Dopo di che salvate tutto e create il nuovo kernel. Ora finalmente si torna alla normalità niente vocine strane in grub e moduli agp* in blacklist per usare Nvidia.

Testato con kernel fino a 2.6.27.7 e nvidia fino 177.82 (compresi i beta 177.61.02 e 180.08). Chissà perché capitano tutte a me!

Commenti»

1. telperion - 1 dicembre 2008- 14:09

Ma è un problema specifico delle schede (da barboni come il prescotto :D ) agp?
Io ho la 8600GT pci-e, e con i kernel vanilla 2.6.27.7 a 32 e 64 bit, non ho avuto alcun problema ne con i 177.xx ne con gli 180.xx. Boh.

Usa Mozilla Firefox Mozilla Firefox 3.0.4 con Gentoo Linux Gentoo Linux
2. Antonio De Luci (imu) - 1 dicembre 2008- 14:52

@telperion
É legata all’AGP (morto da tempo ormai). L’unica cosa che mi fa incazzare è : Perché cazzo se ho un sistema desktop mi deve settare IOMMU GART statico e conseguentemente bloccare agpgart in modo statico?
If EMBEDDED setta Y ma se non lo è deve settare N (almeno dovrebbe essere questo controllo), oppure dare la possibilità di vedere la voce nel menu di configurazione del Kernel!
Non so se inviare un bug report a kernel.org oppure a nvidia che credo centri pochissimo. (ho iniziato con un kernel 2.6.23 e ancora ho lo stesso problema secondo me andrò avanti così a vita oppure devo cambiare tutto il sistema)

Usa Debian IceWeasel Debian IceWeasel 3.0.4 con Debian GNU/Linux Debian GNU/Linux
3. Diego - 2 dicembre 2008- 10:18

Ho una GeForce 8400M GS, lenny amd64, kernel standard e driver nvidia impacchettati di experimental.
Funziona tutto perfettamente senza workaround particolari.

Ciao
Diego

Usa Debian IceWeasel Debian IceWeasel 3.0.3 con Debian GNU/Linux Debian GNU/Linux
4. Antonio De Luci (imu) - 2 dicembre 2008- 14:17

@Diego
Non ricordo abbiano fatto le 8400 in versione AGP!

Usa Debian IceWeasel Debian IceWeasel 3.0.4 con Debian GNU/Linux Debian GNU/Linux
5. Diego - 2 dicembre 2008- 16:19

Per la verità non lo so, era solo per riportare la mia esperienza ;-)

Bye

Usa Debian IceWeasel Debian IceWeasel 3.0.3 con Debian GNU/Linux Debian GNU/Linux
6. Life Bringer - 20 febbraio 2009- 1:13

Ciao, io ho un problema simile, sempre ahime dovuto a questo maledetto iommu.
Premetto che ho un sistema AMD a differenza tua che hai intel, con mb GA-MA78GM-S2H e soprattutto 8gb di ram. Da quando ho montato gli 8gb al posto dei vecchi 2, ad ogni avvio di Debian (lenny) compare questo maledetto avviso:
Feb 17 22:00:13 Debian-Server kernel: [ 0.004000] Node 0: aperture @ 4000000 size 32 MB
Feb 17 22:00:13 Debian-Server kernel: [ 0.004000] Aperture pointing to e820 RAM. Ignoring.
Feb 17 22:00:13 Debian-Server kernel: [ 0.004000] No AGP bridge found
Feb 17 22:00:13 Debian-Server kernel: [ 0.004000] Your BIOS doesn’t leave a aperture memory hole
Feb 17 22:00:13 Debian-Server kernel: [ 0.004000] Please enable the IOMMU option in the BIOS setup
Feb 17 22:00:13 Debian-Server kernel: [ 0.004000] This costs you 64 MB of RAM

Con il risultato che mi trovo disponibili invece di 8gb(-128mb di memoria condivisa) “solamente” 7.7gb. Impostando iommu=noaperture è solo un workaround perchè non compare più il messaggio, però la ram “rubata” rimane, ora provo la soluzione da te addottata, ma se hai qualche suggerimento è di sicuro benvenuto. Grazie

Usa Internet Explorer Internet Explorer 7.0 con Windows Windows XP
7. Antonio De Luci (imu) - 20 febbraio 2009- 15:30

@Life Bringer
Da quello che ho capito io problema dovrebbe mostrarsi solo in presenza di processori intel perché IOMMU è usato da AMD. Tu dovresti risolvere senza alcun workeround abilitando la voce relativa nel bios e aumentando l’apertura (agp size) al valore massimo permesso.
Io purtroppo sono costretto a pachtare Kconfig all’infinito oppure devo a mio malgrado cambiare scheda video e consegutivamente mather board e ram … Segui il link sul wiki gentoo dove spiegano le varie voci da abilitare ed aumentare nel bios.
Siamo obsoleti con le nostre AGP (bestemmia censurata!)

Usa Debian IceWeasel Debian IceWeasel 3.0.6 con Debian GNU/Linux Debian GNU/Linux
8. Life Bringer - 20 febbraio 2009- 23:59

Il bello o il brutto è proprio che, la mia scheda madre non ha slot agp ma pci-ex, quindi nel bios, non c’è alcuna voce (ovviamente) che si riferisce all’aperture del gart agp, infatti, nel kernel mi dice no agp bridge found, ma la ram se la mangia ugualmente…

Usa Internet Explorer Internet Explorer 7.0 con Windows Windows XP