Notes on the QEMU configuration system 1) Configuration File Syntax: ---------------------------- [object_name.]field_name = value If object_name is omitted, the global object representing the machine instance (machine definition) or the "prefs" object (user preferences) is used. The field types are: integer (64 bit integers), boolean and strings. The value syntax is: - integer: C syntax - boolean: true, false, 0, 1 - string: C syntax A new object is defined when the "type" field is assigned. The corresponding value is a string specifying the object class. 2) User preferences: ------------------- They are stored in "$HOME/.qemu/config" (Unix) or "$install_prefix/config" (Windows). The option '-f' overrides this default path. User preferences are overridden by the command line options. User preferences are independent of a particular machine definition. User preferences are stored in the global object "prefs" which is implicit when parsing the user preference file. 3) Machine definitions: ---------------------- Machine definitions contain parameters used by the C machine definitions and an arbitrary number of parameter sets to instantiate additional devices. The option '-md' gives the path of the machine definition. Machine definitions are overridden by the command line options. User preferences can be overridden using the "prefs" object, but QEMU is free to ignore those definitions for security or user interface consistency reasons. 3.1) Semantics: -------------- Devices are instantiated in the order in which they are defined in the machine definition (only the relative order of the "type" fields matters). The first definition of a machine definition must be the machine object instantiation (e.g. type="pc"). When using machine definitions, only the devices defined in the C machine description are implicitly instantiated. It means that the user must explicitly instantiate all drives, network devices and network bridges. The device name (object_name) is arbitrary. However, the name of each device must be unique. This name will be used for virtual machine save/restore purposes, so it should not change if the user wishes to restore an existing virtual machine. A device is instantiated using the parameters stored in the fields of the corresponding object. When a device is instantiated, it may create new objects (IRQ lines, PCI buses, ...) which can be referenced by the device instantiated after. The name of these objects is derived from the device name. 3.2) Monitor commands: --------------------- info devices : list instantiated devices info classes : list available device classes info classes class : dump the fields of device class "class"