[DISCUSSION] VirtualBox - Update, SLP & SLIC

Discussion in 'Virtualization' started by cigolo_, Dec 30, 2008.

  1. Carlos Detweiller

    Carlos Detweiller Emperor of Ice-Cream

    Dec 21, 2012
    6,358
    7,077
    210
    4.2.18 has strange issues in Windows 8 VMs for me, gone back to 4.2.16. Shouldn't take too long since 4.3beta 1 is already out...
     
  2. user_hidden

    user_hidden MDL Expert

    Dec 18, 2007
    1,034
    1,061
    60
    what issues ?
     
  3. Carlos Detweiller

    Carlos Detweiller Emperor of Ice-Cream

    Dec 21, 2012
    6,358
    7,077
    210
    Mouse going out of sync, mouse buttons no longer working after some time of the VM being idle. Graphics freezes (but VM still running).

    All that perfectly works using 4.2.16. No idea, why. Of course the corresponding Guest Additions are installed.
     
  4. ogjelland

    ogjelland MDL Novice

    Oct 2, 2013
    1
    0
    0
    #484 ogjelland, Oct 2, 2013
    Last edited by a moderator: Apr 20, 2017
    Extract and modify BiosRom for XP-Mode from VBoxDD2.dll

    I've adapted that method to create a custom BIOS file that activates XP Mode to give me the same freedom as when running under Windows Virtual PC (the following can be done with cygwin):
    Code:
    dd if=VBoxDD2.dll of=BIOS_VBoxDD2.bin bs=1 skip=35360 count=65536
    dd if=BIOS_VBoxDD2.bin of=BiosRom.Windows_Virtual_XP.bin bs=1 count=37008
    echo -n "Windows_Virtual_XP_F9161D8E7FCC11DDBFAA369856D89593" >> BiosRom.Windows_Virtual_XP.bin
    dd if=BIOS_VBoxDD2.bin of=BiosRom.Windows_Virtual_XP.bin bs=1 skip=$((37008+51)) oflag=append conv=notrunc
    The offsets used here are (as in cretbert's post):
    • 0x8a20 = 35360 is BIOS start in VBoxDD2.dll (0x8140 = 33088 if VBoxDD2.so from Debian is used as input)
    • 0x9090 = 37008 is 6 bytes after SLP area start in BIOS (cretbert: "i began some few bytes after"...)
    I activated the modified BIOS in my virtual machine named "XP_Mode" with:
    Code:
    VBoxManage.exe setextradata XP_Mode "VBoxInternal/Devices/pcbios/0/Config/BiosRom" "D:\path\to\BiosRom.Windows_Virtual_XP.bin"
    Seems to work with v4.2.18. Here are some sanity checks (with expected results indicated):
    Code:
    hexdump -Cv VBoxDD2.dll | grep "INT18:"                                      # 0x8a60+4
    dd if=BIOS_VBoxDD2.bin bs=1 skip=$((37008-6)) count=64 | hexdump -Cv         # filled with 0x00
    dd if=BiosRom.Windows_Virtual_XP.bin bs=1 skip=37008 count=64 | hexdump -Cv  # Windows_Virtual_XP...
    strings [dll|so|bin] | grep "^VirtualBox.*\."                                # VirtualBox version
    The offset for the embedded BIOS in VBoxDD2 might change in future versions, but that should be easy to take into account. The "INT18:" string seems to have a fairly fixed location (after the 68th byte) in the BIOS chunk for recent version. If this changes in new versions further investigation will be needed. Not to mention if the area we are writing to has data in it (not beeing filled with 0x00 in the second test). It's a good thing we have the source code for VirtualBox...
     
  5. user_hidden

    user_hidden MDL Expert

    Dec 18, 2007
    1,034
    1,061
    60
    #486 user_hidden, Nov 1, 2013
    Last edited by a moderator: Apr 20, 2017
    Virtualbox 4.3.2 released

    Code:
    Changes in VirtualBox 4.3.2 (released 2013-11-01):
    – VMM: fixed restoring of the auxiliary TSC MSR in VT-x that caused host BSODs on Windows 8.1 hosts and unpredictable behavior on other hosts (bug #12237)
    – VMM: provide fake values for a couple of MSRs to make more guests happy on certain hosts
    – VMM: fixed detection of VT-x on certain machines where the BIOS would not set the VMX LOCK feature bit, which affected the VM settings in the GUI
    – VMM: fixed TPR threshold which caused BSODs on Windows XP guests that use the I/O APIC (VT-x only; bug #12227)
    – VMM: fixed PATM saved state incompatibility for software virtualized VMs (bug #12222)
    – VMM: don’t fail if AMD-V isn’t available if the VM is configured to use software virtualization
    – GUI: fixed guest resize breakage on visual representation mode change (when switching from normal to fullscreen etc)
    – GUI: make sure the guest screen is resized after restoring a VM from a saved state if the host screen size changed
    – GUI: disabled SCROLL LED sync from HID LEDs synchronization (Mac OS X hosts only)
    – Webcam passthrough improvements including GUI support (see the manual for more information)
    – Guest Control: implemented more IGuestSession methods
    – Guest Control: added support for deleting and renaming guest files + directories in VBoxManage
    – Guest Control: various bugfixes
    – API: incorrect handling of hardware UUID default value, resulting in an all zero DMI/SMBIOS UUID, which leads to Windows requesting re-activation (4.3 regression; bug #12244)
    – 3D support: fixed crash on shutdown if 2D video acceleration is enabled (Mac OS X hosts only)
    – 3D support: miscellaneous fixes
    – Storage: fixed detection of CD/DVD media when switching from an empty to a host drive with passthrough enabled
    – Storage: fixed hang of the VM process when the disk is full under certain circumstances
    – NAT: listen for changes of NAT Network setting at runtime
    – NAT: NAT Network DHCP server now saves leases to a persistent storage
    – Main: monitor changes in host DNS configuration
    – Mac OS X host: reworked a mechanism of adding a VM desktop alias from the VM selector
    – Mac OS X installer: remove old kernel extensions during upgrade (bug #12258)
    – Linux Additions: correctly set umask before installing (bug #12166)
    – X11 Additions/3D: fix freezes starting 3D desktop (bug #11503, thank you Sam Spilsbury)
    – X11 Additions/3D: fix depth buffer support (bug #11905)
    – X11 Additions/3D: fix Age Of Empires 3 rendering (bug #11331)
    – indows Additions/3D: fix Google Earth plugin rendering
    – Windows Additions/WDDM: autoresize fixes 
     
  6. BabyFarkMcGeeZax

    BabyFarkMcGeeZax MDL Novice

    Nov 12, 2013
    2
    0
    0
    Working off a previously mod'ed version of VBoxDD2.dll that had the XP string @ 11AB0 and the BIOS start @ 8A20, I tried patching the VBoxDD2.dll from 4.3.2 with no luck.

    The 4.3.2 BIOS appears to start at 8820, representing an offset of -200, or an offset of -180 if you look at how "NMI Handler call" has moved from 8A50 to 88D0. I tried shifting the XP string by both values with no joy.

    Then I measured where the 00's started that the XP string is embedded in. This space has appeared to shift from 11755 to 11c85, for a difference of 530. I also tried this - i.e., placing the XP string at the same relative offset from the start of the 00's. Again, no joy.

    I obviously have no idea where this string is supposed to go.

    [Win 7 x64 host, 8gb]
     
  7. skyforger

    skyforger MDL Novice

    Jan 6, 2012
    16
    0
    0
    I'm stuck at VBox 4.2.16 for XP Mode using the last VBoxDD2.dll 64 bit that was available for download. I keep an XP VM for software testing. I guess within a year or so I'll get rid of it. Maybe sooner. My host is Windows 7 SP1 64 bit.
     
  8. user_hidden

    user_hidden MDL Expert

    Dec 18, 2007
    1,034
    1,061
    60
    #489 user_hidden, Nov 29, 2013
    Last edited by a moderator: Apr 20, 2017
    VirtualBox 4.3.4 (released 2013-11-29)


    Code:
     This is a maintenance release. The following items were fixed and/or added: 
    •VMM: fix for a bug in the Local APIC emulation causing a BSOD when booting certain guests (4.3.0 regression; bug #12240) 
    •VMM: fixed loading of saved states if VT-x/AMD-V was disabled (4.3.2 regression; bug #12291) 
    •VMM: fixed single-stepping inside the guest for certain instructions (VT-x only; bug #10947) 
    •VMM: fixed a performance issue involving APIC accesses after rebooting a VM (4.3.0 regression; VT-x only; bug #12296) 
    •VMM: fixed TPR patching to be enabled for 32-bit guests even when the chosen guest type is 64-bit (4.3.0 regression; AMD-V only) 
    •VMM: fixed occasional VINF_EM_TRIPLE_FAULT errors on hosts without the unrestricted guest execution feature (bug #12198) 
    •GUI: don't bother the user with the BPP warning if no Guest Additions are installed 
    •GUI: fixed machine-window paint artifacts on VM reboot / guest-screen resize 
    •GUI: make sure the assigned license and description are attached to the exported appliance 
    •GUI: fixed bugs in close VM action restrictions handling (bug #12333) 
    •GUI: fixed incorrect wizards text colors for some unusual look and feel styles (bug #11743) 
    •GUI: should restore seamless mode as soon as possible after VM reboot or shutdown 
    •GUI: fixes for medium enumeration 
    •GUI: the OS X hot corners were not accessible while a VirtualBox VM is running (Mac OS X hosts only; bug #4139) 
    •GUI: fixed an old bug which bared the host from cleanly shutdown / reboot if the VM selector window is open (Mac OS X hosts only; bug #8254) 
    •Host-only Networking: fixed creating of host-only network interfaces (4.3.0 regression; bug #12182) 
    •NAT: don't run into an infinite loop in case the host cannot access any DNS server (4.3.0 regression; bug #12300) 
    •NAT: don't re-connect the cable if the DNS information changes and the cable was disconnected before (4.3.0 regression; bug #12225) 
    •NAT: fixed several issues with automatically starting / terminating of NAT networks on VM start / stop and configuration changes 
    •VBoxNetDHCP: don't block prevent VBoxSVC from terminating (bug #12264) 
    •2D Video acceleration: fix crashes on presentation mode switches (bug #9194) 
    •BusLogic: allow to run VMs with more than one BusLogic SCSI controller enabled 
    •Keyboard: fixed a VM crash if a VM was resumed from a saved state where at least one key was pressed (bug #11289) 
    •VBoxSVC: fixed a heap corruption under certain conditions (4.3.0 regression) 
    •VBoxSVC: fixed a race leading to a hang during initialization (bug #12349) 
    •OVF: fixed import logic for OVF appliances containing multiple VMs 
    •OVF: improved logic for finding an appropriate image format during OVF import 
    •API: block the removal of the current snapshot if it has child snapshots (only relevant for VMs without snapshottable hard disks, their presence always prevented removal), which resulted in VM configuration corruption 
    •API: mark VM configurations with snapshots but without current snapshot as inaccessible, as this combination is nonsense 
    •API: fixed information for some automatically generated events (only with XPCOM, Windows host was not affected), which caused errors when getting some of the attributes over the webservice (bug #12379) 
    •SDK: extended the functionality coverage for the C bindings 
    •Guest Control: various bug fixes and improved VBoxManage help (bugs #8072, #11044, #12336, #12338, #12346, #12371) 
    •Windows hosts: another attempt to fix the massive DPC latency (bug #6242) 
    •Windows host installer: make registering file extensions optional, contributed by Tal Aloni (bug #8009) 
    •Mac OS X hosts: properly sign the kernel extensions for Mavericks hosts (bug #12256) 
    •Mac OS X hosts: fixed a bug where the VirtualBox dock icon was not properly removed from the dock after a VM terminated preventing Mavericks hosts from shutting down (bug #12241) 
    •Mac OS X hosts: fixed minor installer issue (bug #12275) 
    •Linux hosts / guests: Linux 3.13 compile fixes (bug #12358) 
    •Linux guests: build the vboxvideo kernel module correctly on OL/RHEL 6.1 guests (bug #11996) 
    •Linux guests: make 3D work on Slackware 14.1 (bug #12320 comments 3 and 4) 
    •Guest Additions/3D: fixed an occasional dead-lock (bug #12319) 
    •Windows Additions/3D: fixed possible memory leaking (bug #12228) 
    •Windows Additions/XPDM: use separate tables containing valid video modes for each virtual monitor 
    •Windows Additions: fixed automatic logins for Vista and newer Windows guests (bug #12332) 
     
  9. hidesan

    hidesan MDL Novice

    Nov 27, 2010
    38
    12
    0
    I changed to edit the .vbox's extradataitem.

    <ExtraDataItem name="VBoxInternal/Devices/acpi/0/Config/SLICTable" value="C:\Documents and Settings\yourusername\VirtualBox VMs\yourVMname\SLIC.BIN"/>

    This is successful in Ver. 4.3.4.

    =====

    This "VBoxManage.exe" method doesn't work at Ver.4.3.4. This version seems to verify the size of BIOS.
    I inserted slic 2.1 dell.bin, but the result is as follows:


    Invalid system BIOS file size ('C:/VMSLIC/DELL.BIN'): 0x176 (374) (VERR_OUT_OF_RANGE).

    E_FAIL (0x80004005)
    Console
    IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6}



     
  10. user_hidden

    user_hidden MDL Expert

    Dec 18, 2007
    1,034
    1,061
    60
    @hidesan maybe your BIN is corrupted but the feature works fine in 4.3.4 using extradataitem for slic
     
  11. CocoNuts

    CocoNuts MDL Novice

    Sep 23, 2007
    36
    7
    0
    #492 CocoNuts, Dec 19, 2013
    Last edited by a moderator: Apr 20, 2017
    VirtualBox 4.3.6 (released 2013-12-18)

    Code:
        VMM: fixed a Guru Meditation VINF_EM_TRIPLE_FAULT caused by VMCB caching with nested paging on certain AMD CPUs (bug #12451)
        VMM: fixed a Guru Meditation VERR_VMX_UNEXPECTED_INTERRUPTION_EXIT_TYPE while intercepting debug exceptions (VT-x only; bug #12410)
        VMM: fixed a Guru Meditation VERR_SVM_UNEXPECTED_EXIT while intercepting debug register accesses (AMD-V only; bug #12481)
        VMM: fixed a VERR_SSM_STRUCTURE_MAGIC error when trying to load a saved state made with VBox 4.3.4 when VT-x/AMD-V is disabled. Unfortunately, VBox 4.3.4 produced broken saved states for this configuration so you have to discard these states (bug #12414)
        VMM: added a few more MSRs to the whitelist required by certain guests (bug #12245)
        GUI: fixed deleting of inaccessible VMs (4.3 regression, bug #12205)
        GUI: fixed warnings in VM settings / number of guest processors (bug #12480)
        Main: don't automatically enable 64-bit guests on 64-bit hosts if VT-x/AMD-V is not available (bug #12424)
        Main: always expose the DMI memory information to Windows 2012 guests (bug #12017)
        Main: fixed occasional crashes on guest display resolution change (bug #7063)
        Main: fixed reporting back temporary name when calling IGuestSession::DirectoryCreateTemp() (bug #12498)
        API: fix for a hang when launching a GUI VM through the API, which crashes due to GUI unavailability
        Storage: fix for BLKCACHE_IOERR runtime errors under rare circumstances (bug #11030)
        Network: allow to start more than 5 PCNet instances (bug #12426)
        E1000: if the cable was disconnected before the guest initialized the device, the link status was not properly set to 'down' after the initialization completed despite the fact that there was no connection
        3D support: fixed offset of guest 3D image elements (Mac OS X Retina hosts only; bug #11021)
        Solaris hosts: fixed accessing the host driver from non-global zones (4.3 regression, bug #12271)
    
     
  12. avis

    avis MDL Junior Member

    May 17, 2007
    58
    0
    0
    #493 avis, Dec 19, 2013
    Last edited by a moderator: Apr 20, 2017
    The methods describe above do not seem to work with 4.3.6:
    - Editing the VBOX file - changes are lost when the VM restarts
    - VBOXmanage also does not work (error message)

    The following method did work for me:

    Code:
    VBoxManage.exe setextradata VMName VBoxInternal/Devices/acpi/0/Config/CustomTable "Path to slic.bin"
    Example:

    Code:
    VBoxManage.exe setextradata W7SP1 VBoxInternal/Devices/acpi/0/Config/CustomTable "C:\VirtualBox VMs\W7SP1\SLIC.BIN"
    Tested with 4.3.6

    /a
     
  13. user_hidden

    user_hidden MDL Expert

    Dec 18, 2007
    1,034
    1,061
    60

    method has not changed and still works just fine on new install or on upgrade settings are NOT lost
     
  14. Carlos Detweiller

    Carlos Detweiller Emperor of Ice-Cream

    Dec 21, 2012
    6,358
    7,077
    210
    Make sure all VB and VBOXSVC processes are closed before changing the data. A lingering VBOXSVC process can indeed do a rollback.
     
  15. avis

    avis MDL Junior Member

    May 17, 2007
    58
    0
    0
    After upgrading from previous version of VBOX - virtual machines that were activated with SLIC remain activated - but when creating a new virtual machine from scratch and the method described earlier do not work - this is my experience anyway. Using custom ACPI table does work though.

    /a
     
  16. Carlos Detweiller

    Carlos Detweiller Emperor of Ice-Cream

    Dec 21, 2012
    6,358
    7,077
    210
    Just tested with 4.3.6 - adding SLIC (by editing .vbox file) and activating works like it did since early 4.x releases.
     
  17. TophrHwk

    TophrHwk MDL Novice

    Feb 13, 2010
    6
    2
    0
    Can anyone please provide assistance? I've been experimenting similar to BabyFarkMcGeeZax this afternoon and I can not get XP Mode to activate on VB 4.3.6 under Win7x64. I would prefer not to use an older version of VB, so if anyone has any thoughts, I would welcome them. Thank you!

    Edit: I've been able to modify version 4.2.20 (x64) successfully, which I've attached to this post as I know some folks have had issues with the 64-bit version of Amiga's patcher, but I'm still interested in getting 4.3.x working.
     
  18. ailin

    ailin MDL Novice

    Nov 9, 2012
    9
    14
    0
    XP Mode VirtualBox 4.3.6 patch

    Hi ALL!

    Some time ago I tried to make genuine my VirtualBox Windows XP using Microsoft Win7 XP Mode activation. For that purposes I patched the VirtualBox 4.3.6 BIOS for SLP.
    It works fine when using extradata "VBoxInternal/Devices/pcbios/0/Config/BiosRom" in vbox config.

    If anybody like to use VBoxDD2.dll the patched version is also available. It's size a little bigger 117KB and I cannot attach it to the message. You can get it here: sendspace [dot] com/file/d6igid

    Please note that patched versions of these files can affect 16-bit PCI drivers that uses non-standard API (just remember that if you like to run native MSDOS (really native but not DOS window in WinXP) or other 16-bit software that uses PCI bus). WinXP itself (as Vista/7/8/etc) should not be affected by that.
     
  19. nerd.brazil

    nerd.brazil MDL Novice

    Feb 5, 2014
    11
    0
    0
    Nice work ailin! I tried and it works just fine.

    I am a little confused as to why your OEM STRING is located at offset 0x90e1-0x9113 (pcbios.bin) when according to:

    MICROSOFT (OEMBIOS.CAT CRC32=B4FFCA38)
    F000,908A,,Windows_Virtual_XP_F9161D8E7FCC11DDBFAA369856D89593

    The the string is expected at 0x908a-0x90db (51 bytes). Actually since READ LENGTH is not specified, the default 104 bytes is used, therefore the string can be anywhere from 0x908a-0x90f2 (104 bytes). While you start within this range, the rest of the string is outside this range.

    Would it work if you had patched at exactly 0x908a?