# ATI Rage Mobility framebuffer fails (blank) (atyfb mach64)

## rabbitboy3

I have an old laptop that I'm installing Gentoo on. I've got the system up and running in a basic way, and I'm trying to make the framebuffer for my video card work. It is an ATI Rage Mobility P/M AGP 2x.

Just as an FYI, the VESA framebuffer does work at the best resolution possible. I compiled it directly into the kernel and used "vga=789" and "video=vesafb:800x600-24@60" in LILO and got an 800x600 display with high color, which is the best my old laptop does.

I wanted to try the graphic card's framebuffer, so I compiled the atyfb driver directly into the kernel, and removed the VESA framebuffer driver. I then changed my lilo.conf video setting to "video=atyfb:800x600-24@60". After a reboot, the kernel starts getting loaded, and the screen goes black. The system continues to bootup and run normally, I simply can't see anything.

The atyfb is apparently loading, and the fbcon driver is apparently switching over to use the atyfb driver on /dev/fb0. There aren't any errors in /var/log/syslog that I can see... everything looks like it loaded up just fine:

```

 kernel: Boot video device is 0000:01:00.0

 kernel: pci_hotplug: PCI Hot Plug PCI Core version: 0.5

 kernel: Linux agpgart interface v0.102

 kernel: agpgart: Detected an Intel 440BX Chipset.

 kernel: agpgart: AGP aperture is 64M @ 0xe0000000

 kernel: PCI: Found IRQ 10 for device 0000:01:00.0

 kernel: PCI: Sharing IRQ 10 with 0000:00:04.0

 kernel: atyfb: using auxiliary register aperture

 kernel: atyfb: 3D RAGE Mobility P/M (Mach64 LM, AGP 2x) [0x4c4d rev 0x64]

 kernel: atyfb: Mach64 BIOS is located at c0000, mapped at c00c0000.

 kernel: atyfb: BIOS frequency table:

 kernel: atyfb: PCLK_min_freq 984, PCLK_max_freq 23600, ref_freq 2950, ref_divider 64

 kernel: atyfb: MCLK_pwd 4200, MCLK_max_freq 8300, XCLK_max_freq 12500, SCLK_freq 5000

 kernel: atyfb: BIOS contains driver information table.

 kernel: atyfb: dual (split) colour passive matrix monitor detected: Sharp LM130SS1F579     

 kernel: atyfb:        id=13, 800x600 pixels, 16 bit interface

 kernel: atyfb:        supports refresh rates [60,70,72,75], default 60 Hz

 kernel: atyfb:        LCD CRTC parameters: 40.0  800 840 968 1056  600 601 604 628

 kernel: atyfb:                           : 25000 88 800 40 128 24 600 1 3

 kernel: atyfb: 4M SDRAM (2:1) (32-bit), 29.498928 MHz XTAL, 236 MHz PLL, 83 Mhz MCLK, 63 MHz XCLK

 kernel: Console: switching to colour frame buffer device 100x37

 kernel: atyfb: fb0: ATY Mach64 frame buffer device on PCI

 kernel: Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled

 kernel: Floppy drive(s): fd0 is 1.44M

```

And yet, I've got this black screen.

I tried using a lower depth in my lilo.conf file (video=atyfb:800x600-16@60 and video=atyfb:800x600-8@60), and it still came up black. System boots fine, but I can't see anything. There doesn't seem to be documentation for the atyfb driver itself in linux/Documentation/fb, though the modedb.txt file describes how to set the video resolution and says it's supposed to work with this driver.

I've hunted around since yesterday afternoon trying to figure out if I've done something wrong, or if my graphics card simply can't do a framebuffer like this. I can use the VESA driver, but it'd be nice to be able to utilize what little hardware advantage I have on this laptop. It's only got 128M of memory and a 700Mhz processor, and I plan on using it for doing some basic 3D modeling using Blender, which means I'll probably need every bit of advantage I can get.

Can anyone help me out with this?

----------

## NeddySeagoon

rabbitboy3,

Welcome to Gentoo.

I can't fix your problem but I can tell you that you won't need framebuffer at all for blender.

Linux has several different drivers for different things.

The console has the old 80x24 text driver and various framebuffer drivers that you have been playing with.

Xorg has another set of drivers (including framebuffer) which are used when it has control of the display.

The xorg framebuffer driver (which is different to the one in the kernel) has no acceleration at all, regardless of your graphics chip.

When you are using blender within xorg, you should use the xorg ati driver, which is as good as it gets for the mach64 chip.

Be sure to turn on agpgart and DRM support in the kernel, or Direct Rendering won't work

----------

## rabbitboy3

Thanks, Neddy. I've actually used Gentoo before, but it was several years ago and on hardware that was a little more... robust than this little laptop. And that was with the 2.4 kernel... udev kinda threw me for a loop when I went to reboot the first time.

I have a hunch this will end up being a moot point. The VESA framebuffer works just fine for what I want to do with it (basic console ops, no Linux TV or anything), so I'll probably just continue using it and not worry about the mach64 (atyfb) driver. It'd be nice to know if anyone else has had this problem, though I suspect most people just use the VESA driver and may not even be aware there's something they can do directly with the hardware for framebuffering.

I'm planning on having two or three kernels, one that's stripped down and tweaked just for Blender (no sound, no Cardbus/network, etc, with DRM and with agpgart built-in, etc.), one for a general X windows system with no framebuffer consoles, and one for just regular console work with a frame buffer and no specific bells and whistles. This laptop's not going to have screaming speed and I won't be able to do everything, but it's somewhat useable even without the Xorg DRM drivers. Once I get them going it'll be nice to be able to take my projects on the road or to work if I want to.

I'd still like to know why it doesn't work or what I might have done wrong, but only because I'm kind of a tinkerer like that I guess.

----------

## NeddySeagoon

rabbitboy3,

Well, I have a 600Mhz compaq armarda with 128Mb RAM and the mach64 chip.

I played with the framebuffer for a while and just gave it up, like you, I could only get a blank screen  

I use xorg with twm on it. I rarely use the console, so its just the plane old 80x24 text mode, which does not fill the screen (its 640x480) but the LCD does 1024x768

----------

## meush

I'm currently using ubuntu on my laptop (I need 2007.1 to have a new kernel that recognizes my HDD), and I have similiar issue.

Framebuffer works with Vesa 1024x768, but I have a 1280x800 screen. Fglrx supports desired resolution, but I neither see progress of system loading, nor can I access consoles under F1-F6. That's not good, as I need consoles, and I'm left only with gnome's terminal.

I didn't try to fix it, because it's ubuntu :p and I'm going install gentoo as soon as new liveCD is released. However, looking at your post I'm afraid that's not just ubuntu's problem :/

I don't know atyfb, but does anyone have experience with fglrx in gentoo?

----------

## NeddySeagoon

meush,

You don't have a mach64 graphics chip in a widescreen laptop.

The vesa framebuffer can be made to do widescreen modes but you need to hack it gently. I believe there instructions in /usr/src/linux/Documentation.

The kernel is the same (almost) for all distros, so it you make it work on one, its easy to port.

Oh, you can user the ubuntu CD to install Gentoo ... no need to wait on a new Gentoo liveCD

----------

## kion

Maybe that will help.

I'm using the similar  laptop as NeddySeagoon (Compaq armada e500). My fb works just fine in kernel options build in.

```

Linux agpgart interface v0.102 (c) Dave Jones

agpgart: Detected an Intel 440BX Chipset.

agpgart: AGP aperture is 64M @ 0x50000000

Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds).

Hangcheck: Using get_cycles().

ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [C142] -> GSI 11 (level, low) -> IRQ 11

atyfb: using auxiliary register aperture

atyfb: 3D RAGE Mobility P/M (Mach64 LM, AGP 2x) [0x4c4d rev 0x64]

atyfb: Mach64 BIOS is located at c0000, mapped at c00c0000.

atyfb: BIOS frequency table:

atyfb: PCLK_min_freq 984, PCLK_max_freq 23600, ref_freq 2950, ref_divider 64

atyfb: MCLK_pwd 4200, MCLK_max_freq 8300, XCLK_max_freq 12500, SCLK_freq 5000

atyfb: BIOS contains driver information table.

atyfb: colour active matrix monitor detected: Hitachi TX36D81VC1CAB  

atyfb:        id=10, 1024x768 pixels, 262144 colours (LT mode)

atyfb:        supports refresh rates [60], default 60 Hz

atyfb:        LCD CRTC parameters: 65.40  1024 1048 1184 1344  768 770 776 806

atyfb:                           : 15384 160 1024 24 136 30 768 2 6

atyfb: 8M SDRAM (1:1), 29.498928 MHz XTAL, 236 MHz PLL, 83 Mhz MCLK, 125 MHz XCLK

Console: switching to colour frame buffer device 128x48

atyfb: fb0: ATY Mach64 frame buffer device on PCI

```

```
CONFIG_FB_ATY=y

CONFIG_FB_ATY_CT=y

CONFIG_FB_ATY_GENERIC_LCD=y

CONFIG_FB_ATY_GX=y

CONFIG_FB_ATY_BACKLIGHT=y

```

I've another problem with this old stuff. I can't  get enable the hardware accel on it in xorg. 

NeddySeagoon have U tried to get it work?

----------

