<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
  <meta charset="utf-8">
  <title>Upgrading DD-WRT to OpenWRT on the TP-Link TL-WR1043ND | that.guru</title>
  <meta name="description" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <link rel="shortcut icon" href="https://that.guru/img/favicon.ico">
  <link rel="manifest" href="site.webmanifest">
  <link rel="apple-touch-icon" href="icon.png">

  <link rel="stylesheet" href="https://that.guru/css/normalize.css">
  <link rel="stylesheet" href="https://that.guru/css/main.css">
  <link rel="preload" href="https://that.guru/css/syntax.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
  <noscript><link rel="stylesheet" href="https://that.guru/css/syntax.css"/></noscript>
  <link rel="preload" href="https://that.guru/css/fontawesome.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
  <noscript><link rel="stylesheet" href="https://that.guru/css/fontawesome.css"/></noscript>
  <link rel="preload" href="https://that.guru/css/solid.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
  <noscript><link rel="stylesheet" href="https://that.guru/css/solid.css"/></noscript>
  <link rel="preload" href="https://that.guru/css/brands.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
  <noscript><link rel="stylesheet" href="https://that.guru/css/brands.css"/></noscript>
  <style type="text/css">
    .header-wrapper {
      background-image: url(https://source.unsplash.com/tN344soypQM/1920x1080);
    }
  </style>
</head>

<body>
<a class="home-button" href="https://that.guru/">
  <i class="fas fa-home"></i>
</a>

<div class="header-wrapper">
  <header class="header">
    <h1 class="title">Upgrading DD-WRT to OpenWRT on the TP-Link TL-WR1043ND</h1>

    <nav class="site-nav">
      <div class="site-nav-left">
        <ul class="menu" role="menu">
          <li role="menuitem" class="menu-item"><a href="https://that.guru/blog">Blog</a></li>
          <li role="menuitem" class="menu-item"><a href="https://that.guru/talks">Talks</a></li>
          <li role="menuitem" class="menu-item"><a href="https://that.guru/about">About</a></li>
        </ul>
      </div>
      <div class="site-nav-right">
        <div class="social-links">
          <a class="social-link" alt="GitHub" href="https://github.com/stephenfin">
            <i class="fab fa-github"></i>
          </a>
          <a class="social-link" alt="Twitter" href="https://twitter.com/stephenfin">
            <i class="fab fa-twitter"></i>
          </a>
          <a class="social-link" alt="LinkedIn" href="https://linkedin.com/stephenfinucane">
            <i class="fab fa-linkedin"></i>
          </a>
          <a class="social-link" alt="RSS" href="https://that.guru/blog/index.xml">
            <i class="fas fa-rss"></i>
          </a>
        </div>
      </div>
    </nav>
  </header>
</div>

<div class="main-wrapper">
  <div class="main-inner">
    <main class="content">
  <div class="byline">
    <div class="byline-avatar">
      <a href="https://that.guru/about">
        <img src="https://www.gravatar.com/avatar/8fbd28ad59a1aa317a5ec175b0778359?s=40&d=retro" />
      </a>
    </div>
    <div class="byline-meta">
      <div>
        <address class="author"><a rel="author" href="https://that.guru/about">Stephen Finucane</address></a></address>
      </div>
      <div class="byline-meta-content">
        <time datetime='2019-07-02T00:00:00Z'>Jul 2, 2019</time>
        <span class="byline-reading-time"><span class="bull">&nbsp;•&nbsp;</span>2 min read</span>
      </div>
    </div>
  </div>

  <article>
    <p>I had an old <a href="https://www.tp-link.com/uk/home-networking/wifi-router/tl-wr1043nd/">TP-Link TL-WR1043ND</a> that was running DD-WRT firmware from
2013. Needless to say, this was pretty ancient and probably should be remedied
but, unfortunately, I&rsquo;d been unable to figure out how to do this via the web
UI. It turns this can&rsquo;t actually be done and instead you need to use a
terminal. The below are my notes from doing just this.</p>
<p>First, you need to download the original firmware and strip the bootloader from
it. You can source these firmwares from the TP-Link site but unfortunately,
things aren&rsquo;t as simple as that:</p>
<blockquote>
<p>If you want to revert back to stock TP-link firmware from custom firmware,
most of the time you can not flash the TP-Link firmware directly from the
official TP-Link website.</p>
<p>The reason for this is that most of the downloadable firmware from the
TP-Link website contains a so called bootloader section in front of the
actual firmware.</p>
</blockquote>
<p>Thankfully, a kind individual on the internet has done this work for us and you
can download the firmware with the bootloader stripped from
<a href="https://www.friedzombie.com/tplink-stripped-firmware/">here</a>.</p>
<p>Once downloaded, you need to flash this firmware. To do that, you need SSH
access. Login in to the router and go to the &ldquo;Services&rdquo; tab. Once there, scroll
down and enable SSH access. After that, go to the &ldquo;Administration&rdquo; and toggle
the radio button for &ldquo;SSH Managment&rdquo;. Reboot the router.</p>
<p>After reboot, extract and transfer the stripped firmware to the router:</p>
<pre><code>$ unzip TL-WR1043ND-V1-stripped.zip
$ cd TL-WR1043ND-V1-stripped
$ scp TL-WR1043ND-V1-FW0.0.3-stripped.bin root@192.168.1.1:/tmp
</code></pre>
<p>(use your admin password to authenticate).</p>
<p>Once this has been uploaded, SSH into the device to perform the restore:</p>
<pre><code>$ ssh root@192.168.1.1
$ cd /tmp
$ mtd -r write TL-WR1043ND-V1-FW0.0.3-stripped.bin linux
</code></pre>
<p>After the restore is complete, you can download the new firmware for the device
from <a href="http://downloads.openwrt.org/releases/18.06.2/targets/ar71xx/generic/">openwrt.org</a>:</p>
<pre><code>$ wget http://downloads.openwrt.org/releases/18.06.2/targets/ar71xx/generic/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin
</code></pre>
<p>Upload this through the web UI.</p>
<h2 id="bonus-restoring-to-stock-from-openwrt">Bonus: Restoring to stock from OpenWRT</h2>
<p>This is pretty simple too. Follow the above but instead of flashing to <code>linux</code>,
flash to <code>firmware</code>:</p>
<pre><code>$ mtd -r write TL-WR1043ND-V1-FW0.0.3-stripped.bin firmware
</code></pre>
<h2 id="resources">Resources</h2>
<ul>
<li><a href="http://ediy.com.my/index.php/blog/item/9-tp-link-tl-wr1043nd-resotre-from-dd-wrt-to-original-firmware">http://ediy.com.my/index.php/blog/item/9-tp-link-tl-wr1043nd-resotre-from-dd-wrt-to-original-firmware</a></li>
<li><a href="https://www.friedzombie.com/tplink-stripped-firmware/">https://www.friedzombie.com/tplink-stripped-firmware/</a></li>
<li><a href="https://forum.openwrt.org/t/solved-re-installing-the-original-tp-link-firmware-a-second-time/9249/5">https://forum.openwrt.org/t/solved-re-installing-the-original-tp-link-firmware-a-second-time/9249/5</a></li>
</ul>

  </article>

  <div class="disqus">
    <div id="disqus_thread"></div>
<script type="application/javascript">
    var disqus_config = function () {
    
    
    
    };
    (function() {
        if (["localhost", "127.0.0.1"].indexOf(window.location.hostname) != -1) {
            document.getElementById('disqus_thread').innerHTML = 'Disqus comments not available by default when the website is previewed locally.';
            return;
        }
        var d = document, s = d.createElement('script'); s.async = true;
        s.src = '//' + "thatguru" + '.disqus.com/embed.js';
        s.setAttribute('data-timestamp', +new Date());
        (d.head || d.body).appendChild(s);
    })();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
  </div>

  <div class="categories">
    
    <a class="category" href="https://that.guru/categories/random">#random</a>
    
  </div>

    </main>
  </div>
</div>

<div class="footer-wrapper">
  <footer>
    <p>&copy; 2022 Stephen Finucane</p>

    <div class="social-links">
      <a class="social-link" alt="GitHub" href="https://github.com/stephenfin">
        <i class="fab fa-github"></i>
      </a>
      <a class="social-link" alt="Twitter" href="https://twitter.com/stephenfin">
        <i class="fab fa-twitter"></i>
      </a>
      <a class="social-link" alt="LinkedIn" href="https://linkedin.com/stephenfinucane">
        <i class="fab fa-linkedin"></i>
      </a>
      </div>
  </footer>
</div>

<script src="https://that.guru/js/highlight.min.js"></script>



<script type="application/javascript">
var doNotTrack = false;
if (!doNotTrack) {
	window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
	ga('create', 'UA-80652159-1', 'auto');
	
	ga('send', 'pageview');
}
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>




</body>
</html>
