Skip to contentSkip to conversation

Problem with framebuffer in 2.6.0-test3

DISCUSSION Kurt Roeckx 2 participants 7 messages Aug 15, 2003 – Aug 16, 2003 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

If I compile with framebuffer I get weird results during boot.

When I use "vga=normal", I get this weird screen during boot. It doesn't show any text. It just lots of coloured pixels.

When I use "vga=0x301" I just get a blank screen during boot.

In the init scripts I call fbset to set the proper resolution, which work in both cases.

Here is part of my .config:
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 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=y
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_VIRTUAL is not set

Quoted 1 line

From dmesg (with vga=0x301)

Linux version 2.6.0-test3 (root@Q) (gcc version 2.95.3 20010315 (release)) #6 Mon Aug 11 19:47:08 CEST 2003
Video mode to be used for restore is 301
...
Console: colour dummy device 80x25
...
fb: 3Dfx Banshee memory = 16384K
vesafb: abort, cannot reserve video memory at 0xe6000000
vesafb: framebuffer at 0xe6000000, mapped to 0xcf802000, size 16384k
vesafb: mode is 640x480x8, linelength=640, pages=53
vesafb: protected mode interface info at c000:7e95
vesafb: scrolling: redraw
fb1: VESA VGA frame buffer device
vga16fb: initializing
vga16fb: mapped to 0xc00a0000
fb2: VGA16 VGA frame buffer device
Console: switching to colour frame buffer device 80x30

With vga=normal
Linux version 2.6.0-test3 (root@Q) (gcc version 2.95.3 20010315 (release)) #6 Mon Aug 11 19:47:08 CEST 2003

Aug 11 20:13:45 Q kernel: Video mode to be used for restore is f00

...
Console: colour VGA+ 80x25
...
fb: 3Dfx Banshee memory = 16384K
vga16fb: mapped to 0xc00a0000
fb1: VGA16 VGA frame buffer device
Console: switching to colour frame buffer device 80x30

Kurt

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw
Quoted 9 lines · Andrew Morton
Quoted 2 lines · Kurt Roeckx

If I compile with framebuffer I get weird results during boot.

Please test

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test3/2.6.0-test3-mm2/broken-out/fbdev.patch

and send a report to linux-kernel and James Simmons <[email protected]>

It behaves just the same as plain 2.6.0-test3.

Kurt

#3 lore raw
Quoted 6 lines · Andrew Morton
Quoted 4 lines
Quoted 2 lines · Kurt Roeckx

If I compile with framebuffer I get weird results during boot.

Quoted 7 lines
Quoted 5 lines

Please test

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.0-test3/2.6.0-test3-mm2/broken-out/fbdev.patch

and send a report to linux-kernel and James Simmons <[email protected]>

It behaves just the same as plain 2.6.0-test3.

Bad settings.

#4 lore raw
In reply to Kurt Roeckx
Quoted 3 lines

When I use "vga=normal", I get this weird screen during boot. It doesn't show any text. It just lots of coloured pixels.

This tells the the BIOS to set the video mode to a VGA text hardware mode. This will never work with any of the framebuffer drivers. That is meant only for vgacon.

Quoted 1 line

When I use "vga=0x301" I just get a blank screen during boot.

This will only work with VESA fbdev.

Quoted 2 lines

In the init scripts I call fbset to set the proper resolution, which work in both cases.

fbset doesn't work with VESA fbdev because VESA doesn't support mode changes.

Quoted 14 lines

Here is part of my .config:
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 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set

Quoted 8 lines

# CONFIG_FB_ATY is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
CONFIG_FB_3DFX=y
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_VIRTUAL is not set

Ah. You have a Voodoo 3 card. Please only us that driver. Also make sure you have CONFIG_FRAMEBUFFER_CONSOLE set.

#5 lore raw
Quoted 3 lines · James Simmons

Ah. You have a Voodoo 3 card. Please only us that driver. Also make sure you have CONFIG_FRAMEBUFFER_CONSOLE set.

This used to work perfectly in 2.4.

I disabled CONFIG_FB_VGA16 and CONFIG_FB_VESA now I get:

LD .tmp_vmlinux1
drivers/built-in.o(.text+0x742cb): In function `tdfxfb_imageblit':
: undefined reference to `cfb_imageblit'
make: *** [.tmp_vmlinux1] Error 1

Kurt

#6 lore raw
Quoted 2 lines

I disabled CONFIG_FB_VGA16 and CONFIG_FB_VESA now I get:

I think the issue is that only one framebuffer is mapped to the console. VESA sets the graphics state before any fbdev drivers are registered. I believe that vga16fb is registered to the console. Because vga16fb expects a different hardware state than what VESA has done you get the problems you experience.

Quoted 4 lines

LD .tmp_vmlinux1
drivers/built-in.o(.text+0x742cb): In function `tdfxfb_imageblit':
: undefined reference to `cfb_imageblit'
make: *** [.tmp_vmlinux1] Error 1

??? That shouldn't happen.

#7 lore raw
Quoted 7 lines · James Simmons
Quoted 5 lines

LD .tmp_vmlinux1
drivers/built-in.o(.text+0x742cb): In function `tdfxfb_imageblit':
: undefined reference to `cfb_imageblit'
make: *** [.tmp_vmlinux1] Error 1

??? That shouldn't happen.

I changed drivers/video/Makefile like this:

-obj-$(CONFIG_FB_3DFX) += tdfxfb.o
+obj-$(CONFIG_FB_3DFX) += tdfxfb.o cfbimgblt.o

And now it works.

Kurt