LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   Slackware64-current in VirtualBox: if EFI always KMS, else no KMS. Why? (http://www.linuxquestions.org/questions/slackware-14/slackware64-current-in-virtualbox-if-efi-always-kms-else-no-kms-why-4175464277/)

Didier Spaier 05-31-2013 05:10 PM

Slackware64-current in VirtualBox: if EFI always KMS, else no KMS. Why?
 
Using an up to date DVD ISO image of Slackware64-current in VirtualBox, here is something I do not understand:
(1) If I activate EFI in the VM, I have always a framebuffer (cat /proc/fb prints "0 EFI VGA"), regardless of the label used at the boot prompt (huge.s or kms.s, ie with or without "nomodeset" in /proc/cmdline).
(2) If I do not activate EFI in the VM, I have never a framebuffer regardless of the label (cat /proc/fb prints nothing).
But both kernels (/EFI/BOOT/huge.s and /kernels/huge.s/bzImage) and initrds (/EFI/BOOT/initrd.img and /isolinux/initrd.img) are identical, as far as md5sum can tell.

Certainly something obvious escapes me again, nevertheless please some kind soul shed some light in my clouded mind.

ruario 06-03-2013 03:25 AM

EFI provides its own framebuffer device (only available when booting with EFI) and the kernel Pat provides has support for this device enabled. A good thing too, otherwise you would just get a black screen. ;)

Code:

$ grep CONFIG_FB_EFI /boot/config-generic-3.8.13
CONFIG_FB_EFI=y


ruario 06-03-2013 03:34 AM

Read this earlier post I wrote from before this config option was set:

Quote:

Originally Posted by ruario (Post 4710493)
Just a guess but perhaps the reason for the black screen is due to the lack of EFI Framebuffer support in the kernel (since Slackware does not have this enabled by default). If this suspicion is correct, you should be able to wait until you think booting has complete and login blind, then (assuming you have X and a window manager installed) type startx. At this point the X driver for your video card should take over from the Framebuffer and you should hopefully see something. Alternatively if that is difficult to do or you don't have X but do have network and sshd configured on startup you could try sshing into the machine from another machine on your network to check that Slackware is actually running.

If this is the problem the simple work around is to have Slackware start in runlevel 4 by customising /etc/inittab. The only downside is that you will miss the boot sequence and won't have access to your virtual terminals. The best solution however would be to recompile the kernel with EFI Framebuffer support (CONFIG_FB_EFI=y).


ruario 06-03-2013 03:45 AM

You might also find this interesting:

Quote:

Originally Posted by rwebber (Post 4589838)
It seems that an EFI system does not have normal VGA, or text mode or VESA framebuffer support, but requires the new EFI frame buffer support. It's even worse on VirtualBox because its video mode is not supported by Linux until you load the guest additions from a virtual CD.


Didier Spaier 06-03-2013 04:06 AM

Thanks for your answers, RuarÝ. Much appreciated!

Somehow this simplifies editing of elilo.conf and isolinux.cfg in the internationalized installer, as I won't need both KMS and non KMS labels in these files.

Despite what wrote rwebber I can boot Slackware64-current in a VirtualBox VM with EFI activated even without the guest additions. The only issue is that loading the initrd takes ages. Nevertheless I will try with the guest additions, just to see if that changes something.


ruario 06-03-2013 12:52 PM

Quote:

Originally Posted by Didier Spaier (Post 4964464)
Despite what wrote rwebber I can boot Slackware64-current in a VirtualBox VM with EFI activated even without the guest additions. The only issue is that loading the initrd takes ages. Nevertheless I will try with the guest additions, just to see if that changes something.

rwebber wrote that a long time ago before CONFIG_FB_EFI was switched on in the Slackware kernel (he was referring to 13.37 not the current -current). It was actually my comment about the need for EFI Framebuffer support that drew the notice of the team and hence got switch it on for 14.0 and above (not that they wouldn't have realised themselves at some point anyway! Also rwebber noticed it before I did):

Quote:

Originally Posted by Alien Bob (Post 4711588)
The kernel packages were rebuilt just before going public with this batch, to add
Code:

CONFIG_FB_EFI=y
(it was off at first but I read a post by ruario yesterday, stating that this was needed to get visible framebuffer text on EFI boot).

Anyway I think what rwebber was highlighting was that with no framebuffer enabled in the kernel and no X driver (which would be provided by guest additions) you basically cannot display anything. A clean, vanilla Slackware 13.37 would in fact run under VirtualBox in EFI-mode run but you just wouldn't be able to see it. ;)

Didier Spaier 07-04-2013 02:21 PM

Problem occurs only on VirtualBox, Slackware installer is OK.
 
Launching Slackware-current in a non-UEFI real machine does allow to use KMS, so this is actually a limitation of my version of?) VirtualBox, not Slackware's installer.

I can't edit my initial post because it is too old, but please consider this issue as [SOLVED].


All times are GMT -5. The time now is 11:05 AM.