Skip to contentSkip to conversation

2.6.0-test1: Framebuffer problem

DISCUSSION Amit Shah (by way of Amit Shah <[email protected]>) 4 participants 12 messages Jul 15, 2003 – Jul 21, 2003

lore
Share & tools
lore
#0 lore raw

I have a Riva TNT2 display card. On compiling in framebuffer support and
the other options (like the fonts, vga16 support, etc, relevant part of .config pasted below), the kernel doesn't proceed after some messages (where it initializes the frame buffer)... I just see the grub screen again with some stripes and there's no disk activity thereafter.

#
# Graphics support
#
CONFIG_FB=y
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_VGA16=y
CONFIG_FB_VESA=y
CONFIG_VIDEO_SELECT=y
# CONFIG_FB_HGA is not set
CONFIG_FB_RIVA=y
# CONFIG_FB_I810 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_VIRTUAL is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_PCI_CONSOLE=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_FONT_6x11=y
CONFIG_FONT_PEARL_8x8=y
CONFIG_FONT_ACORN_8x8=y
CONFIG_FONT_MINI_4x6=y
CONFIG_FONT_SUN8x16=y
CONFIG_FONT_SUN12x22=y

#
# Logo configuration
#
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y

--
Amit Shah
http://amitshah.nav.to/

Why do you want to read your code?
The machine will.
-- Sunil Beta

author
#1 lore raw
Quoted 5 lines · On Tuesday 15 Jul 2003 11:17, I wrote:

I have a Riva TNT2 display card. On compiling in framebuffer support and
the other options (like the fonts, vga16 support, etc, relevant part of .config pasted below), the kernel doesn't proceed after some messages (where it initializes the frame buffer)... I just see the grub screen again with some stripes and there's no disk activity thereafter.

the lspci output is:
01:00.0 VGA compatible controller: nVidia Corporation Vanta [NV6] (rev 15) 00:01.0 PCI bridge: Intel Corp. 82850 850 (Tehama) Chipset AGP Bridge (rev
04)

also, with CONFIG_FB disabled, in X, (using the "nv" driver), I get random images thrown all over the screen... if an html page is loading in the background, I'll portions of gifs/jpegs all over my screen, or the toolbars, scroll bars, etc...

Quoted 51 lines

#
# Graphics support
#
CONFIG_FB=y
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_VGA16=y
CONFIG_FB_VESA=y
CONFIG_VIDEO_SELECT=y
# CONFIG_FB_HGA is not set
CONFIG_FB_RIVA=y
# CONFIG_FB_I810 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_VIRTUAL is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_PCI_CONSOLE=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_FONT_6x11=y
CONFIG_FONT_PEARL_8x8=y
CONFIG_FONT_ACORN_8x8=y
CONFIG_FONT_MINI_4x6=y
CONFIG_FONT_SUN8x16=y
CONFIG_FONT_SUN12x22=y

#
# Logo configuration
#
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y

Signature · 6 lines
Amit Shah
http://amitshah.nav.to/

Why do you want to read your code?
 The machine will.
                 -- Sunil Beta
#2 lore raw
Quoted 10 lines
Quoted 10 lines

#
# Graphics support
#
CONFIG_FB=y
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_VGA16=y <---- to many drivers selected. Please

				<---- pick only one.
Quoted 16 lines
Quoted 16 lines

CONFIG_FB_VESA=y
CONFIG_VIDEO_SELECT=y
# CONFIG_FB_HGA is not set
CONFIG_FB_RIVA=y <-----
# CONFIG_FB_I810 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_VIRTUAL is not set

#3 lore raw
Quoted 3 lines · James Simmons
Quoted 1 line
Quoted 1 line

CONFIG_FB_VGA16=y <---- to many drivers selected. Please

				<---- pick only one.
Quoted 1 line
Quoted 1 line

CONFIG_FB_VESA=y

This is a completely sensible selection and works as expected in 2.4 so it really wants fixing anyway

#4 lore raw
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
Quoted 2 lines

CONFIG_FB_VGA16=y <---- to many drivers selected. Please

				<---- pick only one.
Quoted 1 line
Quoted 1 line

CONFIG_FB_VESA=y

This is a completely sensible selection and works as expected in 2.4 so it really wants fixing anyway

It is if you have more than one graphics card. If you only have one card then you will have problems.

author
#5 lore raw
Quoted 11 lines · James Simmons
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
Quoted 1 line

CONFIG_FB_VGA16=y <---- to many drivers selected. Please

				<---- pick only one.
Quoted 1 line
Quoted 1 line

CONFIG_FB_VESA=y

This is a completely sensible selection and works as expected in 2.4 so it really wants fixing anyway

It is if you have more than one graphics card. If you only have one card then you will have problems.

just checked and it works... shouldn't this be documented/fixed? ('cos as Alan said, it works in 2.4).

Signature · 6 lines
Amit Shah
http://amitshah.nav.to/

Why do you want to read your code?
 The machine will.
                 -- Sunil Beta
#6 lore raw
In reply to James Simmons
Quoted 9 lines · James Simmons
Quoted 6 lines
Quoted 3 lines
Quoted 1 line
Quoted 1 line

CONFIG_FB_VGA16=y <---- to many drivers selected. Please

				<---- pick only one.
Quoted 1 line
Quoted 1 line

CONFIG_FB_VESA=y

This is a completely sensible selection and works as expected in 2.4 so it really wants fixing anyway

It is if you have more than one graphics card. If you only have one card then you will have problems.

Then it still needs to be fixed. This works correctly in 2.4

Signature · 1 line
Alan Cox <[email protected]>
#7 lore raw
Quoted 5 lines · Alan Cox
Quoted 4 lines · James Simmons
Quoted 4 lines
Quoted 3 lines
Quoted 1 line
Quoted 1 line

CONFIG_FB_VGA16=y <---- to many drivers selected. Please

				<---- pick only one.
Quoted 1 line
Quoted 1 line

CONFIG_FB_VESA=y

Quoted 7 lines
Quoted 5 lines
Quoted 2 lines

This is a completely sensible selection and works as expected in 2.4 so it really wants fixing anyway

It is if you have more than one graphics card. If you only have one card then you will have problems.

Then it still needs to be fixed. This works correctly in 2.4

Since vesafb can detect whether you booted with a graphics mode, vga16fb should be able to detect you didn't, right?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

#8 lore raw
Quoted 4 lines · Geert Uytterhoeven
Quoted 1 line

Then it still needs to be fixed. This works correctly in 2.4

Since vesafb can detect whether you booted with a graphics mode, vga16fb should be able to detect you didn't, right?

Equally it knows that the frame buffer in question was allocated providing someone is doing the resource handling right

#9 lore raw
Quoted 7 lines · Alan Cox
Quoted 3 lines · Geert Uytterhoeven
Quoted 1 line

Then it still needs to be fixed. This works correctly in 2.4

Since vesafb can detect whether you booted with a graphics mode, vga16fb should be able to detect you didn't, right?

Equally it knows that the frame buffer in question was allocated providing someone is doing the resource handling right

No, that's not so simple, because vesafb requests the linear frame buffer, while vga16fb requests the VGA region.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

#10 lore raw
Quoted 2 lines · Geert Uytterhoeven

No, that's not so simple, because vesafb requests the linear frame buffer, while vga16fb requests the VGA region.

In standard usage mode both of them use the vga registers for palette control..

#11 lore raw
Quoted 3 lines · Alan Cox
Quoted 2 lines · Geert Uytterhoeven

No, that's not so simple, because vesafb requests the linear frame buffer, while vga16fb requests the VGA region.

Correction:
- vesafb uses
o request_mem_region() on the linear frame buffer
o request_region() on the 32 VGA registers (but the return code is ignored because of vgacon)
- vga16fb doesn't use resource management (ugh)
- vgacon uses
o request_region() on the MDA/CGA/EGA/VGA registers

Quoted 1 line

In standard usage mode both of them use the vga registers for palette control..

Vesafb may use a protected mode BIOS call instead.

An additional complexity is that not only vesafb/vga16fb may claim the VGA registers, but also vgacon. And it's allowed for vesafb/vga16fb to take over vgacon.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds