Skip to contentSkip to conversation

Linux 2.4.20-pre4 blows away Xwindows with Matrox G400 and DRM

DISCUSSION Allan Duncan 3 participants 5 messages Aug 20, 2002 – Aug 31, 2002

lore
Share & tools
lore
#0 lore raw

It was OK with pre2, went straight to pre4.
Upon running startx I get a fraction of a second of activity before I'm plunged into an instant reboot. Inspection of the XFree86.0.log shows the first and last lines as:
XFree86 Version 4.2.0 (Red Hat Linux release: 4.2.0-8) / X Window System (protocol Version 11, revision 0, vendor release 6600)
Release Date: 23 January 2002
If the server is older than 6-12 months, or if your card is newer than the above date, look for a newer version before reporting problems. (See http://www.XFree86.Org/)
Build Operating System: Linux 2.4.17-0.13smp i686 [ELF]
Build Host: daffy.perf.redhat.com
...
(==) MGA(0): Write-combining range (0xd8000000,0x2000000)
(II) MGA(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000 (--) MGA(0): 16 DWORD fifo
(==) MGA(0): Default visual is TrueColor
(II) MGA(0): [drm] bpp: 16 depth: 16
(II) MGA(0): [drm] Sarea 2200+664: 2864
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: Open failed
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: Open failed
<EOF>

A good start continues on:
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 7, (OK)
drmGetBusid returned ''
(II) MGA(0): [drm] loaded kernel module for "mga" driver
(II) MGA(0): [drm] created "mga" driver at busid "PCI:1:0:0" (II) MGA(0): [drm] added 8192 byte SAREA at 0xe08e2000
(II) MGA(0): [drm] mapped SAREA 0xe08e2000 to 0x40016000
(II) MGA(0): [drm] framebuffer handle = 0xd8000000
(II) MGA(0): [drm] added 1 reserved context for kernel
(II) MGA(0): [agp] Mode 0x1f000201 [AGP 0x1106/0x3099; Card 0x102b/0x0525]

Selection from my config:
CONFIG_AGP=m
# CONFIG_AGP_INTEL is not set
# CONFIG_AGP_I810 is not set
CONFIG_AGP_VIA=y
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_SWORKS is not set
CONFIG_DRM=y
# CONFIG_DRM_OLD is not set

#
# DRM 4.1 drivers
#
CONFIG_DRM_NEW=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_I810 is not set
CONFIG_DRM_MGA=m

Hardware:
Althon 1600+ XP, Matrox G400, VIA KT266A

#1 lore raw

Also look in dmesg - you should see messages about the loading of the matrox drm module

#2 lore raw
Quoted 3 lines · Alan Cox

Also look in dmesg - you should see messages about the loading of the matrox drm module

I had a look in var/log/dmesg of a good boot, and that stops logging when all the partitions are up. The command "dmesg" goes a little further and includes the agpgart and drm along with eth0 etc., but I can't run _that_ on the failed pre4 'cause it reboots instantly.

The last line of /var/log/messages before "restart" for the failed boot would normally be followed by messages on the start of agpgart followed by drm.

There is a little in the ksymoops, "start modprobe agpgart safemode=0" followed by the first line of the next boot.

I forgot to mention before, I'm running ext3, and the Matrox drivers from 28 Feb 02 (current) on essentially a RedHat 7.3, but with gcc 3.2

Any other logging I could set up?

#3 lore raw
In reply to Allan Duncan

Additional info at end.

Quoted 65 lines · Allan Duncan

It was OK with pre2, went straight to pre4.
Upon running startx I get a fraction of a second of activity before I'm plunged into an instant reboot. Inspection of the XFree86.0.log shows the first and last lines as:
XFree86 Version 4.2.0 (Red Hat Linux release: 4.2.0-8) / X Window System (protocol Version 11, revision 0, vendor release 6600)
Release Date: 23 January 2002
If the server is older than 6-12 months, or if your card is newer than the above date, look for a newer version before reporting problems. (See http://www.XFree86.Org/)
Build Operating System: Linux 2.4.17-0.13smp i686 [ELF]
Build Host: daffy.perf.redhat.com
...
(==) MGA(0): Write-combining range (0xd8000000,0x2000000)
(II) MGA(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000 (--) MGA(0): 16 DWORD fifo
(==) MGA(0): Default visual is TrueColor
(II) MGA(0): [drm] bpp: 16 depth: 16
(II) MGA(0): [drm] Sarea 2200+664: 2864
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such device)
drmOpenDevice: Open failed
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
open result is -1, (No such device)
drmOpenDevice: Open failed
<EOF>

A good start continues on:
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 7, (OK)
drmGetBusid returned ''
(II) MGA(0): [drm] loaded kernel module for "mga" driver
(II) MGA(0): [drm] created "mga" driver at busid "PCI:1:0:0" (II) MGA(0): [drm] added 8192 byte SAREA at 0xe08e2000
(II) MGA(0): [drm] mapped SAREA 0xe08e2000 to 0x40016000
(II) MGA(0): [drm] framebuffer handle = 0xd8000000
(II) MGA(0): [drm] added 1 reserved context for kernel
(II) MGA(0): [agp] Mode 0x1f000201 [AGP 0x1106/0x3099; Card 0x102b/0x0525]

Selection from my config:
CONFIG_AGP=m
# CONFIG_AGP_INTEL is not set
# CONFIG_AGP_I810 is not set
CONFIG_AGP_VIA=y
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_SWORKS is not set
CONFIG_DRM=y
# CONFIG_DRM_OLD is not set

#
# DRM 4.1 drivers
#
CONFIG_DRM_NEW=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_I810 is not set
CONFIG_DRM_MGA=m

Quoted 2 lines

Hardware:
Althon 1600+ XP, Matrox G400, VIA KT266A

I have done some more digging, including the same kernel on a second host. The second box has a K6, VIA MVP3 chipset, and a G200 with 8M, otherwise the software versions are the same. It works fine. Taking the .config used for that, I redid the kernel on the AthlonXP / VIA KT266a / G400, almost instant reboot.

One of the crashes was a touch later, and the last few lines from /var/log/messages was:

Aug 21 20:46:32 localhost login(pam_unix)[1063]: session opened for user alland by LOGIN(uid=0)
Aug 21 20:46:32 localhost  -- alland[1063]: LOGIN ON tty1 BY alland
Aug 21 20:50:22 localhost modprobe: modprobe: Can't locate module char-major-226
Aug 21 20:50:22 localhost modprobe: modprobe: Can't locate module char-major-226
Aug 21 20:50:22 localhost kernel: Linux agpgart interface v0.99 (c) Jeff Hartmann
Aug 21 20:50:22 localhost kernel: agpgart: Maximum main memory to use for agp memory: 439M
Aug 21 20:50:22 localhost kernel: agpgart: Detected Via Apollo Pro KT266 chipset
Aug 21 20:50:22 localhost kernel: agpgart: AGP aperture is 128M @ 0xd0000000
Aug 21 20:50:22 localhost kernel: [drm] AGP 0.99 on VIA Apollo KT133 @ 0xd0000000 128MB
Aug 21 20:50:22 localhost kernel: [drm] Initialized mga 3.0.2 20010321 on minor 0
Aug 21 20:57:29 localhost syslogd 1.4.1: restart.

The "char-major-226" corresponds to the /dev/dri/card0 above, and the failure point seems to be when the drmOpenDevice succeeds on the third attempt.

I tried unsetting CONFIG_DRM, but it still fails.

#4 lore raw
Quoted 21 lines · Allan Duncan

I have done some more digging, including the same kernel on a second host. The second box has a K6, VIA MVP3 chipset, and a G200 with 8M, otherwise the software versions are the same. It works fine. Taking the .config used for that, I redid the kernel on the AthlonXP / VIA KT266a / G400, almost instant reboot.

One of the crashes was a touch later, and the last few lines from /var/log/messages was:

Aug 21 20:46:32 localhost login(pam_unix)[1063]: session opened for user alland by LOGIN(uid=0)
Aug 21 20:46:32 localhost  -- alland[1063]: LOGIN ON tty1 BY alland
Aug 21 20:50:22 localhost modprobe: modprobe: Can't locate module char-major-226
Aug 21 20:50:22 localhost modprobe: modprobe: Can't locate module char-major-226
Aug 21 20:50:22 localhost kernel: Linux agpgart interface v0.99 (c) Jeff Hartmann
Aug 21 20:50:22 localhost kernel: agpgart: Maximum main memory to use for agp memory: 439M
Aug 21 20:50:22 localhost kernel: agpgart: Detected Via Apollo Pro KT266 chipset
Aug 21 20:50:22 localhost kernel: agpgart: AGP aperture is 128M @ 0xd0000000
Aug 21 20:50:22 localhost kernel: [drm] AGP 0.99 on VIA Apollo KT133 @ 0xd0000000 128MB
Aug 21 20:50:22 localhost kernel: [drm] Initialized mga 3.0.2 20010321 on minor 0
Aug 21 20:57:29 localhost syslogd 1.4.1: restart.
Quoted 4 lines

The "char-major-226" corresponds to the /dev/dri/card0 above, and the failure point seems to be when the drmOpenDevice succeeds on the third attempt.

I tried unsetting CONFIG_DRM, but it still fails.

I have seen something similar on 2.4.19-pre8-aa3, but I haven't tried to debug the setup. I did a hardware reset (software reset would just reboot after X started again) and was able to avoid the problem. A few days later I upgraded it to 2.4.19. I haven't seen the problem since then, but it has only been a few days.

00:00.0 Host bridge: Intel Corp. 82820 820 (Camino) Chipset Host Bridge (MCH) (rev 03)
00:01.0 PCI bridge: Intel Corp. 82820 820 (Camino) Chipset PCI to AGP Bridge (rev 03)
00:1e.0 PCI bridge: Intel Corp. 82801AA PCI Bridge (rev 02) 00:1f.0 ISA bridge: Intel Corp. 82801AA ISA Bridge (LPC) (rev 02) 00:1f.1 IDE interface: Intel Corp. 82801AA IDE (rev 02)
00:1f.2 USB Controller: Intel Corp. 82801AA USB (rev 02)
00:1f.3 SMBus: Intel Corp. 82801AA SMBus (rev 02)
00:1f.5 Multimedia audio controller: Intel Corp. 82801AA AC'97 Audio (rev 02) 01:00.0 VGA compatible controller: nVidia Corporation Riva TnT2 [NV5] (rev 11)

Mike