Announcement

Collapse
No announcement yet.

[solved] Setting screen resolution with nouveau/lucid

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [solved] Setting screen resolution with nouveau/lucid

    Has anyone figured out how to set the screen resolution using the nouveau driver?

    I thought I would give nouveau a try in spite of its limitations. It does "work", but the only screen resolutions I can get are 640x480, and 700x-something. That's a far cry from the 1680x1050 I can get from NVIDIA and from the basic vesa driver. Note that the gfxpayload option does successfully set the text screen resolution, but I haven't found a way to set the resolution in x.
    We only have to look at ourselves to see how intelligent life might develop into something we wouldn't want to meet. -- Stephen Hawking

    #2
    Re: Setting screen resolution with nouveau/lucid

    I'm assuming you've tried messing with Display in System Settings?

    If you still have the xorg.conf that was generated by the nvidia blob, it might have guessed wrong about your monitor settings. You could try commenting them out like I did:

    http://kubuntuforums.net/forums/inde...0525#msg220525

    Or even try just renaming /etc/X11/xorg.conf to xorg.old or something, should all be autodetected anyway.

    I actually had a similar problem where it turned out that nouveau was incorrectly detecting a load on the TV out, which was causing it to default to a lower common denominator resolution.

    https://bugs.freedesktop.org/show_bug.cgi?id=26800

    Your problems sounds different, but it might be worth checking the dmesg log to see what displays it is detecting.

    I reported my bug, and I've been working the with nouveau devs to get it straightened out, so if nothing else, you might consider posting a bug report:

    https://bugs.freedesktop.org/enter_bug.cgi

    For Product, put Xorg, and for Component: Drivers/nouveau.

    Good luck, hope something here helps.

    -Andy
    "No theory, no ready-made system, no book that has ever been written will save the world. I cleave to no system. I am a true seeker." - Mikhail Bakunin

    Comment


      #3
      Re: Setting screen resolution with nouveau/lucid

      So far, it seems like when it's configured right, it is generally pretty good at defaulting to the native resolution.

      Another you could try is setting modelines in xorg.conf:

      Section "Screen"
      Identifier "Screen0"
      Device "Device0"
      # Monitor "Monitor0"
      Option "MetaModes" "1280x800"
      DefaultDepth 24
      SubSection "Display"
      Depth 24
      Modes "1280x800"
      EndSubSection
      EndSection
      "No theory, no ready-made system, no book that has ever been written will save the world. I cleave to no system. I am a true seeker." - Mikhail Bakunin

      Comment


        #4
        Re: Setting screen resolution with nouveau/lucid

        I commented out the "Monitor" stuff from xorg.conf, and now I am getting a useable display.

        BUT...

        It looks identical to the VESA display I get using the 'nomodeset' option. Is there a way to tell whether the system is actually using the nouveau driver, or just falling back on the VESA driver?

        Code:
        greenman@Wolfenstein:~$ lsmod | grep nouveau
        lbm_nouveau      525089 2 
        lbm_ttm        60997 1 lbm_nouveau
        i2c_algo_bit      6024 1 lbm_nouveau
        lbm_drm_kms_helper   30834 1 lbm_nouveau
        lbm_drm        201730 4 lbm_nouveau,lbm_ttm,lbm_drm_kms_helper
        Edit:
        A couple of questions:

        Is there any way to slow down the bloody fans? That noise is unlivable. The only thing I can do is boot into a system with the nvidia driver, then reboot.

        Is there a convenient way to switch between the nouveau driver and the proprietary nvidia driver? For the reason mentioned above, and, 3D is needed for some things. As it is now, I need to have 2 separate systems, one nvidia, and one nouveau (or VESA, whichever is actually running).



        We only have to look at ourselves to see how intelligent life might develop into something we wouldn't want to meet. -- Stephen Hawking

        Comment


          #5
          Re: Setting screen resolution with nouveau/lucid

          It looks identical to the VESA display I get using the 'nomodeset' option. Is there a way to tell whether the system is actually using the nouveau driver, or just falling back on the VESA driver?
          Here are a few things you can check:

          The most definitive I think, would be to: sudo nano /var/log/Xorg.0.log

          Page-down all the way to the bottom to be sure you are looking at the most recent boot, and page up until you see which driver it states it is using.

          A simpler way might be: xvinfo | grep Adapter

          For me this returns:
          Adaptor #0: "NV40 texture adapter"
          Adaptor #1: "NV40 high quality adapter"
          Adaptor #2: "NV Video Blitter"

          I have to confess I've not actually done that with the Vesa or NV driver, so I could be wrong on this... Maybe they display similar entries.

          Also, dmesg should give a lot of nouveau messages toward the end after a boot.

          I notice when I default to the NV driver, the gradients of the background aren't as smooth, so that could be another sign.

          There may be a better way to check than this, but I don't know it. :/

          Is there any way to slow down the bloody fans? That noise is unlivable. The only thing I can do is boot into a system with the nvidia driver, then reboot.
          There may be third party apps that can do this... I seem to remember some mention of this on the nvnews nVidia Linux forum, might give it a search:

          http://www.nvnews.net/vbulletin/foru...?s=&forumid=14

          That said, the utility may depend on the proprietary driver being installed. We may just have to wait for them to implement power-saving features in nouveau. I've not really looked at this much.

          I can look in to this more and give you a yell if I find anything.

          Is there a convenient way to switch between the nouveau driver and the proprietary nvidia driver? For the reason mentioned above, and, 3D is needed for some things. As it is now, I need to have 2 separate systems, one nvidia, and one nouveau (or VESA, whichever is actually running).
          The easiest way I can think of, is to use "nomodeset" and an xorg.conf that specifies the nvidia driver to boot w/ proprietary, and to not use nomodeset and rename xorg.conf, or change the nvidia to nouveau to use the nouveau driver. You may have to play around with the binary installer to get the proprietary driver to install... It will fail if nouveau is loaded when you try to run the installer, so be sure to boot with "nomodeset" to install the blob.

          I'll keep looking for a better option, I have some more testing to do for the nouveau devs, which might have me switching back and forth quite a bit.
          "No theory, no ready-made system, no book that has ever been written will save the world. I cleave to no system. I am a true seeker." - Mikhail Bakunin

          Comment


            #6
            Re: Setting screen resolution with nouveau/lucid

            On an unrelated note, I have several generations of nvidia hardware, including the original Geforce DDR, 6600, 6800, 7000m, and 8800GTS, so I plan to spend considerable time working with the nouveau folks to get everything pretty... I'm kinda picky and techy, so I'm happy to lend my help to such a great project, and the developers have been excellent to work with. Within a day or two of my sending a trace dump, they had a patch that fixed my laptop issue with TV-out, so much props to them. Good people.

            -Andy
            "No theory, no ready-made system, no book that has ever been written will save the world. I cleave to no system. I am a true seeker." - Mikhail Bakunin

            Comment


              #7
              Re: Setting screen resolution with nouveau/lucid

              OK, I tried your suggestions:

              searching Xorg.0.log from the bottom up shows tons of NOUVEAU lines, and while none specifically say it's using the driver, the closest is probably:
              (II) NOUVEAU(0): Output DVI-I-1 using initial mode 1680x1050
              which is what is actually happening.

              And
              greenman@Wolfenstein:~$ xvinfo | grep -i Adaptor
              Adaptor #0: "Nouveau GeForce 8/9 Textured Video"


              dmesg also gives a ton of nouveau stuff, too much to post, but all of that taken together does suggest the driver is working. Funny thing is glxgears works, and looks to be working normally, with rates of about 3600 fps. Didn't try it with VESA.

              Everything I have found about controlling the fans does require the proprietary driver, so I guess this one will have to wait. I can get the fans quiet by booting into the system with the prop driver, then restarting without a poweroff. I worry a little bit, as the thermal monitors also don't work without the prop driver, but on the other hand since acceleration isn't working, it's unlikely to overheat. I hope.

              As for switching between drivers, I think this may be a real problem, for a couple of reasons.
              It appears that at least the nouveau driver is loading from initramfs, so one would need two separate initrd.img files, each built with the different driver. That's probably not a big problem, as the grub menu can be set up for different initrd.img files, but the fact that both the prop driver and nouveau use their own versions of nvidia.ko (same file name, different drivers) might be a real challenge, since as far as I know grub can't go into the file system and rename them before booting the kernel. So just changing xorg.conf and booting with nomodeset probably won't do it. And repeat all of the above with each kernel, xorg, or other update that generates a new initramfs. Still it would be nice, as trying to maintain two separate but otherwise equal systems for the two drivers may not be reasonable in the long run.

              I appreciate your responses. I really hope the nouveau project can produce a complete, open-source driver, and a few bumps along the way are more than worth it. I just question the wisdom of doing this for the LTS release before the project is really completed.
              We only have to look at ourselves to see how intelligent life might develop into something we wouldn't want to meet. -- Stephen Hawking

              Comment


                #8
                Re: Setting screen resolution with nouveau/lucid

                Adaptor #0: "Nouveau GeForce 8/9 Textured Video"
                Yeah, this is the same thing I get on my 8800GTS w/ nouveau.

                Funny thing is glxgears works, and looks to be working normally, with rates of about 3600 fps.
                Yeah, on the nouveau site they mention that it will use software rendering. W/ the proprietary drivers I was getting like 15,000+ fps, or something like that. Being relatively simple, it can be rendered in software quite well.

                As far as compositing goes, according to the status matrix. X Render should work, however it depends on the still-experimental nouveau 3D component. When I get some time I might give it a try. If Xrender is "done" as the status wiki says it is, this should be a way to get compositing effects even without fully functional opengl.

                Also, I seem to remember reading that one of the design goals is to ease switching between nouveau and the proprietary driver, and they seemed well aware many people will simply use nouveau as a stepping stone to install the blob.

                As for switching between drivers, I think this may be a real problem, for a couple of reasons.
                It appears that at least the nouveau driver is loading from initramfs, so one would need two separate initrd.img files, each built with the different driver.
                I could be wrong, but I believe using the "nomodeset" parameter should override nouveau in the initramfs, and allow one to use the blob. I'll do more testing in the coming days.

                That's probably not a big problem, as the grub menu can be set up for different initrd.img files, but the fact that both the prop driver and nouveau use their own versions of nvidia.ko (same file name, different drivers) might be a real challenge, since as far as I know grub can't go into the file system and rename them before booting the kernel.
                This is interesting, because on my machines, nouveau does not have an nvidia.ko, and nvidia is not listed in lsmod. It could be possible that it is left-over from a blob install?

                So just changing xorg.conf and booting with nomodeset probably won't do it. And repeat all of the above with each kernel, xorg, or other update that generates a new initramfs. Still it would be nice, as trying to maintain two separate but otherwise equal systems for the two drivers may not be reasonable in the long run.
                I imagine the devs will figure something out, and if not, perhaps we can collaborate on a "How-To."

                I appreciate your responses.
                You are very welcome. I've responded to your posts in the past, but it looks like I've finally managed to be of some assistance... I was beginning to think I was all hot air. :b

                I just question the wisdom of doing this for the LTS release before the project is really completed.
                The way I look at it, is as a replacement for the blob, it is obviously lacking, but as a replacement for the NV driver that is the current default (I think) it is more than adequate. Nouveau is actually based on nvidia's open source NV driver, if I recall correctly, so nouveau consists of that plus whatever they have managed to reverse engineer. As long as there is an easy path to switch between the two, as there is with the NV driver, I think this will ultimately be a good thing for the end-user. 10.04 is still in alpha, so we shall see.

                Also regarding the fan deal, hopefully with nouveau shipping with most major distros, as well as the kernel itself, this should motivate some open source solutions, whether through nouveau or with 3rd party open source apps.

                -Andy
                "No theory, no ready-made system, no book that has ever been written will save the world. I cleave to no system. I am a true seeker." - Mikhail Bakunin

                Comment


                  #9
                  Re: Setting screen resolution with nouveau/lucid

                  Thanks again for your reply.

                  Just for the fun of it, I tried nexuiz under nouveau. Advice -> don't. Took me about 10 minutes to get it shut down, each mouse movement took about 30 seconds to complete. So rendering is there, but slower than you want to try. Haven't tried the xrender thing yet, but I will.

                  This is interesting, because on my machines, nouveau does not have an nvidia.ko, and nvidia is not listed in lsmod. It could be possible that it is left-over from a blob install?
                  I read this on another board somewhere, and it seemed to me that when I installed nouveau over the top of the blob, I got some message about a conflict with nvidia.ko. Seemed nouveau was installing something as nvidia.ko, but I suppose that could be a dummy package of some kind. I did try to get them to coexist, and they wouldn't -- only the most recently installed driver would work.

                  One of the problems I have here is that I still can't get any of the install CDs to work (despite having filed a bug report), so I'm stuck using a copy of my full system, which is quite large and may have things in it that affect the display. I'm messing around with this again, and if I can get it to work, I'm going to see if I can come up with a way for them to coexist.

                  I'm not as 'down' on the blob as some people. Compared to the "support" other manufacturers give to their hardware under linux, NVIDIA has done a magnificent job, which is why I bought their hardware in the first place. But it would be nice to see a real, 3d-accelerated driver for this in the opensource world. Kind of the finishing touches on the movement linux started.
                  We only have to look at ourselves to see how intelligent life might develop into something we wouldn't want to meet. -- Stephen Hawking

                  Comment


                    #10
                    Re: [solved] Setting screen resolution with nouveau/lucid

                    Thanks again for your reply.
                    You're quite welcome.

                    Just for the fun of it, I tried nexuiz under nouveau. Advice -> don't. Took me about 10 minutes to get it shut down, each mouse movement took about 30 seconds to complete. So rendering is there, but slower than you want to try. Haven't tried the xrender thing yet, but I will.
                    Ouch, sounds painful. AFAIK, the nouveau 3d support is not being included in ubuntu, so it's likely that was all being done in software. I imagine when I try it, I'll have to manually compile mesa with the instructions from the nouveau site. If you actually want to experiment with nouveau's 3d support, you would need to experiment with nouveau's mesa 3d driver at:

                    http://nouveau.freedesktop.org/wiki/

                    Probably have to manually compile it, should be instructions. It is currently unsupported, but I guess the Fedora folks got it working, so who knows...

                    Just an FYI, I actually wrote a mod for OpenArena, called Open Arena Fortress, or OAF. It isn't nearly as full featured as a team fortress type game, but it does allow for basic player-class selection, or even custom class creation. Anyway, it's GPLed code, so people are free to make what they want of it.

                    http://oaf.mutualads.org/

                    I read this on another board somewhere, and it seemed to me that when I installed nouveau over the top of the blob, I got some message about a conflict with nvidia.ko. Seemed nouveau was installing something as nvidia.ko, but I suppose that could be a dummy package of some kind. I did try to get them to coexist, and they wouldn't -- only the most recently installed driver would work.
                    It could be possible that having the blob nvidia.ko loaded would prevent nouveau from working.

                    Some things you could try for switching:

                    alt-f1 to a terminal and login.

                    sudo /etc/init.d/kdm stop (this will shut down KDE and X)

                    sudo rmmod nvidia (unload the blob)

                    sudo modprobe lbm_drm

                    sudo modprobe lbm_ttm

                    sudo modprobe lbm_nouveau

                    Rename xorg.conf or change the nvidia driver line to nouveau.

                    This should unload anything related to the blob, and get you to a state where nouveau can function. Then:

                    sudo /etc/init.d/kdm start

                    You could probably make a script to automate the process, I'll post one if you'd like.

                    I'm actually using nouveau from the 2.6.33 kernel, so the module names are slightly different, I'm working off memory.

                    I'm not as 'down' on the blob as some people. Compared to the "support" other manufacturers give to their hardware under linux, NVIDIA has done a magnificent job, which is why I bought their hardware in the first place. But it would be nice to see a real, 3d-accelerated driver for this in the opensource world. Kind of the finishing touches on the movement linux started.
                    I hear ya, I've been quite vocal that I think nvidia should help with nouveau efforts, or release documentation as AMD has done, but I recognize they probably have the best linux 3d driver right now, and that is certainly commendable... I'm all about the opensource, but even a proprietary driver is better than nothing, and their proprietary driver is quite good.
                    "No theory, no ready-made system, no book that has ever been written will save the world. I cleave to no system. I am a true seeker." - Mikhail Bakunin

                    Comment


                      #11
                      Re: [solved] Setting screen resolution with nouveau/lucid

                      I did some experimenting, and here is what I came up with:

                      Using the system with nouveau installed, I booted with the 'nomodeset' option. I read on a nouveau board that nouveau requires mode setting, and without it, it won't work. Confirmed -- you can prevent nouveau from loading and running with the 'nomodeset' option (we knew that).

                      With the system booted this way, and from the console with kdm stopped, I was able to install the proprietary NVIDIA driver (190.53 -- for some reason, the 195's crash during install, but that is on all of my systems -- some other problem). I then copied over the xorg.conf file from the system where the blob is installed. So I have an xorg.conf-nouveau and an xorg.conf-nvidia. Copying the xorg.conf-nvidia to xorg.conf and starting kdm brought up the screen with the blob running. I then copied xorg.conf-nouveau to xorg.conf, reboot without the nomodeset option, and I have nouveau running.

                      So yes, they can coexist. But I'm not sure how to resolve the need for 2 different xorg.conf files, and no way I can tell to choose them at boot. Note I did not have to mess with initramfs at all.

                      The problem with the nvidia.ko thing occurs if you try to install the blob with the system booted without the nomodeset option. The installer says that nvidia.ko can't get control of the graphics hardware (true, with nouveau loaded) and quits without completing the install.

                      Experiments to do:

                      1. Rebuild initramfs and see what happens (could get ugly).

                      2. Try installing nouveau on the system that already has the blob (my guess is it will work).

                      3. See if I can find a way to rig the xorg.conf file so that certain parts work with nvidia and not nouveau, and vv.

                      So far I'm not sure how to do that. I guess what we really need is a script early in the boot process that determines whether nouveau can load or not, and based on that, chooses an xorg.conf appropriately.

                      Edit: I should mention that while nouveau is supposed to work without an xorg.conf, on my system, it won't, and it falls back to vesa if there is no xorg.conf.

                      Hacking away...
                      We only have to look at ourselves to see how intelligent life might develop into something we wouldn't want to meet. -- Stephen Hawking

                      Comment


                        #12
                        Re: [solved] Setting screen resolution with nouveau/lucid

                        1. Rebuild initramfs and see what happens (could get ugly).

                        2. Try installing nouveau on the system that already has the blob (my guess is it will work).
                        1. Updating initramfs doesn't seem to be an issue. Apparently nouveau is there, but with the nomodeset option, does not load, so it doesn't cause the nvidia driver a problem.

                        2. This didn't work. Plymouth keeps crashing on bootup, and I haven't been able to figure out why. On the system I originally set this up with, it work fine. On the new setup, it crashes, and takes the whole boot process with it. A regression maybe? I have removed all traces of usplash. Booting without plymouth works fine.

                        Haven't got around to playing with xorg.conf files yet. Right now, you need to have either the nouveau version or the nvidia version as xorg.conf before booting the system, and you need to remember which is which, else the boot process will crash.

                        Edit: Have tried removing/reinstalling several times. Nouveau itself works, plymouth does not. On the original system I installed nouveau on, both work fine. I am probably missing a step somewhere. This is the problem working with systems that have a lot of software installed on them -- you never know what might be causing a problem. As it stands, there is no difference between the two systems that I can find (they are exact copies of each other). So I'm stumped on why plymouth won't work on one system, and does on the other. For what it's worth, if I copy the initrd.img from the system where it does work over to the one that doesn't, and reboot, it works, but updating initramfs kills it. So something is wrong in there somewhere.

                        Further edit: Switching from opengl to xrender works; compositing, but not all of the effects, now work with nouveau.

                        Furthermore: Problem with plymouth solved. I had removed the cryptsetup package from the system because of some errors. Evidently it is required for plymouth to work, though it is not pulled in as a dependency. Reinstalling cryptsetup fixed plymouth. Onward.

                        We only have to look at ourselves to see how intelligent life might develop into something we wouldn't want to meet. -- Stephen Hawking

                        Comment

                        Working...
                        X