One Hat Cyber Team
Your IP :
216.73.216.115
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
qemu-kvm
/
system
/
View File Name :
generic-loader.html
<!DOCTYPE html> <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Generic Loader — QEMU qemu-kvm-6.2.0-53.module+el8.10.0+2055+8eb7870b.4 documentation</title> <link rel="shortcut icon" href="../_static/qemu_32x32.png"/> <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="Guest Loader" href="guest-loader.html" /> <link rel="prev" title="Direct Linux Boot" href="linuxboot.html" /> <script src="../_static/js/modernizr.min.js"></script> </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search"> <a href="../index.html" class="icon icon-home"> QEMU <img src="../_static/qemu_128x128.png" class="logo" alt="Logo"/> </a> <div class="version"> 6.2.0 </div> <div role="search"> <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> <input type="text" name="q" placeholder="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> <p class="caption"><span class="caption-text">Contents:</span></p> <ul class="current"> <li class="toctree-l1"><a class="reference internal" href="../about/index.html">About QEMU</a></li> <li class="toctree-l1 current"><a class="reference internal" href="index.html">System Emulation</a><ul class="current"> <li class="toctree-l2"><a class="reference internal" href="quickstart.html">Quick Start</a></li> <li class="toctree-l2"><a class="reference internal" href="invocation.html">Invocation</a></li> <li class="toctree-l2"><a class="reference internal" href="device-emulation.html">Device Emulation</a></li> <li class="toctree-l2"><a class="reference internal" href="keys.html">Keys in the graphical frontends</a></li> <li class="toctree-l2"><a class="reference internal" href="mux-chardev.html">Keys in the character backend multiplexer</a></li> <li class="toctree-l2"><a class="reference internal" href="monitor.html">QEMU Monitor</a></li> <li class="toctree-l2"><a class="reference internal" href="images.html">Disk Images</a></li> <li class="toctree-l2"><a class="reference internal" href="virtio-net-failover.html">QEMU virtio-net standby (net_failover)</a></li> <li class="toctree-l2"><a class="reference internal" href="linuxboot.html">Direct Linux Boot</a></li> <li class="toctree-l2 current"><a class="current reference internal" href="#">Generic Loader</a><ul> <li class="toctree-l3"><a class="reference internal" href="#loading-data-into-memory-values">Loading Data into Memory Values</a></li> <li class="toctree-l3"><a class="reference internal" href="#setting-a-cpu-s-program-counter">Setting a CPU’s Program Counter</a></li> <li class="toctree-l3"><a class="reference internal" href="#loading-files">Loading Files</a></li> <li class="toctree-l3"><a class="reference internal" href="#restrictions-and-todos">Restrictions and ToDos</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="guest-loader.html">Guest Loader</a></li> <li class="toctree-l2"><a class="reference internal" href="barrier.html">QEMU Barrier Client</a></li> <li class="toctree-l2"><a class="reference internal" href="vnc-security.html">VNC security</a></li> <li class="toctree-l2"><a class="reference internal" href="tls.html">TLS setup for network services</a></li> <li class="toctree-l2"><a class="reference internal" href="secrets.html">Providing secret data to QEMU</a></li> <li class="toctree-l2"><a class="reference internal" href="authz.html">Client authorization</a></li> <li class="toctree-l2"><a class="reference internal" href="gdb.html">GDB usage</a></li> <li class="toctree-l2"><a class="reference internal" href="managed-startup.html">Managed start up options</a></li> <li class="toctree-l2"><a class="reference internal" href="bootindex.html">Managing device boot order with bootindex properties</a></li> <li class="toctree-l2"><a class="reference internal" href="cpu-hotplug.html">Virtual CPU hotplug</a></li> <li class="toctree-l2"><a class="reference internal" href="pr-manager.html">Persistent reservation managers</a></li> <li class="toctree-l2"><a class="reference internal" href="targets.html">QEMU System Emulator Targets</a></li> <li class="toctree-l2"><a class="reference internal" href="security.html">Security</a></li> <li class="toctree-l2"><a class="reference internal" href="multi-process.html">Multi-process QEMU</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../user/index.html">User Mode Emulation</a></li> <li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Tools</a></li> <li class="toctree-l1"><a class="reference internal" href="../interop/index.html">System Emulation Management and Interoperability</a></li> <li class="toctree-l1"><a class="reference internal" href="../specs/index.html">System Emulation Guest Hardware Specifications</a></li> <li class="toctree-l1"><a class="reference internal" href="../devel/index.html">Developer Information</a></li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <nav class="wy-nav-top" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="../index.html">QEMU</a> </nav> <div class="wy-nav-content"> <div class="rst-content"> <div role="navigation" aria-label="breadcrumbs navigation"> <ul class="wy-breadcrumbs"> <li><a href="../index.html">Docs</a> »</li> <li><a href="index.html">System Emulation</a> »</li> <li>Generic Loader</li> <li class="wy-breadcrumbs-aside"> <a href="https://gitlab.com/qemu-project/qemu/blob/master/docs/system/generic-loader.rst" class="fa fa-gitlab"> Edit on GitLab</a> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <div class="section" id="generic-loader"> <h1>Generic Loader<a class="headerlink" href="#generic-loader" title="Permalink to this headline">¶</a></h1> <p>The ‘loader’ device allows the user to load multiple images or values into QEMU at startup.</p> <div class="section" id="loading-data-into-memory-values"> <h2>Loading Data into Memory Values<a class="headerlink" href="#loading-data-into-memory-values" title="Permalink to this headline">¶</a></h2> <p>The loader device allows memory values to be set from the command line. This can be done by following the syntax below:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">-</span><span class="n">device</span> <span class="n">loader</span><span class="p">,</span><span class="n">addr</span><span class="o">=<</span><span class="n">addr</span><span class="o">></span><span class="p">,</span><span class="n">data</span><span class="o">=<</span><span class="n">data</span><span class="o">></span><span class="p">,</span><span class="n">data</span><span class="o">-</span><span class="nb">len</span><span class="o">=<</span><span class="n">data</span><span class="o">-</span><span class="nb">len</span><span class="o">></span> \ <span class="p">[,</span><span class="n">data</span><span class="o">-</span><span class="n">be</span><span class="o">=<</span><span class="n">data</span><span class="o">-</span><span class="n">be</span><span class="o">></span><span class="p">][,</span><span class="n">cpu</span><span class="o">-</span><span class="n">num</span><span class="o">=<</span><span class="n">cpu</span><span class="o">-</span><span class="n">num</span><span class="o">></span><span class="p">]</span> </pre></div> </div> <dl class="docutils"> <dt><code class="docutils literal notranslate"><span class="pre"><addr></span></code></dt> <dd>The address to store the data in.</dd> <dt><code class="docutils literal notranslate"><span class="pre"><data></span></code></dt> <dd>The value to be written to the address. The maximum size of the data is 8 bytes.</dd> <dt><code class="docutils literal notranslate"><span class="pre"><data-len></span></code></dt> <dd>The length of the data in bytes. This argument must be included if the data argument is.</dd> <dt><code class="docutils literal notranslate"><span class="pre"><data-be></span></code></dt> <dd>Set to true if the data to be stored on the guest should be written as big endian data. The default is to write little endian data.</dd> <dt><code class="docutils literal notranslate"><span class="pre"><cpu-num></span></code></dt> <dd>The number of the CPU’s address space where the data should be loaded. If not specified the address space of the first CPU is used.</dd> </dl> <p>All values are parsed using the standard QemuOps parsing. This allows the user to specify any values in any format supported. By default the values will be parsed as decimal. To use hex values the user should prefix the number with a ‘0x’.</p> <p>An example of loading value 0x8000000e to address 0xfd1a0104 is:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">-</span><span class="n">device</span> <span class="n">loader</span><span class="p">,</span><span class="n">addr</span><span class="o">=</span><span class="mh">0xfd1a0104</span><span class="p">,</span><span class="n">data</span><span class="o">=</span><span class="mh">0x8000000e</span><span class="p">,</span><span class="n">data</span><span class="o">-</span><span class="nb">len</span><span class="o">=</span><span class="mi">4</span> </pre></div> </div> </div> <div class="section" id="setting-a-cpu-s-program-counter"> <h2>Setting a CPU’s Program Counter<a class="headerlink" href="#setting-a-cpu-s-program-counter" title="Permalink to this headline">¶</a></h2> <p>The loader device allows the CPU’s PC to be set from the command line. This can be done by following the syntax below:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">-</span><span class="n">device</span> <span class="n">loader</span><span class="p">,</span><span class="n">addr</span><span class="o">=<</span><span class="n">addr</span><span class="o">></span><span class="p">,</span><span class="n">cpu</span><span class="o">-</span><span class="n">num</span><span class="o">=<</span><span class="n">cpu</span><span class="o">-</span><span class="n">num</span><span class="o">></span> </pre></div> </div> <dl class="docutils"> <dt><code class="docutils literal notranslate"><span class="pre"><addr></span></code></dt> <dd>The value to use as the CPU’s PC.</dd> <dt><code class="docutils literal notranslate"><span class="pre"><cpu-num></span></code></dt> <dd>The number of the CPU whose PC should be set to the specified value.</dd> </dl> <p>All values are parsed using the standard QemuOpts parsing. This allows the user to specify any values in any format supported. By default the values will be parsed as decimal. To use hex values the user should prefix the number with a ‘0x’.</p> <p>An example of setting CPU 0’s PC to 0x8000 is:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">-</span><span class="n">device</span> <span class="n">loader</span><span class="p">,</span><span class="n">addr</span><span class="o">=</span><span class="mh">0x8000</span><span class="p">,</span><span class="n">cpu</span><span class="o">-</span><span class="n">num</span><span class="o">=</span><span class="mi">0</span> </pre></div> </div> </div> <div class="section" id="loading-files"> <h2>Loading Files<a class="headerlink" href="#loading-files" title="Permalink to this headline">¶</a></h2> <p>The loader device also allows files to be loaded into memory. It can load ELF, U-Boot, and Intel HEX executable formats as well as raw images. The syntax is shown below:</p> <blockquote> <div>-device loader,file=<file>[,addr=<addr>][,cpu-num=<cpu-num>][,force-raw=<raw>]</div></blockquote> <dl class="docutils"> <dt><code class="docutils literal notranslate"><span class="pre"><file></span></code></dt> <dd>A file to be loaded into memory</dd> <dt><code class="docutils literal notranslate"><span class="pre"><addr></span></code></dt> <dd>The memory address where the file should be loaded. This is required for raw images and ignored for non-raw files.</dd> <dt><code class="docutils literal notranslate"><span class="pre"><cpu-num></span></code></dt> <dd>This specifies the CPU that should be used. This is an optional argument and will cause the CPU’s PC to be set to the memory address where the raw file is loaded or the entry point specified in the executable format header. This option should only be used for the boot image. This will also cause the image to be written to the specified CPU’s address space. If not specified, the default is CPU 0.</dd> <dt><code class="docutils literal notranslate"><span class="pre"><force-raw></span></code></dt> <dd>Setting ‘force-raw=on’ forces the file to be treated as a raw image. This can be used to load supported executable formats as if they were raw.</dd> </dl> <p>All values are parsed using the standard QemuOpts parsing. This allows the user to specify any values in any format supported. By default the values will be parsed as decimal. To use hex values the user should prefix the number with a ‘0x’.</p> <p>An example of loading an ELF file which CPU0 will boot is shown below:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">-</span><span class="n">device</span> <span class="n">loader</span><span class="p">,</span><span class="n">file</span><span class="o">=./</span><span class="n">images</span><span class="o">/</span><span class="n">boot</span><span class="o">.</span><span class="n">elf</span><span class="p">,</span><span class="n">cpu</span><span class="o">-</span><span class="n">num</span><span class="o">=</span><span class="mi">0</span> </pre></div> </div> </div> <div class="section" id="restrictions-and-todos"> <h2>Restrictions and ToDos<a class="headerlink" href="#restrictions-and-todos" title="Permalink to this headline">¶</a></h2> <p>At the moment it is just assumed that if you specify a cpu-num then you want to set the PC as well. This might not always be the case. In future the internal state ‘set_pc’ (which exists in the generic loader now) should be exposed to the user so that they can choose if the PC is set or not.</p> </div> </div> </div> </div> <footer> <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> <a href="guest-loader.html" class="btn btn-neutral float-right" title="Guest Loader" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> <a href="linuxboot.html" class="btn btn-neutral" title="Direct Linux Boot" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> </div> <hr/> <div role="contentinfo"> <p> © Copyright 2021, The QEMU Project Developers. </p> </div> Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. <!-- Empty para to force a blank line after "Built with Sphinx ..." --> <p></p> <p>This documentation is for QEMU version 6.2.0.</p> <p><a href="../about/license.html">QEMU and this manual are released under the GNU General Public License, version 2.</a></p> </footer> </div> </div> </section> </div> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT:'../', VERSION:'qemu-kvm-6.2.0-53.module+el8.10.0+2055+8eb7870b.4', LANGUAGE:'None', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: false, SOURCELINK_SUFFIX: '.txt' }; </script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="../_static/js/theme.js"></script> <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> </body> </html>