Announcement

Collapse
No announcement yet.

black screen with kubuntu 8.04 x86_64 and fglrx 8.5

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • black screen with kubuntu 8.04 x86_64 and fglrx 8.5

    Hi

    Well, i've just switched from my old opensuse/ati9600, and i'm just having problems with fglrx.

    I decided to install the latest version, and seems to get installed fine (with apt and also "manually" generating the packages with ati installer). In fact manual installation was generating some error messages (after switching from ati driver to fglrx), but i was able to fix it using this "guide": http://ubuntuforums.org/showthread.php?t=785107

    Anyway, every time i install it i get a black screen at boot time, when the X server is going to start. The computer freezes, the keyboard doesn't work and i can't even go to a text terminal to make anything. In the end i have to force reboot. If i start in single user mode i can see loaded the driver by typing lsmod (there it is).

    How can i check where's the problem? Have you seen something similar?

    Regards

  • #2
    well, i had not modified the file /etc/default/linux-restricted-modules-common

    i've added fglrx to the list manually, and i've seen once the X mouse cursor appearing, but having a veeery slow movement, just previous to a system reboot

    the second time desktop's background has started to appear, but again X server freezing and system reboot

    my config looks like this:

    Code:
    Section "Device"
            Identifier      "Configured Video Device"
            Driver          "fglrx"
            Option          "XAANoOffscreenPixmaps"
            Option          "AccelMethod"   "XAA"#either XAA or EXA. "XAA" is the default and safe choice
            Option          "ColorTiling"   "on"
            Option          "EnablePageFlip"        "true"#only works with accelmethod "XAA"
            Option          "AccelDFS"      "true"#seemed to speed things up using EXA acceleration
            Option          "TripleBuffer"  "true"#This *might* help if you use something like Beryl and have slow video playback.
            Option          "DynamicClocks" "on"#This is for laptop users, it saves energy when in battery mode.
            Option          "DMAForXv"      "true"#This can speed up movie playback but can in rare cases case instability
            Option          "TexturedVideo" "on"
            Option          "VideoOverlay"  "on"
            Option          "OpenGLOverlay" "off"
            Busid           "PCI:1:0:0"#must match your lspci output
    EndSection
    
    Section "ServerLayout"
            Option          "AIGLX" "Off"
            Identifier      "Default Layout"
            screen "Default Screen"
    EndSection
    
    Section "DRI"
            Mode    0666
    EndSection
    
    Section "Extensions"
            Option          "Composite"     "Enable"
    EndSection
    any idea?

    regards

    P.D.: my mobo is gigabyte X48-DQ6, and i have 8 GB of ram

    Comment


    • #3
      Same here ...

      Hi,

      same problem with only 4Gb of RAM.

      Achieved to get Xorg to work disabling the memory remapping in the bios (chipset --> advanced options on an asus P5E).

      That allows me to use X with 2D and 3D accel but that's as if I only had 3.3 Gb of ram ... which can be acceptable on a 4Gb amount but would be really frustrating on a 8Gb one ...

      If it can help you waiting for AMD/ATI to provide us with working drivers ...

      Comment


      • #4
        Originally posted by Mamonetti View Post
        Hi

        Anyway, every time i install it i get a black screen at boot time, when the X server is going to start. The computer freezes, the keyboard doesn't work and i can't even go to a text terminal to make anything. In the end i have to force reboot. If i start in single user mode i can see loaded the driver by typing lsmod (there it is).

        How can i check where's the problem? Have you seen something similar?

        Regards
        Please read this thread. There is a issue between Asus mainboards and fglrx. Please report if changing the mtrr table fix your problem.

        Comment


        • #5
          Well ...

          Do you mean it's possible to change "manually" the MTRR table ?

          It's not an asus bios issue, but a fglrx one ... unable to work on a computer with more than 4Gb "enabled" ...

          I wish I had the solution ...

          Comment


          • #6
            My init script:

            cat /mnt/rescue/etc/rcS.d/S56mtrr

            Code:
            #! /bin/sh
            ### BEGIN INIT INFO
            # Provides:          mtrrmod
            # Required-Start:
            # Required-Stop:
            # Default-Start:     S
            # Default-Stop:
            # Short-Description: fix buggy mtrr table
            # Description:
            #
            ### END INIT INFO
            
            case "$1" in
              start|"")
                    # Clean /tmp, /var/lock, /var/run
                    #. /lib/init/bootclean.sh
                    echo "disable=00" > /proc/mtrr
                    echo "disable=01" > /proc/mtrr
                    echo "disable=02" > /proc/mtrr
                    echo "disable=03" > /proc/mtrr
                    echo "disable=04" > /proc/mtrr
                    #echo "disable=05" > /proc/mtrr
                    echo "base=0x0000000000 size=0x0080000000 type=write-back" > /proc/mtrr
                    echo "base=0x0080000000 size=0x0040000000 type=write-back" > /proc/mtrr
                    echo "base=0x00c0000000 size=0x0010000000 type=write-back" > /proc/mtrr
                    echo "base=0x0100000000 size=0x0020000000 type=write-back" > /proc/mtrr
                    echo "base=0x0120000000 size=0x0010000000 type=write-back" > /proc/mtrr
                    ;;
            
              restart|reload|force-reload)
                    echo "Error: argument '$1' not supported" >&2
                    exit 3
                    ;;
              stop)
                    # No-op
                    ;;
              *)
                    echo "Usage: myinit.sh [start|stop]" >&2
                    exit 3
                    ;;
            esac
            
            :

            Comment


            • #7
              First of all i have a gigabyte x48-dq6 mobo, not asus.. but maybe the problem is also related to MTRR.

              Right now i'm using open source ati driver, and my lspci -v output looks like this:

              Code:
              01:00.0 VGA compatible controller: ATI Technologies Inc Radeon HD 3870 (prog-if 00 [VGA controller])
                      Subsystem: ASUSTeK Computer Inc. Unknown device 022a
                      Flags: bus master, fast devsel, latency 0, IRQ 10
                      Memory at d0000000 (64-bit, prefetchable) [size=256M]
                      Memory at e5000000 (64-bit, non-prefetchable) [size=64K]
                      I/O ports at 9000 [size=256]
                      [virtual] Expansion ROM at e4000000 [disabled] [size=128K]
                      Capabilities: <access denied>
              I don't know why there are only 256 MB, when the card has 512 (and should not be a bios problem, because from my windows system it detects the card with all its memory available).

              My /proc/mtrr file is:

              Code:
              reg00: base=0x00000000 (   0MB), size=4096MB: write-back, count=1
              reg01: base=0xe0000000 (3584MB), size= 512MB: uncachable, count=1
              reg02: base=0xd0000000 (3328MB), size= 256MB: uncachable, count=1
              reg03: base=0x100000000 (4096MB), size=4096MB: write-back, count=1
              reg04: base=0x200000000 (8192MB), size=1024MB: write-back, count=1
              reg05: base=0x230000000 (8960MB), size= 256MB: uncachable, count=1
              reg06: base=0xcff00000 (3327MB), size=   1MB: uncachable, count=1
              Again a 256 MB range for the card.

              As you can see there are 2 ranges with 4 GB, that cover all my 8 GB of RAM. I was thinking about extending directly the range for the card, but it may be a problem, because right next there's another extra 512 MB range, and I don't know what's it for.

              How can I know the meaning of all remaining ranges? (all but 00, 02 and 03)

              According to the post related previously the RAM range should be set as write-back, so a way here could be removing 01 and 02, because 00 should cover the hole 4 GB range, including those directions.

              Anyway, how can a different memory caching strategy make a system freeze? IMHO it makes no sense, but probably there's an explanation for this (assuming it gets confirmed, of course).

              Regards

              Comment


              • #8
                Try this:
                - boot system without framebuffer
                - remove every mtrr entry with "echo disable ...."
                - start x-server with "X" or "startx" witch takes hours
                If this works your mainboard has the mtrr issue.

                Comment


                • #9
                  I tried to use your script (slightly edited) zappbrannigan, but it didn't end well. The first thing it printed was "BUG: unable to handle kernel paging request at ffffffff" and it continued to slowly print out Stack (Trace?) and Call Traces, an Oops for each CPU core and stopped outputting with "Fixing recursive fault but reboot is needed!" A reboot did not change anything (but I didn't expect it would). I took a few pictures of all the output so if it will help someone explain what happened or why I'd be happy to post them.

                  I booted my gparted livecd to unlink the fix-mtrr script and everything is as it was again.

                  This is the modified script I used, I saved it as fix-mtrr in /etc/init.d and linked it to /etc/rcS.d/S56mtrr. I have 4GB of memory in 2 2GB dimms.
                  Code:
                  #! /bin/sh
                  ### BEGIN INIT INFO
                  # Provides:          mtrrmod
                  # Required-Start:
                  # Required-Stop:
                  # Default-Start:     S
                  # Default-Stop:
                  # Short-Description: fix buggy mtrr table
                  # Description:
                  #
                  ### END INIT INFO
                  
                  case "$1" in
                    start|"")
                          # Clean /tmp, /var/lock, /var/run
                          #. /lib/init/bootclean.sh
                          echo "disable=00" > /proc/mtrr
                          echo "disable=01" > /proc/mtrr
                          echo "disable=02" > /proc/mtrr
                          #echo "disable=03" > /proc/mtrr
                          #echo "disable=04" > /proc/mtrr
                          #echo "disable=05" > /proc/mtrr
                          echo "base=0x0000000000 size=0x0080000000 type=write-back" > /proc/mtrr
                          echo "base=0x0080000000 size=0x0040000000 type=write-back" > /proc/mtrr
                          echo "base=0x00c0000000 size=0x0010000000 type=write-back" > /proc/mtrr
                          echo "base=0x0100000000 size=0x0020000000 type=write-back" > /proc/mtrr
                          echo "base=0x0120000000 size=0x0010000000 type=write-back" > /proc/mtrr
                          ;;
                  
                    restart|reload|force-reload)
                          echo "Error: argument '$1' not supported" >&2
                          exit 3
                          ;;
                    stop)
                          # No-op
                          ;;
                    *)
                          echo "Usage: myinit.sh [start|stop]" >&2
                          exit 3
                          ;;
                  esac
                  
                  :
                  this is my current mtrr:

                  reg00: base=0x00000000 ( 0MB), size=2048MB: write-back, count=1
                  reg01: base=0x80000000 (2048MB), size=1024MB: write-back, count=1
                  reg02: base=0xc0000000 (3072MB), size= 256MB: write-back, count=1

                  Is there some obvious error I've made somewhere? I do use a VESA framebuffer (vga=791)...

                  Comment


                  • #10
                    Originally posted by Mamonetti View Post
                    Anyway, how can a different memory caching strategy make a system freeze? IMHO it makes no sense, but probably there's an explanation for this (assuming it gets confirmed, of course).
                    If the memory ranges the BIOS gives the operating system are wrong, your system is toast as soon as the OS tries to access the incorrectly configured memory.

                    I had precisely your problem (boots up but system locks with black screen when fglrx starts) on an M2A-VM motherboard because it shipped with an old BIOS which gave invalid memory configuration data to the OS if you installed 4GB or more of RAM. A BIOS upgrade made it work with no problems.

                    Comment


                    • #11
                      Originally posted by zappbrannigan View Post
                      Try this:
                      - boot system without framebuffer
                      - remove every mtrr entry with "echo disable ...."
                      - start x-server with "X" or "startx" witch takes hours
                      If this works your mainboard has the mtrr issue.
                      I've tried this, and after a looot of time X server has been able to launch, but many processes have failed (such as kicker or kdesktop).

                      At startx's output i've seen a pair of messages:
                      - FATAL: could not open /lib/modules/2.6.24-17-generic/volatile/fglrx.ko: no such file or directory. Kernel was updated a few days ago and i've not reinstalled the driver, so i think this makes sense.
                      - fglrx(0): firegl_SetSuspendResumeState FAILED -1003. (i don't know xD)

                      Some messages at Xorg.log:

                      ...

                      drmOpenDevice: node name is /dev/dri/card0
                      drmOpenDevice: open result is -1, (No such device or address)
                      drmOpenDevice: open result is -1, (No such device or address)
                      drmOpenDevice: Open failed

                      ...

                      (WW) fglrx(0): Failed to open DRM connection
                      (II) fglrx(0): [FB] Find the MC FB aperturs range(MCFBBase = 0xc0000000, MCFBSize = 0x20000000)
                      (--) fglrx(0): VideoRAM: 262144 kByte, Type: DDR4
                      (II) fglrx(0): PCIE card detected

                      ... (hmm 256 MB again??)

                      (**) fglrx(0): ATI GART size: 255 MB
                      (WW) fglrx(0): No DRM connection for driver fglrx.
                      (II) fglrx(0): [drm] DRM buffer queue setup: nbufs = 100 bufsize = 65536

                      ...

                      (II) fglrx(0): driver needs X.org 7.1.x.y with x.y >= 0.0
                      (II) fglrx(0): detected X.org 7.1.0.90
                      (EE) fglrx(0): atiddxDriScreenInit failed, GPS not been initialized.
                      (WW) fglrx(0): ***********************************************
                      (WW) fglrx(0): * DRI initialization failed! *
                      (WW) fglrx(0): * (maybe driver kernel module missing or bad) *
                      (WW) fglrx(0): * 2D acceleraton available (MMIO) *
                      (WW) fglrx(0): * no 3D acceleration available *
                      (WW) fglrx(0): ********************************************* *

                      ...

                      (WW) fglrx(0): Textured Video not supported without DRI enabled.
                      (WW) fglrx(0): Video Overlay not supported on AVIVO based graphics cards. For XVideo support use Option "TexturedVideo".

                      ...


                      So, what can i do? 256 MB card?? probably MTRR issue here, with gigabyte x48-dq6 (bios F6)? what config values must be used for it? (considering that i don't know the meaning of some entries at my /proc/mtrr file)

                      Regards

                      Comment


                      • #12
                        Here we can see the contents of /proc/mtrr on a computer that is EXACTLY the same as mine, but having ubuntu 8.04 x86_64 (gnome instead of kde) and with a nvidia card 8800gt w 512 mb of RAM (his installation has no known problems related to the card or the nvidia driver, even having also the same bios version, that is, F6):

                        reg00: base=0x00000000 ( 0MB), size=4096MB: write-back, count=1
                        reg01: base=0xc0000000 (3072MB), size=1024MB: uncachable, count=1
                        reg02: base=0x100000000 (4096MB), size=4096MB: write-back, count=1
                        reg03: base=0x200000000 (8192MB), size=1024MB: write-back, count=1
                        reg04: base=0xbff00000 (3071MB), size= 1MB: uncachable, count=1

                        And that's the card's related info from lspci -v:

                        01:00.0 VGA compatible controller: nVidia Corporation GeForce 8800 GT (rev a2) (prog-if 00 [VGA controller])
                        Subsystem: ASUSTeK Computer Inc. Unknown device 8267
                        Flags: bus master, fast devsel, latency 0, IRQ 16
                        Memory at de000000 (32-bit, non-prefetchable) [size=16M]
                        Memory at c0000000 (64-bit, prefetchable) [size=256M]
                        Memory at dc000000 (64-bit, non-prefetchable) [size=32M]
                        I/O ports at 9000 [size=128]
                        [virtual] Expansion ROM at df000000 [disabled] [size=128K]
                        Capabilities: <access denied>

                        Why is also showing a 256 mb card? maybe a problem with the bios (or its config)? Anyway we both can see 512 mb cards on windows.

                        Regards

                        Comment


                        • #13
                          Here we can see a screenshot at the other computer:
                          http://img294.imageshack.us/img294/7...xserveruh5.png

                          The ram that appears looks fine, so probably nvidia somehow ignores the info from lspci, because at mtrr it's defining a 1 GB range, while the card has only 512 mb (maybe it's reserving extra directions for some ports).
                          Anyway, it's working, and seems to use all the card's memory.

                          Regards
                          Last edited by Mamonetti; 05-29-2008, 04:34 PM.

                          Comment


                          • #14
                            Originally posted by Mamonetti View Post
                            I've tried this, and after a looot of time X server has been able to launch, ...
                            In other words: the driver works with a modified mtrr table.

                            Originally posted by Mamonetti View Post
                            - FATAL: could not open /lib/modules/2.6.24-17-generic/volatile/fglrx.ko: no such file or directory. Kernel was updated a few days ago and i've not reinstalled the driver, so i think this makes sense.

                            Originally posted by Mamonetti View Post
                            ... (hmm 256 MB again??)
                            The 256 mb doesn't matter. Don't waste your time with other systems. You need to change your mtrr from:

                            reg00: base=0x00000000 ( 0MB), size=4096MB: write-back, count=1
                            reg01: base=0xe0000000 (3584MB), size= 512MB: uncachable, count=1
                            reg02: base=0xd0000000 (3328MB), size= 256MB: uncachable, count=1
                            reg03: base=0x100000000 (4096MB), size=4096MB: write-back, count=1
                            reg04: base=0x200000000 (8192MB), size=1024MB: write-back, count=1
                            reg05: base=0x230000000 (8960MB), size= 256MB: uncachable, count=1
                            reg06: base=0xcff00000 (3327MB), size= 1MB: uncachable, count=1

                            into:
                            base=0x00000000 ( 0MB), size=2048MB: write-back, count=1
                            base=0x80000000 (2048MB), size=1024MB: write-back, count=1
                            base=0xc0000000 (3072MB), size= 128MB: write-back, count=1
                            base=0x__000000 (3___MB), size= 64MB: write-back, count=1
                            base=0x__000000 (3___MB), size= 32MB: write-back, count=1
                            base=0x100000000 (4096MB), size=4096MB: write-back, count=1
                            base=0x200000000 (8192MB), size=512MB: write-back, count=1
                            base=0x___000000 (8___MB), size=256MB: write-back, count=1

                            You need to calculate and replace the underlines.

                            Comment


                            • #15
                              Hmm in my config you can see overlapping ranges, while at the one you provide it doesn't happen. What's the meaning of this?

                              All ranges should sum at least 8 GB?

                              Why there's no range at base=0xd0000000 of at least 512 MB of the card's ram?

                              How did you get those values for every range length?

                              Why are you adding 8 entries instead of the original 7?

                              I'm sorry, but i don't get the key. I believe every entry is representing an address
                              range for a "device". 2 ranges of 4 GB may be for system's RAM, 512 MB for vga RAM,
                              and i don't know who is putting there the other entries. Is this only used for
                              system RAM and vga RAM? or info of other devices also appears at this file?

                              Thx and regards
                              Last edited by Mamonetti; 05-30-2008, 05:40 PM.

                              Comment

                              Working...
                              X