<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Consolas",serif;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'>Hallo Fabian,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'>hab grade mit deinem Patch ein bisschen rumgespielt und ihn entsprechend meiner Anmerkungen verändert.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'>Am Montag kommt mein Testrouter, ich bin gespannt… :-)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'>Grüße<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'>Adrian<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Fabian Bläse [mailto:fabian@blaese.de] <br><b>Sent:</b> Freitag, 20. Oktober 2017 19:59<br><b>To:</b> mail@adrianschmutzler.de; franken-dev@freifunk.net<br><b>Subject:</b> RE: [PATCH] Add support for TP-Link Archer C50v1<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>Tatsächlich glaube ich nicht, dass das allzu viel ist, sind zwei komplett verschiedene Chipsätze. Aber ein zweites Gerät zum Testen ist auf jeden Fall gut :-)<br><br>Fabian<o:p></o:p></p><div><p class=MsoNormal>On 20 October 2017 19:31:40 GMT+02:00, <a href="mailto:mail@adrianschmutzler.de">mail@adrianschmutzler.de</a> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><pre style='margin-bottom:12.0pt'>Gut, dann werde ich mir mal so ein Ding bestellen und am WE eine Patchversion bauen, die auf meinen 1043v5 rebased.<br><br>Da dürfte sich einiges von LEDE überschneiden.<br><br>Grüße<br><br>Adrian<o:p></o:p></pre><blockquote style='border:none;border-left:solid #729FCF 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> -----Original Message-----<br> From: Fabian Bläse [<a href="mailto:fabian@blaese.de">mailto:fabian@blaese.de</a>]<br> Sent: Freitag, 20. Oktober 2017 19:27<br> To: Adrian Schmutzler <<a href="mailto:mail@adrianschmutzler.de">mail@adrianschmutzler.de</a>><br> Cc: <a href="mailto:franken-dev@freifunk.net">franken-dev@freifunk.net</a><br> Subject: Re: [PATCH] Add support for TP-Link Archer C50v1<br> <br> Die v3 wird getrennt vermarktet (und sieht auch sehr anders aus) und die v2<br> scheint es nicht für EU zu geben. Aber bin mir nicht sicher.<br> Ich hab zwei zu verschiedenen Zeitpunkten genau dort bestellt und immer<br> die v1 bekommen.<br> <o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> On 20. Oct 2017, at 19:25, <<a href="mailto:mail@adrianschmutzler.de">mail@adrianschmutzler.de</a>><o:p></o:p></pre></blockquote><pre> <<a href="mailto:mail@adrianschmutzler.de">mail@adrianschmutzler.de</a>> wrote:<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre><br> Wenn ich den bestell, wie hoch ist die Chance auf einen v1?<br><br> <a href="https://www.amazon.de/TP-Link-Archer-C50-Anschluss">https://www.amazon.de/TP-Link-Archer-C50-Anschluss</a>-<o:p></o:p></pre></blockquote><pre> GlasfaserModem/dp/B<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre style='margin-bottom:12.0pt'> 011NLWSQS/ref=sr_1_2?ie=UTF8&qid=1508520112&sr=8-2&keywords=c50<br><br><br><o:p></o:p></pre><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre style='margin-bottom:12.0pt'> -----Original Message-----<br> From: Fabian Bläse [<a href="mailto:fabian@blaese.de">mailto:fabian@blaese.de</a>]<br> Sent: Freitag, 20. Oktober 2017 19:17<br> To: <a href="mailto:mail@adrianschmutzler.de">mail@adrianschmutzler.de</a><br> Cc: <a href="mailto:franken-dev@freifunk.net">franken-dev@freifunk.net</a><br> Subject: Re: [PATCH] Add support for TP-Link Archer C50v1<br><br> Ah, geht es um flashen auf die Factory Firmware? Das habe ich ehrlich<br> gesagt bisher noch nicht probiert, ich war leider gezwungen, per SPI<br> zu flashen, da hab ich gleich LEDE rauf geflasht.<br> Ich kümmere mich drum, danke für den Hinweis.<br><br> Fabian<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> On 20. Oct 2017, at 19:14, <a href="mailto:mail@adrianschmutzler.de">mail@adrianschmutzler.de</a> wrote:<br><br> Das geht auch, nur das Gerät nimmt ihn dann nicht an, weil es das<br> Image<o:p></o:p></pre></blockquote><pre> mit TPLINK_BOARD_NAME prüft, ob es das richtige Gerät ist. Hatte<br> genau das beim 1043v5.<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre><o:p> </o:p></pre><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre style='margin-bottom:12.0pt'> -----Original Message-----<br> From: Fabian Bläse [<a href="mailto:fabian@blaese.de">mailto:fabian@blaese.de</a>]<br> Sent: Freitag, 20. Oktober 2017 19:12<br> To: Adrian Schmutzler <<a href="mailto:mail@adrianschmutzler.de">mail@adrianschmutzler.de</a>><br> Cc: <a href="mailto:franken-dev@freifunk.net">franken-dev@freifunk.net</a><br> Subject: Re: [PATCH] Add support for TP-Link Archer C50v1<br><br> Hallo Adrian,<br><br> ich schau nochmal drüber, sobald ich mit testen fertig bin.<br> Wann ist das passiert? Das letzte mal, als ich es probiert habe,<br> hat sich der Patch noch wunderbar applien und kompilieren lassen.<br><br> Fabian<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> On 20. Oct 2017, at 18:03, Adrian Schmutzler<br> <<a href="mailto:mail@adrianschmutzler.de">mail@adrianschmutzler.de</a>><o:p></o:p></pre></blockquote><pre> wrote:<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre><br> Hallo nochmal,<br><br> es gab im LEDE master mal einen Patch, der hat<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote><pre> TPLINK_BOARD_NAME<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> to<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> TPLINK_BOARD_ID umbenannt. Da du den nicht drin hast (und auch<br> nicht reinnehmen solltest), musst du alle Fälle von TPLINK_BOARD_ID<br> entsprechend nach TPLINK_BOARD_NAME zurück-umbenennen.<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre style='margin-bottom:12.0pt'><br> Geht wahrscheinlich mit Find/Replace.<br><br> Grüße<br><br> Adrian<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> -----Original Message-----<br> From: franken-dev [<a href="mailto:franken-dev-bounces@freifunk.net">mailto:franken-dev-bounces@freifunk.net</a>] On<o:p></o:p></pre></blockquote></blockquote><pre> Behalf<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> Of Fabian Bläse<br> Sent: Mittwoch, 18. Oktober 2017 16:41<br> To: <a href="mailto:franken-dev@freifunk.net">franken-dev@freifunk.net</a><br> Subject: [PATCH] Add support for TP-Link Archer C50v1<br><br> Signed-off-by: Fabian Bläse <<a href="mailto:fabian@blaese.de">fabian@blaese.de</a>><br> ---<br> bsp/board_c50.bsp                                  |   7 +<br> bsp/c50/.config                                    |  16 ++<br> ...mktplinkfw2-related-commands-to-image-com.patch | 166<br> +++++++++++++++++++++  ...e-simplify-TP-Link-Archer-devices-<br> definit.patch |  73 +++++++++<br> ...s-Archer-C50v1-support-US-and-EU-<br> versions.patch |  52 +++++++<br> ...ils-mktplinkfw2-support-additional-<br> hardwa.patch | 147 ++++++++++++++++++<br> ...tils-mktplinkfw2-fix-support- for-w-option.patch |  32 ++++<br> ...5-firmware-utils-mktplinkfw2-fix-MD5-<br> salt.patch |  68 +++++++++<br> src/packages/fff/fff-network/ramips/network.c50    |   8 +<br> 9 files changed, 569 insertions(+) create mode 100644<br> bsp/board_c50.bsp create mode 100644 bsp/c50/.config create<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> mode<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> 100644<br> build_patches/openwrt/0009-build-move-<o:p></o:p></pre></blockquote></blockquote><pre> mktplinkfw2-<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> related-commands-to-image-com.patch<br> create mode 100644<br> build_patches/openwrt/0010-ramips-image-simplify-<br> TP-Link-Archer-devices-definit.patch<br> create mode 100644 build_patches/openwrt/0011-ramips-Archer-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> C50v1-<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> support-US-and-EU-versions.patch<br> create mode 100644 build_patches/openwrt/0013-firmware-utils-<br> mktplinkfw2-support-additional-hardwa.patch<br> create mode 100644 build_patches/openwrt/0014-firmware-utils-<br> mktplinkfw2-fix-support-for-w-option.patch<br> create mode 100644 build_patches/openwrt/0015-firmware-utils-<br> mktplinkfw2-fix-MD5-salt.patch<br> create mode 100644<br> src/packages/fff/fff-network/ramips/network.c50<br><br> diff --git a/bsp/board_c50.bsp b/bsp/board_c50.bsp new file mode<br> 100644 index 0000000..74576c7<br> --- /dev/null<br> +++ b/bsp/board_c50.bsp<br> @@ -0,0 +1,7 @@<br> +machine=c50<br> +chipset=ramips<br> +target=$builddir/$machine<br> +<br> +images=(<br> +        "lede-ramips-mt7620-ArcherC50-squashfs-factory-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> sysupgrade.bin"<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +       )<br> diff --git a/bsp/c50/.config b/bsp/c50/.config new file mode<br> 100644 index<br> 0000000..6e9a624<br> --- /dev/null<br> +++ b/bsp/c50/.config<br> @@ -0,0 +1,16 @@<br> +# Generated using "./buildscript config openwrt".<br> +# Do no edit manually<br> +#<br> +CONFIG_TARGET_ramips=y<br> +CONFIG_TARGET_ramips_mt7620=y<br> +CONFIG_TARGET_ramips_mt7620_DEVICE_ArcherC50=y<br> +CONFIG_BUSYBOX_CUSTOM=y<br> +CONFIG_CLEAN_IPKG=y<br> +CONFIG_PACKAGE_kmod-ifb=y<br> +CONFIG_PACKAGE_kmod-ledtrig-heartbeat=y<br> +CONFIG_PACKAGE_kmod-ledtrig-netdev=y<br> +CONFIG_PACKAGE_kmod-sched-connmark=y<br> +CONFIG_PACKAGE_qos-scripts=y<br> +CONFIG_PACKAGE_tc=y<br> +CONFIG_STRIP_KERNEL_EXPORTS=y<br> +CONFIG_TARGET_SQUASHFS_BLOCK_SIZE=512<br> diff --git<br> a/build_patches/openwrt/0009-build-move-mktplinkfw2-related-<br> commands-to-image-com.patch b/build_patches/openwrt/0009-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> build-<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> move-mktplinkfw2-related-commands-to-image-com.patch<br> new file mode 100644<br> index 0000000..1c9999b<br> --- /dev/null<br> +++ b/build_patches/openwrt/0009-build-move-mktplinkfw2-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> related-<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> commands<br> +++ -to-image-com.patch<br> @@ -0,0 +1,166 @@<br> +From 82e87bab1f0572e576a89aa85b5ebfe45f257cc9 Mon Sep 17<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> 00:00:00<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> 2001<br> +From: Piotr Dymacz <<a href="mailto:pepe2k@gmail.com">pepe2k@gmail.com</a>><br> +Date: Fri, 23 Jun 2017 23:07:10 +0200<br> +Subject: [PATCH 1/3] build: move mktplinkfw2 related commands<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> to<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +<a href="http://image-commands.mk">image-commands.mk</a><br> +MIME-Version: 1.0<br> +Content-Type: text/plain; charset=UTF-8<br> +Content-Transfer-Encoding: 8bit<br> +<br> +There are already two targets (lantiq, ramips) which use<br> +mktplinkfw2 tool for creating images. This de-duplicates code,<br> +introduces two new build commands: tplink-v2-header,<br> +tplink-v2-image and makes use of them in place of old,<br> +(sub)target<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> specific ones.<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +<br> +Signed-off-by: Piotr Dymacz <<a href="mailto:pepe2k@gmail.com">pepe2k@gmail.com</a>> [Rebased on<o:p></o:p></pre></blockquote></blockquote><pre> 8ad1b09]<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +Signed-off-by: Fabian Bläse <<a href="mailto:fabian@blaese.de">fabian@blaese.de</a>><br> +---<br> + include/<a href="http://image-commands.mk">image-commands.mk</a>            | 14 ++++++++++++++<br> + target/linux/lantiq/image/<a href="http://tp-link.mk">tp-link.mk</a> | 25<br> +++++++++----------------- target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a>  |<br> +24 ++++++++++++------------<br> + 3 files changed, 34 insertions(+), 29 deletions(-)<br> +<br> +diff --git a/include/<a href="http://image-commands.mk">image-commands.mk</a> b/include/image-<o:p></o:p></pre></blockquote></blockquote><pre> <a href="http://commands.mk">commands.mk</a><o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +index 04fa853fbb..90fe5fc242 100644<br> +--- a/include/<a href="http://image-commands.mk">image-commands.mk</a><br> ++++ b/include/<a href="http://image-commands.mk">image-commands.mk</a><br> +@@ -173,6 +173,20 @@ define Build/sysupgrade-tar<br> +   $@<br> + endef<br> +<br> ++define Build/tplink-v2-header<br> ++ $(STAGING_DIR_HOST)/bin/mktplinkfw2 \<br> ++  -c -V "ver. 2.0" -B $(TPLINK_BOARD_ID) $(1) -k $@ -o<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> <a href="mailto:$@.new">$@.new</a><o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> ++ @mv <a href="mailto:$@.new">$@.new</a> $@<br> ++endef<br> ++<br> ++define Build/tplink-v2-image<br> ++ $(STAGING_DIR_HOST)/bin/mktplinkfw2 \<br> ++  -a 0x4 -j -V "ver. 2.0" -B $(TPLINK_BOARD_ID) $(1) \<br> ++  -k $(IMAGE_KERNEL) -r $(IMAGE_ROOTFS) -o<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> <a href="mailto:$@.new">$@.new</a><o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> ++ cat <a href="mailto:$@.new">$@.new</a> >> $@<br> ++ rm -rf <a href="mailto:$@.new">$@.new</a><br> ++endef<br> ++<br> + json_quote=$(subst ','\'',$(subst ",\",$(1)))<br> + #")')<br> + metadata_devices=$(if $(1),$(subst<br> +"$(space)","$(comma)",$(strip $(foreach v,$(1),"$(call<br> +json_quote,$(v))")))) diff --git<br> +a/target/linux/lantiq/image/<a href="http://tp-link.mk">tp-link.mk</a><br> +b/target/linux/lantiq/image/<a href="http://tp-link.mk">tp-link.mk</a><br> +index 49c4bc10e1..976184175a 100644<br> +--- a/target/linux/lantiq/image/<a href="http://tp-link.mk">tp-link.mk</a><br> ++++ b/target/linux/lantiq/image/<a href="http://tp-link.mk">tp-link.mk</a><br> +@@ -1,27 +1,18 @@<br> +-define Build/tplink-fw<br> +- mktplinkfw2 -c -B $(BOARD_ID) -s \<br> +-  -k $@ -o <a href="mailto:$@.new">$@.new</a><br> +- mv <a href="mailto:$@.new">$@.new</a> $@<br> +-endef<br> +-<br> +-define Build/mktplinkfw2<br> +- mktplinkfw2 -B $(BOARD_ID) -s -a 0x4 -j \<br> +-  -k $(IMAGE_KERNEL) -r $(IMAGE_ROOTFS) \<br> +-  -o $@<br> +-endef<br> +-DEVICE_VARS += BOARD_ID<br> ++DEVICE_VARS += TPLINK_BOARD_ID<br> +<br> + define Device/lantiqTpLink<br> +   KERNEL := kernel-bin | append-dtb | lzma<br> +-  KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma |<br> +tplink-fw<br> ++  KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | \<br> ++ tplink-v2-header -s -V "ver. 1.0"<br> +   IMAGES := sysupgrade.bin<br> +-  IMAGE/sysupgrade.bin := mktplinkfw2 | append-metadata |<br> +check-size<br> +$$$$(IMAGE_SIZE)<br> ++  IMAGE/sysupgrade.bin := tplink-v2-image -s -V "ver. 1.0" | \<br> ++ append-metadata | check-size $$$$(IMAGE_SIZE)<br> + endef<br> +<br> + define Device/TDW8970<br> +   $(Device/lantiqTpLink)<br> +   DEVICE_PROFILE := TDW8970<br> +-  BOARD_ID := TD-W8970v1<br> ++  TPLINK_BOARD_ID := TD-W8970v1<br> +   IMAGE_SIZE := 7680k<br> +   DEVICE_TITLE := TP-LINK TD-W8970<br> +   DEVICE_PACKAGES:= kmod-ath9k wpad-mini kmod-usb-dwc2<br> +kmod-usb-ledtrig-usbport @@ -30,7 +21,7 @@ endef  define<br> Device/TDW8980<br> +   $(Device/lantiqTpLink)<br> +   DEVICE_PROFILE := TDW8980<br> +-  BOARD_ID := TD-W8980v1<br> ++  TPLINK_BOARD_ID := TD-W8980v1<br> +   IMAGE_SIZE := 7680k<br> +   DEVICE_TITLE := TP-LINK TD-W8980<br> +   DEVICE_PACKAGES:= kmod-ath9k kmod-owl-loader wpad-mini<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> kmod-<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> usb-dwc2<br> +kmod-usb-ledtrig-usbport @@ -39,7 +30,7 @@ endef  define<br> Device/VR200v<br> +   $(Device/lantiqTpLink)<br> +   DEVICE_PROFILE := VR200v<br> +-  BOARD_ID := ArcherVR200V<br> ++  TPLINK_BOARD_ID := ArcherVR200V<br> +   IMAGE_SIZE := 15808k<br> +   DEVICE_TITLE := TP-LINK Archer VR200v<br> +   DEVICE_PACKAGES:= kmod-usb-dwc2 kmod-usb-ledtrig-usbport<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> diff<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +--git a/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> +b/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> +index c2c0ae271d..bb79acb894 100644<br> +--- a/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> ++++ b/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> +@@ -2,10 +2,7 @@<br> + # MT7620A Profiles<br> + #<br> +<br> +-define Build/tplink-header<br> +- $(STAGING_DIR_HOST)/bin/mktplinkfw2 -a 0x4 -V "ver. 2.0" -<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> B $(1) \<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +-  -o <a href="mailto:$@.new">$@.new</a> -k $@ -r $(IMAGE_ROOTFS) && mv<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> <a href="mailto:$@.new">$@.new</a> $@<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +-endef<br> ++DEVICE_VARS += TPLINK_BOARD_ID<br> +<br> + define Build/pad-kernel-ex2700<br> +  cp $@ <a href="mailto:$@.tmp">$@.tmp</a> && dd if=/dev/zero bs=64 count=1 >> <a href="mailto:$@.tmp">$@.tmp</a><o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> \ @@ -<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> 35,10<br> ++32,11 @@ endef  define Device/ArcherC20i<br> +   DTS := ArcherC20i<br> +   SUPPORTED_DEVICES := c20i<br> ++  TPLINK_BOARD_ID := ArcherC20i<br> +   KERNEL := $(KERNEL_DTB)<br> +-  KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-header<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> ArcherC20i<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +-c<br> +-  IMAGE/factory.bin := append-kernel | tplink-header ArcherC20i<br> +-j<br> +-  IMAGE/sysupgrade.bin := append-kernel | tplink-header<br> +ArcherC20i -j -s | append-metadata<br> ++  KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v2-header<br> ++ IMAGE/factory.bin := tplink-v2-image  IMAGE/sysupgrade.bin :=<br> ++ tplink-v2-image -s | append-metadata<br> +   IMAGES += factory.bin<br> +   DEVICE_TITLE := TP-Link ArcherC20i  endef @@ -47,10 +45,11 @@<br> +TARGET_DEVICES += ArcherC20i  define<br> +Device/ArcherC50<br> +   DTS := ArcherC50<br> +   SUPPORTED_DEVICES := c50<br> ++  TPLINK_BOARD_ID := ArcherC50<br> +   KERNEL := $(KERNEL_DTB)<br> +-  KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-header ArcherC50<br> +-c<br> +-  IMAGE/factory.bin := append-kernel | tplink-header ArcherC50<br> +-j<br> +-  IMAGE/sysupgrade.bin := append-kernel | tplink-header<br> +ArcherC50 -j -s | append-metadata<br> ++  KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v2-header<br> ++ IMAGE/factory.bin := tplink-v2-image  IMAGE/sysupgrade.bin :=<br> ++ tplink-v2-image -s | append-metadata<br> +   IMAGES += factory.bin<br> +   DEVICE_TITLE := TP-Link ArcherC50  endef @@ -59,9 +58,10 @@<br> +TARGET_DEVICES += ArcherC50  define<br> +Device/ArcherMR200<br> +   DTS := ArcherMR200<br> +   SUPPORTED_DEVICES := mr200<br> ++  TPLINK_BOARD_ID := ArcherMR200<br> +   KERNEL := $(KERNEL_DTB)<br> +-  KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-header<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> ArcherMR200<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +-c<br> +-  IMAGE/sysupgrade.bin := append-kernel | tplink-header<o:p></o:p></pre></blockquote></blockquote><pre> ArcherMR200<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +-j -s | append-metadata<br> ++  KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v2-header<br> ++ IMAGE/sysupgrade.bin := tplink-v2-image -s | append-metadata<br> +   DEVICE_PACKAGES := kmod-usb2 kmod-usb-net kmod-usb-net-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> rndis<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> kmod-usb-serial kmod-usb-serial-option adb<br> +   DEVICE_TITLE := TP-Link ArcherMR200  endef<br> +--<br> +2.14.2<br> +<br> diff --git<br> a/build_patches/openwrt/0010-ramips-image-simplify-TP-Link-<br> Archer-devices-definit.patch<br> b/build_patches/openwrt/0010-ramips-image-<br> simplify-TP-Link-Archer-devices-definit.patch<br> new file mode 100644<br> index 0000000..f30411f<br> --- /dev/null<br> +++ b/build_patches/openwrt/0010-ramips-image-simplify-TP-Link-<o:p></o:p></pre></blockquote></blockquote><pre> Archer<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +++ -<br> de<br> +++ vices-definit.patch<br> @@ -0,0 +1,73 @@<br> +From 16cbb38ac1f84d60b9901f9d6827a498a1cbba46 Mon Sep 17<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> 00:00:00<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> 2001<br> +From: Piotr Dymacz <<a href="mailto:pepe2k@gmail.com">pepe2k@gmail.com</a>><br> +Date: Fri, 23 Jun 2017 23:20:53 +0200<br> +Subject: [PATCH 2/3] ramips: image: simplify TP-Link Archer<br> +devices definitions<br> +MIME-Version: 1.0<br> +Content-Type: text/plain; charset=UTF-8<br> +Content-Transfer-Encoding: 8bit<br> +<br> +Signed-off-by: Piotr Dymacz <<a href="mailto:pepe2k@gmail.com">pepe2k@gmail.com</a>> [Rebased on<o:p></o:p></pre></blockquote></blockquote><pre> 8ad1b09]<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +Signed-off-by: Fabian Bläse <<a href="mailto:fabian@blaese.de">fabian@blaese.de</a>><br> +---<br> + target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a> | 21 ++++++++++-----------<br> + 1 file changed, 10 insertions(+), 11 deletions(-)<br> +<br> +diff --git a/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> +b/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> +index bb79acb894..dd75f5a504 100644<br> +--- a/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> ++++ b/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> +@@ -29,39 +29,38 @@ define Build/zyimage<br> +  $(STAGING_DIR_HOST)/bin/zyimage $(1) $@  endef<br> +<br> +-define Device/ArcherC20i<br> +-  DTS := ArcherC20i<br> +-  SUPPORTED_DEVICES := c20i<br> +-  TPLINK_BOARD_ID := ArcherC20i<br> ++define Device/Archer<br> +   KERNEL := $(KERNEL_DTB)<br> +   KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v2-header<br> +   IMAGE/factory.bin := tplink-v2-image<br> +   IMAGE/sysupgrade.bin := tplink-v2-image -s | append-metadata<br> ++endef<br> ++<br> ++define Device/ArcherC20i<br> ++  $(Device/Archer)<br> ++  DTS := ArcherC20i<br> ++  SUPPORTED_DEVICES := c20i<br> ++  TPLINK_BOARD_ID := ArcherC20i<br> +   IMAGES += factory.bin<br> +   DEVICE_TITLE := TP-Link ArcherC20i endef TARGET_DEVICES +=<br> + ArcherC20i<br> +<br> + define Device/ArcherC50<br> ++  $(Device/Archer)<br> +   DTS := ArcherC50<br> +   SUPPORTED_DEVICES := c50<br> +   TPLINK_BOARD_ID := ArcherC50<br> +-  KERNEL := $(KERNEL_DTB)<br> +-  KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v2-header<br> +-  IMAGE/factory.bin := tplink-v2-image<br> +-  IMAGE/sysupgrade.bin := tplink-v2-image -s | append-metadata<br> +   IMAGES += factory.bin<br> +   DEVICE_TITLE := TP-Link ArcherC50  endef  TARGET_DEVICES +=<br> +ArcherC50<br> +<br> + define Device/ArcherMR200<br> ++  $(Device/Archer)<br> +   DTS := ArcherMR200<br> +   SUPPORTED_DEVICES := mr200<br> +   TPLINK_BOARD_ID := ArcherMR200<br> +-  KERNEL := $(KERNEL_DTB)<br> +-  KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v2-header<br> +-  IMAGE/sysupgrade.bin := tplink-v2-image -s | append-metadata<br> +   DEVICE_PACKAGES := kmod-usb2 kmod-usb-net kmod-usb-net-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> rndis<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> kmod-usb-serial kmod-usb-serial-option adb<br> +   DEVICE_TITLE := TP-Link ArcherMR200  endef<br> +--<br> +2.14.2<br> +<br> diff --git<br> a/build_patches/openwrt/0011-ramips-Archer-C50v1-support-US-<br> and-EU-versions.patch b/build_patches/openwrt/0011-ramips-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> Archer-<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> C50v1-support-US-and-EU-versions.patch<br> new file mode 100644<br> index 0000000..95d8ce7<br> --- /dev/null<br> +++ b/build_patches/openwrt/0011-ramips-Archer-C50v1-support-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> US-<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> and-<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> EU-v<br> +++ ersions.patch<br> @@ -0,0 +1,52 @@<br> +From cfa1a9466db691915960be89e40f3c8335b9ea4f Mon Sep 17<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> 00:00:00<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> 2001<br> +From: Thibaut VARENE <<a href="mailto:hacks@slashdirt.org">hacks@slashdirt.org</a>><br> +Date: Fri, 28 Jul 2017 13:00:54 +0200<br> +Subject: [PATCH 3/3] ramips: Archer C50v1: support US and EU<br> +versions<br> +<br> +For the Archer C50v1, the EU and US versions are differentiated<br> +by their respective HW additional version (0x0 for US, 0x2 for EU).<br> +<br> +The stock web interface checks this field before flashing,<br> +making it impossible to flash the current (US) factory image on EU<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> hardware.<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +<br> +However the bootloader does not check this field, making it<br> +possible to use a single sysupgrade image for both hardware.<br> +<br> +This patch adds the necessary build bits to generate both EU and<br> +US factory images, and renames the target as "Archer C50v1"<br> +since there are as of now<br> +3 different versions of Archer C50 (all with different CPUs).<br> +<br> +Signed-off-by: Thibaut VARENE <<a href="mailto:hacks@slashdirt.org">hacks@slashdirt.org</a>><br> +---<br> + target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a> | 10 ++++++----<br> + 1 file changed, 6 insertions(+), 4 deletions(-)<br> +<br> +diff --git a/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> +b/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> +index dd75f5a504..64d11a5b0a 100644<br> +--- a/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> ++++ b/target/linux/ramips/image/<a href="http://mt7620.mk">mt7620.mk</a><br> +@@ -46,15 +46,17 @@ define Device/ArcherC20i  endef<o:p></o:p></pre></blockquote></blockquote><pre> TARGET_DEVICES<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> += ArcherC20i<br> +<br> +-define Device/ArcherC50<br> ++define Device/ArcherC50v1<br> +   $(Device/Archer)<br> +   DTS := ArcherC50<br> +   SUPPORTED_DEVICES := c50<br> +   TPLINK_BOARD_ID := ArcherC50<br> +-  IMAGES += factory.bin<br> +-  DEVICE_TITLE := TP-Link ArcherC50<br> ++  IMAGES += factory-us.bin factory-eu.bin  IMAGE/factory-us.bin<br> ++ := tplink-v2-image -w 0  IMAGE/factory-eu.bin :=<br> ++ tplink-v2-image -w 2 DEVICE_TITLE := TP-Link ArcherC50v1<br> + endef<br> +-TARGET_DEVICES += ArcherC50<br> ++TARGET_DEVICES += ArcherC50v1<br> +<br> + define Device/ArcherMR200<br> +   $(Device/Archer)<br> +--<br> +2.14.2<br> +<br> diff --git<br> a/build_patches/openwrt/0013-firmware-utils-mktplinkfw2-<br> support-additional-hardwa.patch<br> b/build_patches/openwrt/0013-firmware-<br> utils-mktplinkfw2-support-additional-hardwa.patch<br> new file mode 100644<br> index 0000000..e679fd0<br> --- /dev/null<br> +++ b/build_patches/openwrt/0013-firmware-utils-mktplinkfw2-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> support<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +++ -<br> addi<br> +++ tional-hardwa.patch<br> @@ -0,0 +1,147 @@<br> +From fc3aa153d006a0eb7e43f3f06af309ec60996755 Mon Sep 17<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> 00:00:00<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> 2001<br> +From: Piotr Dymacz <<a href="mailto:pepe2k@gmail.com">pepe2k@gmail.com</a>><br> +Date: Wed, 21 Jun 2017 14:15:55 +0200<br> +Subject: [PATCH 1/3] firmware-utils: mktplinkfw2: support<br> +additional hardware  version<br> +<br> +As it turned out, some of new MediaTek based TP-Link devices use<br> +value from field at 0x3c offset in version 3 of TP-Link header<br> +to specify "Additional Hardware Version".<br> +<br> +Value from this field is validated during regular (GUI) firmware<br> +upgrade on devices like TL-WR840N v4 or TL-WR841N v13. If it's<br> +zero (based on some tests, it seems that firmware will accept<br> +anything != 0), errors like below are printed on console and<br> +upgrade<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> fails:<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +<br> +[ rsl_sys_updateFirmware ] 2137:  Firmware Additional<br> +HardwareVersion check failed<br> +<br> +[ rdp_updateFirmware ] 345:  perror:4506<br> +<br> +Signed-off-by: Piotr Dymacz <<a href="mailto:pepe2k@gmail.com">pepe2k@gmail.com</a>><br> +---<br> + tools/firmware-utils/src/mktplinkfw2.c | 26<br> +++++++++++++++++++++------<br> + 1 file changed, 20 insertions(+), 6 deletions(-)<br> +<br> +diff --git a/tools/firmware-utils/src/mktplinkfw2.c<br> +b/tools/firmware-utils/src/mktplinkfw2.c<br> +index 3ab5c52ec2..b6dd670b90 100644<br> +--- a/tools/firmware-utils/src/mktplinkfw2.c<br> ++++ b/tools/firmware-utils/src/mktplinkfw2.c<br> +@@ -43,7 +43,7 @@ struct fw_header {<br> +  char  fw_version[48]; /* 0x04: fw version string */<br> +  uint32_t hw_id;  /* 0x34: hardware id */<br> +  uint32_t hw_rev;  /* 0x38: FIXME:<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> hardware<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> revision? */<br> +- uint32_t unk1;         /* 0x3c: 0x00000000 */<br> ++ uint32_t hw_ver_add; /* 0x3c: additional hardware<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> version<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> */<br> +  uint8_t  md5sum1[MD5SUM_LEN]; /* 0x40 */<br> +  uint32_t unk2;  /* 0x50: 0x00000000 */<br> +  uint8_t  md5sum2[MD5SUM_LEN]; /* 0x54 */<br> +@@ -80,6 +80,7 @@ struct board_info {<br> +  char  *id;<br> +  uint32_t hw_id;<br> +  uint32_t hw_rev;<br> ++ uint32_t hw_ver_add;<br> +  char  *layout_id;<br> +  uint32_t hdr_ver;<br> +  bool  endian_swap;<br> +@@ -104,6 +105,8 @@ static char *opt_hw_id;  static uint32_t<br> +hw_id; static char *opt_hw_rev;  static uint32_t hw_rev;<br> ++static char *opt_hw_ver_add;<br> ++static uint32_t hw_ver_add;<br> + static int fw_ver_lo;<br> + static int fw_ver_mid;<br> + static int fw_ver_hi;<br> +@@ -288,6 +291,7 @@ static void usage(int status)<br> + "  -L <la>         overwrite kernel load address with <la> (hexval<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> prefixed<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> with<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> 0x)\n"<br> + "  -H <hwid>       use hardware id specified with <hwid>\n"<br> + "  -W <hwrev>      use hardware revision specified with <hwrev>\n"<br> ++"  -w <hwveradd>   use additional hardware version specified with<br> <hwveradd>\n"<br> + "  -F <id>         use flash layout specified with <id>\n"<br> + "  -k <file>       read kernel image from the file <file>\n"<br> + "  -r <file>       read rootfs image from the file <file>\n"<br> +@@ -391,6 +395,7 @@ static int check_options(void)<br> +<br> +   hw_id = board->hw_id;<br> +   hw_rev = board->hw_rev;<br> ++  hw_ver_add = board->hw_ver_add;<br> +   if (board->hdr_ver)<br> +    hdr_ver = board->hdr_ver;<br> +   endian_swap = board->endian_swap; @@ -405,6<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> +410,11<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> @@ static int<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +check_options(void)<br> +    hw_rev = strtoul(opt_hw_rev, NULL, 0);<br> +   else<br> +    hw_rev = 1;<br> ++<br> ++  if (opt_hw_ver_add)<br> ++   hw_ver_add = strtoul(opt_hw_rev, NULL, 0);<br> ++  else<br> ++   hw_ver_add = 0;<br> +  }<br> +<br> +  layout = find_layout(layout_id); @@ -511,6 +521,7 @@ static<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> void<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +fill_header(char *buf, int len)<br> +<br> +  hdr->hw_id = htonl(hw_id);<br> +  hdr->hw_rev = htonl(hw_rev);<br> ++ hdr->hw_ver_add = htonl(hw_ver_add);<br> +<br> +  if (boot_info.file_size == 0) {<br> +   memcpy(hdr->md5sum1, md5salt_normal,<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> sizeof(hdr-<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> md5sum1)); @@<o:p></o:p></pre></blockquote><pre> +-535,7 +546,6 @@ static void fill_header(char *buf, int len)<br> +  hdr->boot_ofs = htonl(0);<br> +  hdr->boot_len = htonl(boot_info.file_size);<br> +<br> +- hdr->unk1 = htonl(0);<br> +  hdr->unk2 = htonl(0);<br> +  hdr->unk3 = htonl(0xffffffff);<br> +  hdr->unk4 = htons(0x55aa);<br> +@@ -779,9 +789,6 @@ static int inspect_fw(void)<br> +<br> +  inspect_fw_phexdec("Version 2 Header size", sizeof(struct<br> + fw_header));<br> +<br> +- if (ntohl(hdr->unk1) != 0)<br> +-  inspect_fw_phexdec("Unknown value 1", hdr-<o:p></o:p></pre></blockquote></blockquote></blockquote><pre> unk1);<o:p></o:p></pre><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +-<br> +  memcpy(md5sum, hdr->md5sum1, sizeof(md5sum));<br> +  if (ntohl(hdr->boot_len) == 0)<br> +   memcpy(hdr->md5sum1, md5salt_normal,<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> sizeof(md5sum));<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> @@ -820,11<br> ++827,15 @@ static int inspect_fw(void)<br> +                       ntohl(hdr->hw_id), board->id);<br> +   inspect_fw_phexexp("Hardware Revision",<br> +                      ntohl(hdr->hw_rev), board->hw_rev);<br> ++  inspect_fw_phexexp("Additional HW Version",<br> ++                     ntohl(hdr->hw_ver_add), board-<o:p></o:p></pre></blockquote></blockquote></blockquote><pre> hw_ver_add);<o:p></o:p></pre><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +  } else {<br> +   inspect_fw_phexpost("Hardware ID",<br> +                       ntohl(hdr->hw_id), "unknown");<br> +   inspect_fw_phex("Hardware Revision",<br> +                   ntohl(hdr->hw_rev));<br> ++  inspect_fw_phex("Additional HW Version",<br> ++                  ntohl(hdr->hw_ver_add));<br> +  }<br> +<br> +  printf("%-23s: %d.%d.%d-%d.%d\n", "Software version", @@<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> -919,7<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> ++930,7 @@ int main(int argc, char *argv[])<br> +  while ( 1 ) {<br> +   int c;<br> +<br> +-  c = getopt(argc, argv,<br> "a:B:H:E:F:L:V:N:W:ci:k:r:R:o:xhsjv:y:T:e");<br> ++  c = getopt(argc, argv,<br> ++"a:B:H:E:F:L:V:N:W:w:ci:k:r:R:o:xhsjv:y:T:e");<br> +   if (c == -1)<br> +    break;<br> +<br> +@@ -942,6 +953,9 @@ int main(int argc, char *argv[])<br> +   case 'W':<br> +    opt_hw_rev = optarg;<br> +    break;<br> ++  case 'w':<br> ++   opt_hw_ver_add = optarg;<br> ++   break;<br> +   case 'L':<br> +    sscanf(optarg, "0x%x", &kernel_la);<br> +    break;<br> +--<br> +2.11.0 (Apple Git-81)<br> +<br> diff --git<br> a/build_patches/openwrt/0014-firmware-utils-mktplinkfw2-fix-<br> support-for-w-option.patch<br> b/build_patches/openwrt/0014-firmware-utils-<br> mktplinkfw2-fix-support-for-w-option.patch<br> new file mode 100644<br> index 0000000..4ce76b6<br> --- /dev/null<br> +++ b/build_patches/openwrt/0014-firmware-utils-mktplinkfw2-fix-<o:p></o:p></pre></blockquote></blockquote><pre> suppo<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +++ rt-<br> +++ for-w-option.patch<br> @@ -0,0 +1,32 @@<br> +From f116ed7573cc77e4db1ef8c183932da6a56a195f Mon Sep 17<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> 00:00:00<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> 2001<br> +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?=<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> <<a href="mailto:rafal@milecki.pl">rafal@milecki.pl</a>><o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +Date: Sun, 2 Jul 2017 22:28:24 +0200<br> +Subject: [PATCH 2/3] firmware-utils: mktplinkfw2: fix support<br> +for -w option<br> +MIME-Version: 1.0<br> +Content-Type: text/plain; charset=UTF-8<br> +Content-Transfer-Encoding: 8bit<br> +<br> +This fixes copy & paste typo when reading -w argument.<br> +<br> +Fixes: 4b35e174caa5b ("firmware-utils: mktplinkfw2: support<br> +additional hardware version")<br> +Signed-off-by: Rafał Miłecki <<a href="mailto:rafal@milecki.pl">rafal@milecki.pl</a>><br> +---<br> + tools/firmware-utils/src/mktplinkfw2.c | 2 +-<br> + 1 file changed, 1 insertion(+), 1 deletion(-)<br> +<br> +diff --git a/tools/firmware-utils/src/mktplinkfw2.c<br> +b/tools/firmware-utils/src/mktplinkfw2.c<br> +index b6dd670b90..4efe06acf3 100644<br> +--- a/tools/firmware-utils/src/mktplinkfw2.c<br> ++++ b/tools/firmware-utils/src/mktplinkfw2.c<br> +@@ -412,7 +412,7 @@ static int check_options(void)<br> +    hw_rev = 1;<br> +<br> +   if (opt_hw_ver_add)<br> +-   hw_ver_add = strtoul(opt_hw_rev, NULL, 0);<br> ++   hw_ver_add = strtoul(opt_hw_ver_add,<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> NULL, 0);<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +   else<br> +    hw_ver_add = 0;<br> +  }<br> +--<br> +2.11.0 (Apple Git-81)<br> +<br> diff --git<br> a/build_patches/openwrt/0015-firmware-utils-mktplinkfw2-fix-<br> MD5-salt.patch<br> b/build_patches/openwrt/0015-firmware-utils-mktplinkfw2-<br> fix-MD5-salt.patch<br> new file mode 100644<br> index 0000000..a0e14df<br> --- /dev/null<br> +++ b/build_patches/openwrt/0015-firmware-utils-mktplinkfw2-fix-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> MD5<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +++ -<br> salt<br> +++ .patch<br> @@ -0,0 +1,68 @@<br> +From 2f7382a3b9ae90e67980f0baedeb7f3109cfc0a6 Mon Sep 17<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> 00:00:00<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> 2001<br> +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?=<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> <<a href="mailto:rafal@milecki.pl">rafal@milecki.pl</a>><o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +Date: Sun, 2 Jul 2017 17:06:58 +0200<br> +Subject: [PATCH 3/3] firmware-utils: mktplinkfw2: fix MD5 salt<br> +MIME-Version: 1.0<br> +Content-Type: text/plain; charset=UTF-8<br> +Content-Transfer-Encoding: 8bit<br> +<br> +LEDE supports few devices using TP-Link firmware format (V2 or<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><pre> V3):<o:p></o:p></pre><blockquote style='border:none;border-left:solid #AD7FA8 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #8AE234 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +ArcherC20i, ArcherC50, ArcherMR200, TDW8970, TDW8980, TL-<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote><pre> WR840N<o:p></o:p></pre><blockquote style='border:none;border-left:solid #FCAF3E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #E9B96E 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> v4,<o:p></o:p></pre><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm;margin-bottom:6.0pt'><pre> +TL-WR841N v13 and VR200v<br> +<br> +Testing mktplinkfw2 tool with official (vendor generated)<br> +firmware files for above devices has shown an error when<br> +comparing calculated and included MD5 sum, e.g.:<br> +> mktplinkfw2 -i<br> +> Arche<o:p></o:p></pre></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></div></div></div></body></html>