VBox Guest Additions: A slightly late final progress report

Blog post by scgtrp on Mon, 2011-09-05 18:33

As everyone has probably gathered from the first sentence of most of the other posts, GSoC 2011 is now over. I accomplished some of the goals I had for the last quarter, but was unable to get GCC2 support to work. The compiler is different enough to not work with the same options, and even after adding a GCC2 tool definition to kBuild I found that it was too old to compile some of the VirtualBox code. Various workarounds I tried for this proved unhelpful, so the additions will currently only compile and run on a GCC4 or GCC4 hybrid Haiku.

VBox guest additions: 3/4 term report

Blog post by scgtrp on Thu, 2011-08-04 04:12

New status report: major feature dropped; bugs fixed; did some screen research.

At the start of the third term, it was pointed out to me that Haiku does not actually support hardware 3D acceleration, and to add it would be a larger project than I have the time (or knowledge) for. Therefore, I’ve had to drop host-accelerated OpenGL from the planned features. I’m somewhat annoyed by this, but looking back it was probably a bit too ambitious anyway, and I’m not convinced I could have finished it in time.

VBox Guest Additions: midterm status report

Blog post by scgtrp on Fri, 2011-07-15 11:30

Shares fully working! Slightly slow, but usable. Clipboardy stuff too.

I’ve now fixed most of the bugs in the guest additions, to the point that what’s done so far is mostly usable - the only major bugs remaining are some random crashes in VBoxService that I’ve not been able to reproduce, and an inability to drag icons when mouse pointer integration is enabled. (Thanks to kallisti5 for finding both of these.) I also have replaced VBoxApp (which currently handles clipboard sharing) with VBoxTray, a replicant which serves the same purpose but can be autoloaded by Deskbar.

VBox guest additions: status; second quarter goals

Blog post by scgtrp on Fri, 2011-06-17 01:49

During the first few weeks of GSoC, I’ve gotten vboxsf, the shared folders module, mostly working, though I’m a bit behind where I’d like to be due to unexpected things repeatedly coming up both in physical-land and on my development setup. All supported functionality is working when accessed from the terminal - at this point I’m just optimizing and working on a bug where looking at a shared folder the wrong way in Tracker causes the kernel to panic. Mouse pointer integration, the other thing I had in my schedule for the first quarter, is now working; therefore finishing up the last few bits of vboxsf will be one of my main goals in the next few weeks.

VBox guest additions: end of bonding period; first quarter goals

Blog post by scgtrp on Wed, 2011-05-25 10:25

During the community bonding period I played around with the existing guest additions patch, getting it to build and switching my repository over to git to preserve my sanity. I’ve learned a lot about the way Haiku drivers and modules work, especially in the last few days, and it seems that a few things are simpler than I originally thought they’d be and some things are more difficult.

As an example of the latter, it turns out that drivers can’t provide APIs to other drivers; only modules can do this. This posed a problem for the shared folders module, which needs to either be in a separate module or contain extreme hackiness. As a driver, the original vboxguest couldn’t allow vboxsf to use its API. To solve this, mmu_man and I decided that the best first task would be to break up the existing vboxguest driver into a module (vboxguest) containing the guest additions and a driver (vboxdev) which exposes the library to userspace as /dev/misc/vboxguest. This is now finished.

GSoC Introduction: VirtualBox Guest Additions

Blog post by scgtrp on Fri, 2011-04-29 11:45

Hello. I’m Mike and I’ll be porting part of the VirtualBox guest additions to Haiku. My full proposal is here, but briefly, the features I plan to port include:

  • Mouse pointer integration
  • Shared folders
  • Shared clipboard
  • Time synchronization
  • An improved video driver
  • Guest control (executing commands on the guest from the host)
  • Guest properties

During the community bonding period I plan to spend a bit of time reading more code and discussing with the developers to learn more about how things work in both Haiku and VirtualBox. I also plan to play with mmu_man’s patch to get it to work with the latest versions of VirtualBox and Haiku so that I have a working base to start from when the coding period starts.