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

    <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://freecode.com/">Freecode</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">

