User Tools

Site Tools


toh:tp-link:tl-wdr4900

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
toh:tp-link:tl-wdr4900 [2013/07/10 18:44]
otitov flash memory datasheet address changed
toh:tp-link:tl-wdr4900 [2015/01/05 08:02] (current)
jeffkletsky [Failsafe / reset]
Line 12: Line 12:
   * [[http://​www.tp-link.com/​en/​products/​details/?​model=TL-WDR4900]] (V1.x)   * [[http://​www.tp-link.com/​en/​products/​details/?​model=TL-WDR4900]] (V1.x)
   * [[http://​www.tp-link.com.cn/​product_double_292.html]] (V2.x)   * [[http://​www.tp-link.com.cn/​product_double_292.html]] (V2.x)
 +
 +  * Price: AliExpress - [[http://​www.aliexpress.com/​item/​-/​997429375.html|about 100 USD]]
 +
 +  * Forum https://​forum.openwrt.org/​viewtopic.php?​id=42062
 +
 +As of May 2014, TP-Link appear to be discontinuing the TL-WDR4900 in Great Britain.
  
 ===== Supported Versions ===== ===== Supported Versions =====
 ^ Version/​Model ^ S/N ^ Release Date ^ OpenWrt Version Supported ^ Model Specific Notes ^ ^ Version/​Model ^ S/N ^ Release Date ^ OpenWrt Version Supported ^ Model Specific Notes ^
-| v1.0 world-wide | - | 2013-01-22 | trunk [[https://​dev.openwrt.org/​changeset/​36051|r36051]]  ​| Freescale PPC w/2 Atheros radio chips 3 internal antennas (2.4Ghz) and 3 external antennas (5Ghz) | +| v1.0 world-wide | - | 2013-01-22 | Barrier Breaker 14.07 | Freescale PPC w/2 Atheros radio chips 3 internal antennas (2.4Ghz) and 3 external antennas (5Ghz) | 
-| v1.3 world-wide | - | 2013 | trunk | http://​downloads.openwrt.org/​snapshots/trunk/​mpc85xx/ ​ +| v1.3 world-wide | - | 2013 | Barrier Breaker 14.07 | http://​downloads.openwrt.org/​barrier_breaker/14.07/mpc85xx/generic/ ​
-| v2.0 PRC only   | - | 2013-01-22 | ??? ap135 - should be supportable, ​6 external antennas, available in PRC only  |+| v2.0 PRC only   | - | 2013-01-22 | Barrier Breaker 14.07 | 6 external antennas, available in PRC only. https://​downloads.openwrt.org/​barrier_breaker/​14.07/​ar71xx/​generic/ ​| 
 + 
 +Note that BB 14.07 comes without Luci (the Web GUI) preinstalled.
  
 ===== Hardware ===== ===== Hardware =====
Line 27: Line 35:
 | **[[doc:​techref:​Bootloader]]:​** ​             | [[doc:​techref:​bootloader:​uboot|U-Boot]] 2010.12-svn15934 for PowerPC ​ | [[doc:​techref:​bootloader:​uboot|U-Boot]] ? fork of mainline U-Boot version 1.1.4 (2005-12-17) for MIPS ? | | **[[doc:​techref:​Bootloader]]:​** ​             | [[doc:​techref:​bootloader:​uboot|U-Boot]] 2010.12-svn15934 for PowerPC ​ | [[doc:​techref:​bootloader:​uboot|U-Boot]] ? fork of mainline U-Boot version 1.1.4 (2005-12-17) for MIPS ? |
 | **[[doc:​hardware:​soc|System-On-Chip]]:​** ​    | [[wp>​PowerQUICC#​PowerQUICC_III|Freescale MPC85xx]] ​     | QCA9558-AT4A ​ | | **[[doc:​hardware:​soc|System-On-Chip]]:​** ​    | [[wp>​PowerQUICC#​PowerQUICC_III|Freescale MPC85xx]] ​     | QCA9558-AT4A ​ |
-| **[[doc:​hardware:​cpu|CPU]]/​Speed** ​          | PPC P1014@800MHz | MIPS 74Kc Vers. ?.720 MHz  | +| **[[doc:​hardware:​cpu|CPU]]/​Speed** ​          | PPC P1014@800MHz | MIPS 74Kc Vers. 5.720 MHz  | 
-| **Flash-Chip:​** ​                             | [[http://​www.spansion.com/​Support/​Datasheets/​S25FL064P_00.pdf|ST 25P64V6P]] |  +| **Flash-Chip:​** ​                             | [[http://​www.spansion.com/​Support/​Datasheets/​S25FL128S_256S_00.pdf|S25FL128S]] | Winbond [[http://​www.nexflash.com/​NR/​rdonlyres/​05A6F2FD-83D2-4748-8394-65909AC2A8E3/​0/​W25Q64FV.pdf|W25Q64FVSIG]] ​
 | **Flash size:​** ​                             | 16384 KiB  | 8192 KiB  | | **Flash size:​** ​                             | 16384 KiB  | 8192 KiB  |
-| **RAM-Chip:​** ​                               | [[http://​www.skhynix.com/​inc/​pdfDownload.jsp?​path=/​datasheet/​pdf/​graphics/​H5TQ1G63DFR(Rev1.1).pdf|H5TQ1G63DFR]] |   ​|+| **RAM-Chip:​** ​                               | [[http://​www.skhynix.com/​inc/​pdfDownload.jsp?​path=/​datasheet/​pdf/​graphics/​H5TQ1G63DFR(Rev1.1).pdf|H5TQ1G63DFR]] | [[http://​www.skhynix.com/​products/​consumer/​view.jsp?​info.ramKind=03&​info.serialNo=H5PS5162GFR|H5PS5162GFR]] ​|
 | **RAM size:​** ​                               | 128 MiB | 128 MiB   | | **RAM size:​** ​                               | 128 MiB | 128 MiB   |
-| **Wireless1:​** ​                              | Chip: AR9381-AL1A for 2.4GHz ​ | SoC: QCA9558-AT4A w/ 3x3 MIMO for 2.4Ghz ​          |+| **Wireless1:​** ​                              | Chip: AR9381-AL1A ​w/ 3x3 MIMO for 2.4GHz ​ | SoC: QCA9558-AT4A w/ 3x3 MIMO for 2.4Ghz ​          |
 | **Wireless2:​** ​                              | Chip: AR9580-AR1A w/ 3x3 MIMO for 5Ghz    | Chip: AR9580-AR1A w/ 3x3 MIMO for 5Ghz | | **Wireless2:​** ​                              | Chip: AR9580-AR1A w/ 3x3 MIMO for 5Ghz    | Chip: AR9580-AR1A w/ 3x3 MIMO for 5Ghz |
-| **[[doc:​techref:​swconfig|Switch]]:​** ​        ​| ​RealTek RTL8366RB Gigabit ​                             | AR8327N-AL1A  |+| **[[doc:​techref:​swconfig|Switch]]:​** ​        ​| ​AR8327N-AL1A ​                             | AR8327N-BL1A  |
 | **USB:​** ​                                    | 2 (USB 2.0)    | 2 (USB 2.0) | | **USB:​** ​                                    | 2 (USB 2.0)    | 2 (USB 2.0) |
 | **[[doc:​hardware:​port.serial|Serial]]:​** ​    | [[#​Serial|Yes]] | [[#​Serial|Yes]] | | **[[doc:​hardware:​port.serial|Serial]]:​** ​    | [[#​Serial|Yes]] | [[#​Serial|Yes]] |
-| **[[doc:​hardware:​port.jtag|JTAG]]:​** ​        ​| ​ | [[#​JTAG|Yes]] |+| **[[doc:​hardware:​port.jtag|JTAG]]:​** ​        ​| ​Yes  | [[#​JTAG|Yes]] |
  
 ==== Photos ==== ==== Photos ====
  
-{{:media:tplinkwdr4900v1serial.jpg?​400|wdr4900v1}} +=== Version 1.x === 
-{{:media:tplinkwdr4900v1.jpg?​400|wdr4900v1}}+ 
 +{{:media:toh:​tp-link:​tl-wdr4900:​v1serial.jpg?​400|wdr4900v1 ​serial}} 
 + 
 +{{:media:toh:​tp-link:​tl-wdr4900:​v1bottom.jpg?​400|wdr4900v1 ​bottom}} 
 + 
 +=== Version 2.0 === 
 + 
 +{{:​media:​toh:​tp-link:​tl-wdr4900:​v2serial.jpg?​400|wdr4900v2 serial}}
  
 ===== Serial console ===== ===== Serial console =====
  
-Serial console is available on JP2 connector ​(look at the picture of PCB).\\ +Serial console is available on the JP2 (v1.xor J1 (v2.0) connector - see PCB photos above. 
-Setting115200 8N1\\ + 
-Login to factory ​firmware: ​root/5up\\+**DO NOT CONNECT VCC**. Use only TX/​RX/​GND. 
 + 
 +Baud Rate: 115200\\ 
 +Data Bits8\\ 
 +Parity: No\\ 
 +Stop Bits: 1\\ 
 + 
 +Factory ​firmware ​login credentials: //(v1.x only)//\\ 
 + * username: root\\ 
 + * password: 5up 
 + 
 +''​Note:''​ be extremely careful when soldering a serial console on TP-Link TL-WDR4900 - the design of the PCB is not well suited for soldering and important paths/​connections are near the soldering points. We have now 3 Routers which are dead, just because we used too much solder... 
 + 
 +===== Installation ===== 
 + 
 +OpenWRT may be installed [[doc/​howto/​generic.flashing#​method.1via.oem.firmware|via OEM firmware]] on both versions. 
 + 
 +v1: [[http://​downloads.openwrt.org/​barrier_breaker/​14.07/​mpc85xx/​generic/​openwrt-mpc85xx-generic-tl-wdr4900-v1-squashfs-factory.bin|openwrt-mpc85xx-generic-tl-wdr4900-v1-squashfs-factory.bin ]] 
 + 
 +v2: [[https://​downloads.openwrt.org/​barrier_breaker/​14.07/​ar71xx/​generic/​openwrt-ar71xx-generic-tl-wdr4900-v2-squashfs-factory.bin|openwrt-ar71xx-generic-tl-wdr4900-v2-squashfs-factory.bin]] 
 +  * If you do not speak chinese and are not familiar with the standard TP-Link firmware, please see the screen shots below for help. 
 + 
 +After installation you will want to proceed with [[http://​wiki.openwrt.org/​doc/​howto/​firstlogin|first login]], [[http://​wiki.openwrt.org/​doc/​howto/​basic.config|basic configuration]]. You may also wish to install the web user interface [[doc/​howto/​luci.essentials|LuCI]],​ after which you can manage your router at http://​192.168.1.1 
 + 
 +=== Helpful Screenshots for installing from Chinese stock firmware ===
  
 +{{:​media:​toh:​tp-link:​stock-fw-upgrade-step1.jpg?​500|Upgrading from Stock Firwmare - Step 1}}
  
-===== De-brick or OEM installation using the TFTP and RS232 (serial) method =====+{{:​media:​toh:​tp-link:​stock-fw-upgrade-step2.jpg?​250|Upgrading from Stock Firwmare - Step 2}}
  
-If you want to de-brick/upgrade your router using TFTP you follow these steps:+==== VLAN ==== 
 +To get tagged and untagged traffic working on the same port a patch for the switch driver is needed. Refer to: https://​dev.openwrt.org/​ticket/12181#​comment:73
  
 +===== De-brick or OEM installation =====
  
-==== Pre-requisits ​====+==== Using TFTP + Serial method ​====
  
-  * Serial RS232 connected from your machine to TL-WDR4900 & a terminal program (e.g. minicom, screen) set to **115200 8N1**, no flow control, 3,3V. +=== Pre-requisites ===
-  * Copy a working & full OpenWrt firmware image into your TFTP server folder (e.g: openwrt-mpc85xx-generic-tl-wdr4900-v1-squashfs-factory.bin). +
-  * A TFTP server started on your local machine on LAN address 192.168.1.x/​24. +
-  * Connect your LAN-port to one of the routers LAN ports.+
  
 +  * a serial connection (e.g. TTL, RS232) from your machine to the router.
 +  * a terminal program (e.g. minicom, screen) set for 115200 Baud, 8 data bits, no parity, 1 stop bit, no flow control.
 +    * It is **strongly recommended** not to connect the 3.3V (or any) voltage line - use the router'​s own power supply instead.
 +  * a __factory__ OpenWrt firmware image into your TFTP server folder (see [[#​installation|Installation]] above)
 +  * a wired ethernet connection from your computer to one of the router'​s LAN ports.
 +    * IP address on this connection should be statically set to 192.168.1.x/​24.
 +  * a TFTP server started on your local machine
 +    * must be listening on the same link/IP address as the wired ethernet connection to the router
 +    * v1.x models prefer the server address 192.168.0.66,​ v2.0 prefers 192.168.1.100
  
-==== Written ​Flash Procedure ​====+=== v1.x Flash Write Procedure ===
  
 +**<color red>This section applies to v1.x only!</​color>​** ([[#​v2.0.flash.write.procedure|version 2.0 method]])
   - Router should be unplugged (power off), your serial line connected, terminal open and TFTP server installed not yet running.   - Router should be unplugged (power off), your serial line connected, terminal open and TFTP server installed not yet running.
   - Copy your desired openwrt image for the TPlink-WDR4900 into your TFTP server folder and rename it into ''​openwrt.bin''​ (to save some typing within the flash procedure).   - Copy your desired openwrt image for the TPlink-WDR4900 into your TFTP server folder and rename it into ''​openwrt.bin''​ (to save some typing within the flash procedure).
   - First goal is to get the command prompt from the U-Boot bootloader on your router.   - First goal is to get the command prompt from the U-Boot bootloader on your router.
-  - Plug in your router and be ready to type "''​vl''"​ just after you see the line ''​Autobooting in 1 seconds'':​+  - Plug in your router and be ready to type "''​vl''"​ just after you see the line ''​Autobooting in 1 seconds'' ​(Spamming "''​vl''"​ around this point helps):
  
 <​code>​ <​code>​
Line 180: Line 229:
 </​code>​ </​code>​
  
-==== Failsafe / reset ==== +=== v2.0 Flash Write Procedure ​===
-After all else failed, I found [[http://​www.binaryfriend.ru/​2012/​10/​how-to-hard-reset-openwrt-on-tp-link-1043nd]]. ​ Extremely simple. ​ Please see the original page for more info.  Summary:+
  
-  ​Power the router ​up; +**<color red>This section applies to v2.0 only!</​color>​** ([[#​v1.x.flash.write.procedure|version 1.x method]]) 
-  - After powering up track the SYS light when it starts ​to blink, when it does press and hold the QSS button till SYS lights starts to blink faster – router goes to recovery mode+  ​Be sure the router ​is powered off (there'​s a handy power switch beside the power line). 
-  - Telnet to the router ​on 192.168.1.1 – no password needed (if your computer ​doesn’t gets IP address from DHCP assign it manually for i.e192.168.1.200 with netmask ​of 255.255.255.0); +  - Connect your serial and ethernet cables to your computer. 
-  In telnet terminal type `mtd -r erase rootfs_data` to reset OpenWRT to it’s defaults.+  - Open your terminal for the serial connection. 
 +  - Power on the router 
 +  - When you see ''​Autobooting in 1 seconds'',​ quickly type "''​tpl''" ​to access the command line. 
 +    * there is no harm at all typing "''​tpl''"​ repeatedly from the moment you power onI often start when I see the U-Boot bootloader header. ​;-) 
 +  - Start the TFTP server running ​on your computer. 
 +  - At the ''​ap135>''​ prompt, type the following commands: 
 +    - ''​tftpboot 0x81000000 openwrt.bin''​ (where openwrt.bin is the name of your firmware image
 +    ''​erase 0x9f020000 +0x7c0000''​ 
 +    - ''​cp.b 0x81000000 0x9f020000 0x7c0000''​ 
 +    - ''​bootm 0x9f020000''​ 
 +  - Congratulations!
  
-There are significant issues with Barrier Breaker, as of 08-June-2013. You can use the 2.4 GHz wireless, but you cannot authenticate ​to the 5 GHzOther issues include ​that the WAN port stops grabbing ​DHCP addressesSome builds work some of the time.+==== Reset Button Method (no serial cable needed) ==== 
 + 
 +If you want to de-brick/​upgrade your router using TFTP without a serial cable follow these steps: 
 + 
 +=== Pre-requisites === 
 + 
 +  * Copy a working & full OpenWrt sysupgrade image into your TFTP server folder (e.g: https://​downloads.openwrt.org/​barrier_breaker/​14.07/​mpc85xx/​generic/​openwrt-mpc85xx-generic-tl-wdr4900-v1-squashfs-sysupgrade.bin) so it will be found under the path /​wdr4900v1_tp_recovery.bin ​You can also use the image used for reverting to stock firmware if you prefer to do so, but it has to be placed under the same path. 
 +  * A TFTP server started on your local machine on LAN address 192.168.0.66/​24. 
 +  * Connect your LAN-port to one of the routers LAN  
 + 
 +=== Procedure === 
 + 
 +  - Router should be unplugged (power off) and TFTP server installed not yet running. 
 +  - Copy your desired openwrt image for the TPlink-WDR4900 into your TFTP server folder and rename it into ''​wdr4900v1_tp_recovery.bin''​ (as the router will search for this file). 
 +  - Make sure your card has address 192.168.0.66. 
 +  - Start the tftp server and make sure it is listening on 192.168.0.66  
 +  - Plug in your router and keep the WPS/Reset button pressed until the tftp server confirms the transfer is done 
 +  - Wait for the router to reboot, the new image will then be loaded 
 +  - A pack ready for doing this, containing TFTPD32 server and the latest TP-Link firmware, can be found here: https://​forum.openwrt.org/​viewtopic.php?​pid=236428#​p236428 
 +  - Also there'​s a video of the process: http://​www.youtube.com/​watch?​v=54PAS0gvW2k 
 +===== Failsafe / reset ===== 
 + 
 +On the v1 units, the only way that I have been able to get the router into failsafe mode is to quickly and repeatedly press the WPS/Reset button //starting before the front panel "​star"​ LED started flashing. //When that LED finally lit, it appeared to go directly into the rapid-flashing "​failsafe"​ indication. If the WPS LED lights (rightmost, "​yin-yang arrows"​),​ it may be that you started clicking the button a little early in the boot sequence. 
 + 
 +For what you can do in failsafe, go to the [[doc:​howto:​generic.failsafe|OpenWrt Failsafe Mode]] page. 
 + 
 + 
 +Another user writes:  
 + 
 +> After all else failed, I found [[http://​www.binaryfriend.ru/​2012/​10/​how-to-hard-reset-openwrt-on-tp-link-1043nd]]. ​ Extremely simple. ​ Please see the original page for more info.  Summary: 
 +
 +>  - Power the router up; 
 +>  - After powering up track the SYS light when it starts to blink, when it does press and hold the QSS button till SYS lights starts to blink faster – router goes to recovery mode; 
 +>  - Telnet to the router on 192.168.1.1 – no password needed (if your computer doesn’t gets IP address from DHCP assign it manually for i.e. 192.168.1.200 with netmask ​of 255.255.255.0);​ 
 +>  - In telnet terminal type `mtd -r erase rootfs_data` to reset OpenWRT to it’s defaults.
  
  
Line 195: Line 287:
 You can revert to stock firmware by following these steps: You can revert to stock firmware by following these steps:
  
-  * Download / copy with SCP or wget this firmware to the /tmp folder of the router: [[ftp://everbest.ftpserver.biz/Share/TP-Link/TL-WDR4900%20Firmware/​wdr4900nv1_en_3_14_1_up(130304)_beta.bin]]+  * Download / copy with SCP this firmware to the /tmp folder of the router: [[https://www.dropbox.com/sh/g8dyafqrato12pc/AADtSjx_MVot7asdqeRtvVVza?​dl=0]] 
 +  * Optionally check MD5 hash: 1148EFD09C6D9B07E6A01259A4EBEF72 
 +  * Rename to firmware.bin (less chance for spelling errors and unsupported characters)
   * Open a SSH session to the router, cd to /tmp   * Open a SSH session to the router, cd to /tmp
-  * Execute the following command: mtd -r write wdr4900nv1_en_3_14_1_up(130304)_beta.bin firmware+  * Execute the following command: mtd -r firmware.bin firmware
   * Wait until the router reboots   * Wait until the router reboots
  
 Note: You can only flash this firmware version because it has no BOOT in the filename. This image and OpenWRT images are the exact same size. Other images from TP-Link do have BOOT in the filename and these files are also  Note: You can only flash this firmware version because it has no BOOT in the filename. This image and OpenWRT images are the exact same size. Other images from TP-Link do have BOOT in the filename and these files are also 
 more bytes than this one. more bytes than this one.
-{{tag>​GigabitEthernet internalantenna 2usb 3x3 450mbps usb2.0 5ghz 5port 16flash 802.11abgn ath9k detachableantenna 6ant 3ant 128ram 802.11abgn_simultan 2WNIC}}+{{tag>​GigabitEthernet internalantenna 2usb 3x3 450mbps usb2.0 5ghz 5port 16flash 802.11abgn ath9k detachableantenna 6ant 3ant 128ram 802.11abgn_simultan 2WNIC, soc.freescale.mpc}} 
 + 
 +===== Specific Configuration ===== 
 +==== Switch Ports (for VLANs) ==== WDR4900 v1? 
 + 
 +Numbers 2-5 are Ethernet Ports 1-4 as labeled on the unit, number 1 is "​Internet"​ (WAN) on the unit, 0 is the internal connection to the router itself. 
 +^ Port ^ Switch port ^ 
 +| CPU   | 0 | 
 +| WAN   | 1 | 
 +| LAN 1 | 2 | 
 +| LAN 2 | 3 | 
 +| LAN 3 | 4 | 
 +| LAN 4 | 5 | 
 +| (not used ?) | 6 | 
 + 
 +==== Switch Ports (for VLANs) ==== WDR4900 v2 
 + 
 +Numbers 2-5 are Ethernet Ports 1-4 as labeled on the unit, number 1 is "​Internet"​ (WAN) on the unit, 6 is the internal connection to the router itself, and 0 is another CPU, because this router has two. 
 + 
 +^ Port ^ Switch port ^ 
 +| Second CPU | 0 | 
 +| WAN   | 1 | 
 +| LAN 1 | 2 | 
 +| LAN 2 | 3 |           
 +| LAN 3 | 4 | 
 +| LAN 4 | 5 | 
 +| CPU   | 6 | 
 + 
 + 
 +==== Luci WDR4900v2 (Example Vlans tag for Movistar FTTH Spain) 
 + 
 + 
 + 
 +{{:​media:​tplink_wdr4900v2_switch_vlan_tagg.jpg?​900}} 
 + 
 + 
 +==== Port Mirroring ==== 
 +Hardware port mirroring is supported in v1/(v2?) FIXME 
 + 
 +Here's an example of configuring port mirroring in /​etc/​config/​network for mirroring port 1 to port 5 
 +(You may need to restart the router for port mirroring changes to take effect): 
 +<​code>​ 
 + 
 +config switch 
 + option name '​switch0'​ 
 + option reset '​1'​ 
 + option enable_vlan '​1'​ 
 + option enable_mirror_rx '​1'​ 
 + option enable_mirror_tx '​1'​ 
 + option mirror_source_port '​1'​ 
 + option mirror_monitor_port '​5'​ 
 + 
 +</​code>​ 
 + 
 +===== QEMU test environment ===== 
 + 
 +In case you are interested to run a virtual test environment for your PPC based WDR4900 platform 
 +QEMU is a good helper. It cannot run the downloadable kernel image but at least a slightly modfied  
 +version. Here are the basic steps to get a initial setup up and runnung. 
 + 
 +Install QEMU for your Linux distribution. It should be at least 2.1.2. The process was only tested  
 +with that version. Create a [[about:​toolchain|buildroot environment]]. If you do not want to read  
 +every single bit of information over there use these commands. We assume that we only want to 
 +build the stable Barrier Breaker version. 
 + 
 +<​code>​ 
 +# cd ~ 
 +# mkdir buildroot 
 +# cd buildroot 
 +# git clone git://​git.openwrt.org/​14.07/​openwrt.git 
 +# cd openwrt 
 +# ./​scripts/​feeds update -a 
 +# ./​scripts/​feeds install -a 
 +</​code>​ 
 + 
 +Select your target platform 
 + 
 +<​code>​ 
 +# make menuconfig 
 +Target System -> Freescale MPC85xx [*] 
 +</​code>​ 
 + 
 +Save changes and leave setup. Create the default configuration for the platform 
 + 
 +<​code>​ 
 +# make defconfig 
 +</​code>​ 
 + 
 +Activate some essential buildroot configuration options. 
 + 
 +<​code>​ 
 +# make menuconfig 
 +Target images -> ramdisk [*] 
 +Kernel modules -> filesystems -> kmod-fs-ext4 [*] 
 +</​code>​ 
 + 
 +Save changes and leave setup. Now head over to kernel configuration and define critical 
 +settings that the kernel can run inside QEMU.  
 + 
 +<​code>​ 
 +# make kernel_menuconfig 
 +Platform support -> Freescale machine type -> qemu generic platform [*] 
 +device drivers -> character devices -> serial drivers -> serial port on open plaform bus [ ] 
 +</​code>​ 
 + 
 +If you miss one of the two your VM will not boot or have no accessible console. 
 +**Have a look the open firmware serial bus must be disabled!**. Additionally we  
 +should enable drivers to access QEMU disks and network cards 
 + 
 +<​code>​ 
 +device drivers -> virtio drivers -> activate all menu items [*] 
 +device drivers -> block devices -> Virtio block driver [*] 
 +device drivers -> network device support -> virtio network driver [*] 
 +</​code>​ 
 + 
 +Create the kernel image with 
 + 
 +<​code>​ 
 +make -j 8 
 +</​code>​ 
 + 
 +Finally we have a standalone kernel image with an initial root ramdisk included. 
 +So we could already start the VM. To get into better shape create a separate folder  
 +to hold the image and create a QCOW2 disk with a single ext4 filesystem that can  
 +be mounted inside the VM. 
 + 
 +<​code>​ 
 +# cd ~ 
 +# mkdir vm 
 +# cd vm 
 +# cp ~/​buildroot/​openwrt/​bin/​mpc85xx/​openwrt-mpc85xx-generic-zImage . 
 +# qemu-img create -f qcow2 hdd.qcow2 4G 
 +# su 
 +# modprobe nbd max_part=8 
 +# qemu-nbd --connect=/​dev/​nbd0 ./​hdd.qcow2 
 +# fdisk /dev/nbd0 (... create partition ...) 
 +# mkfs.ext4 /​dev/​nbd0p1 
 +# qemu-nbd --disconnect /dev/nbd0 
 +# exit 
 +</​code>​ 
 + 
 +This is what our VM folder should look like now: 
 + 
 +<​code>​ 
 +ls -al ~/vm 
 +drwx------. 7 e500 e500      4096 24. Dez 10:02 . 
 +drwxr-xr-x. 6 e500 e500      4096 18. Dez 20:31 .. 
 +-rw-r--r--. 1 e500 e500 136839168 24. Dez 10:03 hdd.qcow2 
 +-rw-r--r--. 1 e500 e500   ​4360017 24. Dez 09:46 openwrt-mpc85xx-generic-zImage 
 +</​code>​ 
 + 
 +Now the VM is ready to start. 
 + 
 +<​code>​ 
 +qemu-system-ppc -kernel ~/​vm/​openwrt-mpc85xx-generic-zImage \ 
 +                -nographic -append "​console=ttyS0"​ -m 1024 -M ppce500 \ 
 +                -drive file=~/​vm/​hdd.qcow2,​if=virtio 
 +</​code>​ 
 + 
 + 
 +===== Other Information Resources ===== 
 + 
 +[[https://​forum.openwrt.org/​viewtopic.php?​id=42062&​p=22|OpenWRT Forum Thread "​Developing Support for TPLINK WDR4900"​]] 
 + 
 +[[https://​wikidevi.com/​wiki/​TP-LINK_TL-WDR4900_v1|Hardware Information at wikidevi (v1 International version)]] 
 + 
 +[[https://​wikidevi.com/​wiki/​TP-LINK_TL-WDR4900_v2|Hardware Information at wikidevi (v2 PRC-only version)]]
toh/tp-link/tl-wdr4900.1373474693.txt.bz2 · Last modified: 2013/07/10 18:44 by otitov