# gentoo-sources-2.6.18-r2
and nvidia (9629) [SOLVEDish]

## pgolik

I tried to upgrade kernel to 2.6.18-r2 which became stable on amd64. It messed up my nvidia (nvidia-drivers-1.0.9629) which works with 2.6.17 perfectly. Of course I did re-emerge nvidia-drivers after booting the new kernel (I'm not THAT lame). In fact the nvidia module does load after boot, it is shown as loaded by lsmod. But X doesn't start, with the following error on Xorg.log:

```

(II) Setting vga for screen 0.

(**) NVIDIA(0): Depth 24, (**) framebuffer bpp 32

(==) NVIDIA(0): RGB weight 888

(==) NVIDIA(0): Default visual is TrueColor

(==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)

(**) NVIDIA(0): Option "NoLogo" "1"

(**) NVIDIA(0): Option "NvAGP" "1"

(**) NVIDIA(0): Option "RenderAccel" "true"

(**) NVIDIA(0): Option "AllowGLXWithComposite" "true"

(**) NVIDIA(0): Option "AddARGBGLXVisuals" "true"

(**) NVIDIA(0): Enabling RENDER acceleration

(**) NVIDIA(0): Use of NVIDIA internal AGP requested

(II) NVIDIA(0): Support for GLX with the Damage and Composite X extensions is

(II) NVIDIA(0):     enabled.

(EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device PCI:1:0:0.

(EE) NVIDIA(0):     Please see the COMMON PROBLEMS section in the README for

(EE) NVIDIA(0):     additional information.

(EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device!

(EE) NVIDIA(0):  *** Aborting ***

(II) UnloadModule: "nvidia"

(II) UnloadModule: "ramdac"

(II) UnloadModule: "fb"

(EE) Screen(s) found, but none have a usable configuration.

```

In the kernel logs I'm seeing:

```

Nov 19 11:55:39 [kernel] NVRM: RmInitAdapter failed! (0x25:0xffffffff:1039)

Nov 19 11:55:39 [kernel] NVRM: rm_init_adapter(0) failed

```

Switching back to 2.6.17-r8 solves the problem and nvidia works perfectly.

I've noticed, that with 2.6.18 there is no way to disable in-kernel AGP modules through menuconfig or xconfig:

```

linux-2.6.18-gentoo-r2 # grep AGP .config

CONFIG_AGP=y

CONFIG_AGP_AMD64=y

# CONFIG_AGP_INTEL is not set

# CONFIG_AGP_SIS is not set

# CONFIG_AGP_VIA is not set

```

while on 2.6.17 I could get:

```

linux # grep AGP .config

# CONFIG_AGP is not set

```

I tried to manually edit .config to disable CONFIG_AGP, but it didn't help and in fact got switched back. So I believe the problem is that gentoo-sources-2.6.18-r2 forces the kernel AGP driver (at least on amd64), while nvidia is supposed to work better with nvagp. Any ideas - is it a bug or a feature?Last edited by pgolik on Sun Nov 26, 2006 10:28 am; edited 1 time in total

----------

## kfiaciarka

```
grep -i AGP /usr/src/linux/.config

# CONFIG_AGP is not set
```

 on gentoo-sources 2.6.18

Nvidia does not need agpgart compiled as module

----------

## Lowrider

it looks like we got the same problem, look at my post   Kernel 2.6.18 and Nvidia drivers

----------

## pgolik

 *kfiaciarka wrote:*   

> 
> 
> ```
> grep -i AGP /usr/src/linux/.config
> 
> ...

 

Perhaps it's amd64-specific, I can't find an option to disable CONFIG_AGP or  CONFIG_AGP_AMD64 anywhere in menuconfig or xconfig, while I can do it in 2.6.17.

----------

## dmpogo

 *pgolik wrote:*   

>  *kfiaciarka wrote:*   
> 
> ```
> grep -i AGP /usr/src/linux/.config
> 
> ...

 

AGP is forced by IOMMU option.   In 2.6.18 kernel, as I have noticed,    previous GART_IOMMU option is split into  IOMMU and CALGARY_IOMMU.    Somehow in menuconfig there is possibility to switch off CALGARY_IOMMU,  but there iis no handle for CONFIG_IOMMU.

and once this one is set (which is default) AGP is forced.

I have another problem - my headless server (no AGP bus at all) required IOMMU=off AGP=off otherwise I was getting  some instabilities.

And yes, it may be amd64 specific,  IOMMU is needed for > 4GB RAM, and I'm afraid that somebody decided we must have IOMMU on on 64-bit platforms  :Sad: 

----------

## pgolik

Might be it, on 2.6.18 I have

```
linux-2.6.18-gentoo-r2 # grep IOMMU .config

CONFIG_IOMMU=y

# CONFIG_CALGARY_IOMMU is not set

```

While on 2.6.17 

```
# CONFIG_GART_IOMMU is not set
```

Later I'll try booting with  IOMMU=off AGP=off  and see if it helps.

----------

## dmpogo

 *pgolik wrote:*   

> Might be it, on 2.6.18 I have
> 
> ```
> linux-2.6.18-gentoo-r2 # grep IOMMU .config
> 
> ...

 

You will probably not able to do that, since for some reason IOMMU flag is toggable now only if EMBEDDED option is set.

From /usr/src/linux-2.6.18-gentoo-r2/arch/x86_64/Kconfig

```

# Mark as embedded because too many people got it wrong.

# The code disables itself when not needed.

config IOMMU

        bool "IOMMU support" if EMBEDDED

        default y

        select SWIOTLB

        select AGP

        depends on PCI

        help

          Support for full DMA access of devices with 32bit memory access only

```

I believe you have to delete  'if EMBEDDED' qualifier in this place to be able to disable IOMMU, and, therefore, AGP.

On the other note, I actually suspect that you problem is different. Nvidia should be able to use kernel AGP without crashes.

Did you try to run it with NVagp=0 ?

----------

## pgolik

 *dmpogo wrote:*   

> 
> 
> On the other note, I actually suspect that you problem is different. Nvidia should be able to use kernel AGP without crashes.
> 
> Did you try to run it with NVagp=0 ?

 

I tried with NVagp=3 and got the same crash, even though it did not use NVAgp. It didn't use kernel AGP either

```
cat /proc/driver/nvidia/agp/status

Status:          Disabled
```

which is to be expected as there is no specific kernel driver for my chipset - there are CONFIG_AGP_INTEL, CONFIG_AGP_SIS and CONFIG_AGP_VIA options and my hardware has neither (it's an NForce3). Besides, everey nvidia howto I've seen around recommends using NVAgp over the kernel stuff. 

So it's back to 2.6.17 for a moment, it works well with my hardware so I don't feel a great urge to upgrade. But it's a fact that 2.6.18 breaks nvidia on my system.

----------

## pgolik

There is a workaround - disabling IOMMU as per this thread enabled me to disable IOMMU and agpgart, and thus bring the nvidia driver back to life. Is there any reason why this choice has been removed for x86_64 systems?

----------

## dmpogo

 *pgolik wrote:*   

> There is a workaround - disabling IOMMU as per this thread enabled me to disable IOMMU and agpgart, and thus bring the nvidia driver back to life. Is there any reason why this choice has been removed for x86_64 systems?

 

Well, the reason is stated in Kconfig comment   'many people get this wrong'

I have filed a bug (bugzilla is down can't get the number right now, search for all IOMMU),   however I myself do not have problem with graphics (actually I did not boot yet 2.6.18 on my desktop), and had earlier issue with memory on my server.

Gentoo people  send me upstream.   I exchanged emails wit Andi Klein from linux kernel, who introduced this change,

but he (I actually think correctly) dismissed my memory problems as probably has nothing to do with IOMMU, 

and did not react on my suggestion that  binary video drivers suffer.  So I failed to grab his attention.

I think that people with video problems should file a bug with gentoo again, giving clear report how video was failing.

I believe it is within gentoo authority to change a bit default kernel configuration, given that Gentoo distributes both

kernel and (binary video drivers).

----------

## chrisashton84

I'm having trouble with nvidia even with these instructions.  Originally I thought my card had actually died (coincidently, windows blew up with agp driver errors _exactly_ at the same time as I tried the 2.6.18 series, and with agp errors on both i figured the card / system was toast).  Windows works now though, so that's not the case  :Smile:   I get a blank screen if xdm tries to start.  The system is still responsive in everything except graphics, so I can ssh in and continue work.  I read the bit about disabling "if embedded" and made that change, since I never had IOMMU enabled in previous kernels, however I have always used the kernel AGPGART drivers without any problems... here's my results:

```
localhost ~ # startx

xauth:  creating new authority file /root/.serverauth.15380

X Window System Version 7.1.1

Release Date: 12 May 2006

X Protocol Version 11, Revision 0, Release 7.1.1

Build Operating System: UNKNOWN

Current Operating System: Linux localhost 2.6.18-gentoo-r3 #4 PREEMPT Wed Nov 29 06:55:06 CST 2006 x86_64

Build Date: 29 November 2006

        Before reporting problems, check http://wiki.x.org

        to make sure that you have the latest version.

Module Loader present

Markers: (--) probed, (**) from config file, (==) default setting,

        (++) from command line, (!!) notice, (II) informational,

        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.

(==) Log file: "/var/log/Xorg.0.log", Time: Wed Nov 29 07:02:30 2006

(==) Using config file: "/root/xorg.conf"

(EE) Failed to load module "wfb" (module does not exist, 0)

Backtrace:

XIO:  fatal IO error 104 (Connection reset by peer) on X server ":0.0"

      after 0 requests (0 known processed) with 0 events remaining.

localhost ~ # dmesg

...

agpgart: Found an AGP 3.0 compliant device at 0000:00:00.0.

agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode

agpgart: Putting AGP V3 device at 0000:01:00.0 into 8x mode

X[15397]: segfault at 0000000000000000 rip 00002b4bed4c2ec5 rsp 00007fffbd5f3d68 error 4

```

Those 3 agpgart lines and one X line are repeated every time I run startx.

Xorg log itself doesn't look out of the ordinary as far as I can tell (wish it gave a backtrace):

```
(II) Setting vga for screen 0.

(**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32

(==) NVIDIA(0): RGB weight 888

(==) NVIDIA(0): Default visual is TrueColor

(==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)

(**) NVIDIA(0): Option "NoLogo" "true"

(**) NVIDIA(0): Option "Coolbits" "1"

(**) NVIDIA(0): Option "AddARGBGLXVisuals" "true"

(**) NVIDIA(0): Enabling RENDER acceleration

(II) NVIDIA(0): Support for GLX with the Damage and Composite X extensions is

(II) NVIDIA(0):     enabled.

(II) NVIDIA(0): NVIDIA GPU GeForce 6800 GT at PCI:1:0:0 (GPU-0)

(--) NVIDIA(0): Memory: 262144 kBytes

(--) NVIDIA(0): VideoBIOS: 05.40.02.15.01

(II) NVIDIA(0): Detected AGP rate: 8X

(--) NVIDIA(0): Interlaced video modes are supported on this GPU

(--) NVIDIA(0): Connected display device(s) on GeForce 6800 GT at PCI:1:0:0:

(--) NVIDIA(0):     DELL 2001FP (DFP-0)

(--) NVIDIA(0): DELL 2001FP (DFP-0): 155.0 MHz maximum pixel clock

(--) NVIDIA(0): DELL 2001FP (DFP-0): Internal Single Link TMDS

(II) NVIDIA(0): Assigned Display Device: DFP-0

(II) NVIDIA(0): Validated modes:

(II) NVIDIA(0):     "1600x1200"

(II) NVIDIA(0):     "1280x1024"

(II) NVIDIA(0):     "1024x768"

(II) NVIDIA(0): Virtual screen size determined to be 1600 x 1200

(--) NVIDIA(0): DPI set to (99, 98); computed from "UseEdidDpi" X config

(--) NVIDIA(0):     option

(--) Depth 24 pixmap format is 32 bpp

(II) do I need RAC?  No, I don't.

(II) resource ranges after preInit:

        [0] 0   0       0xf1000000 - 0xf1ffffff (0x1000000) MX[B]

        [1] 0   0       0xe0000000 - 0xefffffff (0x10000000) MX[B]

        [2] 0   0       0xf0000000 - 0xf0ffffff (0x1000000) MX[B]

        [3] -1  0       0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B)

        [4] -1  0       0x000f0000 - 0x000fffff (0x10000) MX[B]

        [5] -1  0       0x000c0000 - 0x000effff (0x30000) MX[B]

        [6] -1  0       0x00000000 - 0x0009ffff (0xa0000) MX[B]

        [7] -1  0       0xf3017000 - 0xf30170ff (0x100) MX[B]

        [8] -1  0       0xf3000000 - 0xf300ffff (0x10000) MX[B]

        [9] -1  0       0xf3010000 - 0xf3013fff (0x4000) MX[B]

        [10] -1 0       0xf3014000 - 0xf30147ff (0x800) MX[B]

        [11] -1 0       0xf3016000 - 0xf3016fff (0x1000) MX[B]

        [12] -1 0       0xd0000000 - 0xcfffffff (0x0) MX[B]O

        [13] -1 0       0xf1000000 - 0xf1ffffff (0x1000000) MX[B](B)

        [14] -1 0       0xe0000000 - 0xefffffff (0x10000000) MX[B](B)

        [15] -1 0       0xf0000000 - 0xf0ffffff (0x1000000) MX[B](B)

        [16] -1 0       0xf3015000 - 0xf3015fff (0x1000) MX[B](B)

        [17] 0  0       0x000a0000 - 0x000affff (0x10000) MS[B](OprD)

        [18] 0  0       0x000b0000 - 0x000b7fff (0x8000) MS[B](OprD)

        [19] 0  0       0x000b8000 - 0x000bffff (0x8000) MS[B](OprD)

        [20] -1 0       0x0000ffff - 0x0000ffff (0x1) IX[B]

        [21] -1 0       0x00000000 - 0x000000ff (0x100) IX[B]

        [22] -1 0       0x0000e400 - 0x0000e41f (0x20) IX[B]

        [23] -1 0       0x0000e000 - 0x0000e01f (0x20) IX[B]

        [24] -1 0       0x0000dc00 - 0x0000dc1f (0x20) IX[B]

        [25] -1 0       0x0000d800 - 0x0000d80f (0x10) IX[B]

        [26] -1 0       0x0000d400 - 0x0000d407 (0x8) IX[B]

        [27] -1 0       0x0000d000 - 0x0000d01f (0x20) IX[B]

        [28] 0  0       0x000003b0 - 0x000003bb (0xc) IS[B](OprU)

        [29] 0  0       0x000003c0 - 0x000003df (0x20) IS[B](OprU)

(II) NVIDIA(0): Setting mode "1600x1200"

(II) Loading extension NV-GLX

(II) NVIDIA(0): NVIDIA 3D Acceleration Architecture Initialized

(II) NVIDIA(0): Using the NVIDIA 2D acceleration architecture

(==) NVIDIA(0): Backing store disabled

(==) NVIDIA(0): Silken mouse enabled

(**) Option "dpms"

(**) NVIDIA(0): DPMS enabled

(II) Loading extension NV-CONTROL

(==) RandR enabled

(II) Initializing built-in extension MIT-SHM

(II) Initializing built-in extension XInputExtension

(II) Initializing built-in extension XTEST

(II) Initializing built-in extension XKEYBOARD

(II) Initializing built-in extension XC-APPGROUP

(II) Initializing built-in extension SECURITY

(II) Initializing built-in extension XINERAMA

(II) Initializing built-in extension XFIXES

(II) Initializing built-in extension XFree86-Bigfont

(II) Initializing built-in extension RENDER

(II) Initializing built-in extension RANDR

(II) Initializing built-in extension COMPOSITE

(II) Initializing built-in extension DAMAGE

(II) Initializing built-in extension XEVIE

(II) Initializing extension GLX

Backtrace:

```

Note there's agp information which seems to imply it's working fine from boot in dmesg:

```
Linux agpgart interface v0.101 (c) Dave Jones

agpgart: Detected AGP bridge 0

agpgart: AGP aperture is 256M @ 0xd0000000

```

I tried with kernel AGPGART disabled, but results were similar (minus any agp lines from dmeg).  This has basically bricked my desktop computer (and school just started back up!)  I'll try grabbing a 2.6.17 version and hopefully that will just work, but hopefully this will be some help to someone who's tracking this all down.

EDIT:  Uh oh, 2.6.17-r9 doesn't fix it.  New topic as this might not be related?

EDIT EDIT:  Disabling glx in xorg.conf allows X to start with nvidia driver at least... what the heck?

----------

## dmpogo

Seems it is indeed a new topic, and you have some issues with 3D acceleration.

----------

## dmpogo

```

EDIT: Uh oh, 2.6.17-r9 doesn't fix it. New topic as this might not be related?

EDIT EDIT: Disabling glx in xorg.conf allows X to start with nvidia driver at least... what the heck?

```

Seems it is indeed a new topic, and you have some issues with 3D acceleration.

----------

## brodi

Same here on gentoo-sources-2.6.19-r5

I've tried all nvidia-drivers ebuilds from portage. No luck.    :Confused: 

So I've switched back to 2.6.17. It seems to be amd64-specific.

----------

