TP-Link TL-WR841HP v3

The TP-Link TL-WR841HP v3 is a single-band wireless router.

tl-wr941hp-v3

Note: This instructions are for the web UI of stock firmware version 3.16.9. Reset router to factory defaults if anything has been previously configured.

  • Connect PC to LAN port on router
  • Browse to http://192.168.0.1/
  • Log in with username “admin” and password “admin”
  • In “Advanced” tab go to System Tools → Firmware Updates (text may vary do to translations)
  • Rename the downloaded firmware image to “firmware.bin” and upload it
  • Wait for the router to reboot
  • Browse to http://192.168.1.1 if LuCI is installed, or telnet to 192.168.1.1 and set a root password.

Block size: 64KiB

dev: size (bytes) name start end
mtd0: 128KiB “u-boot” 0x000000000000 0x000000020000
mtd1: 8000KiB “firmware” 0x000000020000 0x0000007f0000
mtd2: 2329225B “kernel” 0x000000000000 0x000000238a89
mtd3: 5862772B “rootfs” 0x000000238a8c 0x0000007d0000
mtd4: 2176KiB “rootfs_data” 0x0000005b0000 0x0000007d0000
mtd5: 64KiB “art” 0x0000007f0000 0x000000800000
  • Browse to http://192.168.1.1/cgi-bin/luci/mini/system/upgrade/ LuCI Upgrade URL
  • Upload image file for sysupgrade to LuCI
  • Wait for reboot

If you don't have a GUI (LuCI) available, you can alternatively upgrade via the command line. There are two command line methods for upgrading:

  • sysupgrade
  • mtd

Note: It is important that you put the firmware image into the ramdisk (/tmp) before you start flashing.

Backside Label

[ 0.000000] Linux version 5.15.134 (builder@buildhost) (mips-openwrt-linux-musl-gcc (OpenWrt GCC 12.3.0 r23497-6637af95aa) 12.3.0, GNU ld (GNU Binutils) 2.40.0) #0 Mon Oct 9 21:45:35 2023 [ 0.000000] printk: bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 00019374 (MIPS 24Kc) [ 0.000000] MIPS: machine is TP-Link TL-WR841HP v3 [ 0.000000] SoC: Qualcomm Atheros QCA9533 ver 2 rev 0 [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff] [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16240 [ 0.000000] Kernel command line: console=ttyS0,115200n8 rootfstype=squashfs,jffs2 [ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear) [ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear) [ 0.000000] Writing ErrCtl register=00000000 [ 0.000000] Readback ErrCtl register=00000000 [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 55972K/65536K available (6077K kernel code, 591K rwdata, 780K rodata, 1184K init, 217K bss, 9564K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS: 51 [ 0.000000] CPU clock: 650.000 MHz [ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 5880801374 ns [ 0.000002] sched_clock: 32 bits at 325MHz, resolution 3ns, wraps every 6607641598ns [ 0.008373] Calibrating delay loop... 432.53 BogoMIPS (lpj=2162688) [ 0.074951] pid_max: default: 32768 minimum: 301 [ 0.080918] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.088644] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.105491] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.115967] futex hash table entries: 256 (order: -1, 3072 bytes, linear) [ 0.123461] pinctrl core: initialized pinctrl subsystem [ 0.131379] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.138424] thermal_sys: Registered thermal governor 'step_wise' [ 0.153514] clocksource: Switched to clocksource MIPS [ 0.167059] NET: Registered PF_INET protocol family [ 0.172541] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.181469] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear) [ 0.190435] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.198637] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.206751] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.214226] TCP: Hash tables configured (established 1024 bind 1024) [ 0.221159] UDP hash table entries: 256 (order: 0, 4096 bytes, linear) [ 0.228167] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear) [ 0.236126] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.242162] PCI: CLS 0 bytes, default 32 [ 0.251234] workingset: timestamp_bits=14 max_order=14 bucket_order=0 [ 0.264752] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.270926] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) © 2001-2006 Red Hat, Inc. [ 0.283130] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251) [ 0.296451] pinctrl-single 1804002c.pinmux: 576 pins, size 72 [ 0.304192] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled [ 0.314506] printk: console [ttyS0] disabled [ 0.319122] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 9, base_baud = 1562500) is a 16550A [ 0.328330] printk: console [ttyS0] enabled [ 0.337400] printk: bootconsole [early0] disabled [ 0.373793] spi-nor spi0.0: gd25q64 (8192 Kbytes) [ 0.378770] 3 fixed-partitions partitions found on MTD device spi0.0 [ 0.385439] OF: Bad cell count for /ahb/spi@1f000000/flash@0/partitions [ 0.392317] OF: Bad cell count for /ahb/spi@1f000000/flash@0/partitions [ 0.400050] OF: Bad cell count for /ahb/spi@1f000000/flash@0/partitions [ 0.407023] OF: Bad cell count for /ahb/spi@1f000000/flash@0/partitions [ 0.414158] Creating 3 MTD partitions on “spi0.0”: [ 0.419132] 0x000000000000-0x000000020000 : “u-boot” [ 0.432211] 0x000000020000-0x0000007f0000 : “firmware” [ 0.439590] 2 tplink-fw partitions found on MTD device firmware [ 0.445841] Creating 2 MTD partitions on “firmware”: [ 0.450986] 0x000000000000-0x000000238a89 : “kernel” [ 0.456131] mtd: partition “kernel” doesn't end on an erase/write block -- force read-only [ 0.468501] 0x000000238a8c-0x0000007d0000 : “rootfs” [ 0.473755] mtd: partition “rootfs” doesn't start on an erase/write block boundary -- force read-only [ 0.484770] mtd: setting mtd3 (rootfs) as root device [ 0.491403] 1 squashfs-split partitions found on MTD device rootfs [ 0.497916] 0x0000005b0000-0x0000007d0000 : “rootfs_data” [ 0.505105] 0x0000007f0000-0x000000800000 : “art” [ 0.924617] ag71xx 19000000.eth: Could not connect to PHY device. Deferring probe. [ 1.620415] switch0: Atheros AR8229 rev. 1 switch registered on mdio.0 [ 1.676864] ag71xx 1a000000.eth: connected to PHY at fixed-0:00 [uid=00000000, driver=Generic PHY] [ 1.687049] eth0: Atheros AG71xx at 0xba000000, irq 5, mode: gmii [ 1.694166] i2c_dev: i2c /dev entries driver [ 1.702420] NET: Registered PF_INET6 protocol family [ 1.725744] Segment Routing with IPv6 [ 1.729662] In-situ OAM (IOAM) with IPv6 [ 1.733991] NET: Registered PF_PACKET protocol family [ 1.739333] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this. [ 1.753123] 8021q: 802.1Q VLAN Support v1.8 [ 2.095644] ag71xx 19000000.eth: connected to PHY at mdio.0:1f:04 [uid=004dd042, driver=Generic PHY] [ 2.106351] eth1: Atheros AG71xx at 0xb9000000, irq 4, mode: mii [ 2.125587] VFS: Mounted root (squashfs filesystem) readonly on device 31:3. [ 2.142670] Freeing unused kernel image (initmem) memory: 1184K [ 2.148848] This architecture does not have kernel memory protection. [ 2.155531] Run /sbin/init as init process [ 2.159761] with arguments: [ 2.159766] /sbin/init [ 2.159772] with environment: [ 2.159777] HOME=/ [ 2.159782] TERM=linux [ 2.873301] init: Console is alive [ 2.877785] init: - watchdog - [ 4.034725] kmodloader: loading kernel modules from /etc/modules-boot.d/* [ 4.116303] kmodloader: done loading kernel modules from /etc/modules-boot.d/* [ 4.134680] init: - preinit - [ 5.686915] random: jshn: uninitialized urandom read (4 bytes read) [ 6.112752] random: jshn: uninitialized urandom read (4 bytes read) [ 6.299654] random: jshn: uninitialized urandom read (4 bytes read) [ 6.701918] random: jshn: uninitialized urandom read (4 bytes read) [ 7.179940] eth0: link up (1000Mbps/Full duplex) [ 7.193950] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 7.201076] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.1: link becomes ready [ 7.239867] random: procd: uninitialized urandom read (4 bytes read) [ 9.522548] mount_root: jffs2 not ready yet, using temporary tmpfs overlay [ 9.535511] urandom-seed: Seed file not found (/etc/urandom.seed) [ 9.628774] eth0: link down [ 9.661525] procd: - early - [ 9.665129] procd: - watchdog - [ 10.461493] procd: - watchdog - [ 10.465630] procd: - ubus - [ 10.564358] random: ubusd: uninitialized urandom read (4 bytes read) [ 10.575236] random: ubusd: uninitialized urandom read (4 bytes read) [ 10.589772] random: ubusd: uninitialized urandom read (4 bytes read) [ 10.603115] procd: - init - [ 11.752640] random: jshn: uninitialized urandom read (4 bytes read) [ 11.838953] random: ubusd: uninitialized urandom read (4 bytes read) [ 11.926742] kmodloader: loading kernel modules from /etc/modules.d/* [ 12.583057] Loading modules backported from Linux version v6.1.24-0-g0102425ac76b [ 12.590937] Backport generated by backports.git v5.15.92-1-44-gd6ea70fafd36 [ 13.357409] PPP generic driver version 2.4.2 [ 13.365530] NET: Registered PF_PPPOX protocol family [ 13.493763] ath: EEPROM regdomain: 0x0 [ 13.493804] ath: EEPROM indicates default country code should be used [ 13.493811] ath: doing EEPROM country→regdmn map search [ 13.493833] ath: country maps to regdmn code: 0x3a [ 13.493842] ath: Country alpha2 being used: US [ 13.493850] ath: Regpair used: 0x3a [ 13.508254] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' [ 13.511450] ieee80211 phy0: Atheros AR9531 Rev:2 mem=0xb8100000, irq=12 [ 13.614282] kmodloader: done loading kernel modules from /etc/modules.d/* [ 16.442206] urngd: v1.0.2 started. [ 19.454221] random: crng init done [ 19.457780] random: 31 urandom warning(s) missed due to ratelimiting [ 69.028538] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0 [ 69.053619] jffs2_build_filesystem(): unlocking the mtd device... [ 69.053734] done. [ 69.062116] jffs2_build_filesystem(): erasing all blocks after the end marker... [ 70.982850] eth0: link up (1000Mbps/Full duplex) [ 71.025676] br-lan: port 1(eth0.1) entered blocking state [ 71.031306] br-lan: port 1(eth0.1) entered disabled state [ 71.037406] device eth0.1 entered promiscuous mode [ 71.042378] device eth0 entered promiscuous mode [ 71.057614] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 71.121248] br-lan: port 1(eth0.1) entered blocking state [ 71.126951] br-lan: port 1(eth0.1) entered forwarding state [ 72.023651] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready [ 74.484918] done. [ 74.486976] jffs2: notice: (1970) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found. [ 75.086822] overlayfs: upper fs does not support tmpfile.


This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2024/02/12 11:13
  • by 127.0.0.1