either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
Linux compatibility package based on the openSUSE Linux distribution.
Please visit http://www.opensuse.org/ for more information about openSUSE
Linux.
This package supports running ELF binaries linked with glibc2 that
require dbus-glib shared libraries.
Linux compatibility package based on the openSUSE Linux distribution.
Please visit http://www.opensuse.org/ for more information about openSUSE
Linux.
This package supports running ELF binaries linked with glibc2 that
require dbus-glib shared libraries.
Linux compatibility package based on the openSUSE Linux distribution.
Please visit http://www.opensuse.org/ for more information about openSUSE
Linux.
This package supports running ELF binaries linked with glibc2 that
require GTK+-2.x shared libraries.
Linux compatibility package based on the openSUSE Linux distribution.
Please visit http://www.opensuse.org/ for more information about openSUSE
Linux.
This package supports running ELF binaries linked with glibc2 that
require GTK+-2.x shared libraries.
Linux compatibility package based on the openSUSE Linux distribution.
Please visit http://www.opensuse.org/ for more information about openSUSE
Linux.
This package supports running ELF binaries linked with glibc2 that
require libffi shared libraries.
Linux compatibility package based on the openSUSE Linux distribution.
Please visit http://www.opensuse.org/ for more information about openSUSE
Linux.
This package supports running ELF binaries linked with glibc2 that
require libffi shared libraries.
- Uniscribe support in the RichEdit control.
- Support for condition variables and Slim Reader/Writer locks.
- More D3D command stream preparation work.
- Optional Start Menu in desktop mode.
- Improved support for vertical fonts metrics.
- Various bug fixes.
Changes:
System emulation
Device emulation
Audio
The HDA device emulation now includes a mixer by default.
Previously this had to be enabled with the configure argument
"--enable-mixemu" when building QEMU.
Audio will work correctly on systems without OSS (/dev/dsp).
On previous versions, those systems needed special arguments
to "configure" for audio to work out of the box.
Audio honors the QEMU_AUDIO_TIMER_PERIOD environment variable
and has less CPU utilization by default than previous versions.
Block devices
Support for the LSI 53C810 SCSI HBA, which unlike the 895A is
supported on some very old Windows NT versions.
Device assignment
VFIO now supports setting CPU affinity on MSI interrupts.
VFIO can now reset assigned devices much more reliably using
either PCI function-level reset (FLR), power management, or a
reset (done by the kernel) of the parent bridge.
Several improvements to the reliability of using option ROMs
for devices that are assigned with VFIO.
USB
Performance and functionality improvements for USB 3.0.
MicroBlaze
Can now specify an initrd on the command line.
PowerPC
PowerPC now supports the dump-guest-memory command.
s390x
The "nmi" command will trigger a crash dump from kdump, using
a RESTART interrupt.
The SCLP line-mode console ("operating system messages") can
be accessed with "-device sclplmconsole".
x86
ACPI tables can be generated by QEMU and can be used by firmware
directly. This will in the future enable new features without
modifications of all firmware components (SeaBIOS, OVMF,
CoreBoot)
Initial support for supporting more than 1TB of RAM (but firmware
does not yet support this).
Xen HVM domains can now resume from suspend-to-RAM (S3) state.
Monitor
Subcommands (like "info block") can now autocomplete their
options.
Help for a single subcommand can be printed with a monitor
command such as "help info block".
New commands "blockdev-snapshot-internal-sync",
"blockdev-snapshot-delete-internal-sync" improve support for
internal qcow2 snapshot.
New command "blockdev-add" provides a QMP interface for block
device hotplug.
Block devices
The throttling algorithm has been rewritten; the new code is
more robust, and supports configuration of separate limits for
sustained I/O vs. I/O bursts
Migration
Migration was broken from QEMU <= 1.5 to 1.6; the new release
fixes it.
User-mode emulation
M68K ColdFire emulation supports atomic system calls.
Block devices, qemu-img, qemu-io
The sheepdog driver supports automatic reconnect after network
errors
The VMDK driver supports files produced by VMWare ESX.
The qcow2 driver can detect some cases of corruption, and will
prevent writing to a corrupted image.
The VHDX driver supports creating and writing .vhdx images.
The metadata of a file (where each sector of the guest image
is stored in the file on the host) can be dumped in human-readable
or JSON format using a new command "qemu-img map".
Guest agent
The "filesystem freeze/thaw" commands are now supported on
Windows too, where they will invoke the native Volume Shadow
Copy Service (VSS).
Miscellaneous
For targets that have no embedded disassembler, QEMU will now
produce hexadecimal dumps instead of just emitting an error
when a disassembly is requested. The enclosed script disas-objdump.pl
can be used, together with an external objdump program, to
convert the dump to a readable disassembly.
Host support
TCG now runs on x32 hosts.
Known issues
On Win32, QEMU must be compiled with --disable-coroutine-pool
to work around a suspected compiler bug.
The GTK terminal windows (monitor, serial console, parallel,
...) are still unusable in TCG mode: they lose characters and
can raise deadlocks.
pkgsrc changes: depend on hicolor-icon-theme as it installs files in
share/icons/hicolor and pkglint says so.
Upstream changes:
August 31, 2013
Stella release 3.9.2 for Linux, MacOS X and Windows is now available.
- Improved parsing of the DASM lst file for the debugger
disassembly; it sometimes missed constant declarations.
- Changed 'usemouse' argument from a true/false option to accept
'always', 'analog' and 'never'. This allows to use the mouse as a
controller under more specific circumstances. The default is 'analog',
which means the mouse is only used to emulate analog-like devices
(paddles, trackball, etc).
- Added ability to use bold fonts within the debugger window, which
can be set with the 'dbg.fontstyle' commandline argument as well as in
the debugger UI Settings dialog. This is useful for those that find
the current font too narrow.
- Renamed 'debuggerres' argument to 'dbg.res'. All future debugger-
specific options will start with 'dbg.'.
- The TIA 'zoom' area in the debugger now supports scrolling the
mouse wheel (currently up/down only, as I don't have a sideways
scrolling mouse to test with).
-Have fun!
August 21, 2013
Stella release 3.9.1 for Linux, MacOS X and Windows is now available.
*** Note: because of TIA/6502 changes, the state file format has ***
*** changed again, and old state files will not work with this ***
*** release. ***
- Several bugfixes and improvements to the debugger:
- Improved display of debugger when using larger video
modes. There are now three font sizes, which are automatically
selected when the debugger is sized accordingly. When using larger
fonts, the extra space is now used more efficiently.
- Fixed bug in disassembly when the mirror used for the current
PC didn't match the mirror for the current bank. In this case, the
disassembler became confused and didn't properly track the PC
address.
- Fixed bug in display of current TIA frame number in the UI;
depending on how breakpoints were set, it was sometimes off by
one.
- Fixed RAM widget Search/Compare textboxes; entering any data
and then pressing 'Enter' / clicking 'OK' locked the UI until
exiting and re-entering the debugger.
- Changed display for various TIA position counters to decimal
(from hex) in the TIA tab. Related to this, all data input widgets
in the UI now have the ability to enter binary, decimal or hex
values by using the proper leading character (\, #, $,
respectively).
- Added 'INTIM Clks' to the 'I/O' tab. which shows the number of
clocks between each 'step' of the INTIM timer.
- Added ability to modify 'tiadriven' commandline argument to the
'TIA' tab, and 'ramrandom' to the 'I/O' tab. These options were
available for quite some time, but they weren't exposed in the UI.
- Added 'cpurandom' commandline argument, and associated UI item
to the 'I/O' tab. This works similar to 'ramrandom', and
randomizes the contents of the CPU registers on ROM startup.
- Added 'uhex' debugger prompt command, which toggles all
hexadecimal display between upper/lower case. This setting is also
saved in the settings file as argument 'dbg.uhex'.
- Removed 'loadsym' command from the debugger prompt, since the
DASM symbol file is always loaded anyway, making the command
redundant. Related to this, fixed loading symbols with ###.name
convention; the leading number is now stripped.
- Added support for DASM lst files (created with the -l
option). For now, the contents are only partially used, to detect
constants vs. symbolic addresses in the symbol file. Eventually,
further information from the lst file may be used.
- The GRPx and PFx registers in the TIA output now show inactive
background pixels as either blanked or with the underlying object
colour, instead of always being black. This gives a more accurate
representation of how the registers are actually drawn
onscreen. Thanks to Tjoppen of AtariAge for this idea and sample
code.
- The 'Source Address' locations for the CPU registers now show
labels where appropriate.
- Renamed 'Override properties' dialog (accessible from the ROM
launcher by a right-mouse-button click) to 'Power-on options', with
the following new options:
- Set start-up state for both joysticks as well as console
select/ reset buttons. Related to this, added 'holdjoy01' and
'holdjoy1' commandline arguments, and removed 'holdbutton0'
argument.
- The ability to load the ROM directly from this dialog, after
changing any settings, and also to start in the debugger.
- Added more detailed information as to how to use this
functionality to the UI.
- Buttons held down are reset approx. 0.5 seconds after starting
the ROM, to simulate pressing and releasing the buttons on a real
console.
- Fixed bug when using event remapping; changes were being saved only
when launching a ROM from the launcher, not in standalone mode.
- Improved bankswitch autodetection for newer EF and EFSC ROMs
generated by batari Basic, thanks to RevEng of AtariAge.
- Added properties database info for "Princess Rescue" ROM.
For the Linux/UNIX port:
- Fixed bug whereby a maximize button was always present in the
window title bar. Stella could not be expanded in this way, so the
button was removed.
- Added Startup notification protocol patch to the .desktop file
from Dan Fandrich.
- Updated included PNG library to latest stable version.
June 27, 2013
Stella release 3.9 for Linux, MacOS X and Windows is now available.
- Greatly extended functionality of the debugger disassembly:
- There is now a new tab which lists information specific to the
cartridge bankswitching scheme in use. This includes the ability
to modify internal state even for esoteric ROMs which don't follow
the standard layout of 4K per bank.
- The debugger now generates DASM-compatible disassembled code,
which can be saved to an external file. This disassembly is based
on both a static and runtime analysis, and is extremely
accurate. It also automatically differentiates between
CODE/PGFX/GFX/DATA/ROW areas, whereas normal Distella only
differentiates between CODE/GFX/ROW. For now, only single-bank (4K
and smaller) ROMs are supported; support for multi-bank ROMs will
come in a future release.
- The disassembly now recognizes various TIA/RIOT read/write
mirrors, and marks them as such (for example, INPT4|$30 instead of
INPT4 for address $3C). Special thanks to Omegamatrix for sample
code and idea for this feature.
- ROMS less than 2K in size (so called 'Sub2K' ROMs) now show
only the actual data in the binary. This means, for example, that
a 256 byte ROM will show only 256 bytes in the disassembly,
instead of padding duplicated data to 2K boundary.
- Fixed bug when entering patched bytes; the current number base
wasn't being used.
- Fixed labelling in ROW directives; it wasn't accurately setting
a label in the case where it occurred in the middle of the data.
- Added a new dialog for changing Distella settings, located by
right-clicking the disassembly code.
- The commandline option 'dis.resolvedata' has been renamed to
'dis.resolve', with new usage (see manual for further details).
- Fixed regression in handling ZIP files (as compared to version
3.7.5) created with newer versions of the ZIP program. Related to
this, added better error messages for invalid/missing/unreadable ROM
files.
- Added 'snapname' commandline argument and associated UI item, for
specifying whether snapshots should be saved using either the internal
ROM database name or the actual ROM filename. This feature was present
in older releases of Stella, and due to popular demand it's now back
again. Related to this, added a new dialog specifically for the
numerous snapshot-related items.
- Fixed bug in Linux/OSX versions when starting Stella for the first
time; it was previously creating mislabeled directories to store
settings, snapshots, etc.
- Fixed redundant "New console created" message when entering the
same ROM multiple times from the ROM launcher.
- Updated profile database for "BasketBall" ROMs; the joysticks are
now swapped by default, which allows one and two-player games to work
correctly.
- SuperCharger/AR ROMs now ignore the 'ramrandom' setting, and start
with RAM containing all zeroes. This seems to fix issues with
Dragonstomper always starting in exactly the same state.
- Fixed issue when debugging CompuMate ROMs; keystrokes entered while
debugging would be interpreted as typing on the CompuMate keyboard.
- Changed colour of the 'current PC indicator' in the debugger to
match the one used for line selection. This makes it easier to see for
those with problems seeing lighter colours.
- Improved functionality of the various pop-up dialogs and context
menus in the UI; they can now be navigated more fully by the keyboard
and mouse.
- Updated internal ROM properties database to ROM-Hunter version 9
(thanks go to RomHunter for his tireless research in this
area). Related to this, updated the snapshot collection.
- Updated included PNG and ZLIB libraries to latest stable version.
March 13, 2013
The Subversion repository used by Stella has been changed. All
developers will need to checkout again from trunk, or relocate their
current directory to the new system.
March 3, 2013
Stella release 3.8.1 for Linux, MacOS X and Windows is now available.
- Added support for TIA RSYNC writes, thanks to Omegamatrix of
AtariAge. This allows the recently released "Extra Terrestrials" ROM
to run, as well as improving emulation of "Fatal Run" and several
other test ROMs.
- Fixed typo in TIA HMOVE writes, thanks to Thomas Jentzsch. This
fixes the constant collision issues in "Kool-Aid Man", and several
other homebrew ROMs.
- Fixed sound issues on OSX PPC machines (all sound was in
little-endian format, but PPC is big-endian).
- The OSX DMG archive now contains proper modification dates.
February 23, 2013
Added an expanded explanation for first-time developers to the Development section of the Stella webpage.
February 21, 2013
Stella release 3.8 for Linux, MacOS X and Windows is now available.
- Huge changes to the sound system:
- The sound code now uses 16-bit signed samples instead of 8-bit
unsigned samples, making it more compatible with a wider variety
of systems.
- Improved sound output for several ROMs, including "Space Rocks"
(the 'heartbeat' sound can now be clearly heard).
- The 'volume clipping' option has been removed, since in 16-bit
mode it's no longer needed.
- The 'Tia freq' option has been removed.
- Selecting more common sample rates (other than 31400) now works
much better, but there are still a few ROMS (like Quadrun) where
31400Hz still works best.
Many changes to handling ZIP archives:
- Files in multiple levels are now recognized. This fixes issues
in Windows where such files couldn't be loaded at all, and in all
systems where ROMs with the same name (but in different
directories) weren't being recognized.
- ZIP contents are now handled more intelligently. Archives
containing only one ROM are automatically loaded, whereas those
with multiple files are treated as directories.
- Opening an archive from the commandline now works as in the UI,
where opening a multi-ROM archive will pop up the UI and show the
archive contents (as a directory).
- The ZIP code behind the scenes is now much faster by making use
of caching (the old code was actually from 1998!).
- This new 'archive' infrastructure may eventually lead to 7-Zip
support, as well as 'virtual' formats (such as showing the list of
files for 2in1/4in1/8in1/etc within the UI).
- Improved bankswitch autodetection for FA2 ROMs; 29K and 32K
versions (meant for Harmony cart) are now recognized.
- Improved bankswitch autodetection for X07 ROMs (although there's
only two known ROMs in existence, so the detection probably isn't
robust).
- Tweaked bankswitch autodetection for the 0840, F8 and FE schemes;
several homebrews that didn't run before now work correctly.
- Fixed regression in RIOT INTIM reads; at least one known ROM
(Mr. Roboto Berzerk hack) wasn't working properly.
- Fixed bug in the debugger with RIOT INTIM/TIMINT display; reads
were being done multiple times, changing the state of the registers
and resulting in incorrect emulation.
- Worked around bug in debugger disassembly of zero-page RAM; for
now, the resolving of address vs. data sections is turned off in such
a case. This fixes lockups in 'Meltdown' ROM.
- Added support for different directories for saving/loading PNG
files. These are set with the 'snapsavedir' and 'snaploaddir'
commandline arguments (which replace the old 'snapdir'), and are also
available within the UI.
- Changed 'eepromdir' commandline argument to 'nvramdir', and changed
the default location to BASEDIR/nvram (where BASEDIR depends on your
OS). This means all your EEPROM and Flash files will have to be
manually moved to this new directory. This affects developers, and
those people playing ROMs with AtariVox/SaveKey support as well as the
newer 'Star Castle' FA2 ROMs.
- Updated included PNG and ZLIB libraries to latest stable version.
December 22, 2012
Stella release 3.7.5 for Linux, MacOS X and Windows is now available.
- Improved regressions in PAL format autodetection, introduced in the
past several releases.
- Fixed crash when loading invalid PNG files in ROM browser.
- Snapshots generated by Stella now include more informative info,
such as the build number, platform architecture, TV effects in use,
etc.
October 31, 2012
Stella release 3.7.4 for Linux, MacOS X and Windows is now available.
- Fixed screen blanking regression in 'Video Chess', and improved
behaviour of ROMs that don't use VSYNC.
October 26, 2012
Stella release 3.7.3 for Linux, MacOS X and Windows is now available.
*** Note: because of TIA/RIOT changes, the state file format has ***
*** changed again, and old state files will not work with this ***
*** release. ***
- Improved handling of 'illegal' VSYNC signals, which sometimes
created 'short' frames that caused massive flickering. Also improved
related behaviour when VSYNC isn't used at all.
- Improved sound generation with ROMs that have irregular scanline
counts. This fixes many demo ROMs as well as Quadrun, where previously
there would be 'gaps' in the sound output.
- Improved emulation of RIOT chip, in particular the behaviour of
reading from TIMINT. Also, D6 of the Interrupt Flag register is now
properly set on active transition of the PA7 pin.
- Fixed bug in DPC+ bankswitch scheme; the music in several ROMS
wasn't playing correctly.
- The ROM properties database now uses 'Auto' instead of
'Auto-select' everywhere. This makes for less typing when running from
the commandline.
- Updated included PNG library to latest stable version.
framework, the former being enabled while the latter not. The OpenGL
renderer has caused crashes on the prior few versions and now we're getting
reports of these crashes on non-NetBSD, non-pkgsrc platforms. There's no
need to enable this option by default if it's not working properly. We can
re-enable it when it's fixed upstream. This version adds Dutch language
support. Also, we have SDL2 support in this version. From Changelog:
0.9.12 -> 0.9.13
general:
- Removed Carbon, PSP, Wii and Windows ports
- Removed autotools based build
- Removed autopackage
- mdf/mds images support (CyberWarriorX)
- Safeguard to reject unsupported cue files (CyberWarriorX)
- CD+G support (CyberWarriorX)
- Improved "manual mode" (Guillaume)
- Made it possible to build Yabause to ouput 16BPP (Guillaume)
- Hat support in SDL joystick code (anonymous)
- gdb stub (Guillaume)
- Improved emulated bios (CyberWarriorX)
sound:
- Fixed most of the distorted cd audio issues with the scsp core (CyberWarriorX)
video:
- Improvements to the software renderer (transparency, frameskip, (Guillaume)
qt port:
- Memory editor and search (CyberWarriorX)
- Improvements to the SH2 debugger: Back trace support, step over, step out (CyberWarriorX)
- Infinite loop tracking (CyberWarriorX)
- Don't restart emulation after every settings change (AmonX)
- Made Yabause compilable with Qt5 and SDL2 (CyberWarriorX)
- Log window can now be hidden (Guillaume)
- Save and restore window position (Guillaume)
- Can use .ini files in the application dir (Guillaume)
- Mouse and 3D control pad support (CyberWarriorX)
- Made drives and languages settings more user friendly (CyberWarriorX)
- Changing to fullscreen now updates resolution too (CyberWarriorX)
- Shortcuts editing (CyberWarriorX)
Version 0.2:
- add experimental support for Super Game Boy, including Super Game
Boy borders.
- add support for emulation speedup.
- add support for forcing emulation mode (Game Boy, Color Game Boy
or Super Game Boy) in Configuration File.
- improved accuracy for startup state.
RealBoy is a Free, Fast, Yet Accurate, Game Boy/Game Boy Color
Emulator for Linux/Unix. It has both technical as well as educational
goals.
Technically, it aims for the following:
1) Accuracy. Perhaps the most important technical goal, as seen in
the best closed-sourced emulators, such as KiGB and BGB, and some
free emulators, such as Gambatte and MESS.
2) Performance. Show that it is possible to implement a very fast
emulator without sacrificing accuracy.
3) Feature-rich. Implement advanced features such as a flexible
internal debugger.
* Included Linux image works fine on NetBSD/amd64 6.99.23
Changelog:
New features
Addition of ports to Amiga OS 3 and OS 4.
Sound emulation.
Support for RAM sizes other than 4MB (512KB, 1MB, 2MB,
4MB, 8MB, 12MB & 16MB now supported).
ARM250 & ARM3 CPU emulation.
ArcEm clock set from host's clock, partial RTC support.
Extension ROM emulation, allowing support for the
following new features when emulation RISC OS:
HostFS - A RISC OS filesystem to allow use of a
directory on the Host Filing system as a virtual
hard drive.
Mouse scroll wheel support.
Extra video modes, up to 1024x768 in 16 colours and
800x600 in 256 colours.
Bug fixes/Improvements
Many performance tweaks and optimisations, resulting in
a 5-6 times performance gain on ARM hosts. A 600MHz
XScale can now achieve a level of performance roughly
equivalent to an 8MHz ARM2. Similar performance gains
can be seen on other low-power hosts.
Video emulation rewritten to provide accurate redraw
and VSync timing, down to the scanline level.
Video emulation now supports upscaling and aspect ratio
correction for rectangular pixel modes.
All hardware clocks/timers (IOC timers, video DMA, audio
DMA, etc.) now run in real time, ensuring one second
takes one second no matter how fast the host machine
is.
Source code tidied a bit to remove redundant code,
including support for emulation of 32bit processor modes
(there are other, much better emulators for that!).
Source code converted to use C99 number types to aid
portability.
Instruction prefetch now correctly emulated - ensures
correct operation with self-modifying code and some
forms of copy protection.
RISC OS version now 32bit compatible, and ARMv7-safe.
Also much more useable with modern machines/LCD monitors
as it no longer requires the host to be able to support
Archimedes screen modes.
Windows version updated to build under Visual Studio
2010 (including Express edition).
Unix/X11 version now supports X servers that don't
support XWarpPointer.
PDP-10 KL10B model emulator. KL10B model supports extended addressing.
Tap networking support is from http://www.falu.nl/~rhialto/klh-diffs2 .
This package is potentially built on i386, amd64, arm, alpha, sparc,
and powerpc platforms. But this package supports i386 and amd64 only now,
and only amd64 build is tested, due to lack of my test environments.
* Update EmuTOS to 0.9.1.
Changelog:
2013/04/15 - version 0.9.15 released
The main new feature of this release is the seamless mouse integration mode:
o Mouse input handling is improved a lot. Now ARAnyM has a seamless mouse
integration when new Clocky (2013/04/15) is loaded.
o There is no need to manually ungrab or grab the mouse.
o Also mouse grab on left button click now reacts on the first button
click everytime (previously only if you had window focus) and the
host and mouse cursor positions are synced.
o And if you ungrab the mouse intentionally then it's not automatically
grabbed when the host mouse pointer returns to ARAnyM window.
o At last, the annoying "resetting weird mouse packet" error is gone, too.
Bugs fixed:
o Native Features were missing proper memory overflow checks and bugs
in NatFeat drivers could kill the ARAnyM.
o NFVDI had a bug (a race condition) in resolution switching.
o build date of EmuTOS was decoded improperly
Raw simulavr-1.0.0 does not build. Some patches, and SUBST to
convert MACROS etc., are added reflecting git repository
(These will be unnecessary at next release, hopefully).
(Upstream)
Bump the version
simulavr-0.1.2.1 to
simulavr-1.0.0
(From manual-1.0.pdf)
What features are new:
- Run multiple AVR devices in one simulation. (only with interpreter
interfaces or special application linked against simulavr library)
Multiple cores can run where each has a different clock frequency.
- Connect multiple AVR core pins to other devices like LCD, LED and
others. (environment)
- Connect multiple AVR cores to multiple avr-gdb instances. (each on
its own socket/port number, but see first point for running multiple
avr cores)
- Write simulation scripts in Tcl/Tk or Python, other languages could
be added by simply adding swig scripts!
- Tracing the execution of the program, these traces support all
debugging information directly from the ELF-file.
- The traces run step by step for each device so you see all actions
in the multiple devices in time-correct order.
- Every interrupt call is visible.
- Interrupt statistics with latency, longest and shortest execution
time and some more.
- There is a simple text based UI interface to add LCD, switches, LEDs
or other components and can modify it during simulation, so there is
no longer a need to enter a pin value during execution. (Tcl/Tk
based)
- Execution timing should be nearly accurate, different access times
for internal RAM / external RAM / EEPROM and other hardware
components are simulated.
- A pseudo core hardware component is introduced to do "printf"
debugging. This "device" is connected to a normal named UNIX socket
so you do not have to waste a UART or other hardware in your test
environment. (How?)
- ELF-file loading is supported, no objcopy needed anymore.
- Execution speed is tuned a lot, most hardware simulations are now
only done if needed.
- External IO pins which are not ports are also available. (E.g. ADC7
and ADC8 on ATmega8 in TQFP package.)
- External I/O and some internal states of hardware units (link
prescaler counter and interrupt states) can be dumped ot into a VCD
trace to analyse I/O behaviour and timing. Or you can use it for
tests.
Block devices
* New device "nvme" provides a PCI device that implements the NVMe standard.
* Fix for a possible data loss on crashes with IDE disks (due to mishandling of FLUSH requests)
Device assignment
* Legacy PCI assignment supports CPU affinity for MSI interrupts.
USB
* The XHCI (USB 3.0) controller supports live migration.
PCI
* ACPI hotplug of devices behind a PCI bridge is supported.
ARM
* The 32-bit ARMv8 LDA/STL instructions for load-acquire/store-release are supported (only with -cpu any); the remainder of the new v8 instructions will follow in a future release.
* The vexpress-a9 and vexpress-a15 boards have experimental support for virtio devices via a virtio-mmio transport. Note that the virtio command lines used with x86 systems won't work as they will create PCI virtio devices; use the devices "virtio-blk-device", "virtio-net-device", etc instead. Note that this functionality may change in future releases.
* The -initrd option now accepts ramdisks with a U-Boot header.
* A model of the Calxeda ECX-2000 / Midway system is now supported ("midway").
PPC
* Mac OS X guests supported (10.2-10.4 for PPC, 10.4 for PPC64)
* pSeries guests support live migration and savevm.
s390x
* If the kernel supports it, virtio-ccw supports ioeventfd and vhost when running on KVM.
* The dump-guest-memory command is supported.
SPARC
* Sun4c and Sun4d architectures and related CPUs were not fully implemented and have been removed.
* 24-bit display mode works
x86
* Firmware can be exposed to the guest as a flash device (using -pflash) also when running on KVM.
* In addition to the "xenfv" machine type, which is kept for backwards compatibility, Xen can now use the pc machine type (including versioned machine types) using "-M pc -machine accel=xen". Note that using PV-on-HVM drivers requires "-M pc -machine accel=xen -device xen-platform".
* QEMU can expose the full set of ACPI tables to the guest: See Features/ACPITableGeneration
* Conroe, Penryn and Nehalem CPUs have had their CPUID values fixed
* "-M isapc" now works on KVM too.
* -pflash can be used with KVM too.
more...
pkgsrc changes:
- update HOMEPAGE and MASTER_SITES
Upstream changes:
Changes from 20130726:
X11 dependent part:
- fix build failure with GTK+ <2.18
Changes from 20120618:
X11 dependent part:
- assign F11 key to switch fullscreen and print menu during fullscreen
are replaced with .include "../../devel/readline/buildlink3.mk", and
USE_GNU_READLINE are removed,
* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
are replaced with .include "../../mk/readline.buildlink3.mk".
pkgsrc changes:
- remove now unnecessary SUBST for audio.h conflicts
- update PLIST for new files
- adjust patches for hw directory reorganization
- update counting semaphore patches per comments on qemu-devel
Upstream changes:
Changes mentioned in 1.5.1 announcement:
http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg04798.html
295d81c: Update VERSION for 1.5.1 release (Anthony Liguori)
cc0bd7e: wdt_i6300esb: fix vmstate versioning (Michael Roth)
12e5b2b: virtio-rng: Fix crash with non-default backend (Cole Robinson)
cb55efe: iscsi: reorganize iscsi_readcapacity_sync (Paolo Bonzini)
1b94fc4: iscsi: simplify freeing of tasks (Paolo Bonzini)
5e690bb: vhost-scsi: fix k->set_guest_notifiers() NULL dereference (Stefan
Hajnoczi)
129db36: scsi-disk: scsi-block device for scsi pass-through should not be
removable (Pavel Hrdina)
637d640: scsi-generic: check the return value of bdrv_aio_ioctl in
execute_command (Pavel Hrdina)
9c4f5dd: scsi-generic: fix sign extension of READ CAPACITY(10) data (Paolo
Bonzini)
3abd71c: scsi: reset cdrom tray statuses on scsi_disk_reset (Pavel Hrdina)
5fcb9bf: nbd: strip braces from literal IPv6 address in URI (Jan Tomko)
6c8cf5f: qemu-socket: allow hostnames starting with a digit (Jan Tomko)
ce4e8f0: vmdk: byteswap VMDK4Header.desc_offset field (Stefan Hajnoczi)
c683f1b: target-i386: cpu: Fix potential buffer overrun in
get_register_name_32() (Igor Mammedov)
75e4aa9: pc: Fix crash when attempting to hotplug CPU with negative ID (Igor
Mammedov)
055a7fc: smbios: Check R in -smbios type=0, release=R parses okay (Markus
Armbruster)
93bc624: smbios: Fix -smbios type=0, release=... for big endian hosts (Markus
Armbruster)
61fbaee: smbios: Clean up smbios_add_field() parameters (Markus Armbruster)
685ee2d: smbios: Convert to error_report() (Markus Armbruster)
fa0f47d: log.h: Supply missing includes (Markus Armbruster)
7552569: error-report.h: Supply missing include (Markus Armbruster)
02d2672: tcg-ppc64: rotr_i32 rotates wrong amount (Anton Blanchard)
2917f6b: tcg-ppc64: Fix add2_i64 (Anton Blanchard)
9534f66: tcg-ppc64: bswap64 rotates output 32 bits (Anton Blanchard)
d208f05: tcg-ppc64: Fix RLDCL opcode (Anton Blanchard)
6b6f105: ivshmem: add missing error exit(2) (Stefan Hajnoczi)
3202c02: Makefile: Install qemu-img and qemu-nbd man pages only if built
(Andreas Farber)
5a893b0: tap: fix NULL dereference when passing invalid parameters to tap
(Jason Wang)
0817fa9: create qemu_openpty_raw() helper function and move it to a separate
file (Michael Tokarev)
5810174: blockdev: reset werror/rerror on drive_del (Stefan Hajnoczi)
eeaa8d3: q35: set fw_name (Michael S. Tsirkin)
c127070: target-i386: Fix aflag logic for CODE64 and the 0x67 prefix (Richard
Henderson)
252a7c6: qemu-char: don't issue CHR_EVENT_OPEN in a BH (Michael Roth)
6f3718c: xilinx_axidma: Do not set DMA .notify to NULL after notify (Wendy
Liang)
1fb147f: virtio-ccw: Fix unsetting of indicators. (Cornelia Huck)
72762f2: s390x/css: Fix concurrent sense. (Cornelia Huck)
31ba701: ui/gtk.c: Fix *BSD build of Gtk+ UI (Brad Smith)
9ca80c7: vmxnet3: fix NICState cleanup (Stefan Hajnoczi)
a548bac: Fix usage of USB_DEV_FLAG_IS_HOST flag. (Michael Marineau)
9b5751e: host-libusb: Correct test for USB packet state (Ed Maste)
032ce1b: qdev: fix get_fw_dev_path to support to add nothing to fw_dev_path
(Amos Kong)
baa8a8b: do not check pointers after dereferencing them (Paolo Bonzini)
327e75b: xen: start PCI hole at 0xe0000000 (same as pc_init1 and
qemu-xen-traditional) (Stefano Stabellini)
9e7fdaf: Remove OSS support for OpenBSD (Brad Smith)
d503afb: target-i386: fix abort on bad PML4E/PDPTE/PDE/PTE addresses (Luiz
Capitulino)
5b3ca29: update seabios to release 1.7.2.2 (Gerd Hoffmann)
7b9cdc5: Revert "roms: switch oldnoconfig to olddefconfig" (Gerd Hoffmann)
0565700: ide: Set BSY bit during FLUSH (Andreas Farber)
ddaa83e: chardev: fix "info chardev" output (Gerd Hoffmann)
38ec6c1: xen_machine_pv: do not create a dummy CPU in machine->init (Stefano
Stabellini)
951411f: main_loop: do not set nonblocking if xen_enabled() (Stefano Stabellini)
5c26608: xen: simplify xen_enabled (Stefano Stabellini)
3541912: qom/object: Don't poll cast cache for NULL objects (Peter Crosthwaite)
749806d: rtl8139: flush queued packets when RxBufPtr is written (Stefan
Hajnoczi)
a6fc2cd: hw/9pfs: use O_NOFOLLOW for mapped readlink operation (Aneesh Kumar
K.V)
eabdf85: hw/9pfs: Fix segfault with 9p2000.u (Aneesh Kumar K.V)
Changelog 1.5:
http://wiki.qemu.org/ChangeLog/1.5
General
-------
- The default for log output enabled via the '-d' command line switch is now
standard error rather than a file. You can obtain the previous behaviour
using the '-D' command line switch to specify a file to send the logging to.
- QEMU now uses poll rather than select, and thus does not have any
restriction on the number of open file descriptors.
System emulation
----------------
Device emulation
Audio
- The --audio-card-list configure option is not used anymore. Instead, you
can modify default-configs/pci.mak (for the PCI soundcards AC97, HDA and
ES1370) and default-configs/sound.mak (for the ISA soundcards) before
running "make".
- The "shortcut" -soundhw option is now available for all targets that have
a PCI bus.
Device assignment
- VFIO supports primary VGA passthrough using the experimental "x-vga=on"
option. The following devices seem to work: Nvidia 8400gs, 73001e, NVS290;
ATI/AMD Radeon HD5450 and HD7850.
- VFIO devices support the bootindex= property to override the default boot
order for assigned PCI devices.
USB
- Experimental support for USB 3.0 streams, both in the nec-usb-xhci
controller and in the usb-uas USB-attached SCSI device emulation.
- USB device passthrough has been rewritten to use libusb. For Linux, the
two backends can be compiled in a single QEMU executable (if libusb is
enabled, usb-host-linux will be the legacy implementation, usb-host will
be the libusb-based one; if libusb is disabled, usb-host will be the
legacy implementation). For BSD, it has to be chosen at configure time
using --enable/disable-libusb (the default is to use libusb if it is
available, otherwise use the legacy implementation).
SCSI
- QEMU can now emulate the VMware PVSCSI device using "-device pvscsi".
- QEMU can now use tcm_vhost, a virtio-scsi device model based on the
Linux-iSCSI implementation of SCSI.
Network cards
- QEMU can now emulate the VMware paravirtualized network card using
"-device vmxnet3".
ARM
- This release has initial support of KVM for the ARM architecture.
This requires a 3.9 or better Linux kernel and a Cortex-A15 CPU.
- The Zynq board provides a SD host controller interface.
- The PCI controller model for VersatilePB and Realview boards has been
significantly improved in functionality (including MMIO BAR support and
a correct PCI IRQ mapping). Note that Linux kernels currently do not take
advantage of this; however we autodetect kernels that expect the behaviour
of an old broken QEMU and fall back to that. (The old IRQ behaviour can
be forced with "-global versatile_pci.broken-irq-mapping=1" if absolutely
necessary.)
- Incorrect handling of the SRS instruction in Thumb mode has been fixed.
- Performance of TCG emulation of ARM targets is improved over previous
releases.
- Migration and vm save/load now works correctly on the vexpress-a15 and
vexpress-a9 models.
PPC
- Various improvements to TCG code generation
- KVM synchronizes more state
- Fix a few issues that blocked Mac OS X from working (still not 100% there
though!)
- Refactoring and improvement of soft mmu emulation for book3s
- Implement various new instructions for ISA 2.05 and ISA 2.06 compatibility
(-cpu POWER7)
- Implement support for KVM based e500 family watchdog
s390x
- Various accuracy fixes for device emulation
- Faster I/O hypercalls
- Add firmware to boot from virtio-ccw disks
- Guest kernel panics are notified to the host
SPARC
- Improve sun4u interrupt mapping, so that multiple PCI devices can be used
simultaneously
x86
- x86 supports emulation of a TPM (Trusted Platform Module) on machines
that have a hardware TPM
- Various speedups in TCG emulation of x86
- The iPXE ROMs that are distributed with QEMU support EFI
- TCG supports the SSE4.1, SSE4.2, PCLMULQDQ, AES-NI, BMI and ADX extensions.
- A paravirtual device is included that lets the guest notifies kernel
panics to the host.
- CPU hot-add support with cpu-add QMP command. More details
Features/CPUHotplug.
- new CPU properties "feature-words" and "filtered-features" to allow
introspection of supported and not supported CPU features.
- For reference and examples of how the new properties can be used by
libvirt and other components, see:
http://wiki.qemu.org/Features/CPUModels#Interfaces.2Frequirements_for_libvirt
QMP
- QEMU now generates a DEVICE_DELETED event when the guest acknowledges
a device hot-unplug operation.
- Much better handling for non-ASCII codepoints in JSON strings
Character devices
- Character devices gained support for flow control. More details in
Features/ChardevFlowControl
- All kinds of character devices can now be hot-plugged. Character device
hotplug is also supported from the "human" monitor.
Block devices
- IDE and SCSI disks always have the ability to issue "discard" (aka TRIM or
UNMAP) commands. However, by default "discard" commands are silently
ignored as they can cause performance degradation and fragmentation.
To enable them, the "-drive" option now supports a "discard" suboption;
the default value is "ignore" (or its synonym "off"), and the other valid
value is "unmap" (or "on").
- Sheepdog drives can also be specified with URIs.
- iSCSI disks support on-line resizing using block_resize. Similar to block
devices, the resize has to be done first outside QEMU.
- Various performance improvements in qcow2 internal snapshots (savevm).
- The NBD backend has improved latency.
- qemu-nbd can now skip image format probing using the -f/--format
command-line option.
- VHDX (MS Hyper-V) image format has initial read-only support. Dynamic and
fixed sized disks are supported, but not differencing images (e.g. VHDX
images with a backing file). Read-only is strictly enforced, and the
'readonly=on' option must be used for any VHDX images.
- Secure Shell (ssh) support. Access remote disks over ssh using
qemu -drive file=ssh://host/path/to/file
Live Migration
- Further improvements in throughput (up to +130%: 4.2 Gbps in 1.5 vs
1.8 Gbps in 1.4) and latency.
User interface
- QEMU now provides a GTK+ interface. The interface uses the VTE library
to provide better terminal emulation for serial consoles and the monitor.
- A new VNC extension has been added to communicate LED state changes for
the keyboard.
VNC
- Websocket connections can now be encrypted with TLS.
User-mode emulation
-------------------
- Threaded programs are now more stable, though still experimental.
Guest agent
-----------
- New commands in qemu-ga let the host put CPUs online/offline with help
from the guest OS (Linux only)
- Low impact CVE-2013-2007 ("qemu: guest agent creates files with insecure
permissions in daemon mode") is fixed.
- Note for guest administrators: unix domain sockets, logfiles etc.
created by previous versions of qemu-ga do not have their file mode
bits reset by this change; only newly created files have mode 0600
when daemonizing. Please delete your old files or change their
permissions manually when upgrading.
- The guest-file-open QMP command continues to create files with mode
0666 for compatibility reasons.
Host support
------------
- QEMU is now a lot faster on Windows hosts than in previous versions
- libcacard has been ported to Windows.
Known issues
- The GTK+ backend does not compile on BSD systems (including Mac OS X).
This will likely be fixed in a later stable update.
Pkgsrc changes;
* HOMEPAGE & distribution site moved.
* HP has released the ROMs, and copies of these are now automatically
installed.
* I could not get the X11 shm option to work (native X11, NetBSD 6.1/i386),
so it is disabled in the Makefile.
* Patch with updated pty handling code, borrowing some from FreeBSD's
package here.
Upstream changes:
2011-08-08 "G. Allen Morris III" <gam3@gam3.net> release 0.6.4
* Default to throttling speed only when key-pressed
* Add throttle switch for speed emulation
* Fix buffer overflow bug
* release keys on loss of focus
* typo in access_time adjust
2010-02-01 "G. Allen Morris III" <gam3@gam3.net> release 0.6.3
* made updates to x48.spec
* put debian directory in dist file
* install X48 app data in correct place
using pkg-config appdefaultdir xt
* removed more debugging messages
* added 'netbook' look for small/short screens
use +netbook on the command line
2010-01-30 "G. Allen Morris III" <gam3@gam3.net> release 0.6.2
* remove setlocal code that was causing a bug.
* removed some debugging code.
2009-06-31 "G. Allen Morris III" <gam3@gam3.net> release 0.6.1
* Fix to XShm to solve the 'LCD' Scramble problem.
2006-04-20 "G. Allen Morris III" <gam3@gam3.net>
* Added simple paste feature
* Repaired debugger non-readline input
* Changed from building with Imakefile to using GNU autoconfig
2005-03-20 "G. Allen Morris III" <gam3@gam3.net>
* added equal key for + and Meta Keys for Alpha
* applied a different fix for the arrow repeat key bug
* fixed a bug in the timer one logic. The cursor now flashes on input.
2005-03-20 "G. Allen Morris III" <gam3@gam3.net>
* added patch [000390] time.h compile bug
* added patch [000391] Arrow key repeat patch
* added ChangeLog file
2005-03-18 "G. Allen Morris III" <gam3@gam3.net>
* starting from x48 0.4.0.
with the alsa, opengl, png, pulseaudio, xrandr, xvideo, and zlib
PKG_OPTIONS. png, xrandr, xvideo, and zlib are enabled by default, since
those are the package's defaults. This relocates libXv from Makefile and
moves the disabling of OpenGL (which i can't see a reason why it is/was
disabled) to options.mk. Add msgmerge, xgettext, and perl to USE_TOOLS.
Set LICENSE to gnu-lgpl-v2.1, which is reflected on HOMEPAGE, but code also
includes gnu-gpl-v2 code, so add that too just to be safe. Bump PKGREVISION
pkgsrc changes:
- update PLIST for new files
- update patches (adjust lines, update comments)
- remove unnecessary files from subst list
XXX1: tested only on NetBSD/i386 6.1 and NetBSD/amd64 6.1
XXX2: needs to investicate hangup in pthread_cond_timedwait(3) on NetBSD
under load of multiple disk xfers (1.3.1 had the similar problem)
Upstream changes:
Changes mentioned in 1.4.2 announcment:
http://lists.nongnu.org/archive/html/qemu-stable/2013-05/msg00095.html
89400a8: update VERSION for 1.4.2 (Michael Roth)
e85b521: ppc: do not register IABR SPR twice for 603e (Herve Poussineau)
f890185: hw/9pfs: use O_NOFOLLOW for mapped readlink operation (Aneesh Kumar
K.V)
745f6c0: hw/9pfs: Fix segfault with 9p2000.u (Aneesh Kumar K.V)
0182df5: rbd: add an asynchronous flush (Josh Durgin)
7f28f0f: qemu-iotests: add tests for rebasing zero clusters (Paolo Bonzini)
45bbe1f: virtio-balloon: fix integer overflow in BALLOON_CHANGE QMP event (Luiz
Capitulino)
06efdc4: qemu-timer: move timeBeginPeriod/timeEndPeriod to os-win32 (Paolo
Bonzini)
0c70b5a: configure: Don't fall back to gthread coroutine backend (Brad Smith)
b90fd15: usb-redir: Fix crash on migration with no client connected (Hans de
Goede)
7322cb1: docs: Fix generating qemu-doc.html with texinfo 5 (Cole Robinson)
1d7723f: qga: unlink just created guest-file if fchmod() or fdopen() fails on
it (Laszlo Ersek)
67b460a: qga: distinguish binary modes in "guest_file_open_modes" map (Laszlo
Ersek)
84247bb: translate-all.c: Remove cpu_unlink_tb() (Peter Maydell)
2ebcc59: Handle CPU interrupts by inline checking of a flag (Peter Maydell)
69001b3: cpu-exec: wrap tcg_qemu_tb_exec() in a fn to restore the PC (Peter
Maydell)
3accab7: tcg: Document tcg_qemu_tb_exec() and provide constants for low bit
uses (Peter Maydell)
6025953: qga: set umask 0077 when daemonizing (CVE-2013-2007) (Laszlo Ersek)
93399d0: tcg/optimize: fix setcond2 optimization (Aurelien Jarno)
074dd56: target-mips: Fix accumulator arguments to gen_helper_dmult(u) (Richard
Sandiford)
d10d251: configure: Pick up libseccomp include path (Andreas Faber)
5613bda: virtio-ccw: Check indicators location. (Cornelia Huck)
c5675a9: tap: properly initialize vhostfds (Jason Wang)
e355efd: rng random backend: check for -EAGAIN errors on read (Amit Shah)
4d7f455: qdev: Fix QOM unrealize behavior (Andreas Farber)
0486c27: nbd: unlock mutex in nbd_co_send_request() error path (Stefan Hajnoczi)
Changes mentioned in 1.4.1 announcment:
http://lists.nongnu.org/archive/html/qemu-stable/2013-04/msg00071.html
57105f7: update VERSION for 1.4.1 (Michael Roth)
6e88653: Add -f FMT / --format FMT arg to qemu-nbd (Daniel P. Berrange)
6d0b135: target-mips: Fix accumulator selection for MIPS16 and microMIPS
(Richard Sandiford)
d89f9ba: Allow clock_gettime() monotonic clock to be utilized on more OS's
(Brad Smith)
46f9071: target-i386: Check for host features before filter_features_for_kvm()
(Eduardo Habkost)
f85e082: help: add docs for missing 'queues' option of tap (Jason Wang)
da78a1b: compiler: fix warning with GCC 4.8.0 (Paolo Bonzini)
2b92aa3: block: complete all IOs before resizing a device (Peter Lieven)
e4cce2d: Revert "block: complete all IOs before .bdrv_truncate" (Peter Lieven)
d15b1aa: qxl: better vga init in enter_vga_mode (Gerd Hoffmann)
65fe29e: doc: Fix texinfo @table markup in qemu-options.hx (Markus Armbruster)
888e036: acpi: initialize s4_val used in s4 shutdown (Bruce Rogers)
d019dd9: target-mips: fix rndrashift_short_acc and code for EXTR_ instructions
(Petar Jovanovic)
dac077f: target-mips: fix DSP overflow macro and affected routines (Petar
Jovanovic)
b09a673: target-mips: fix for sign-issue in MULQ_W helper (Petar Jovanovic)
79a4dd4: target-mips: fix for incorrect multiplication with MULQ_S.PH (Petar
Jovanovic)
57e929c: usb-tablet: Don't claim wakeup capability for USB-2 version (Hans de
Goede)
27c7135: chardev: clear O_NONBLOCK on SCM_RIGHTS file descriptors (Stefan
Hajnoczi)
283b7de: qemu-socket: set passed fd non-blocking in socket_connect() (Stefan
Hajnoczi)
a1cb89f: net: ensure "socket" backend uses non-blocking fds (Stefan Hajnoczi)
68f9df5: oslib-posix: rename socket_set_nonblock() to qemu_set_nonblock()
(Stefan Hajnoczi)
0135796: update seabios to 1.7.2.1 (Gerd Hoffmann)
799a34a: linux-user/syscall.c: Don't warn about unimplemented get_robust_list
(Peter Maydell)
8378910: linux-user: make bogus negative iovec lengths fail EINVAL (Peter
Maydell)
7a238b9: linux-user: fix futex strace of FUTEX_CLOCK_REALTIME (John Rigby)
02493ee: linux-user/syscall.c: handle FUTEX_WAIT_BITSET in do_futex (John Rigby)
7d47b24: qcow2: flush refcount cache correctly in qcow2_write_snapshots()
(Stefan Hajnoczi)
02ea844: qcow2: flush refcount cache correctly in alloc_refcount_block()
(Stefan Hajnoczi)
0fcf00b: page_cache: fix memory leak (Peter Lieven)
5610ef5: Fix page_cache leak in cache_resize (Orit Wasserman)
7a687ae: virtio-blk: fix unplug + virsh reboot (Christian Borntraeger)
b91aee5: ide/macio: Fix macio DMA initialisation. (Mark Cave-Ayland)
e09b99b: target-ppc: Fix CPU_POWERPC_MPC8547E (Andreas Farber)
611c7f2: pseries: Add cleanup hook for PAPR virtual LAN device (David Gibson)
4e4566c: configure: Require at least spice-protocol-0.12.3 (Michal Privoznik)
43e0061: qemu-bridge-helper: force usage of a very high MAC address for the
bridge (Paolo Bonzini)
3c3de7c: virtio-ccw: Queue sanity check for notify hypercall. (Cornelia Huck)
b0da310: tcg: Fix occasional TCG broken problem when ldst optimization enabled
(Yeongkyoon Lee)
d26efd2: qga/main.c: Don't use g_key_file_get/set_int64 (Peter Crosthwaite)
f305d50: qemu-ga: use key-value store to avoid recycling fd handles after
restart (Michael Roth)
d3652a1: qcow2: make is_allocated return true for zero clusters (Paolo Bonzini)
5194350: pseries: Add compatible property to root of device tree (David Gibson)
4d1cdb9: Allow virtio-net features for legacy s390 virtio bus (Christian
Borntraeger)
c3b81e0: rtc-test: Fix test failures with recent glib (Cole Robinson)
99b1f39: scsi-disk: do not complete canceled UNMAP requests (Paolo Bonzini)
f23ab03: scsi: do not call scsi_read_data/scsi_write_data for a canceled
request (Paolo Bonzini)
0c918dd: iscsi: look for pkg-config file too (Paolo Bonzini)
a8b090e: scsi-disk: handle io_canceled uniformly and correctly (Paolo Bonzini)
4a38944: qemu-ga: make guest-sync-delimited available during fsfreeze (Michael
Roth)
b7ff1a7: qmp: netdev_add is like -netdev, not -net, fix documentation (Markus
Armbruster)
d49fed4: vga: fix byteswapping. (Gerd Hoffmann)
cebb8eb: help: add docs for multiqueue tap options (Jason Wang)
3b39a11: net: reduce the unnecessary memory allocation of multiqueue (Jason
Wang)
ec9f828: qemu-char.c: fix waiting for telnet connection message (Igor Mitsyanko)
332e934: tap: forbid creating multiqueue tap when hub is used (Jason Wang)
e6b795f: block: complete all IOs before .bdrv_truncate (Peter Lieven)
51968b8: coroutine: trim down nesting level in perf_nesting test (Paolo Bonzini)
80d8b5d: target-ppc: Fix "G2leGP3" PVR (Andreas Farber)
ChangeLog 1.4
http://wiki.qemu.org/ChangeLog/1.4
System emulation
----------------
Device emulation
Device issignment
- Improved support for MSI-X on some Mellanox devices.
- VFIO supports PCIe extended configuration space.
USB
- Various CPU usage and throughput improvements for USB 2.0.
- usb-tablet can be connected as an USB 2.0 device, also lowering
the CPU usage substantially.
- Improved support for pass-through of USB serial devices.
- A new device usb-bot is the same as usb-storage, but is configured
like other SCSI adapters and supports multiple LUNs.
Network
- virtio-net supports multiqueue operation.
Other
- Added support for IndustryPack emulation. The TEWS TPCI200 device
emulation (device "tpci200") hosts IndustryPack modules, and the
GE IP-Octal 232 emulation (device "ipoctal232") implements eight
RS-232 serial ports.
ARM
- Various minor bugfixes; no new features in this release.
MIPS
- Improved support for DSP instructions.
PowerPC
- pSeries: NVRAM support for improved guest installation experience
- G3/G4: Allow dcbzl (for Mac OS X guests)
- e500: Linux guests don't use use SWTLB anymore, freeing memory for
real applications
- e500: MSI support
- e500: Allow for up to 31 PCI devices with -M ppce500
- e500: Support idle hcall when running KVM on e500mc or above
- e500: Emulate the EPR facility (e500mc and above)
- PReP: Emulate a full PC87312 Super I/O chipset. This adds a parallel
port. Changing the chipset configuration register at runtime is
not yet supported.
S390
- New virtio-ccw machine and transport support
- Add -cpu ? support
- Improved support for S390 emulation.
x86
- Generation of APIC IDs for NUMA configuration is now compatible with
the Intel(R) 64 Architecture Processor Topology Enumeration
- Many fixes to the Q35 chipset emulation, including experimental AHCI
migration support and support for device assignment.
- Resetting the machine with a write to port 0xCF9 now works.
- The xlevel argument for -cpu option currently silently fix-ups the
user-provided value if it's less than 0x80000000. This will be
removed in future QEMU versions; users are expected to provide valid
xlevel value or QEMU will fail to start.
KVM
- New devices isa-debug-exit and pc-testdev can be used to run
kvm-unit-tests.
Xen
- Persistent grants support implemented in xen_disk, giving substantial
performance improvements.
- xen_disk supports BLKIF_OP_FLUSH_DISKCACHE, making the device safer
against power losses.
- xen_console supports multiple secondary PV consoles.
QMP
- New commands chardev-add and chardev-del add support for hotplugging
character devices.
- New ringbuf-read/ringbuf-write to read and write to memory chardevs
- Various improvements in error messages
Block devices
- Discard operations are now supported on block devices and on
filesystems other than XFS. They are also fully asynchronous now.
- Block device mirroring (also known as storage migration) performance
was greatly improved.
- New experimental threaded backend for virtio-block-pci. This new
backend achieves several times the IOPS of the existing virtio-blk
implementation; for now it can only be used for raw image files and
disables features such as live snapshots and storage migration.
Live Migration
- Moved migration from a timer to a thread, improving latency in
other parts of QEMU and throughput of migration itself
- Many machine models are now correctly marked as not migratable.
Spice
- A new spiceport character device can be used to support arbitrary
communication between the SPICE server on the host and the client.
VNC
- Added support for the Websocket protocol.
User-mode emulation
-------------------
- Fix ppc guest signal handling
- Fix MIPS target
Guest agent
-----------
- qemu-ga supports hooks that are executed when the guest receives
the guest-fsfreeze-freeze and guest-fsfreeze-thaw commands
Host support
------------
- Native asynchronous I/O for Win32 (introduced in 1.3) now actually works.
2013-05-24 Philip Kendall <philip-fuse@shadowmagic.org.uk>
* Fuse 1.1.1 released.
* Distribute PORTING,hacking/valgrind.supp,sound/wiisound.c,
tests/success.{mgt.bz2,opd} and ui/wii/wiimouse.h (Stuart Brady).
* Add ChangeLog entries for 1.0.0.1 and 1.0.0.1a (Fredrick Meunier).
* Release correct version of source files.
2013-05-19 Philip Kendall <philip-fuse@shadowmagic.org.uk>
* Fuse 1.1.0 released.
* Remove ROMs that there is no formal permission to distribute.
* New features:
* Add Spectranet ethernet interface emulation (Philip Kendall).
* Add SpeccyBoot ethernet interface emulation (Patrik Persson).
* Add SpecDrum sound interface emulation (Jon Mitchell).
* Add DISCiPLE disk interface emulation (Stuart Brady).
Sinclair Network emulation is not provided, and the interface is
not available under 128K emulation in this release.
* Support reading PZX files (Fredrick Meunier).
* Add support for POK files (Sergio Baldoví).
* Add recording of movies to FMF files (Gergely Szasz).
* Add GTK+ 3 compatibility (Sergio Baldoví).
* Emulation core improvements:
* Add support for ABC AY stereo (Stuart Brady).
* Correct feedback in AY noise generator (Patrik Rak).
* MIC bit only isn't enough to drive the speaker (Fredrick Meunier).
* Mirror Interface 1 ROM to the second 8Kb of ROM as in the real
interface (Fredrick Meunier, with thanks to mcleod_ideafix and
zx81).
* Support the Beta interface setting to not auto-boot the interface
on 48K machines (ketmar).
* Machine specific improvements:
* Read and write all potential 1024k worth of memory pages from a
snap (ketmar and Fredrick Meunier).
* Initialise the Pentagon 1024k memory ports from a snapshot (ketmar
and Fredrick Meunier).
* Restore the paged state of the Beta ROM when loading Pentagon
128k/512k/1024k snapshots (ketmar and Fredrick Meunier).
* Debugger improvements:
* Disassemble ED 4D as RETI (Simon Owen).
* Add IM, IFF1 and IFF2 setting and getting to the debugger (Alex
Badea).
* Miscellaneous improvements:
* Many improvements to Win32 UI and installer (Sergio Baldoví).
* Allow the use of the SDL joystick code in the GTK+ and Xlib UIs
(Sergio Baldoví).
* Add current machine name to GTK+ and Win32 statusbars (Sergio
Baldoví).
* Allow the drag and drop of files from KDE (Dolphin/Konqueror)
(Sergio Baldoví, with thanks to Diondeville).
* Add a statusbar for the xlib UI (Gergely Szasz).
* Extend supported symbol characters on SDL and xlib UIs (Sergio
Baldoví).
* Support for the TZX set signal level block (Fredrick Meunier).
* Drop support for GLib and GTK+ version 1.x (Alberto Garcia and
Sergio Baldoví).
* Support setting late timings from snapshots (Fredrick Meunier).
* Various other minor bugfixes.
2013-05-24 Philip Kendall <philip-fuse@shadowmagic.org.uk>
* libspectrum 1.1.1 released.
* Decreased libtool version to allow binaries built against
libspectrum 1.0.0 to run with libspectrum 1.1.1.
2013-05-18 Philip Kendall <philip-fuse@shadowmagic.org.uk>
* libspectrum 1.1.0 released.
* Support for Spectranet in snapshots (Philip Kendall).
* Support for Cheetah SpecDrum in snapshots (Fredrick Meunier).
* Support reading PZX files (Fredrick Meunier).
* Support for the TZX set signal level block (Fredrick Meunier).
* Various minor bug fixes/improvements:
* Add support for detecting POK files (Sergio Baldoví).
* Advertise support for bzip2 compressed and wav files (Sergio
Baldoví).
* Drop support for GLib version 1.x (Alberto Garcia).
* Add support for audiofile 0.3.x (Alberto Garcia).
* Load all snapshot RAM pages for machines with more than 128k
(Fredrick Meunier; thanks, ketmar).
* Support more SZX 1.5 features (Fredrick Meunier).
* Modernise autoconf support (Sergio Baldoví).
* Remove obsolete patch.
* Remove deprecated CONFIGURE_ARGS.
Changelog:
Changes in 2.6.2 (May 26, 2013):
- CPU
- VMX: implemented VMENTER to non-active guest state (HLT, SHUTDOWN, WAIT-FOR-SIPI)
- VMX: fixed write of guest segment access rights VMCS fields (32-bit field
was truncated to 16-bit)
- CPUID: Don't report Architectural Performance Monitoring in CPUID.
Reporting true capabilities without actually supporting them breaks Win7 x64 installation.
- CPUID: Fixed bx_generic CPUID std leafs (all std leafs > 2 were corrupted)
- CPUID: Enable all supported VMX capabilities for bx_generic CPUID configuration.
- CPUID: Enable X2APIC support for Ivy Bridge CPUDB configuration.
- Configure and compile
- Enabled VMX compilation by default in shortcut scripts.
- Allow CPU_LEVEL=5 configurations (pentium_mmx and amd_k2_chomper) even when Bochs was
compiled with CPU_LEVEL > 5.
- Misc
- Fixes for Bochs port on MorphOS (based on a patch by Thore Sittly):
missing functions, byte-swapping and cdrom support.
-------------------------------------------------------------------------
Changes in 2.6.1 (April 7, 2013):
- CPU / CPUDB
- Bochs is fully aligned with rev45 of the of Intel(R) Architecture Manual.
- Implemented Supervisor Mode Access Prevention (SMAP) support
- Implemented VMX APIC Registers Virtualization and VMX Virtual Interrupt Delivery
- Implemented VMCS Shadowing and #VE exception secondary VMEXIT controls emulation
- Implemented RDRAND and RDSEED instructions
! CPUDB: Added AMD FX-4100 (Zambezi) configuration to CPUDB
- Bugfixes for CPU emulation correctness (critical fixes for SVM and AVX2 emulation)
- Bochs Debugger and Instrumentation
- Use Enhanced GUI Debugger instead of old-style wx debugger with wx gui.
The old-style wx debugger support was deprecated and removed from the source code.
- I/O Devices
- Implemented 3dfx Voodoo Graphics card emulation based on DOSBox patch, to enable
configure with --enable-voodoo option.
- Hard drive / HD image
- Added full save restore support for most of the disk image formats
- undoable / volatile mode: added support of other types of r/o base images
- DLL HD support rewritten and enabled for WIN32 host
- PCI chipset
- Implemented i430FX chipset emulation
- USB UHCI always enabled in the i440FX case
- Config interface
- Configure option --enable-misaligned-sse moved to runtime option in .bochsrc. The old
option is deprecated and should not be used anymore.
- moved 'user_shortcut' bochsrc option to the 'keyboard' option
- save log options per device to bochsrc
- win32: implemented scrollable dialog items for large parameter lists
- GUI and display libraries
- Graphics snapshot feature rewritten to support all kinds of graphics modes
- wx: starting a second simulation without closing Bochs now almost possible
- Tools
- bxcommit: added support for converting flat to growing mode images
to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.
While doing that, also bump freetype2 dependency to current pkgsrc
version.
Suggested by tron in PR 47882
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
* Imported hqx filters.
* Added debugger support.
* Rendered screen is now scaled by a factor of 2 by default.
* Fixed joystick issues. bool_joystick is also enabled by default.
* DGen is now fully controllable from a joystick/joypad.
* Imported Cyclone 68000 0.099, a M68K core written in pure ARM assembly.
* Imported DrZ80, a Z80 core also written in pure ARM assembly.
* Cyclone 68000 and DrZ80 are now the default CPU emulators on ARM.
* Lots of bugfixes.
* Option to automatically save configuration on exit
* More settings saved in configuration:
- currently attached tape file
- cartridge settings, including currently attached cartridges
- state of R-Time 8
- system settings, including Mosaic/Axlon RAM size
* New Tape Management menu - can now create blank tape images, switch tape
to read/write in order to save additional data at the end of the current
tape image, rewind/fast forward the tape, and mark it as read-only. See
DOC/USAGE for details.
* Displaying tape position when "Show sector/block counter" is enabled.
* Reworked Cartridge Management menu - now displays filename of the
attached cartridge.
* Option to disable restarting of the machine after cartridge change.
* When attaching a cartridge from the command line, cartridge type can now
be specified using the new -cart-type and -cart2-type options.
* New cartridge types supported:
- OSS 8 KB cartridge
- OSS two chip 16 KB cartridge (043M)
- Blizzard 4 KB cartridge
- AST 32 KB cartridge
- Atrax SDX 64 KB cartridge
- Atrax SDX 128 KB cartridge
- Turbosoft 64 KB cartridge
- Turbosoft 128 KB cartridge
- Ultracart 32 KB cartridge
- Low bank 8 KB cartridge
- SIC! 128 KB cartridge
- SIC! 256 KB cartridge
- SIC! 512 KB cartridge
- Standard 2 KB cartridge
- Standard 4 KB cartridge
- Right slot 4 KB cartridge
* The configure script can now auto-detect some of the available display and
sound interfaces before compiling.
* Option to enable XEP80 added to The Emulator Settings menu.
* Emulation of the 1200XL, including console LEDs, no built-in BASIC, the
F1-F4 keys (mapped to arrow keys in the SDL version) and the on-board
J1 jumper.
* Emulation of the XE Game System, including the built-in game and
detachable keyboard.
* Revamped the Select System menu (now called System Settings). Can now
select many system settings, including RAM expansions, OS and BASIC
revision, and more.
* System ROM settings moved to a separate menu. Now it stores paths to all
known official revisions of the Atari OS, the 5200 BIOS, all BASIC
revisions, and the XEGS built-in game. The OS revision to use is chosen
automatically when selecting a machine type (for example, the 400/800 OS
PAL or NTSC version is chosen depending on the selected TV system).
* 400/800: Emulation of all RAM sizes achievable with different combinations
of the CX852 and CX853 modules - from 8 to 48 KB.
* Emulation of 32/48KB memory sizes in the XL/XE mode, compatible
with memory expansions for the 600XL manufactured by RC Systems.
* Emulation of the MapRAM hardware hack.
* Display settings: "Hue" renamed to "Tint". Tint now configurable also in
PAL mode.
* Problems compiling VMIPS with gcc 4.7.x have been fixed.
* An error has been fixed in the Makefiles which was preventing the
canned setup code from being installed.
* An error has been fixed in the Makefiles which was preventing
CFLAGS and LDFLAGS from being set correctly in some cases.
GNS3 0.8.3.1
* Vboxwrapper recompilation to run with VirtualBox 4.2
* Support for access to the GNS3 VirtualBox VM name from inside a VM:
VBoxControl guestproperty get NameInGNS3
* Minor fixes
GNS3 0.8.3
* Option to freely use the first VBox interface inside VMs (i.e. eth0
on Linux).
* New base configuration (startup-config) for devices with NM-16ESW
(named baseconfig_sw.txt).
* Console and headless mode support for VirtualBox devices.
* Embedded console/terminal server to access VirtualBox VM consoles
using Telnet.
* Support for drag & drop of topology files inside GNS3.
* Double quote support for Qemu options and ASA kernel/initrd command lines.
* Import & export for GNS3 configuration file (gns3.ini).
* Global TCP port tracker to allocate ports and avoid conflicts (console
+ AUX ports for IOS routers and console ports for Qemu-like/VirtualBox
devices are tracked)
* Scripts for using consoles with VBox VMs (Windows only).
* Backup nvram export when Dynamips has crashed.
* Option (activated by default) to use the VirtualBox VM names to name
VirtualBox devices in GNS3.
* Complete IPv6 support (with correct functions).
* Support for binding on specific addresses when loading a topology
* Option to track opened node consoles in order to close them when the
node gets deleted.
GNS3 0.8.0 VirtualBox Edition
Major Improvements:
* VirtualBox support (v4.1 required)
* Wireshark Live Traffic Capture
* Basic IPv6 enablement
* Basic Netbook enablement
* Dynagen Console got a massive rewrite / cleanup
* Russian translation got a major update
Detailed changes see CHANGELOG
and want NetBSD-5.0 compatibility, compat50 will depend on compat51 to
bridge the gap. There is currently no need for a compat52, nor for a
compat60-x11.
The compat tarballs may be larger than strictly necessary.
Testing was 'lightly', so there's probably Room for Improvement (tm).
0.9.11 -> 0.9.12
general:
- Fixes to the dynamic recompiler (Ari64)
- Added ARMv5 support to the dynarec (Ari64)
- New OSD system (Guillaume)
- Added "built-in" DDK to make it easier to compile on Windows (Guillaume)
sound:
- Improvements / Fixes in both SCSP and SCSP2 (Cwiiis)
video:
- Major improvements to the OpenGL renderer (Devmiyax)
- Major improvements to the software renderer (Guillaume)
- Some fixes to register emulation (Guillaume)
- Improvements to line drawing functions in the software renderer (Cwiiis)
- Fixed endianess bugs (Guillaume)
cocoa port:
- Added "load image" feature (BlueCrab)
- Fixed the resize bug (BlueCrab)
qt port:
- Added shortcuts to toggle vdp2 layers (Benjamin Siskoo)
- Fixed the "mute sound" feature (Guillaume)
- It's now possible to compile the Qt port in "full software" mode (Guillaume)
- Added an autostart option, disabled by default (Guillaume)
- Now using a XDG compliant location for config file (Guillaume)
- Added a debugger to the Qt port (CyberWarriorX)
- DirectX cores can now be used in Qt port (CyberWarriorX)
- Cheat search function (CyberWarriorX)
- Option to show/hide menu and toolbar (Guillaume)
- Close button in pad settings (guillaume)
Changelog:
QMP
The sendkey monitor command is now available via QMP.
All targets
QEMU can now use the Linux VFIO driver to assign PCI devices to a virtual machine.
The bus master configuration bit for PCI devices is now emulated. PCI devices cannot anymore perform DMA without setting the bit before. This may break firmware that wasn't tested on real hardware.
MIPS
Loongson Multimedia Instructions are now implemented.
MIPS32/64 ASE DSP Instructions are now implemented.
x86
The TSC frequency can be larger than 2.147 GHz.
Configuration files do not support anymore the cpudef section.
TCG (emulation) supports the SMEP (Supervisor Mode Execution Prevention) and SMAP (Supervisor Mode Access Prevention) features of newer x86 processors.
CPUID/models?
The "cpudef" config file section is now deprecated and will be removed in v1.4.
New CPU models: "Haswell" (new features: fma, pcid, movbe, fsgsbase, bmi1, hle, avx2, smep, bmi2, erms, invpcid, rtm) and "Opteron_G5" (new features: tbm, f16c, fma)
Added Intel Q35 chipset as a new machine type, '--machine q35'. Adds PCIe support. Requires an updated SeaBIOS (bios.bin), and '-acpitable file=/seabios-path/q35-acpi-dsdt.aml' to run.
Xtensa
Single precision floating point instructions are now implemented.
Device emulation
Emulation of the MC146818 real-time clock (used on PC and several other boards) does not wake up QEMU anymore every second to update the clock.
USB3 has been vastly improved, including support for USB mass storage devices and MSI/MSI-X support for the XHCI controller.
USB redirection now supports live migration.
Several bugs in the AHCI controller were fixed to support recent Windows versions.
ivshmem now has a "use64" property which will make the ivshmem driver register a 64-bit memory BAR.
New paravirtualized hardware random number generator device, VirtIORNG.
Network devices
Some problems were fixed leading to bad receive performance of E1000 and Xen network cards.
Block devices
qemu-img now can output information in JSON format using "qemu-img info --output=json".
Glusterfs volumes can be accessed with "gluster://" URIs for "-drive" and similar options. Optionally the transport can also be specified, as in "gluster+tcp://" (other supported transports are "unix" and "rdma").
Options on the QMP streaming command direct the job to pause on encountering errors, or to ignore them altogether.
A new block job is supported: live block commit (also known as "snapshot deletion") moves data from an image to another in the backing file chain. With the current implementation of QEMU 1.3, the "source" image may not be the active one.
A new block job is supported: live disk mirroring (also known as "storage migration") moves data from an image to another. A new command "block-job-complete" is used to switch the VM to use the destination image exclusively.
Block jobs can now be paused and resumed from the monitor.
NBD block devices can now be specified using URI syntax. "nbd://" defaults to TCP transport, while "nbd+tcp://" and "nbd+unix://" can be used (similar to Gluster) to specify it. URI syntax simplifies access to named exports; the export name is simply the "path" component of the URI.
NBD connections to Unix sockets support relative paths.
QEMU embeds an NBD server, accessible via the monitor. The NBD server allows live access to the image seen by the VM. Note that the embedded server uses "named exports", which QEMU can access using the "nbd://host:port/name" syntax.
Windows hosts support asynchronous disk I/O.
Live Migration, Save/Restore
The "stop" and "cont" commands have new semantics on the destination machine during migration. Previously, the outcome depended on whether the commands were issued before or after the source connected to the destination QEMU: in particular, "cont" would fail if issued before connection, and "undo" the effect of the -S command-line option if issued after. Starting from this version, the effect of "stop" and "cont" will always take place at the end of migration (overriding the presence or absence of the -S option) and "cont" will never fail. This change should be transparent, since the old behavior was usually subject to a race condition.
The monitor now remains responsive during incoming migration. The new NBD server is also available during incoming migration.
Spice
QEMU will only send changed screen content to the Spice client when running in legacy VGA mode.
Seamless migration support.
Composite QXL commands (for linux guests).
Multiple monitors on a single pci device.
Arbitrary resolution support.
Device based monitor configuration notification (for future drivers).
various bug fixes and assertion removals in favor of a guest_bug mode.
require spice-server >= 0.12.0
KVM
QEMU now supports "old-style" PCI device assignment, which was the last missing feature from the qemu-kvm fork. Despite some remaining minor differences between qemu-kvm and QEMU, it is possible to switch from qemu-kvm to QEMU as soon as your guests can be rebooted. Live migration from qemu-kvm 1.2 to QEMU 1.3 is not supported, but can be enabled easily by downstream distributions who want to switch their packages from qemu-kvm to QEMU.
Xen
QEMU can now be used to live-migrate Xen domains.
SLIRP
SLIRP's TFTP server has improved performance, can transmit files bigger than 32 MB, and supports the block size option.
Guest agent
The guest agent will now store the state file in /var/run by default.
Host support
SPARCv7 and v8 support was removed.
Build dependencies
QEMU can now be built with Clang.
QEMU now uses pixman. QEMU configure will detect and use a system pixman if the development headers are ailable (they should be available for most recent Linux distros). As a fallback, we provide an internal copy of the pixman sources which will be used if there is no set of system pixman libraries. Compiling these will require autoconf.
Compiling QEMU ver 0.12 or better.