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

