Slackware64-current in VirtualBox: if EFI always KMS, else no KMS. Why?
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
Last edited by Didier Spaier; 06-02-2013 at 02:39 PM.
Reason: typos
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.
Read this earlier post I wrote from before this config option was set:
Quote:
Originally Posted by ruario
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).
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.
Last edited by ruario; 06-03-2013 at 03:48 AM.
Reason: cropped the quote to just the most relevant bit.
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.
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
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.
Last edited by ruario; 06-03-2013 at 12:56 PM.
Reason: re-worded first paragraph
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].
Last edited by Didier Spaier; 07-04-2013 at 02:23 PM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.