# UEFI, fglrx and framebuffer

## Hamlet

Hello,

I have some hard times understanding how to configure my system.

I am booting it in UEFI mode (with GRUB2).

I can see the Grub screen (I think it's puny 640x480 graphic mode, which is just fine).

But it seems that as soon as the kernel kicks in, it forgets about text mode.

The only way I have found to see anything past that point is to have kernel mode-setting and framebuffer in the kernel (ATI, uvesa, EFI, any framebuffer seems to work).

But I read in the Gentoo guide to the proprietary driver that the fglrx driver (which I plan to use because of its 3D features) does not want any framebuffer (FB).

If I try to use X with it, the computer freezes (the last output in the posthumous X.org log are calls to some driver functions), the screen showing a text-mode-like cursor.

Reset button is the next step (and I suspect sometimes colder reboot is needed).

I admit I don't know if this is a problem of interaction with the FB or something else.

I have seen the open source driver ("radeon") work on the same system (with different magic: FB, kernel mode-setting...).

So my first question is if it is possible to have a console and then X when using UEFI boot.

The next will be "how", but let's start from the beginning...

Thank you for your attention

Hardware: motherboard ASrock Z77 Extreme6; video board Sapphire AMD HD 7870; processor Intel i7 3770 (I try to ignore the embedded video chip)

Software: kernel gentoo-sources 3.7.4, gentoo ~amd64

----------

## drhouse123

1) It is possible if you will use system without gdm/kdm or some display manager and start X with startx command.

2) Let's start from http://www.gentoo.org/doc/en/

----------

## Gusar

EFI machines do require a framebuffer (efifb), because they do not have a standard VGA text console. So activate efifb. The question is, how well fglrx plays with it. I have no idea. The nvidia driver officially doesn't play well with it, but in practice it works.

----------

## Hamlet

 *drhouse123 wrote:*   

> 1) It is possible if you will use system without gdm/kdm or some display manager and start X with startx command.
> 
> 2) Let's start from http://www.gentoo.org/doc/en/

 

1) indeed, I start X explicitly (by `startx`)

2) err... can we be a bit more specific? I browsed a lot of wiki knowledge, and both my understanding and confusion managed to increase

@Gusar: thank you for that additional information.

What happens is described in this log:

```
[ 13438.786] (II) config/udev: Adding drm device (/dev/dri/card0)

[ 13438.804] (--) PCI: (0:0:2:0) 8086:0162:1849:0162 rev 9, Mem @ 0xf7400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64

[ 13438.966] (--) PCI:*(0:1:0:0) 1002:6818:174b:e224 rev 0, Mem @ 0xe0000000/268435456, 0xf7b00000/262144, I/O @ 0x0000e000/256, BIOS @ 0x????????/131072

[ 13439.147] (II) Open ACPI successful (/var/run/acpid.socket)

[ 13439.165] Initializing built-in extension Generic Event Extension

[ 13439.183] Initializing built-in extension SHAPE

[ 13439.201] Initializing built-in extension MIT-SHM

[ 13439.219] Initializing built-in extension XInputExtension

[ 13439.237] Initializing built-in extension XTEST

[ 13439.255] Initializing built-in extension BIG-REQUESTS

[ 13439.273] Initializing built-in extension SYNC

[ 13439.291] Initializing built-in extension XKEYBOARD

[ 13439.310] Initializing built-in extension XC-MISC

[ 13439.328] Initializing built-in extension XINERAMA

[ 13439.346] Initializing built-in extension XFIXES

[ 13439.364] Initializing built-in extension RENDER

[ 13439.382] Initializing built-in extension RANDR

[ 13439.394] Initializing built-in extension COMPOSITE

[ 13439.406] Initializing built-in extension DAMAGE

[ 13439.418] Initializing built-in extension MIT-SCREEN-SAVER

[ 13439.430] Initializing built-in extension DOUBLE-BUFFER

[ 13439.442] Initializing built-in extension RECORD

[ 13439.454] Initializing built-in extension DPMS

[ 13439.466] Initializing built-in extension X-Resource

[ 13439.478] Initializing built-in extension XVideo

[ 13439.490] Initializing built-in extension XVideo-MotionCompensation

[ 13439.502] Initializing built-in extension XFree86-VidModeExtension

[ 13439.515] Initializing built-in extension XFree86-DGA

[ 13439.527] Initializing built-in extension XFree86-DRI

[ 13439.539] Initializing built-in extension DRI2

[ 13439.551] (II) "glx" will be loaded by default.

[ 13439.563] (II) LoadModule: "glx"

[ 13439.587] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so

[ 13439.599] (II) Module glx: vendor="Advanced Micro Devices, Inc."

[ 13439.611]    compiled for 6.9.0, module version = 1.0.0

[ 13439.635] Loading extension GLX

[ 13439.647] (II) LoadModule: "fglrx"

[ 13439.672] (II) Loading /usr/lib64/xorg/modules/drivers/fglrx_drv.so

[ 13439.816] (II) Module fglrx: vendor="FireGL - AMD Technologies Inc."

[ 13439.839]    compiled for 1.4.99.906, module version = 9.1.11

[ 13439.876]    Module class: X.Org Video Driver

[ 13439.888] (II) Loading sub module "fglrxdrm"

[ 13439.906] (II) LoadModule: "fglrxdrm"

[ 13439.936] (II) Loading /usr/lib64/xorg/modules/linux/libfglrxdrm.so

[ 13439.964] (II) Module fglrxdrm: vendor="FireGL - AMD Technologies Inc."

[ 13439.990]    compiled for 1.4.99.906, module version = 9.1.11

[ 13440.045] (II) AMD Proprietary Linux Driver Version Identifier:9.01.11

[ 13440.063] (II) AMD Proprietary Linux Driver Release Identifier: 9.012                                

[ 13440.081] (II) AMD Proprietary Linux Driver Build Date: Dec 19 2012 14:41:10

[ 13440.100] (--) using VT number 7

[ 13440.120] (WW) Falling back to old probe method for fglrx

[ 13440.157] (II) Loading PCS database from /etc/ati/amdpcsdb /etc/ati/amdpcsdb.default

[ 13440.197] ukiDynamicMajor: found major device number 249

[ 13440.219] ukiDynamicMajor: found major device number 249

[ 13440.237] ukiOpenByBusid: Searching for BusID PCI:1:0:0

[ 13440.256] ukiOpenDevice: node name is /dev/ati/card0

[ 13440.274] ukiOpenDevice: open result is 12, (OK)
```

(but admittedly I don't remember which framebuffer driver I was using when I got this).

These ukiXxxx calls are beyond me. What I know is that after that, the screen is cleared, a cursor is left blinking in the top-left corner of the screen (looks like a text mode), and a cold reboot is usually needed.

----------

## papu

i am using mbr acces with grub2

Same thing for me: only way i get 640x480(but not posible upper than 640x480) on kernel charge, is with VGA TEXT CONSOLE enablet on kernel,  but after enter in X mode (kdm...) all tty (alt+ctrl+1...) have no acces in text mode.(dark screen)

i try others framebuffers ( uvesafb , vesafb...) but with ati-drivers don't work.

http://i.minus.com/iUWn32cNoqZyc.png

http://i.minus.com/iqjc2mYpjcpQQ.png

on Xorg0log i see some info about framebuffer but i don't  know 

Xorg0log 

make.conf

¿is actually not possible to use framebuffers with ati-drivers?

thanks.

----------

## Logicien

All my computers have an Amd/Ati video card. With one, I boot in EFI mode. I try several's things to make the proprietary Ati drivers works with several Linux distributions with this computer. 

I have never been able to make them work and those proprietary Ati drivers work in BIOS mode with all Amd/Ati video cards I have.

So, do not conclude there's no way to make the proprietary Ati drivers works in EFI mode, I don't know. I haven't find myself a way to make them works. The free Radeon driver work just well with KMS for me in EFI and BIOS modes.

----------

## kurisu

I got struck by this as well. Any solution in the meantime?

Edit: I workarounded this by using uvesafb instead of efifb.

----------

## kernelOfTruth

@kurisu:

so you're using uvesafb with fglrx via xdm/gdm/kdm/slim ?

or are you starting up X via startx ?

fascinating that this works on UEFI   :Smile: 

----------

## pelelademadera

some news about that?

I can see framebuffer, but no desktop at all, system hangs

----------

