LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   VirtualBox 6.0 Guest running Slackware 14.2 no text console display (https://www.linuxquestions.org/questions/slackware-14/virtualbox-6-0-guest-running-slackware-14-2-no-text-console-display-4175669134/)

Erik_FL 02-06-2020 08:02 PM

VirtualBox 6.0 Guest running Slackware 14.2 no text console display
 
I'm not having much success getting a VirtualBox 6.0.16 Windows 7 host to display the text console for a Slackware 14.2 64-bit Guest after the "vboxvideo" module is loaded.

I figured I would ask the question here and also share my work around.

I'm not running the latest major VirtualBox version 6.1 because I've found that the latest version is often broken. I just recently moved from the last 5.x version to 6.0 and thought it was working well until I ran into the text console problem.

The VirtualBox Guest Additions have undergone a major change from 5.x to 6.0. Among other things, the "vboxvideo" driver is now loaded during kernel initialization to support the frame buffer.

The problem is that the frame buffer support in "vboxvideo" seems to be broken. The text console display is only updated sometimes when you switch between screens, but never when you are actually viewing the text console and typing.

Most of the time that isn't important, since a terminal emulator application can be used. It is a big problem when trying to boot into single user mode or multi-user text mode.

My work around was to prevent the "vboxvideo" module from being loaded by the kernel when the framebuffer device is detected.

I created a file named "/etc/modprobe.d/vboxvideo.conf" containing the line to blacklist vboxvideo.

Code:

blacklist vboxvideo
There might be a better way to do that, but it works.

Next, I changed the initialization for run level 3 to stop VirtualBox services rather than start them.

I renamed the following files in "/etc/rc.d/rc3.d".

Code:

S10vboxadd
S35vboxadd-service

Renaming them to begin with "K" makes them stop the services instead of starting the services.

Code:

K10vboxadd
K35vboxadd-service

The drawback to this workaround is that the VirtualBox shared folders and shared clipboard are not available except when using run level 4.

I've found that it's better to work around problems rather than switching versions of VirtualBox because that usually just trades one set of problems for a different set. When I have time, I may try some of the 6.1 versions to see how well they work for me.

If anyone knows a way to get the text console to work properly or a better work around, please post it.

Also, if you are running some version of VirtualBox 6.1, I'm interested in hearing how well it works for you and how you are using it. I mostly run a Windows 7 64-bit host OS with a Windows XP 32-bit or Windows 7 64-bit guest. I sometimes run a Slackware Linux 64-bit guest.

business_kid 02-07-2020 09:56 AM

I'm on Slackware64-Current host, and VB-6.1.2 works fine for Mint and Win10 VMs.

upnort 02-07-2020 10:33 AM

You're using a Windows host so I'm probably no help, but I'm using Slackware 14.2 as my host and using VBox 6.1.2. Working fine.

Aeterna 02-07-2020 01:11 PM

assuming that you have all pieces installed (extensions and guest), it does not matter for your client if versions for client and host are similar.

VB requires gui for clipboard to work of course.

I have Slackware (not -14.2 but -current) as host and as client installed and for client vboxvideo works. Also if you run default Slackware kernel, VMSVGA may not be enabled (I a not sure about this as I don't run default kernel)

You can play with vboxvideo drivers:
switching from new
VMSVGA to old VboxSVGA
but this is tricky:
VB Manager will revert automatically (for linux) from VboxSVGA to VMSVGA.


There is preatty easy way to avoid this and keep VboxSVGA (and add up to 256MB video RAM - not available from defaut settings panel) for linux.

So try switching to VboxSVGA.

business_kid 02-08-2020 04:27 AM

Two things: First, I'm also on Slackware64-Current, Given you're on a windoze host, you may get more informed replies on a windoze forum.

Second thing, as reboots are pretty cheap, I would at least try disabling framebuffer andjust running on vboxvideo. Works here.

Erik_FL 02-11-2020 06:31 PM

Quote:

Originally Posted by upnort (Post 6087284)
You're using a Windows host so I'm probably no help, but I'm using Slackware 14.2 as my host and using VBox 6.1.2. Working fine.

Actually, that information is helpful. I dual boot Slackware 14.2 and eventually will want to upgrade both Windoze and Slackware to the 6.1 branch.

Erik_FL 02-11-2020 06:56 PM

Quote:

Originally Posted by business_kid (Post 6087572)
Second thing, as reboots are pretty cheap, I would at least try disabling framebuffer andjust running on vboxvideo. Works here.

Can I disable framebuffer using a kernel parameter, or do I need to rebuild the kernel? I know how to rebuild the kernel, so that won't be a problem. I tried changing boot parameters for the text console mode and it had no effect on the framebuffer driver loading. I am using the lilo bootloader, but I can also use grub2 if that will make things easier.

Here is my /etc/lilo.conf
Code:

# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
# Append any additional kernel parameters:
append=" vt.default_utf8=0"

lba32
boot = /dev/sda

compact        # faster, but won't work on all systems.

  bitmap = /boot/slack.bmp

  bmp-colors = 255,0,255,0,255,0

  bmp-table = 60,6,1,16

  bmp-timer = 65,27,0,255

prompt

timeout = 50

change-rules
  reset
# VESA framebuffer console @ 1024x768x32k
vga = 791

# Normal VGA console
#vga = normal
# Ask for video mode at boot (time out to normal in 30s)
#vga = ask

# End LILO global section

# Linux bootable partition config begins
image = /boot/vmlinuz
  initrd = /boot/initrd.gz
  root = "UUID=**SNIPPED-OUT**"
  label = Linux
  read-only
# Linux bootable partition config ends

I tried using "vga = normal" and the vboxvideo driver still loaded, making the text console display inoperative.

I think that the Plug-and-Play hardware detection is what loads the vboxvideo module based on detecting the VirtualBox framebuffer device. I put the relevant kernel log output below.

Code:

[  35.422651] fb: switching to vboxdrmfb from VESA VGA
[  35.422685] Console: switching to colour dummy device 80x25
[  35.423903] fbcon: vboxdrmfb (fb0) is primary device
[  35.424385] Console: switching to colour frame buffer device 100x37
[  35.425293] vboxvideo 0000:00:02.0: fb0: vboxdrmfb frame buffer device
[  35.429631] [drm] Initialized vboxvideo 1.0.0 20130823 for 0000:00:02.0 on minor 0
[  35.793305] 00:26:14.623696 main    VBoxService 6.0.16 r135674 (verbosity: 0)
linux.amd64 (Jan 14 2020 10:46:49) release log

Thanks for the replies.

business_kid 02-12-2020 05:54 AM

I have a Linux host, so the problem is, of course different.

I ignored vga in the lilo section, as once your video driver loads as the kernel boots, all that is forgotten about. I don't have xf86-video-vesa or xf86-video-fb installed, so nothing In X has that option. 'cmd' prompts in windows should be enough to install slackware. AFAIK, vboxvideo simply passes back the video to windows, unless you know otherwise.

If you leave out the 'vga=791' which isn't what you want unless you have a 4:3 monitor, you can blacklist the framebuffer module in /etc/modprobe.d/blacklist, and that should stop it loading temporarily, unless it's in the initrd. It saves the inconvenience of a kernel rebuild.

It also appears you are using vboxdrmfb, not vboxvideo. Framebuffer was originally about console hi-res without vga cards. But with cards like the S3 (1996) & friends, it's days appeared numbered. Those were the days when you had to cobble up your own modeline, allowing for things like flyback time in Analogue monitors. Have you had a look at improving things in the VB settings for your guest?

Aeterna 02-12-2020 02:45 PM

Quote:

Originally Posted by Erik_FL (Post 6088934)
Can I disable framebuffer using a kernel parameter, or do I need to rebuild the kernel? I know how to rebuild the kernel, so that won't be a problem. I tried changing boot parameters for the text console mode and it had no effect on the framebuffer driver loading. I am using the lilo bootloader, but I can also use grub2 if that will make things easier.

Here is my /etc/lilo.conf
Code:

# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
# Append any additional kernel parameters:
append=" vt.default_utf8=0"

lba32
boot = /dev/sda

compact        # faster, but won't work on all systems.

  bitmap = /boot/slack.bmp

  bmp-colors = 255,0,255,0,255,0

  bmp-table = 60,6,1,16

  bmp-timer = 65,27,0,255

prompt

timeout = 50

change-rules
  reset
# VESA framebuffer console @ 1024x768x32k
vga = 791

# Normal VGA console
#vga = normal
# Ask for video mode at boot (time out to normal in 30s)
#vga = ask

# End LILO global section

# Linux bootable partition config begins
image = /boot/vmlinuz
  initrd = /boot/initrd.gz
  root = "UUID=**SNIPPED-OUT**"
  label = Linux
  read-only
# Linux bootable partition config ends

I tried using "vga = normal" and the vboxvideo driver still loaded, making the text console display inoperative.

I think that the Plug-and-Play hardware detection is what loads the vboxvideo module based on detecting the VirtualBox framebuffer device. I put the relevant kernel log output below.

Code:

[  35.422651] fb: switching to vboxdrmfb from VESA VGA
[  35.422685] Console: switching to colour dummy device 80x25
[  35.423903] fbcon: vboxdrmfb (fb0) is primary device
[  35.424385] Console: switching to colour frame buffer device 100x37
[  35.425293] vboxvideo 0000:00:02.0: fb0: vboxdrmfb frame buffer device
[  35.429631] [drm] Initialized vboxvideo 1.0.0 20130823 for 0000:00:02.0 on minor 0
[  35.793305] 00:26:14.623696 main    VBoxService 6.0.16 r135674 (verbosity: 0)
linux.amd64 (Jan 14 2020 10:46:49) release log

Thanks for the replies.

[ 35.422651] fb: switching to vboxdrmfb from VESA VGA
[ 35.422685] Console: switching to colour dummy device 80x25
[ 35.423903] fbcon: vboxdrmfb (fb0) is primary device

I don't know why you have vboxdrmfb. In my case this is vboxvideodrmfb
also what is lpsci -k showing?
Quote:

lspci -k
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
Subsystem: VMware VirtualBox Graphics Adapter
Kernel driver in use: vboxvideo
Kernel modules: vboxvideo
so the problem may be in the kernel

your lilo is o.k.
I have
vga = 791
in lilo enabbled too. It just shows nicely number of processors and obviously it is more readable.

xf86-video-fb is not even available under -current (at least I don't see it)

in the kernel I have
DRM_VBOXVIDEO
DRM_VMWGFX
DRM_VMWGFX_FBCON

rdemonte 06-24-2020 03:12 AM

simple workaround
 
I had the same issue.
It seems that is related to guest additions version xxx.22 .
But I found this workaround:
Configure Graphic board in Virtual Box machine settings as VMSVGA instead of VBoxVGA or VBoxxVGA
I hope that with the future guest additions or maybe different kernel this problem will be solved.






Quote:

Originally Posted by Aeterna (Post 6089247)
[ 35.422651] fb: switching to vboxdrmfb from VESA VGA
[ 35.422685] Console: switching to colour dummy device 80x25
[ 35.423903] fbcon: vboxdrmfb (fb0) is primary device

I don't know why you have vboxdrmfb. In my case this is vboxvideodrmfb
also what is lpsci -k showing?

so the problem may be in the kernel

your lilo is o.k.
I have
vga = 791
in lilo enabbled too. It just shows nicely number of processors and obviously it is more readable.

xf86-video-fb is not even available under -current (at least I don't see it)

in the kernel I have
DRM_VBOXVIDEO
DRM_VMWGFX
DRM_VMWGFX_FBCON



All times are GMT -5. The time now is 10:17 AM.