<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">

<html>
  <head>
    <title>Buildroot</title>
    <style type="text/css">
     body {
      background-color: #DEE2DE;
      color: #000000;
     }
     :link { color: #660000 }
     :visited { color: #660000 }
     :active { color: #660000 }
     td.c2 {font-family: arial, helvetica, sans-serif; font-size: 80%}
     td.c1 {font-family: lucida, helvetica; font-size: 248%}
    </style>
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-21761074-1']);
  _gaq.push(['_setDomainName', 'none']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
  </head>

  <body>
    <basefont face="lucida, helvetica, arial" size="3">




<table border="0" cellpadding="0" cellspacing="0">


<tr>
<td valign="TOP">
  <a href="/"><IMG SRC="images/logo_small.png" alt="Buildroot"
  border="0" width="200" height="100"></a><BR>

    <br><a href="/about.html">About</a>
    <br><a href="/news.html">Latest News</a>
    <br><a href="/download.html">Download</a>
    <br><a href="http://git.buildroot.net/buildroot/">Browse Source</a>
    <br><a href="/git.html">Accessing Source</a>
    <br><a href="https://bugs.uclibc.org/">Bug Tracking</a>
    <br><a href="/docs.html">Documentation</a>
    <br><a href="/lists.html">Mailing Lists</a>
    <br><a href="http://autobuild.buildroot.org">Autobuilder</a>
    <br><a href="http://patchwork.buildroot.org">Patchwork</a>
    <br><a href="/sponsors.html">Sponsors</a>
    <br><a href="https://plus.google.com/100084591154899263420?prsrc=3" rel="publisher" target="_top" style="text-decoration:none;">
      <img src="https://ssl.gstatic.com/images/icons/gplus-32.png" alt="Google+" style="border:0;width:32px;height:32px;"/>
    </a>
</td>


<td Valign="TOP">

