# vesa and radeondrmfb conflict.

## dE_logics

I've been trying to set a splash screen, but as the radeon modules are loaded, vesa FB is removed.

"fb: conflicting fb hw usage radeondrmfb vs VESA VGA - removing generic driver"

as per dmesg.

As a consequence the resolution bumps to 1280x800 once the radeon module loads (somewhere in the boot process); this resolution is not supported by vesa and so the splashes don't workout.

How do I use vesa for console FB instead of radeondrmfb?

Actually there's not a bit of splashscreen -- I was expecting before the resolution switch, there should've been a splashscreen, but it didn't happen.

Edit -- I forgot to state that using splash_manager, I can set the verbose and preview silent themes fine.

There's no splash screen even when I disable kms, but the console keeps working over vesa (since resolution is the same since kernel boot).

----------

## Aquous

What GPU do you have and do you use KMS?

----------

## dE_logics

 *Aquous wrote:*   

> What GPU do you have and do you use KMS?

 

RS690m (radeon x1270). Yes, I use KMS.

----------

## tclover

I'm afraid you cannot use VESA, nor UVESA for that matter, when using KMS/DRM drivers! Things could be even worse if you tried uvesafb... I could use/boot from uvesafb and then switch to radeon/i915 without an issue. However, it did not work all the time, sometimes i was just going to BSOD(tm) [black screen of death] when booting from uvesafb. It was even worse with nouveau! 

And I guess you cannot use vesafb for fbsplash as you cannot set the monitor resolution/color depth/refresh rate which is handy when trying to use an eye candy splash: this what brings in uvesafb as one can do all that with v86d.

DRM/KMS+UVESA is a known issue case, it's basically recorded as "not working" on Xorg. So you have to try at your own risk with a drm-ed driver. 

Once again, it could work with luck. Anyway, you can set up a splash with radeon if you like when booting with VESA/UEFI fb. This what I do, UVESA/UEFI FB are built in the kernel and almost everything else is built as module. Of course you can build in your driver and remove VESA FB if you like and then you could get splash working as early as possible. Just append something like "video=1280x800-24@60" or something like that to set up resolution/color depth/refresh rate to get your splash working.

Booting with GRUB2 and using VESA as built in, I have approximately 5 seconds, 2/3 seconds without grub2 splash before nouveau/i915/radeon (DRM) initialized and get a nice resolution and a nice font loaded. I could set up a splash when I had the time and a nice theme.

So either way you try that gamble with uvesafb or else use radeon with/without vesafb.

EDIT: I'm loading i915/radeon/nouveau with drm/kms module in a initramfs when needed... because either way I'd have to way until userspace is available. One get the resolution etc. after `/etc/init.d/modules' has been run if you're using OpenRC, so this why building in the required modules may be necessary. And that's can take 15 seconds or so on my setups before finishing sysinit+boot runlevels. Well, it's a bit long because I have to enter a passphrase to decrypt rootfs.Last edited by tclover on Sat Nov 05, 2011 5:07 pm; edited 1 time in total

----------

## dE_logics

Thanks for the tip. I'll managed to get the splash screen done but in userspace, ie.. it works after fbcondecor has started. I'm just using KMS's FB.

It's ok, but not upto to mark. The initramfs that I made doesnt work. Also notice, I'm on vanilla kernel.

Since the kernel DRM modules, when build into the kernel results in an un-bootable system, I cant do it.

So what options do I have to get it started at kernel loading?

----------

## NeddySeagoon

dE_logics,

```
... this resolution is not supported by vesa and so the splashes don't workout
```

You should be able to put an image on the KMS framebuffer but you will need to make your own for 1280x800.

I have a 1024x800 image bit it was made for along with the fide that describes it.

In fact, you should get a picture with any image but it will look a bit odd.

----------

## tclover

 *dE_logics wrote:*   

> So what options do I have to get it started at kernel loading?

 

Initramfs. You'll have to build one apart from your kernel. You can make a really simple init script to load the modules (ttm,drm,drm-kms-helper,radeon), load the splash, mount rootfs, switch root and hand init control to real init (`/sbin/init' if you're using OpenRC). That list looks a bit menacing but it's really just a little effort.

You could eventually looks at a topic in Tips & Tricks forum for a LUKS... initrd thread. You could use the script without LUKS etc. and use it only to load modules (as early as possible), load splash (+font if need be), mount rootfs, switch root and hand control to real init. Actually to do all that, one could to append kernel cmdline arguments when the need arise or add default settings (meaning modules+splash for you) that suits you. There's of course an init script that does all that and an initramfs building script--but, that, you could do it at hand if you like.

EDIT: else, you could try that uvesafb(+radeon[DRM/KMS] in userspace) gamble... the issue is switching/handing fb0 (primary frambuffer device) to radeondrmfb which uvesafb does not do rightly because drm-ed modules require to be... fb0 to be able to use KMS (manage your console display).Last edited by tclover on Sat Nov 05, 2011 4:52 pm; edited 1 time in total

----------

## Gusar

 *dE_logics wrote:*   

> Since the kernel DRM modules, when build into the kernel results in an un-bootable system, I cant do it.
> 
> So what options do I have to get it started at kernel loading?

 

Find out which firmware files your specific radeon card needs, and put also those into the kernel. The options are CONFIG_EXTRA_FIRMWARE and CONFIG_EXTRA_FIRMWARE_DIR. Do a search, there's posts describing how to set them.

----------

## dE_logics

 *NeddySeagoon wrote:*   

> dE_logics,
> 
> ```
> ... this resolution is not supported by vesa and so the splashes don't workout
> ```
> ...

 

There 3 Gentoo themes with 1280x800 resolution, also I've decided to reduce resolution to 1024x768 to accommodate more splashes.

 *tclover wrote:*   

>  *dE_logics wrote:*   So what options do I have to get it started at kernel loading? 
> 
> Initramfs. You'll have to build one apart from your kernel. You can make a really simple init script to load the modules (ttm,drm,drm-kms-helper,radeon), load the splash, mount rootfs, switch root and hand init control to real init (`/sbin/init' if you're using OpenRC). That list looks a bit menacing but it's really just a little effort.
> 
> You could eventually looks at a topic in Tips & Tricks forum for a LUKS... initrd thread. You could use the script without LUKS etc. and use it only to load modules (as early as possible), load splash (+font if need be), mount rootfs, switch root and hand control to real init. Actually to do all that, one could to append kernel cmdline arguments when the need arise or add default settings (meaning modules+splash for you) that suits you. There's of course an init script that does all that and an initramfs building script--but, that, you could do it at hand if you like.
> ...

 

I'll surely try out the initrd methord. I'm looking forward towards genkernel to do it.

 *Gusar wrote:*   

>  *dE_logics wrote:*   Since the kernel DRM modules, when build into the kernel results in an un-bootable system, I cant do it.
> 
> So what options do I have to get it started at kernel loading? 
> 
> Find out which firmware files your specific radeon card needs, and put also those into the kernel. The options are CONFIG_EXTRA_FIRMWARE and CONFIG_EXTRA_FIRMWARE_DIR. Do a search, there's posts describing how to set them.

 

I was wondering about this and I placed my full path to the firmware instead of just the name of the firmware, as a result, compilation of the kernel failed.

So I conclude -- I'll try both initramfs and firmware-in-kernel method.

----------

## dE_logics

Got it done on early boot -- next method will be loading the DRM modules from init instead of compiling it in the kernel.

----------

## hika

If building your kernel you select the drm ATI radeon driver without Enable modesetting ..., the radeondrmfb is not loaded. You then can use the vesa framebuffer. Only know that this is slow, for it doesn't use hardware accelaration. I have to use this for when radeondrmfb is enabled, on one machine my monitor is not recognized (resulting in max 1024x768x60Hz) and on the other it refuses to see my TV connected.

Hika

----------

