web-legacy/milkymist-wiki/wiki/index.php?title=Using_QEMU....

258 lines
17 KiB
HTML
Raw Normal View History

2014-09-19 12:52:20 +08:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="MediaWiki 1.14.0" />
<meta name="keywords" content="Using QEMU" />
<link rel="alternate" type="application/x-wiki" title="Edit" href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=edit" />
<link rel="edit" title="Edit" href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=edit" />
<link rel="shortcut icon" href="../favicon.ico" />
<link rel="search" type="application/opensearchdescription+xml" href="opensearch_desc.php" title="Milkymist Wiki (en)" />
<link title="Creative Commons" type="application/rdf+xml" href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=creativecommons" rel="meta" />
<link rel="copyright" href="http://www.milkymist.org/wiki/index.php?title=Copyright" />
<link rel="alternate" type="application/rss+xml" title="Milkymist Wiki RSS Feed" href="http://milkymist.org/wiki/index.php?title=Special:RecentChanges&amp;feed=rss" />
<link rel="alternate" type="application/atom+xml" title="Milkymist Wiki Atom Feed" href="http://milkymist.org/wiki/index.php?title=Special:RecentChanges&amp;feed=atom" />
<title>Using QEMU - Milkymist Wiki</title>
<link rel="stylesheet" href="skins/common/shared.css%3F195.css" type="text/css" media="screen" />
<link rel="stylesheet" href="skins/common/commonPrint.css%3F195.css" type="text/css" media="print" />
<link rel="stylesheet" href="skins/monobook/main.css%3F195.css" type="text/css" media="screen" />
<!--[if lt IE 5.5000]><link rel="stylesheet" href="/wiki/skins/monobook/IE50Fixes.css?195" type="text/css" media="screen" /><![endif]-->
<!--[if IE 5.5000]><link rel="stylesheet" href="/wiki/skins/monobook/IE55Fixes.css?195" type="text/css" media="screen" /><![endif]-->
<!--[if IE 6]><link rel="stylesheet" href="/wiki/skins/monobook/IE60Fixes.css?195" type="text/css" media="screen" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="/wiki/skins/monobook/IE70Fixes.css?195" type="text/css" media="screen" /><![endif]-->
<link rel="stylesheet" href="http://milkymist.org/wiki/index.php?title=MediaWiki:Common.css&amp;usemsgcache=yes&amp;ctype=text%2Fcss&amp;smaxage=18000&amp;action=raw&amp;maxage=18000" type="text/css" />
<link rel="stylesheet" href="http://milkymist.org/wiki/index.php?title=MediaWiki:Print.css&amp;usemsgcache=yes&amp;ctype=text%2Fcss&amp;smaxage=18000&amp;action=raw&amp;maxage=18000" type="text/css" media="print" />
<link rel="stylesheet" href="http://milkymist.org/wiki/index.php?title=MediaWiki:Monobook.css&amp;usemsgcache=yes&amp;ctype=text%2Fcss&amp;smaxage=18000&amp;action=raw&amp;maxage=18000" type="text/css" />
<link rel="stylesheet" href="http://milkymist.org/wiki/index.php?title=-&amp;action=raw&amp;maxage=18000&amp;gen=css" type="text/css" />
<!--[if lt IE 7]><script type="text/javascript" src="/wiki/skins/common/IEFixes.js?195"></script>
<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
<script type= "text/javascript">/*<![CDATA[*/
var skin = "monobook";
var stylepath = "/wiki/skins";
var wgArticlePath = "/wiki/index.php?title=$1";
var wgScriptPath = "/wiki";
var wgScript = "/wiki/index.php";
var wgVariantArticlePath = false;
var wgActionPaths = {};
var wgServer = "http://milkymist.org";
var wgCanonicalNamespace = "";
var wgCanonicalSpecialPageName = false;
var wgNamespaceNumber = 0;
var wgPageName = "Using_QEMU";
var wgTitle = "Using QEMU";
var wgAction = "view";
var wgArticleId = "76";
var wgIsArticle = true;
var wgUserName = null;
var wgUserGroups = null;
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
var wgCurRevisionId = "1836";
var wgVersion = "1.14.0";
var wgEnableAPI = true;
var wgEnableWriteAPI = true;
var wgSeparatorTransformTable = ["", ""];
var wgDigitTransformTable = ["", ""];
var wgRestrictionEdit = [];
var wgRestrictionMove = [];
/*]]>*/</script>
<script type="text/javascript" src="skins/common/wikibits.js%3F195"><!-- wikibits js --></script>
<!-- Head Scripts -->
<script type="text/javascript" src="skins/common/ajax.js%3F195"></script>
<script type="text/javascript" src="http://milkymist.org/wiki/index.php?title=-&amp;action=raw&amp;gen=js&amp;useskin=monobook"><!-- site js --></script>
</head>
<body class="mediawiki ltr ns-0 ns-subject page-Using_QEMU skin-monobook">
<div id="globalWrapper">
<div id="column-content">
<div id="content">
<a name="top" id="top"></a>
<h1 id="firstHeading" class="firstHeading">Using QEMU</h1>
<div id="bodyContent">
<h3 id="siteSub">From Milkymist Wiki</h3>
<div id="contentSub"></div>
<div id="jump-to-nav">Jump to: <a href="index.php%3Ftitle=Using_QEMU.html#column-one">navigation</a>, <a href="index.php%3Ftitle=Using_QEMU.html#searchInput">search</a></div> <!-- start content -->
<table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1"><a href="index.php%3Ftitle=Using_QEMU.html#Build_and_Install_QEMU"><span class="tocnumber">1</span> <span class="toctext">Build and Install QEMU</span></a></li>
<li class="toclevel-1"><a href="index.php%3Ftitle=Using_QEMU.html#Basic_usage"><span class="tocnumber">2</span> <span class="toctext">Basic usage</span></a></li>
<li class="toclevel-1"><a href="index.php%3Ftitle=Using_QEMU.html#GDB"><span class="tocnumber">3</span> <span class="toctext">GDB</span></a></li>
<li class="toclevel-1"><a href="index.php%3Ftitle=Using_QEMU.html#Networking"><span class="tocnumber">4</span> <span class="toctext">Networking</span></a></li>
<li class="toclevel-1"><a href="index.php%3Ftitle=Using_QEMU.html#binfmt_misc"><span class="tocnumber">5</span> <span class="toctext">binfmt_misc</span></a></li>
<li class="toclevel-1"><a href="index.php%3Ftitle=Using_QEMU.html#Audio"><span class="tocnumber">6</span> <span class="toctext">Audio</span></a></li>
</ul>
</td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
<a name="Build_and_Install_QEMU" id="Build_and_Install_QEMU"></a><h1><span class="editsection">[<a href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=edit&amp;section=1" title="Edit section: Build and Install QEMU">edit</a>]</span> <span class="mw-headline"> Build and Install QEMU </span></h1>
<p>Mico32 support is available in the QEMU source tree and in QEMU releases since 0.10. If your distribution packages an outdated version, you will need to build QEMU from the source code. To get the QEMU source code you will need the git version control system installed. You can get git from <a href="http://git-scm.com/" class="external text" title="http://git-scm.com/" rel="nofollow">git-scm.com</a>
</p><p>Prior to building QEMU sure you have libsdl-dev installed (following line works on debian &amp; ubuntu)&nbsp;:
</p>
<pre># aptitude install libsdl-dev
</pre>
<p>In fedora:
</p>
<pre># yum install SDL-devel
</pre>
<p>On OS X install SDL from source code (the frameworks installed by the SDL OS X disk image aren't recognized by the configure script):
</p>
<pre>$ curl <a href="http://www.libsdl.org/release/SDL-1.2.14.tar.gz" class="external free" title="http://www.libsdl.org/release/SDL-1.2.14.tar.gz" rel="nofollow">http://www.libsdl.org/release/SDL-1.2.14.tar.gz</a> -o SDL-1.2.14.tar.gz
$ tar xvzf SDL-1.2.14.tar.gz
$ cd SDL-1.2.14
$ ./configure
$ make
# make install
</pre>
<p>Checkout the latest version of the QEMU source code:
</p>
<pre>$ git clone git://git.qemu.org/qemu.git
$ cd qemu
</pre>
<p>Compile and install qemu for lm32 target with sdl support&nbsp;:
</p>
<pre>$ ./configure --target-list="lm32-softmmu" --enable-sdl [other options? see configure --help]
on OS X:
$ ./configure --target-list="lm32-softmmu" --enable-sdl --enable-cocoa
$ make
# make install
</pre>
<a name="Basic_usage" id="Basic_usage"></a><h1><span class="editsection">[<a href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=edit&amp;section=2" title="Edit section: Basic usage">edit</a>]</span> <span class="mw-headline"> Basic usage </span></h1>
<p>Command line to run Flickernoise using qemu&nbsp;:
</p>
<pre>$ qemu-system-lm32 -M milkymist -kernel flickernoise
</pre>
<p>Command line to run Linux using qemu&nbsp;:
</p>
<pre>$ qemu-system-lm32 -M milkymist -nographic -kernel [ELF kernel] -initrd [initrd] \
-append "root=/dev/ram"
</pre>
<p>Command line to run the sample Hello World application&nbsp;:
</p>
<pre>$ qemu-system-lm32 -M milkymist -kernel compile-flickernoise/build_dir/bsp-milkymist/lm32-rtems4.11/c/milkymist/testsuites/samples/hello/hello.exe -nographic
</pre>
<a name="GDB" id="GDB"></a><h1><span class="editsection">[<a href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=edit&amp;section=3" title="Edit section: GDB">edit</a>]</span> <span class="mw-headline"> GDB </span></h1>
<p>It is also possible to use GDB. For this purpose, add “-s -S” to the above command line, and run:
</p>
<pre> $ lm32-linux-gdb vmlinux
(gdb) target remote localhost:1234
</pre>
<a name="Networking" id="Networking"></a><h1><span class="editsection">[<a href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=edit&amp;section=4" title="Edit section: Networking">edit</a>]</span> <span class="mw-headline"> Networking </span></h1>
<pre> $ lm32-softmmu/qemu-system-lm32 -M milkymist -kernel bios.elf
-nographic -net nic -net user,net=172.16.0.0/24,host=172.16.0.254,tftp=/milkymist
</pre>
<p>To use the real network: change the option to -net nic -net tap
</p>
<a name="binfmt_misc" id="binfmt_misc"></a><h1><span class="editsection">[<a href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=edit&amp;section=5" title="Edit section: binfmt_misc">edit</a>]</span> <span class="mw-headline"> binfmt_misc </span></h1>
<ul><li> create a /usr/bin/mmqemu.sh file with:
</li></ul>
<pre>#!/bin/sh
exec qemu-system-lm32 -M milkymist -kernel $1
</pre>
<ul><li> make it executable
</li></ul>
<pre>chmod 755 /usr/bin/mmqemu.sh
</pre>
<ul><li> register the binfmt format
</li></ul>
<pre>echo ':lm32:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x8a:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/mmqemu.sh:' &gt; /proc/sys/fs/binfmt_misc/register
</pre>
<ul><li> you can now run MM binaries directly from the shell, i.e. "./flickernoise" will automatically run it in a QEMU window.
</li></ul>
<a name="Audio" id="Audio"></a><h1><span class="editsection">[<a href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=edit&amp;section=6" title="Edit section: Audio">edit</a>]</span> <span class="mw-headline"> Audio </span></h1>
<p>In case having problems setting up right audio device just try this:
</p>
<pre>export QEMU_AUDIO_DRV=none
</pre>
<!--
NewPP limit report
Preprocessor node count: 7/1000000
Post-expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
Expensive parser function count: 0/100
-->
<!-- Saved in parser cache with key sbsql1-mw_:pcache:idhash:76-0!1!0!!en!2 and timestamp 20140823124215 -->
<div class="printfooter">
Retrieved from "<a href="index.php%3Ftitle=Using_QEMU.html">http://milkymist.org/wiki/index.php?title=Using_QEMU</a>"</div>
<!-- end content -->
<div class="visualClear"></div>
</div>
</div>
</div>
<div id="column-one">
<div id="p-cactions" class="portlet">
<h5>Views</h5>
<div class="pBody">
<ul>
<li id="ca-nstab-main" class="selected"><a href="index.php%3Ftitle=Using_QEMU.html" title="View the content page [c]" accesskey="c">Page</a></li>
<li id="ca-talk" class="new"><a href="http://milkymist.org/wiki/index.php?title=Talk:Using_QEMU&amp;action=edit&amp;redlink=1" title="Discussion about the content page [t]" accesskey="t">Discussion</a></li>
<li id="ca-edit"><a href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=edit" title="You can edit this page.&#10;Please use the preview button before saving [e]" accesskey="e">Edit</a></li>
<li id="ca-history"><a href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;action=history" title="Past versions of this page [h]" accesskey="h">History</a></li> </ul>
</div>
</div>
<div class="portlet" id="p-personal">
<h5>Personal tools</h5>
<div class="pBody">
<ul>
<li id="pt-login"><a href="http://milkymist.org/wiki/index.php?title=Special:UserLogin&amp;returnto=Using_QEMU" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in / create account</a></li>
</ul>
</div>
</div>
<div class="portlet" id="p-logo">
<a style="background-image: url(http://www.milkymist.org/wikilogo.png);" href="../wiki.html" title="Visit the main page [z]" accesskey="z"></a>
</div>
<script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
<div class='generated-sidebar portlet' id='p-navigation'>
<h5>Navigation</h5>
<div class='pBody'>
<ul>
<li id="n-mainpage-description"><a href="../wiki.html">Main Page</a></li>
<li id="n-portal"><a href="http://milkymist.org/wiki/index.php?title=Milkymist_Wiki:Community_Portal" title="About the project, what you can do, where to find things">Community portal</a></li>
<li id="n-currentevents"><a href="http://milkymist.org/wiki/index.php?title=Milkymist_Wiki:Current_events" title="Find background information on current events">Current events</a></li>
<li id="n-recentchanges"><a href="http://milkymist.org/wiki/index.php?title=Special:RecentChanges" title="The list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li>
<li id="n-randompage"><a href="http://milkymist.org/wiki/index.php?title=Special:Random" title="Load a random page [x]" accesskey="x">Random page</a></li>
<li id="n-help"><a href="http://milkymist.org/wiki/index.php?title=Help:Contents" title="The place to find out">Help</a></li>
</ul>
</div>
</div>
<div id="p-search" class="portlet">
<h5><label for="searchInput">Search</label></h5>
<div id="searchBody" class="pBody">
<form action="http://milkymist.org/wiki/index.php?title=Special:Search" id="searchform"><div>
<input id="searchInput" name="search" type="text" title="Search Milkymist Wiki [f]" accesskey="f" value="" />
<input type='submit' name="go" class="searchButton" id="searchGoButton" value="Go" title="Go to a page with this exact name if exists" />&nbsp;
<input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="Search" title="Search the pages for this text" />
</div></form>
</div>
</div>
<div class="portlet" id="p-tb">
<h5>Toolbox</h5>
<div class="pBody">
<ul>
<li id="t-whatlinkshere"><a href="http://milkymist.org/wiki/index.php?title=Special:WhatLinksHere/Using_QEMU" title="List of all wiki pages that link here [j]" accesskey="j">What links here</a></li>
<li id="t-recentchangeslinked"><a href="http://milkymist.org/wiki/index.php?title=Special:RecentChangesLinked/Using_QEMU" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li>
<li id="t-specialpages"><a href="http://milkymist.org/wiki/index.php?title=Special:SpecialPages" title="List of all special pages [q]" accesskey="q">Special pages</a></li>
<li id="t-print"><a href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;printable=yes" title="Printable version of this page [p]" accesskey="p">Printable version</a></li> <li id="t-permalink"><a href="http://milkymist.org/wiki/index.php?title=Using_QEMU&amp;oldid=1836" title="Permanent link to this version of the page">Permanent link</a></li> </ul>
</div>
</div>
</div><!-- end of the left (by default at least) column -->
<div class="visualClear"></div>
<div id="footer">
<div id="f-poweredbyico"><a href="http://www.mediawiki.org/"><img src="skins/common/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" /></a></div>
<div id="f-copyrightico"><a href="http://www.milkymist.org/wiki/index.php?title=Copyright"><img src="skins/common/images/gnu-fdl.png" alt='GNU Free Documentation License 1.3 and CC-BY-SA 3.0 Unported' /></a></div>
<ul id="f-list">
<li id="lastmod"> This page was last modified on 21 May 2012, at 15:58.</li>
<li id="viewcount">This page has been accessed 12,677 times.</li>
<li id="copyright">Content is available under <a href="http://www.milkymist.org/wiki/index.php?title=Copyright" class="external " title="http://www.milkymist.org/wiki/index.php?title=Copyright">GNU Free Documentation License 1.3 and CC-BY-SA 3.0 Unported</a>.</li>
<li id="privacy"><a href="http://milkymist.org/wiki/index.php?title=Milkymist_Wiki:Privacy_policy" title="Milkymist Wiki:Privacy policy">Privacy policy</a></li>
<li id="about"><a href="http://milkymist.org/wiki/index.php?title=Milkymist_Wiki:About" title="Milkymist Wiki:About">About Milkymist Wiki</a></li>
<li id="disclaimer"><a href="http://milkymist.org/wiki/index.php?title=Milkymist_Wiki:General_disclaimer" title="Milkymist Wiki:General disclaimer">Disclaimers</a></li>
</ul>
</div>
</div>
<script type="text/javascript">if (window.runOnloadHook) runOnloadHook();</script>
<!-- Served in 0.183 secs. --></body></html>