VirtualBox

Ticket #5840 (closed enhancement: fixed)

Opened 4 years ago

Last modified 4 years ago

[feature-request] Support seamless mode with older Linux guests -> fixed in SVN after version 3.1

Reported by: Technologov Owned by:
Priority: major Component: GUI/seamless
Version: VirtualBox 3.1.2 Keywords:
Cc: Guest type: Linux
Host type: other

Description

In the last weekend I looked at VMware Workstation 7 and realized that they support Seamless mode and dynamic resolution resizing on ancient Linux guests, such as RHEL 3.9.

This was absolutely shocking news to me, because, in contrast VBox requires some Randr X11 extensions which only exist in recent Linux guests.

Some traces of VMware source code do exist:

 http://open-vm-tools.sourceforge.net/faq.php

 http://ir.vmware.com/phoenix.zhtml?c=193221&p=irol-newsArticle&ID=1050251&highlight=

Supporting dyn. resolution resizing and seamless mode for older Linux guests is important for the workflow, esp. because running legacy OSes is one of major use cases for virtualization.

-Technologov, 25.12.2009

Attachments

XF86Config Download (4.6 KB) - added by Technologov 4 years ago.
/etc/X11/XF86Config from RHEL 3/32-bit
XFree86.0.log Download (18.3 KB) - added by Technologov 4 years ago.
XFree86.0.log from RHEL 3/32-bit
RHEL3 32-bit-2010-04-01-00-01-45.log Download (43.2 KB) - added by Technologov 4 years ago.
VBox log of RHEL 3/32-bit guest

Change History

comment:1 Changed 4 years ago by michael

  • Status changed from new to closed
  • Resolution set to wontfix

I'm sorry, but I had a quick look here and I don't think that the effort involved is really worth the gain, given the number of higher priority things I could be doing instead. (In particular, it would mean a lot of testing, as I would be doing things which were never really intended to work in those old servers, and I can't really offload the testing to other people because it would make the feedback loop impracticably long.)

comment:2 Changed 4 years ago by michael

  • Status changed from closed to reopened
  • Resolution wontfix deleted
  • Summary changed from [feature-request] Support seamless mode with older Linux guests to [feature-request] Support seamless mode with older Linux guests -> fixed in SVN after version 3.1

You will be glad to hear that there has been a slight change of priorities, and this feature has been added to the development branch.

comment:3 Changed 4 years ago by Technologov

Yes, indeed, I am very glad to hear about that, and willing to co-operate :)

comment:4 Changed 4 years ago by michael

Alexey, if you are interested in testing you can find the updated Guest Additions ISO on  the download page.

comment:5 Changed 4 years ago by Technologov

Test results for GuestAdditions 3.1.7r59489 - Old X Server:

The goal of this release was to provide seamless mode for old Linux guest OSes.

Host: WinXP + VBox 3.1.4.

Results (Red Family):

  • RHEL 3.9/32-bit - FAILS (1)
  • RHEL 3.9/64-bit - FAILS (1)
  • RHEL 4.8/32-bit - FAILS (1)
  • RHEL 4.8/64-bit - FAILS (1)
  • RHEL 5.3/32-bit - Works !
  • RHEL 5.3/64-bit - Works !

(Green Family):

  • openSUSE 10.2/32-bit - Works !
  • openSUSE 10.2/64-bit - Works !
  • openSUSE 10.3/32-bit - Works !
  • openSUSE 10.3/64-bit - VMM failure - Bug #5457 (bug unrelated to GuestAdditions)

(1) Driver installed, and mouse integration works fine, but no dynamic resolution resizing and no seamless mode. I.e. this works like the old 3.1.2 drivers.

Personally I am most interested in openSUSE 10.3 and RHEL 5 guests with seamless mode.

Thanks a lot for this feature !

--

  • "Technologov", 30.3.2010.

comment:6 Changed 4 years ago by michael

Rather strange, seeing that CentOS 3.9 (32bit) is the system I used for developing and testing the feature. I will investigate further. Perhaps though you could attach an XFree86.0.log (or whatever it was called...) from one of the failing guests, as well as trying sending mode hints through VBoxManage? Thanks.

Changed 4 years ago by Technologov

/etc/X11/XF86Config from RHEL 3/32-bit

Changed 4 years ago by Technologov

XFree86.0.log from RHEL 3/32-bit

Changed 4 years ago by Technologov

VBox log of RHEL 3/32-bit guest

comment:7 Changed 4 years ago by Technologov

Is this helpful?

-"Technologov"

comment:8 Changed 4 years ago by Technologov

How is the progress here? Any new version to test on RHEL 3 & 4 ?

-"Technologov"

comment:9 Changed 4 years ago by michael

OK, I know what is happening. Up until now we have had separate drivers for XFree86 (and old X.Org versions), for X.Org 7.0/7.1 and for X.Org server 1.3+. In the development code I merged the XFree86 and X.Org 7.x drivers, but I didn't backport this change to 3.1. I will not do this, as I think the risks are not worth the benefits, but if you would like to test XFree86 with dynamic resizing I can provide you with a development version of the Additions (sometime next week after I have committed more fixes).

comment:10 Changed 4 years ago by michael

Try  http://www.virtualbox.org/download/testcase/VBoxGuestAdditions-r59861.iso

All the usual warnings about development code apply :)

comment:11 Changed 4 years ago by Technologov

Yes, thanks.

This works on both RHEL 3+4+5 (tested 32-bit guests only).

comment:12 Changed 4 years ago by Technologov

Few questions:

  1. Was the VMware code (links I provided) useful for you?
  1. Is this was huge amount of work compared to supporting newer distros (with Randr extension) ?
  1. So we had 3 backends in the past (XFree 4.3 + Xorg 6.7/6.8/6.9), Xorg 7/7.1, X.Org server 1.3+ and now we have two?
  1. As for me, I am quite happy to have this experimental code away from v3.1 line, but available as separate download for current users.

-Technologov

comment:13 Changed 4 years ago by michael

  1. Yes. In fact, I took a closer look at the VMWare X.Org driver to see what they were doing.
  1. Most of the work involved was in studying the rather intractable X Server source code and the VMWare driver to work out how this could be done. It turned out that the older version of the RandR extension introduced in XFree86 was also designed to support adding new modes at runtime (this was intended for future extensions, as in fact happened with RandR 1.2, but is enough to provide usable support for the older distributions). In fact the amount of code required is smaller than when using the new extensions. What the older servers do lack is a way to "jig" the server to update the mode list. I used a slightly unclean hack, but which works well (we update when the mouse cursor is changed, and VBoxClient changes it briefly to a "waiting" cursor when new modes are available), while VMWare uses a cleaner but more heavy-weight approach.
  1. Yes, but that was done independently to simplify maintanance. We will probably merge the two remaining ones to reduce the amount of code to be maintained and the scope for bugs.
  1. Part of it should be in any future 3.1 release after having been tested outside of 3.1.6.

comment:14 Changed 4 years ago by frank

  • Status changed from reopened to closed
  • Resolution set to fixed

Fixed in 3.1.8

comment:15 Changed 4 years ago by Technologov

Partially Fixed in 3.1.8. Full Fix in 3.2.0.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use