VirtualBox

Opened 5 years ago

Closed 5 years ago

Last modified 4 years ago

#18677 closed defect (fixed)

Can't Resize display in virtualbox guest -> fixed after June 7 2019

Reported by: Knud Owned by:
Component: other Version: VirtualBox 6.0.8
Keywords: Cc:
Guest type: Linux Host type: Linux

Description

Description of problem:

Changing resolution in the guest (KDE spin F31 kernel 5.1.0-1 f31.x86_64 or f31 kernel 5.2.0-0.rc0.git.1) Done by KDE control panel

You see a short flickering and the resolution stays the same, mouse position (actual compared to visible) is corrupted. Can partly be restored by shifting to fullscreen console in the guest by HOST+F2 =>HOST+F1

Resizing from host does not change the visibel part of the guest screen, only a grey frame.

I have tried Guest desktops both Gnome, Cinnamon, either do the same or give an error.

It are complete fresh guest F31 installs

HOST is F30 ...but I dont believe it matters because problem was also with older F28 HOST

Using VboxSVGA, have tried the 2 other vbox display adapters VMSVGAm VboxVGA, does not affect the problem.

Version-Release number of selected component (if applicable): VirtualBox-guest-additions 6.0.8 (Host is also Vbox 6.0.8)

How reproducible: Always

Just make fresh F31 install as a guest

See also bug https://bugzilla.redhat.com/show_bug.cgi?id=1713986

Knud

Attachments (1)

VBox.log (208.3 KB ) - added by Knud 5 years ago.
6.0.9 build 130970

Download all attachments as: .zip

Change History (27)

comment:1 by Michael Thayer, 5 years ago

First question, since you asked first on the Red Hat bugzilla - can you reproduce this with our builds of VirtualBox? I am uploading test builds with a possible fix, which should be there in an hour or so. The revision containing the change is 130865 for the development version and 130866 for the 6.0 branch, so any test builds of that or a later revision will contain it. You can get the test builds from the test build download page:

https://www.virtualbox.org/wiki/Testbuilds

For Linux hosts you will have to first remove your current version and use the Makeself shell script installer (.run extension), unless one of the EL6 or EL7 RPMs works for you. The shell script installer uninstalls again cleanly using the uninstall script under /opt/VirtualBox*. You can unpack it without installing if you are interested by adding the arguments --keep --noexec (do not run it as root in that case) and will find the install shell script inside the unpacked folder.

comment:2 by Michael Thayer, 5 years ago

By the way, if you prefer building yourself, this is the change against the development source (it should be visible in a few minutes):

https://www.virtualbox.org/changeset/78778/vbox

It should apply easily against 6.0 as well. And if the change does not fix the problem for you please upload a log file from an Oracle build of VirtualBox and a virtual machine you are seeing the problem with.

comment:3 by Knud, 5 years ago

Sorry I didn't got information(email) that bug was updated.

Answer: I have not tested builds (guest additions) from Virtualbox only the fedora builds

Question: Do I need to shift the host package or is sufficient to shift the guest addition ?

Knud

comment:4 by nixuser, 5 years ago

In this case the host is Win7 (however I have this issue on Win8.1 hosts also).

To add to Knud's description, in my case when the screen resizing fails it also kills mouse integration (cursor is lost). If I launch a virtual console and kill lightdm I can get things working again, until the next window resize event.

(1) Installed VirtualBox-6.0.9-130970-Win Problems persisted.

(2) Uninstalled virtualbox-guest-additions-6.0.8-2.fc31.x86_64 then tried to build drivers from the guest additions CD by running VBoxLinuxAdditions.run as root as I usually do, but got some build problems as follows:

/tmp/vbox.0/vbox_fb.c: In function ‘vboxfb_create’:
/tmp/vbox.0/vbox_fb.c:335:2: error: implicit declaration of function ‘drm_fb_helper_fill_fix’; did you mean ‘drm_fb_helper_fill_info’? [-Werror=implicit-function-declaration]
  335 |  drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
      |  ^~~~~~~~~~~~~~~~~~~~~~
      |  drm_fb_helper_fill_info
/tmp/vbox.0/vbox_fb.c:339:2: error: implicit declaration of function ‘drm_fb_helper_fill_var’; did you mean ‘drm_fb_helper_fill_info’? [-Werror=implicit-function-declaration]
  339 |  drm_fb_helper_fill_var(info, &fbdev->helper, sizes->fb_width,
      |  ^~~~~~~~~~~~~~~~~~~~~~
      |  drm_fb_helper_fill_info
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:279: /tmp/vbox.0/vbox_fb.o] Error 1
make[1]: *** [Makefile:1600: _module_/tmp/vbox.0] Error 2
make: *** [/tmp/vbox.0/Makefile-footer.gmk:111: vboxvideo] Error 2

Despite the error after a reboot lsmod reports a vboxvideo module loaded. However the behavior is exactly the same from what I can see, including the loss of mouse cursor and so on.

comment:5 by nixuser, 5 years ago

I just noticed that sometimes when I try to change the screen size (not every time) I get a notification saying something along the lines of "Failed to change monitor configuration". It flickers so quickly it is hard to catch what it is saying. There is a second line of text but I cannot make it out, sometimes the notification box is mostly outside the screen area.

comment:6 by Knud, 5 years ago

I have tested the guest-addition 6.0.9 build 130987 (6.0.8 host package) No change same problem.

Updated Guest to Fedora F31 kernel 5.2.0-0.rc2.git0.1.fc31.x86_64 which fixed some GUI issues in native HW. No change in the above guest problem

Knud

comment:7 by Michael Thayer, 5 years ago

Quick answer as I am not working today.

@Knudch If you are seeing the problem I think then you need to update the host side. I assume you are using a Linux host as you said. And if you are not getting notifications, check that your e-mail is set in your account settings (on virtualbox.org trac, not the Oracle account).

@nixuser I am guessing that is a different issue. See the patch on the vbox-dev mailing list. You could apply it directly to the driver code in the guest under /usr/src/vboxguest... and rebuild using "/sbin/rcvboxadd setup". The vboxvideo module which is loaded is probably the one from Fedora.

In any case, both, please attach a log file from the virtual machine you are running.

comment:8 by Knud, 5 years ago

@Not working to day..... OK

Tried to install 6.0.9 build 130970_el7-1.x86_64.rpm on host.....not possible "nothing provides libvpx.so.1"

In installed libvpx package there is a libvpx.so.6

Search packages for libvpx.so.1....none provide that so.1 libvpx.so.4 and .5 are provided

(Fedora F30 kernel 5.0.17)

Knud

Last edited 5 years ago by Knud (previous) (diff)

comment:9 by Michael Thayer, 5 years ago

As I said above, please use the .run installer. It uninstalls cleanly, really.

by Knud, 5 years ago

Attachment: VBox.log added

6.0.9 build 130970

comment:10 by Knud, 5 years ago

Sorry misunderstood you..thought you meant guest-additions .run file

Installed host .run install...went ok

Bug behavior did not change...same problem.

By the way this build seems rather "sluggish" and speading quite a load on the host machine (No big deal AMD Threadripper 12/24 core, 64GB ram)

Log from virtual guest machine attached

Knud

Version 0, edited 5 years ago by Knud (next)

comment:11 by Knud, 5 years ago

@Michael You can see the problem by yourself

Host: What ever

Guest: Fedora F30 with Vbox installed 6.0.8

Nested guest: F31 rawhide KDE spin live kernel 5.1.0-1.fc31.x86_64

Vsvga driver

try to change resolution from systemsettings=> monitors => change settings

Knud

comment:12 by Knud, 5 years ago

FYI

Fedora F30 with kernel 5.1.5-300.fc30.x86_64 as guest is not affected by this problem

So it seems not to be kernel version related.

Knud

comment:13 by nixuser, 5 years ago

@Knudch For me the problem came and went across adjacent release candidates of the 5.1.0 kernel for Rawhide. For example, rc7 exhibited the issue while rc6 did not. The final release kernel-5.1.0-1.fc31.x86_64 worked (for me) and I have a backed up VM with this kernel that works perfectly. So I am not surprised (but am very happy to see) the latest F30 kernel works OK.

@Michael Any idea when the patched guest additions iso will appear on the test builds page? I tried VBoxGuestAdditions_6.0.9-130987.iso but the build issues due to the API change remain.

comment:14 by Michael Thayer, 5 years ago

@Knudch You mentioned a nested guest. I think I missed that before. Can you reproduce this without nesting? I must admit that I have not yet tested the Additions nested.

comment:15 by Knud, 5 years ago

@Michael

Original the bug was discovered without nesting. So yes the bug is there without nesting. And that is still where I am doing any test with different versions etc.

Nested setup was only done recently to see if it was related to my native HOST HW/OS. So it was only a additional test. I don't know if you can reproduce the bug, I thought at least you could reproduce it in that way.

Afterwards it came to my mind that you need a AMD Ryzen/Threadripper HW to do nested virtualization.

Knud

comment:16 by nixuser, 5 years ago

I am still having problems building the drivers with the test build ISO images.

VBoxGuestAdditions_6.0.9-131148.iso gives me the following:

VBoxClient: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory

comment:17 by Michael Thayer, 5 years ago

I suspect that there are at least two problems here. Making our kernel modules work with Linux 5.2 and bug #18682. I will address the first of the two on this bug and the second on that.

comment:18 by Michael Thayer, 5 years ago

Summary: Can't Resize display in virtualbox guestCan't Resize display in virtualbox guest -> fixed after June 7 2019

The modules builds should be fixed as of revisions 131178 (development version), 131182 (6.0) and 131184 (5.2). Test builds should be available shortly. Please try them with the work-around from ticket #18682 to see if they solve the problem.

https://www.virtualbox.org/wiki/Testbuilds

comment:19 by nixuser, 5 years ago

Configuration tested was:

Host: VirtualBox-6.0.9-131183-Win.exe on a Win8.1 host. Guest: Fedora Rawhide running kernel-5.2.0-0.rc3.git0.1.fc31.x86_64.

Works perfectly for me, I can resize the screen by dragging the window corners as expected. Great result, thank you.

comment:20 by Knud, 5 years ago

I can confirm that guest additions 6.0.9-131183.iso works in Linux F31 kernel 5.2.0-0.rc3.git0.1 as guest under F30 kernel 5.1.6-300.fc30.x86_64

Thank you :)

Knud

comment:21 by Michael Thayer, 5 years ago

Resolution: fixed
Status: newclosed

comment:22 by luispautt, 5 years ago

I appreciate your help, but the issues persist with VirtualBox-guest-additions un version 6.0.12 Both with the VBoxVGA as well as the VBoxSVGA. Screen will blink and Also when ghe screen Is re-sized, but with these controllers the screen can ve re-sized but blinks; with the VMSVGA controller it can't be re-sized in Real Time but ir dies not blinks. Attached dime videos that show it.

https://youtu.be/UX56AdrS8_M

https://youtu.be/T9mCtJmcNtk

https://youtu.be/_6J5GFZLr9U

in reply to:  22 comment:23 by Socratis, 4 years ago

Replying to luispautt:

Both with the VBoxVGA as well as the VBoxSVGA.

Your videos show a Linux guest, in which case the VBoxSVGA vGPU is *not* the proper option, as it's used for Win guests only, see the User Manual.

  1. It's usually better and faster, if issues get first addressed in the VirtualBox forums, a lot more eyes there. More than 95% of the issues are resolved in the forums, which keeps the developers focusing on the bug fixes and enhancements, and there is no need for another ticket to keep track of. Plus a discussion and analysis on the bug tracker is going to help me, you, and potentially a future drive-by user or two. Not so in the forums, many more tend to benefit...
  1. You were supposed to follow these steps when you filed the bug, and provide a VBox.log:

    Attach a (full) log file ("Machine" menu/"Show Log" in the main VirtualBox Manager window) straight away to save time for you and for us. The log file contains a lot of useful information about both the host and the guest systems as well as information about what happened during a particular machine run. Please do not cut and paste it.


Please open a new thread in the Linux Guests section of the forums. Please be sure to mention that you came from the bug tracker and include the ticket number.

comment:24 by Frank Batschulat (Oracle), 4 years ago

for the record, this had been fixed with revision r131178

and the diffs where:

Index: src/VBox/Additions/linux/drm/vbox_fb.c                                                                                      
===================================================================                                                                
--- src/VBox/Additions/linux/drm/vbox_fb.c      (revision 131177)                                                                  
+++ src/VBox/Additions/linux/drm/vbox_fb.c      (revision 131178)                                                                  
@@ -335,13 +335,17 @@                                                                                                              
        info->apertures->ranges[0].base = pci_resource_start(dev->pdev, 0);                                                        
        info->apertures->ranges[0].size = pci_resource_len(dev->pdev, 0);                                                          
                                                                                                                                   
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) || defined(RHEL_75)                                                            
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 2, 0)                                                                                 
+       drm_fb_helper_fill_info(info, &fbdev->helper, sizes);                                                                      
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) || defined(RHEL_75)                                                          
        drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);                                                           
 #else                                                                                                                             
        drm_fb_helper_fill_fix(info, fb->pitches[0], fb->depth);                                                                   
 #endif                                                                                                                            
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)                                                                                  
        drm_fb_helper_fill_var(info, &fbdev->helper, sizes->fb_width,                                                              
                               sizes->fb_height);                                                                                  
+#endif                                                                                                                            
                                                                                                                                   
        info->screen_base = (char __iomem *)bo->kmap.virtual;                                                                      
        info->screen_size = size;                                                                  

Index: src/VBox/Additions/linux/drm/vbox_ttm.c                                                                                     
===================================================================                                                                
--- src/VBox/Additions/linux/drm/vbox_ttm.c     (revision 131177)                                                                  
+++ src/VBox/Additions/linux/drm/vbox_ttm.c     (revision 131178)                                                                  
@@ -310,7 +310,11 @@                                                                                                               
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0) || defined(RHEL_71)                                                            
                                 dev->anon_inode->i_mapping,                                                                       
 #endif                                                                                                                            
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0)                                                                                  
                                 DRM_FILE_PAGE_OFFSET, true);                                                                      
+#else                                                                                                                             
+                                true);                                                                                            
+#endif                                                                                                                            
        if (ret) {                                                                                                                 
                DRM_ERROR("Error initialising bo driver; %d\n", ret);                                                              
 #if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)                          
Last edited 4 years ago by Frank Batschulat (Oracle) (previous) (diff)

comment:25 by Frank Batschulat (Oracle), 4 years ago

more for the record, these changes where required to support the Linux 5.2 kernel version:

https://lkml.org/lkml/2019/5/8/1122
https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.2
https://github.com/torvalds/linux/commit/c8613fc6293b0f8c1d303c991338d085cf4d9f12

Linux kernel version 5.2-rc1 commit:

commit 168b85e9b2237d3507255dad484eae2399d6b270
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Mar 26 14:20:08 2019 +0100

    drm/fb-helper: Unexport fill_{var,info}    
    Not used by drivers anymore.

unexported drm_fb_helper_fill_fix() and drm_fb_helper_fill_var(), so now use the new helper drm_fb_helper_fill_info() instead.

the other change was related to removing the argument:

drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init()
https://www.mail-archive.com/spice-devel@lists.freedesktop.org/msg47331.html
https://patchwork.kernel.org/cover/10800601/

Last edited 4 years ago by Frank Batschulat (Oracle) (previous) (diff)

comment:26 by Frank Batschulat (Oracle), 4 years ago

see also #19391

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use