Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
toh:tp-link:archer_c2_ac750 [2020/04/12 14:12] – [Flashing OpenWRT] Add a bit of clarification to the flashing tips. borrominitoh:tp-link:archer_c2_ac750 [2022/06/29 14:20] – [Switch] Add more details about using VLAN IDs above 31 in the outer switch configuration znark
Line 1: Line 1:
 ====== TP-Link Archer C2 AC750 ====== ====== TP-Link Archer C2 AC750 ======
 +
 +{{:media:tplink:archer-c2-v1:archer-c2-ac750-v1.png?300}}
  
 <WRAP 80%> <WRAP 80%>
Line 47: Line 49:
 ===== Installation ===== ===== Installation =====
 -> [[docs:guide-user:installation:generic.flashing|Install OpenWrt (generic explanation)]] -> [[docs:guide-user:installation:generic.flashing|Install OpenWrt (generic explanation)]]
- 
  
 <WRAP center round important 60%> <WRAP center round important 60%>
-The following procedure works only on the **<color #ed1c24>V1</color>** model. Please, don't try this on any other revision. You can check which version your C2 is by looking at the bottom of it or, in the router's web interface, **Status** page, **Hardware Version** information, if you are using stock firmware.+The following procedure is known to work only on the **<color #ed1c24>v1</color>** and **<color #ed1c24>v1.1</color>** models. Please, don't try this on any other revision. You can check which version your C2 is by looking at the bottom of it or, in the router's web interface, **Status** page, **Hardware Version** information, if you are using stock firmware.
 </WRAP> </WRAP>
  
 As per the instructions in the [[https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=8375623a064|git commit adding support for the Archer C2 AC750 v1]], you need an OpenWrt image with **integrated bootloader** when flashing through TFTP (TP-Link pretty much always has the bootloader integrated in their firmwares). As per the instructions in the [[https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=8375623a064|git commit adding support for the Archer C2 AC750 v1]], you need an OpenWrt image with **integrated bootloader** when flashing through TFTP (TP-Link pretty much always has the bootloader integrated in their firmwares).
 OpenWrt 19.07.1 can be flashed via TFTP using an unofficial recovery image provided [[https://github.com/orangepizza/openwrt/releases/download/19.07.1/ArcherC2V1_tp_recovery.bin|here]]; however, if you are familiar with the command line and have access to a Linux box, it's recommended you build such an image yourself, as you'll be able to use the latest OpenWrt stable release. See instructions below. OpenWrt 19.07.1 can be flashed via TFTP using an unofficial recovery image provided [[https://github.com/orangepizza/openwrt/releases/download/19.07.1/ArcherC2V1_tp_recovery.bin|here]]; however, if you are familiar with the command line and have access to a Linux box, it's recommended you build such an image yourself, as you'll be able to use the latest OpenWrt stable release. See instructions below.
- 
  
 ==== Creating an OpenWrt TFTP recovery image ==== ==== Creating an OpenWrt TFTP recovery image ====
 +<WRAP center round important 60%>
 +The following instructions might break your router.
 +Use only the provided recovery image if you don't understand what is going on.
 +
 +Avoid renaming any arbitrary image to ArcherC2V1_tp_recovery.bin. 
 +Providing an image without proper bootloader to TFTP recovery bricks your router and needs flashing with a SPI programmer.
 +</WRAP>
 +
 If you feel uncomfortable doing this, grab the prepped 19.07.1 image linked to above and skip this section. If you feel uncomfortable doing this, grab the prepped 19.07.1 image linked to above and skip this section.
  
Line 69: Line 77:
 2. Extract u-boot from the binary file: 2. Extract u-boot from the binary file:
  
-''$ dd if=c2v1_stock_firmware.bin of=c2v1_uboot.bin bs=1 skip=512 count=131072''+<code>$ dd if=c2v1_stock_firmware.bin of=c2v1_uboot.bin bs=1 skip=512 count=131072</code>
  
 3. Now merge the OpenWrt **sysupgrade** image and the u-boot into one binary: 3. Now merge the OpenWrt **sysupgrade** image and the u-boot into one binary:
  
-''$ cat c2v1_uboot.bin openwrt-squashfs-sysupgrade.bin > ArcherC2V1_tp_recovery.bin'' +<code>$ cat c2v1_uboot.bin openwrt-squashfs-sysupgrade.bin > ArcherC2V1_tp_recovery.bin</code>
  
 ==== Flashing OpenWRT ==== ==== Flashing OpenWRT ====
Line 84: Line 91:
   * After reboot, you can access OpenWrt at 192.168.1.1. From here on out, you can simply use sysupgrade with the **vanilla** OpenWrt images to upgrade.   * After reboot, you can access OpenWrt at 192.168.1.1. From here on out, you can simply use sysupgrade with the **vanilla** OpenWrt images to upgrade.
  
 +<WRAP center round info 95%>
 +Remember to allow access to your TFTP server program in firewall settings. (In case of Windows Firewall, it prompts you in first run.)
  
-<WRAP center round info 95%> 
 If you encounter timeouts, you might want to put a switch between your router and client to facilitate the flashing process. The tips below might not be needed after that. If you encounter timeouts, you might want to put a switch between your router and client to facilitate the flashing process. The tips below might not be needed after that.
- 
-A few users reported that flashing via TFTP server was only possible when the option "Use anticipation window of" with 1000 bytes was enabled in TFTPD32 for Windows. So, if your flashing process hang at some point, restart the process with this option enabled. 
  
 Also, you //might// have to lower your ethernet link to 10 Mbps Half Duplex in order to finish the process. Also, you //might// have to lower your ethernet link to 10 Mbps Half Duplex in order to finish the process.
Line 95: Line 101:
  
  
-Similar instructions can be found as posted by OpenWrt forum member **yoq** [[https://forum.openwrt.org/viewtopic.php?pid=347582#p347582|here]]. Old recovery image **c2_recovery.zip** can be downloaded [[http://beinder.at/pub/c2_recovery.zip|here]].+<WRAP center round important 95%>
  
 +A few users reported that flashing via TFTP is not always possible on some devices. Apparently there was a slight hardware change in some produced devices that causes TFTP inside u-boot to expect [[https://datatracker.ietf.org/doc/html/rfc7440|RFC7440]] behavior without actually requesting RFC7440 behavior.
 +There is a [[https://forum.openwrt.org/t/tftp-download-from-tp-link-archer-c2-does-not-work-properly/65531/|forum thread]] with a detailed analysis of the issue and possible solutions.
  
 +**TLDR:**
  
 +If you want to stick to flashing via TFTP:
 +  * on Windows use [[https://pjo2.github.io/tftpd64/|TFTPD32/64]] with the option ''Use anticipation window of 1000 bytes''
 +  * on every other platform you could use [[https://github.com/apardyl/PyTFTPd|apardyl/PyTFTPd]] with the patch provided by ''pbasista'' in the forum thread
 +
 +Otherwise your best option is to establish a serial connection to the device and then load the image via ''kermit'' (either directly copying it into the flash or booting an ''initramfs'' variant from memory and then flashing via ''OpenWrt'').
 +
 +Other variants and more information is provided in the aforementioned forum thread.
 +
 +</WRAP>
 +
 +Similar instructions can be found as posted by OpenWrt forum member **yoq** [[https://forum.openwrt.org/viewtopic.php?pid=347582#p347582|here]]. Old recovery image **c2_recovery.zip** can be downloaded [[http://beinder.at/pub/c2_recovery.zip|here]].
 +
 +==== Flash Layout ====
 +
 +^   TP-Link Archer C2 AC750 v1 flash layout           ^^^^^^^^^
 +^ Layer0  |                raw NOR flash memory chip (Spansion S25Fl064K [[wp>Serial Peripheral Interface Bus|spi]]0.0: s25fl064k) 8192 KiB                ||||||||
 +^ Layer1  |  mtd0 **//u-boot//**  |  mtd1 **//firmware//** 7808 KiB                                   |||  mtd5 **//config//**  |  mtd6 **//rom//**  |  mtd7 **//romfile//**  |  mtd8 **//radio//**  |
 +^ Layer2  |                        mtd2 **//kernel//** 1690 KiB*  |  mtd3 **//rootfs//** 6117 KiB*   ||
 +^ <color magenta>mountpoint</color>      |                        |  <color magenta>''/''</color>    ||          |
 +^ filesystem                                |     [[docs:techref:filesystems#overlayfs|OverlayFS]]  ||          |
 +^ Layer3                                    |    |  mtd4 **//rootfs_data//** 1448 KiB*                |          |
 +^ Size in KiB  |  128 KiB              1690 KiB  |  4669 KiB*  |  1448 KiB*  |  64 KiB  |  64 KiB  |  64 KiB  |  64 KiB  |
 +^ Name          **//u-boot//**      |  **//kernel//**  |            **//rootfs_data//**    |  |
 +^ <color magenta>mountpoint</color>    //none//    //none//  |  <color magenta>''/rom''</color>  |  <color magenta>''/overlay''</color>    //none//  |  //none//  |  //none//  |  //none//  |
 +^ filesystem    //none//  |  //none//  |  [[docs:techref:filesystems#SquashFS]]  |  [[docs:techref:filesystems#JFFS2]]  |  //none//  |  //none//  |  //none//  |  //none//  |
 +* These seemingly irregular values are the result of the dynamic mtd splitter resizing the OpenWrt kernel and rootfs 'partitions' as needed. Sizes are extracted from a personalised build, so //kernel//, //rootfs// and //rootfs_data// values may slightly differ on stock OpenWrt builds (and also between 19.07, 21.02 and master e.g.). Other partition sizes should be identical.
  
 ===== Hardware ===== ===== Hardware =====
 See the [[/toh/tp-link/archer_c2_ac750#tab__hardware_details|hardware details tab]] at the top of the page. See the [[/toh/tp-link/archer_c2_ac750#tab__hardware_details|hardware details tab]] at the top of the page.
  
-==== Pictures of the Ver. 1.0 board ==== +==== Pictures of the board ====
-{{:media:tplink:archerc2_ac750_t.jpg?400|}}  {{:media:tplink:archerc2_ac750_b.jpg?400|}}+
  
 The case is a bit hard to open, start with the two screws. Then start prying the lid from the bottom of the case, starting at the side with the ethernet connectors, There are 11 notches all around keeping the lid in place. They come loose by pushing the bottom part of the case outward. The case is a bit hard to open, start with the two screws. Then start prying the lid from the bottom of the case, starting at the side with the ethernet connectors, There are 11 notches all around keeping the lid in place. They come loose by pushing the bottom part of the case outward.
  
 +**v1**
  
-==== Serial =====+{{media:tplink:archer_c2_ac750_t.jpg?400|}} {{media:tplink:archer_c2_ac750_b.jpg?400|}}
  
-Serial port TTL voltage, 115200 bps, 8N1+**v1.1** 
 + 
 +{{:media:tplink:archer-c2-v1:archer_c2_v1.1_front.jpg?400|}} {{:media:tplink:archer-c2-v1:archer_c2_v1.1_back.jpg?400|}} 
 + 
 +==== Serial =====
  
 <WRAP center round alert 60%> <WRAP center round alert 60%>
Line 117: Line 156:
 </WRAP> </WRAP>
  
-The Serial connector is labeled 'J2', and is wired as follows:+^ Serial connection parameters for Archer C2 AC750 v1 | 115200, 8N1 | 
 + 
 +The Serial connector is labeled 'J2', and is wired as follows. See picture below for the location on the board.
  
     Ethernet side of PCB     Ethernet side of PCB
Line 128: Line 169:
     Led side of PCB     Led side of PCB
  
 +Where 'RX' connects to the output of your serial adapter, and TX, connects to the input of your serial adapter. You can verify this, by using a volt meter to check that 'TX' pin is at Vcc level, and the RX pin is at GND level. The bootloader of the stock firmware can be interrupted by pressing a digit from 1 .. 7, press '4' for the u-boot prompt. From the serial console, you can login to the running Linux based stock firmware with: username 'admin' and password '1234'.
  
-Where 'RX' connects to the output of your serial adapter, and TX, connects to the input of your serial adapter. +**Soldering**
-You can verify this, by using a volt meter to check that 'TX' pin is at Vcc level, and the RX pin is at GND level.+
  
-The GND pin may be a bit hard to solder, i needed to scratch away some paint from the PCB to make a large enough connection.+The GND pin may be a bit hard to solder, i needed to scratch away some paint from the PCB to make a large enough connection. On some versions you need to solder 2 bridges to get serial port working. You need good soldering experiences for that!
  
-On some versions you need to solder 2 bridges to get serial port working. You need good soldering experiences for that!+**Board picture (v1)**
  
-The bootloader of the stock firmware can be interrupted by pressing digit from 1 .. 7, press '4' for the u-boot prompt. +UART isn't populated, it's indicated by a red rectangle on the picture below (click for bigger size).
- +
-From the serial console, you can login to the running linux of a stock firmware with: username 'admin' and password '1234'.+
  
 +{{:media:tplink:archer-c2-v1:archer_c2_v1_-_board_serial_red_rectangle.jpg?300.jpg}}
  
 ===== Switch ====== ===== Switch ======
 +
 The C2 uses a external GBit switch, connected by MDIO bus. Network traffic to the CPU is passed through the internal switch of the MT7620A SoC: The C2 uses a external GBit switch, connected by MDIO bus. Network traffic to the CPU is passed through the internal switch of the MT7620A SoC:
 +
 <code>             +---------------+ <code>             +---------------+
               MT7620A CPU  |               MT7620A CPU  |
Line 165: Line 207:
  
  
 +
 +<WRAP center round info 60%>
 +Earlier versions of this article suggested “the driver for OpenWrt” (for the RTL8367R(B) switch chip) would have limited the range of usable 802.1q VLAN IDs to 1 – 31.
 +
 +While this may have been true for some earlier builds (could not confirm immediately), OpenWrt 21.02.3 (at least) no longer seems to suffer from such //hard// limit. There is still a //soft// limit which, for some reason, makes VLAN IDs above 31 unusable and non-working by default, but you can override this limit and use the full range of VLAN IDs by setting the ''enable_vlan4k'' option to ''1'' in the ''switch1'' section of the ''/etc/config/network'' configuration file, as follows:
 +
 +<code>
 +config switch
 +        option name 'switch1'
 +        option reset '1'
 +        option enable_vlan '1'
 +        option enable_vlan4k '1'
 +</code>
 +
 +If you edit the switch VLAN configuration in LuCI, it may add the ''enable_vlan4k'' configuration directive automatically for you. But for manual edits, you need to do it yourself to be able to get the higher-numbered VLAN IDs work.
 +</WRAP>
 +
 +<WRAP center round important 60%>
 +OpenWrt releases 21.02.0 — 21.02.3 (the latest official release as of this writing) appear to have a regression in their default network configuration which makes the inner (MT7620A) switch visible in LuCI as ''switch0'' for no real purpose, with a pseudo VLAN configuration that makes no sense.
 +
 +The router works as it should but configuring VLANs through LuCI may not work as expected and only the outer switch (''switch1'', RTL8367B) configuration is relevant. A bug report has been filed on this by the ID [[https://github.com/openwrt/openwrt/issues/8871|FS#3879 - Incorrect switch config for TP-Link Archer C2 AC750 #8871]].
 +
 +Until fixed in later releases, you can work around the issue by removing the extraneous ''switch0'' configuration from the file ''/etc/config/network''. This is best accomplished by issuing the following commands in the command line:
 +
 +<code>
 +uci delete network.@switch[0]
 +uci commit
 +reboot
 +</code>
 +</WRAP>
 ===== UBoot ====== ===== UBoot ======
  
Line 189: Line 261:
 | Green   | LAN    | 1      | Active low   | | Green   | LAN    | 1      | Active low   |
 | Green   | USB    | 11     | Active low   | | Green   | USB    | 11     | Active low   |
- 
  
 ===== Forum Threads ===== ===== Forum Threads =====
Line 198: Line 269:
  
 Thanks to everyone that contribute to make this possible. Thanks to everyone that contribute to make this possible.
- 
  
 ===== Tags ===== ===== Tags =====
 [[meta:tags|How to add tags]] [[meta:tags|How to add tags]]
 {{tag>ramips mt7620a usb 64ram 8flash mips32 mips MT7620A mt7620 mediatek mt7610e usb2.0 1usb gigabitethernet 2ant NonDetachableAntenna 5Port serial U-boot 24k 24kec 2x2 12v_powered wlan 2button 2wnic 802.11ac 802.11n 802.11g 802.11b 802.11a simultan 802.11abgn_simultan}} {{tag>ramips mt7620a usb 64ram 8flash mips32 mips MT7620A mt7620 mediatek mt7610e usb2.0 1usb gigabitethernet 2ant NonDetachableAntenna 5Port serial U-boot 24k 24kec 2x2 12v_powered wlan 2button 2wnic 802.11ac 802.11n 802.11g 802.11b 802.11a simultan 802.11abgn_simultan}}
  • Last modified: 2024/02/13 16:08
  • by jow