<!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>

    <p><b>Related Sites</b>
    <br><a href="http://busybox.net/">BusyBox</a>
    <br><a href="http://uclibc.org/">uClibc.org</a>
    <br><a href="http://cxx.uclibc.org/">uClibc++</a>
    <br><a href="http://udhcp.busybox.net/">udhcp</a>
    <br><a href="http://www.scratchbox.org/">Scratchbox</a>
    <br><a href="http://openembedded.org/">OpenEmbedded</a>
    <br><a href="http://www.ucdot.org/">uCdot</a>
    <br><a href="http://www.linuxdevices.com/">LinuxDevices</a>
    <br><a href="http://slashdot.org/">Slashdot</a>
    <br><a href="http://freshmeat.net/">Freshmeat</a>
    <br><a href="http://linuxtoday.com/">Linux Today</a>
    <br><a href="http://lwn.net/">Linux Weekly News</a>
    <br><a href="http://www.tldp.org/HOWTO">Linux HOWTOs</a>

<!--
    <a href="http://validator.w3.org/check/referer"><img
     src="/images/valid-html401.png" height="31" width="88"
          align="left" border="0" alt="Valid HTML"></a>
-->

</td>


<td Valign="TOP">

