User Tools

Site Tools


toh:linksys:wrt1900ac

Linksys WRT1900AC

The WRT1900AC is beginning to work well with the CC development release, however it is far from stable. A new wifi driver has come from Marvel that seems to fix a ton of problems. The latest trunk image with a 3.18 kernel shows improvement in network performance. However, many people report problems with the nightly builds, so you should only think about installing OpenWrt if you're prepared to do some troubleshooting.

Read the OpenWrt forum for the latest news:
The firmware for the WRT1900AC is evolving rapidly. There is a good discussion of the current (late April 2015) state of the firmware at: https://forum.openwrt.org/viewtopic.php?pid=274533#p274533

Obtaining Firmware Images

Official OpenWRT support for the WRT1900AC started under Chaos Calmer [CC] which, at the time of writing, is “trunk” so there may be issues here and there. However, OpenWRT has released the first RC: Chaos Calmer 15.05 RC1 on May 22, 2015.

There are several sources for current builds of OpenWRT for the Linksys WRT1900AC. Note that these are from "trunk" and so you may have issues either now or in the future installing additional software packages on the router, since trunk is a moving target.

Note: Some of these builds do not have the LuCI web GUI installed. To install LuCI, ssh/telnet to the router and follow the directions here: http://wiki.OpenWRT.org/doc/howto/luci.essentials

1) As of May 22, 2015 OpenWRT developers have released the first RC of CC. We recommend and encourage the use of this release as we want to converge on a single base for the purpose of bug reporting and general stability improvements until the official release of CC. Download can be found here: https://downloads.openwrt.org/chaos_calmer/15.05-rc1/mvebu/generic/openwrt-15.05-rc1-mvebu-armada-xp-linksys-mamba-squashfs-factory.img

2) Official CC snapshot release from OpenWRT downloads page: https://downloads.openwrt.org/snapshots/trunk/mvebu/generic/openwrt-mvebu-armada-xp-linksys-mamba-squashfs-factory.img This will always have the latest trunk build. Currently based on 3.18 kernel, it is a bare minimum build so you will have to use opkg to add luci and any other extra packages. The state of the buildbot for the current CC release is at: http://buildbot.OpenWRT.org:8010/builders/mvebu

2) Lifehacksback evolving snapshots of trunk (both 3.18 and 4.0 kernel builds) http://tinyurl.com/Lifehacksback-Testing-CC I have taken down my images until the final release of CC is out, I suggest using option #1.

3) Kaloz's evolving snapshots of trunk (includes 4.0 kernel, luci plus other packages) Incorporates latest bug fixes/features. https://downloads.openwrt.org/people/kaloz/

4) You can revert to Linksys's original stock firmware by downloading their latest image from: http://support.linksys.com/en-us/support/routers/WRT1900AC . Choose downloads, hardware version, then click the download link under Firmware.


5) Chadster's McWRT release of the old AA version https://github.com/Chadster766/McWRT This was based on Attitude Adjustment code, which is obsolete, and not supported anymore by its maintainer. Included only for historical interest. Do not use this build - any of the builds above supersede it.

Switch to Port layout

Supported Versions

Version/ Model Launch Date S/N OpenWrt Version Supported Model Specific Notes
v1 "mamba" 2014-03 XXX10XXXXXXXXX Trunk 43773 (as of 2014-12-25) Kernel 3.18 recommended (better SoC support compared to Chaos Calmer's 3.14 kernel)
v2 "cobra" 2015-04 XXX20XXXXXXXXX - v2 requires it's own build. Make sure you are using one labeled "v2"

NOTE: Anything not included in model specific notes, or where a short comment couldn't be included on the notes.

OEM source code available here: http://support.linksys.com/en-us/gplcodecenter?gplsku=#WRT1900AC

WRT1200AC is similar hardware, but also needs a specific build "caiman".

Hardware Highlights

HW Version SoC Ram Flash Network USB Serial JTag eSata
v1 Marvell MV78230 256 MiB 128 MiB 1x2.0 1x3.0 Yes Yes
v2 Marvell Armada 38X(?) 256 MiB(?) 128 MiB(?) 1x2.0 1x3.0 Yes(?) Yes

Bootlog

OEM bootlog

BootROM 1.20 Booting from NAND flash Step 1: First phase of PEX-PIPE Configuration Step 2: Configure the desire PIN_PHY_GEN Step 3 QSGMII enable Step 4: Configure SERDES MUXes Step 5: Activate the RX High Impedance Mode Step 6: [PEX-Only] PEX-Main configuration (X4 or X1) Step 6.2: [PEX-Only] PCI Express Link Capabilities Step 7: [PEX-X4 Only] To create PEX-Link Steps 7,8,9,10 and 11 Steps 12: [PEX-Only] Last phase of PEX-PIPE ConfigurationSteps 13: Wait 15ms before checking resultsSteps 14: [PEX-Only] In order to configureSteps 15: [PEX-On ly] In order to configureSteps 16: [PEX-Only] Training Enablestep 17: max_if= 0x7 step 17: PEX0 pexUnit= 0 ** Link is Gen1, check the EP capability --> 0050 mvPexConfigRead: return addr=0x%x0050 --> 7001 --> 7001 --> A005 --> A005 --> 0010 --> 4C12 Gen2 client! step 17: PEX1 pexUnit= 0 step 17: PEX2 pexUnit= 0 ** Link is Gen1, check the EP capability --> 0040 mvPexConfigRead: return addr=0x%x0040 --> 5001 --> 5001 --> 7005 --> 7005 --> 0010 --> DC12 Gen2 client! step 17: PEX3 pexUnit= 0 PEX3 : Detected No Link. Status Reg(0x0004DA64) = 0x00000001 step 17: PEX4 pexUnit= 1 PEX4 : Detected No Link. Status Reg(0x00081A64) = 0x00000001 step 17: PEX5 pexUnit= 1 PEX5 : Detected No Link. Status Reg(0x00085A64) = 0x00000001 step 17: PEX6 pexUnit= 1 PEX6 : Detected No Link. Status Reg(0x00089A64) = 0x00000001 DDR3 Training Sequence - Ver 4.5.DDR3 Training Sequence - Static MC Init DDR3 Training Sequence - HW Training Procedure DDR3 Training Sequence - Switching XBAR Window to FastPath Window BootROM: Image checksum verification PASSED __ __ _ _ | \/ | __ _ _ ____ _____| | | | |\/| |/ _` | '__\ \ / / _ \ | | | | | | (_| | | \ V / __/ | | |_| |_|\__,_|_| \_/ \___|_|_| _ _ ____ _ | | | | | __ ) ___ ___ | |_ | | | |___| _ \ / _ \ / _ \| __| | |_| |___| |_) | (_) | (_) | |_ \___/ |____/ \___/ \___/ \__| ** LOADER ** U-Boot 2011.12 (Feb 06 2014 - 17:14:13) Marvell version: v2011.12 2013_Q1.2 Boot version:v1.3.25 Board: RD-AXP-GP rev 1.0 SoC: MV78230 B0 running 2 CPUs Custom configuration CPU: Marvell PJ4B (584) v7 (Rev 2) LE CPU 0 CPU @ 1200 [MHz] L2 @ 600 [MHz] TClock @ 250 [MHz] DDR @ 600 [MHz] DDR 32Bit Width, FastPath Memory Access DDR ECC Disabled DRAM: 256 MiB Map: Code: 0x0fea7000:0x0ff5e2d4 BSS: 0x0ffefd80 Stack: 0x0f9a6ef8 Heap: 0x0f9a7000:0x0fea7000 NAND: Spansion 1Gb(ID=F101) 128 MiB MMC: MRVL_MMC: 0 Bad block table found at page 65472, version 0x01 Bad block table found at page 65408, version 0x01 nand_read_bbt: Bad block at 0x000001ca0000 #### auto_recovery #### [u_env] get auto_recovery == yes [u_env] get auto_recovery == yes [u_env] get boot_part == 1 [u_env] get boot_part_ready == 3 auto_recovery enabled:1, boot_part:1, boot_part_ready:3 [boot_count_read] block:0x140000, size:256KB, records:128 [boot_count_read_record] boot_count:2, next_record:42 [boot_count_write] erase:0, auto_recovery->block_offset:0x140000 Updating boot_count ... [boot_count_write] offset:0x155000 , length:2048 done PEX 0.0(0): Root Complex Interface, Detected Link X1, GEN 2.0 PEX 0.1(1): Root Complex Interface, Detected Link X1, GEN 1.1 PEX 0.2(2): Root Complex Interface, Detected Link X1, GEN 2.0 PEX 0.3(3): Detected No Link. PEX 1.0(4): Detected No Link. PEX 1.1(5): Detected No Link. PEX 1.2(6): Detected No Link. boot_end Offset: 0x100000 u_env_off Offset: 0x100000 s_env_off Offset: 0x140000 devinfo Offset: 0x900000 =================== total_badCount: 0 boot_badCount: 0 u_env_badCount: 0 s_env_badCount: 0 buff_badCount: 0 =================== FPU initialized to Run Fast Mode. USB 0: Host Mode USB 1: Host Mode USB 2: Device Mode Modules Detected: mvEthE6171SwitchBasicInit finished Net: mvSysNetaInit enter set port 0 to rgmii enter set port 1 to rgmii enter egiga0 [PRIME], egiga1 modify Phy Status auto_recovery_check changes bootcmd: run nandboot Hit any key to stop autoboot: 0 NAND read: device 0 offset 0xa00000, size 0x400000 4194304 bytes read: OK ## Booting kernel from Legacy Image at 02000000 ... Image Name: Linux-3.2.40 Created: 2014-06-20 21:50:04 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3856032 Bytes = 3.7 MiB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel. Booting Linux on physical CPU 0 Initializing cgroup subsys cpuset Initializing cgroup subsys cpu Linux version 3.2.40 (root@build-vm) (gcc version 4.6.4 20120731 (prerelease) (Linaro GCC branch-4.6.4. Marvell GCC 201301-1645.aee66e26) ) #1 SMP Fri Jun 20 14 :49:46 PDT 2014 CPU: Marvell PJ4Bv7 Processor [562f5842] revision 2 (ARMv7), cr=10c53c7d CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache Machine: Marvell Armada XP GP Board Using UBoot passing parameters structure Reserving training memory: base=0x (null) size=0x2800 Memory policy: ECC disabled, Data cache writealloc SMP: init cpus PERCPU: Embedded 7 pages/cpu @c09c7000 s6944 r8192 d13536 u32768 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024 Kernel command line: console=ttyS0,115200 mtdparts=armada-nand:1024K(uboot)ro,256K(u_env),256K(s_env),1m@9m(devinfo),40m@10m(kernel),37m@13m(rootfs),40m@50m(alt _kernel),37m@53m(alt_rootfs),80m@10m(ubifs),-@90m(syscfg) root=/dev/mtdblock5 ro rootfstype=jffs2 init=/sbin/init PID hash table entries: 1024 (order: 0, 4096 bytes) Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) allocated 1048576 bytes of page_cgroup please try 'cgroup_disable=memory' option if you don't want memory cgroups Memory: 256MB = 256MB total Memory: 250768k/250768k available, 11376k reserved, 0K highmem Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) vmalloc : 0xd0800000 - 0xfa800000 ( 672 MB) lowmem : 0xc0000000 - 0xd0000000 ( 256 MB) pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) modules : 0xbf000000 - 0xbfe00000 ( 14 MB) .text : 0xc0008000 - 0xc06fcf4c (7124 kB) .init : 0xc06fd000 - 0xc0733b20 ( 219 kB) .data : 0xc0734000 - 0xc076fb80 ( 239 kB) .bss : 0xc076fba4 - 0xc07c3f28 ( 337 kB) Hierarchical RCU implementation. RCU debugfs-based tracing is enabled. NR_IRQS:211 Initializing ArmadaXP SOC Timer 0 sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 171798ms Calibrating delay loop... 1191.11 BogoMIPS (lpj=5955584) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 Initializing cgroup subsys debug Initializing cgroup subsys cpuacct Initializing cgroup subsys memory Initializing cgroup subsys devices Initializing cgroup subsys freezer Initializing cgroup subsys blkio CPU: Testing write buffer coherency: ok CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 SMP: prepare CPUs (4 cores) Setting Clocks for secondary CPUs Armada-XP Performance Monitor Unit detected (Marvell ID)!!! hw perfevents: enabled with Armada PJ4 PMU driver, 7 counters available SMP: CPU 0 Waking up CPU 1 CPU1: Booted secondary processor CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 Brought up 2 CPUs SMP: Total of 2 processors activated (2382.23 BogoMIPS). devtmpfs: initialized xor: measuring software checksum speed arm4regs : 1159.600 MB/sec 8regs : 864.800 MB/sec 32regs : 1066.000 MB/sec xor: using function: arm4regs (1159.600 MB/sec) NET: Registered protocol family 16 Aurora: Working in ARMv7 mode L0 cache Enabled Speculative Prefetch Disabled Aurora L2 Cache Enabled Support IO coherency. Marvell Armada-XP RD-AXP-GP rev 1.0 Board - Soc: MV78230 B0 LE Detected Tclk 250000000, SysClk 600000000, FabricClk 600000000, PClk 1200000000 LSP version: linux-3.2.y-2013_Q1.2p2 - WIFI_RD RC registered dev#0 asa ehci_marvell Marvell USB EHCI Host controller #0: cf8b4a00 registered dev#1 asa ehci_marvell Marvell USB EHCI Host controller #1: cf8b4800 registered dev#2 asa mv_udc Marvell USB Gadget controller #2: cf8b4600 bio: create slab at 0 raid6: int32x1 137 MB/s raid6: int32x2 211 MB/s raid6: int32x4 208 MB/s raid6: int32x8 243 MB/s raid6: using algorithm int32x8 (243 MB/s) vgaarb: loaded SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new interface driver ethub usbcore: registered new device driver usb Sangoma WANPIPE Router v1.1 (c) 1995-2000 Sangoma Technologies Inc. Switching to clocksource axp_clocksource NET: Registered protocol family 2 IP route cache hash table entries: 2048 (order: 1, 8192 bytes) TCP established hash table entries: 8192 (order: 4, 65536 bytes) TCP bind hash table entries: 8192 (order: 4, 65536 bytes) TCP: Hash tables configured (established 8192 bind 8192) TCP reno registered UDP hash table entries: 128 (order: 0, 4096 bytes) UDP-Lite hash table entries: 128 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. PCI-E: Cheking physical bus #0 (controller #0): Enabled - Link UP PCI-E: Cheking physical bus #1 (controller #1): Enabled - Link UP PCI-E: Cheking physical bus #2 (controller #2): Enabled - Link UP PCI-E: Cheking physical bus #3 (controller #3): Enabled - No Link PCI-E: Cheking physical bus #4 (controller #4): Enabled - No Link PCI-E: Cheking physical bus #5 (controller #5): Enabled - No Link PCI-E: Cheking physical bus #6 (controller #6): Enabled - No Link PCI: bus0: Fast back to back transfers disabled PCI: bus1: Fast back to back transfers disabled PCI: bus2: Fast back to back transfers disabled pci 0000:02:00.0: BAR 0: assigned [mem 0xf2400000-0xf24fffff 64bit pref] pci 0000:02:00.0: BAR 0: set to [mem 0xf2400000-0xf24fffff 64bit pref] (PCI address [0xf2400000-0xf24fffff]) pci 0000:02:00.0: BAR 2: assigned [mem 0xf2500000-0xf25fffff 64bit pref] pci 0000:02:00.0: BAR 2: set to [mem 0xf2500000-0xf25fffff 64bit pref] (PCI address [0xf2500000-0xf25fffff]) pci 0000:01:00.0: BAR 0: assigned [mem 0xf2200000-0xf22fffff 64bit pref] pci 0000:01:00.0: BAR 0: set to [mem 0xf2200000-0xf22fffff 64bit pref] (PCI address [0xf2200000-0xf22fffff]) pci 0000:01:00.0: BAR 2: assigned [mem 0xf2300000-0xf23fffff 64bit pref] pci 0000:01:00.0: BAR 2: set to [mem 0xf2300000-0xf23fffff 64bit pref] (PCI address [0xf2300000-0xf23fffff]) pci 0000:00:00.0: BAR 0: assigned [mem 0xf2000000-0xf2007fff 64bit] pci 0000:00:00.0: BAR 0: set to [mem 0xf2000000-0xf2007fff 64bit] (PCI address [0xf2000000-0xf2007fff]) cesadev_init(c0704a94) mvCesaInit: channels=2, session=640, queue=64 Armada XP hwmon thermal sensor initialized. ArmadaXP Power Managament Suspend Operations Initialized Initializing Armada-XP CPU power management (WFI) squashfs: version 4.0 (2009/01/31) Phillip Lougher nfs4filelayout_init: NFSv4 File Layout Driver Registering... JFFS2 version 2.2. (NAND) B) 2001-2006 Red Hat, Inc. SGI XFS with security attributes, large block/inode numbers, no debug enabled msgmni has been set to 489 async_tx: api initialized (async) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) Initializing ths8200_init mv_xor_shared mv_xor_shared.0: Marvell shared XOR driver mv_xor_shared mv_xor_shared.1: Marvell shared XOR driver mv_xor mv_xor.0: Marvell XOR: ( xor cpy ) mv_xor mv_xor.1: Marvell XOR: ( xor fill cpy ) mv_xor mv_xor.2: Marvell XOR: ( xor ) mv_xor mv_xor.3: Marvell XOR: ( fill cpy ) HDLC line discipline maxframe=4096 N_HDLC line discipline registered. Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 41) is a 16550A console [ttyS0] enabled loop: module loaded sata_mv sata_mv.0: cannot get clkdev sata_mv sata_mv.0: slots 32 ports 2 scsi0 : sata_mv scsi1 : sata_mv ata1: SATA max UDMA/133 irq 55 ata2: SATA max UDMA/133 irq 55 INFO: Found cfi_flash_0 0 - base 0xf4000000, size 0x2000000, bus 2 INFO: Found spi_flash 0 - base 0xf6000000, size 0x1000000 INFO: flashInfoFill - Found 2 Flash Devices INFO: flash_map_init - detected 2 devices MTD: Initialize the cfi_flash_0 device at address 0xf4000000 INFO: Io remapped successfully - phy addr = 0xf4000000, virt addr = 0xd1000000 INFO: Using cfi_probe to probe cfi_flash_0 at address 0xf4000000, size 0x2000000, width 2m - Not detected - FAILED! MTD: Initialize the spi_flash device at address 0xf6000000 INFO: Io remapped successfully - phy addr = 0xf6000000, virt addr = 0xd4000000 INFO: Using sflash to probe spi_flash at address 0xf6000000, size 0x1000000, width 2mmvSFlashInit ERROR: Unknown SPI flash device! ERROR: sflash_probe - Failed to initialize the SFlash. - Not detected - FAILED! armada-nand armada-nand.0: Initialize HAL based NFC in 8bit mode with DMA Disabled using BCH 4bit ECC NAND Spansion 1Gb(ID=F101) NAND device: Manufacturer ID: 0x01, Chip ID: 0xf1 (AMD NAND 128MiB 3,3V 8-bit) Bad block table found at page 65472, version 0x01 Bad block table found at page 65408, version 0x01 nand_read_bbt: bad block at 0x000001ca0000 10 cmdlinepart partitions found on MTD device armada-nand 10 cmdlinepart partitions found on MTD device armada-nand Creating 10 MTD partitions on "armada-nand": 0x000000000000-0x000000100000 : "uboot" 0x000000100000-0x000000140000 : "u_env" 0x000000140000-0x000000180000 : "s_env" 0x000000900000-0x000000a00000 : "devinfo" 0x000000a00000-0x000003200000 : "kernel" 0x000000d00000-0x000003200000 : "rootfs" 0x000003200000-0x000005a00000 : "alt_kernel" 0x000003500000-0x000005a00000 : "alt_rootfs" 0x000000a00000-0x000005a00000 : "ubifs" 0x000005a00000-0x000008000000 : "syscfg" mv_eth_probe: port_mask=0xf, cpu_mask=0x3 mvPncVirtBase = 0xd0a00000 o 4 Giga ports supported o SKB recycle supported (Enabled) o NETA acceleration mode 3 o PnC supported (Enabled) o RX Queue support: 8 Queues * 128 Descriptors o TX Queue support: 8 Queues * 532 Descriptors o GSO supported o GRO supported o Receive checksum offload supported o Transmit checksum offload supported o Driver ERROR statistics enabled o Loading Switch QuarterDeck driver o Device ID : 0x172 o No. of Ports : 7 o CPU Port : 5 o Loading network interface(s) o Port 0 is connected to Linux netdevice giga p=0: mtu=1500, mac=cf833eec o eth0, ifindex = 2, GbE port = 0 o Port 1 is connected to Linux netdevice giga p=1: mtu=1500, mac=cf833eec o eth1, ifindex = 3, GbE port = 1 o Warning: GbE port 2 is powered off tun: Universal TUN/TAP device driver, 1.6 tun: (C) 1999-2004 Max Krasnyansky e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI e100: Copyright(c) 1999-2006 Intel Corporation e1000e: Intel(R) PRO/1000 Network Driver - 1.5.1-k e1000e: Copyright(c) 1999 - 2011 Intel Corporation. sky2: driver version 1.30 PPP generic driver version 2.4.2 PPP BSD Compression module registered PPP Deflate Compression module registered NET: Registered protocol family 24 PPTP driver version 0.8.5 ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci_marvell ehci_marvell.0: Marvell Orion EHCI ehci_marvell ehci_marvell.0: new USB bus registered, assigned bus number 1 ata1: SATA link down (SStatus 0 SControl F300) ehci_marvell ehci_marvell.0: irq 45, io base 0xfbc50100 ehci_marvell ehci_marvell.0: USB 2.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected ehci_marvell ehci_marvell.1: Marvell Orion EHCI ehci_marvell ehci_marvell.1: new USB bus registered, assigned bus number 2 ehci_marvell ehci_marvell.1: irq 46, io base 0xfbc51100 ehci_marvell ehci_marvell.1: USB 2.0 started, EHCI 1.00 hub 2-0:1.0: USB hub found hub 2-0:1.0: 1 port detected PCI: enabling device 0000:00:00.0 (0140 -> 0142) etxhci_hcd_130530 0000:00:00.0: Etron xHCI Host Controller etxhci_hcd_130530 0000:00:00.0: new USB bus registered, assigned bus number 3 etxhci_hcd_130530 0000:00:00.0: irq 58, io mem 0xf2000000 ethub 3-0:1.0: USB hub found ethub 3-0:1.0: 2 ports detected etxhci_hcd_130530 0000:00:00.0: Etron xHCI Host Controller etxhci_hcd_130530 0000:00:00.0: new USB bus registered, assigned bus number 4 ethub 4-0:1.0: USB hub found ethub 4-0:1.0: 2 ports detected mousedev: PS/2 mouse device common for all mice ata2: SATA link down (SStatus 0 SControl F300) rtc-mv rtc-mv: internal RTC not ticking i2c /dev entries driver md: linear personality registered for level -1 md: raid0 personality registered for level 0 md: raid1 personality registered for level 1 md: raid10 personality registered for level 10 md: raid6 personality registered for level 6 md: raid5 personality registered for level 5 md: raid4 personality registered for level 4 cpuidle: using governor ladder cpuidle: using governor menu mmc0: mvsdio driver initialized, lacking card detect (fall back to polling) oprofile: using arm/mrvl_pj4b u32 classifier Netfilter messages via NETLINK v0.30. nf_conntrack version 0.5.0 (3918 buckets, 15672 max) ctnetlink v0.93: registering with nfnetlink. nf_conntrack_rtsp v0.6.21 loading GRE over IPv4 demultiplexor driver GRE over IPv4 tunneling driver nf_nat_rtsp v0.6.21 loading ip_tables: (C) 2000-2006 Netfilter Core Team arp_tables: (C) 2002 David S. Miller TCP cubic registered NET: Registered protocol family 10 ip6_tables: (C) 2000-2006 Netfilter Core Team IPv6 over IPv4 tunneling driver NET: Registered protocol family 17 Bridge firewalling registered Ebtables v2.0 registered L2TP core driver, V2.0 PPPoL2TP kernel driver, V2.0 8021q: 802.1Q VLAN Support v1.8 Registering the dns_resolver key type VFP support v0.3: implementor 56 architecture 2 part 20 variant 9 rev 6 drivers/rtc/hctosys.c: unable to open rtc device (rtc0) md: Waiting for all devices to be available before autodetect md: If you don't use raid, use raid=noautodetect md: Autodetecting RAID arrays. md: Scanned 0 and added 0 devices. md: autorun ... md: ... autorun DONE. jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000000: 0x43e4 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000004: 0x6723 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000008: 0xe316 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000000c: 0x0c38 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000010: 0xf54b instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000014: 0x79d2 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000018: 0x9261 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000001c: 0xd368 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000020: 0x1879 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000024: 0xcacb instead Further such events for this erase block will not be printed Old JFFS2 bitmask found at 0x000052bc You cannot use older JFFS2 filesystems with newer kernels jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020000: 0x9780 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020004: 0x9cba instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020008: 0xba9f instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0002000c: 0x1856 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020010: 0x4657 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020014: 0x9ea2 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020018: 0xf1fa instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0002001c: 0x0856 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020020: 0xf16e instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020024: 0xf34d instead Further such events for this erase block will not be printed jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040000: 0x7bc9 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040004: 0x2b77 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040008: 0x0a1d instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0004000c: 0x3013 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040010: 0x62ae instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040014: 0x789b instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040018: 0x46c8 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0004001c: 0xd4fa instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040020: 0xe3f5 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040024: 0xb870 instead Further such events for this erase block will not be printed jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00060000: 0xd224 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00060004: 0xff7c instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00060008: 0xe6b4 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0006000c: 0x1c3e instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00060010: 0x87c9 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00060014: 0xff53 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00060018: 0x1f3f instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0006001c: 0xbbbb instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00060020: 0x9fc7 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00060024: 0xf28f instead Further such events for this erase block will not be printed jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00080000: 0x5721 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00080004: 0xbfd6 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00080008: 0x3d7e instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0008000c: 0xfbaa instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00080010: 0xcf91 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00080014: 0xbbe0 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00080018: 0xceeb instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0008001c: 0x75cb instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00080020: 0xbfd7 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00080024: 0xa7e8 instead Further such events for this erase block will not be printed jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a0000: 0x9ba6 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a0004: 0x42aa instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a0008: 0x599a instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a000c: 0x1038 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a0010: 0xff8f instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a0014: 0x2cd4 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a0018: 0xa950 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a001c: 0xfc7f instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a0020: 0x6665 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x000a0024: 0xbf48 instead Further such events for this erase block will not be printed jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01600000: 0x4c2e instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01600004: 0x534b instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01600008: 0x302e instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0160000c: 0x3030 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01600010: 0x5741 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01600014: 0x3931 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01600018: 0x4341 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0160001c: 0x2020 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01600020: 0x3246 instead jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x01600024: 0x3435 instead Further such events for this erase block will not be printed VFS: Mounted root (jffs2 filesystem) readonly on device 31:5. devtmpfs: mounted Freeing init memory: 216K ********************************************************************************* _ _ __ _ __ _____ __ __ _____ | | | || \ | | / // ____]\ \ / // ____]TM | | | || \ | | / /| (___ \ V /| (____ | | | || |\ \| |\ \ \____ \ \ / \____ \ | |_____ | || | \ | \ \ ____) | | | ____) | |_______||_||_| \__| \_\[____ / |_| [_____/ (c) 2013 Belkin International, Inc. and/or its affiliates. All rights reserved. Booting blk-mamba (firmware version 1.1.8.161917) ********************************************************************************* [utopia][init] System Initialization [utopia][init] Creating /proc [utopia][init] Creating /sys [utopia][init] Creating /dev [utopia][init] Creating /tmp [utopia][init] Allocating 50M for /tmp [utopia][init] Prepairing /dev/pts [utopia][init] Setting /tmp and /var permissions [utopia][init] Starting udev.. bdutil board utility kernel module, version 1.4 bdutil board utility kernel module boardId (9) bdutil board utility gpio kernel module, version 1.3 bdutil board utility buttons kernel module, version 1.4 bdutil board utility LEDs kernel module, version 2.5 mod_bdutil (leds): i2c-dev (0) LEDs driver initialized Attempting mount of ubifs syscfg partition UBI device number 0, total 296 LEBs (37584896 bytes, 35.8 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB) [utopia][init] Using persistent syscfg data from /var/config/syscfg [utopia][init] Starting system logging [utopia][init] Starting sysevent subsystem net.netfilter.nf_conntrack_acct = 1 watchdog running [utopia][init] Setting any unset system values to default [utopia][init] no persistence config file (/var/config/pstcfg) found mac_setup.sh, setting up MAC addresses for all interfaces based on 94:10:3E:9F:CE:4B Updating NTP Servers if necessary checking for interactive script start up... 0x9000000 0x1000000 0xa000000 0x1000000 0xb000000 0x1000000 0xc000000 0x1000000 0xd000000 0x1000000 0xe000000 0x1000000 0xf000000 0x1000000 0x10000000 0x1000000 0x11000000 0x1000000 0x12000000 0x1000000 0x13000000 0x1000000 0x14000000 0x1000000 0x15000000 0x1000000 0x16000000 0x1000000 0x17000000 0x1000000 Updating BootCount Page[43]:15800 ... Done [utopia][init] Starting bdutil daemon BDUTIL daemon mode attempting to sync sysinfo.cgi auth credentials cpu temp monitor created Thu Oct 11 06:00:00 UTC 2012 wdev0 no private ioctls. wdev1 no private ioctls. 0x21010000 0x1000000 0x3c010000 0x1000000 wdev0ap0 no private ioctls. wdev0ap1 no private ioctls. wdev0ap2 no private ioctls. wdev0ap3 no private ioctls. wdev1ap0 no private ioctls. wdev1ap1 no private ioctls. wdev1ap2 no private ioctls. 0x3d010000 0x1000000 wifi, sysevent received: lan-started (Wed Oct 10 23:00:03 PDT 2012) wifi, service_start() Lighttpd Model Base: WRT1900AC Generating Rainier lighttpd config Build temporary www configuration directory: TSLIIHauhEfGE reset LAN ethernet port Failed to modify password entry for user guest Registering Service myrouter._http._tcp.local port 80 [utopia] Not setting ppp_clamp_mtu Got a reply for myrouter._http._tcp.local.: Name now registered and active wifi, wifi_physical_start(wdev0) [utopia] Not setting ppp_clamp_mtu on dslite protocol wifi_physical, iwconfig wdev0 commit Restarting nfqrecv service... wifi, wifi_virtual_start(wdev0) wifi, wifi_user_start(wdev0) wifi, primary AP: wdev0ap0 is up wifi, wifi_guest_start(wdev0) wifi, guest wdev0ap1 is disabled, do not start wifi guest wifi, wifi_physical_start(wdev1) wifi_physical, iwconfig wdev1 commit wifi, wifi_virtual_start(wdev1) wifi, wifi_user_start(wdev1) wifi, primary AP: wdev1ap0 is up wifi, wifi_guest_start(wdev1) wifi, guest wdev1ap1 is disabled, do not start wifi guest wifi, start_hostapd() Configuration file: /tmp/hostapd-wdev0ap0.conf Using interface wdev0ap0 with hwaddr 94:10:3e:9f:ce:4c and ssid 'Linksys01799' Configuration file: /tmp/hostapd-wdev1ap0.conf Using interface wdev1ap0 with hwaddr 94:10:3e:9f:ce:4d and ssid 'Linksys01799_5GHz' Failed to modify password entry for user guest Failed to modify password entry for user guest Starting smbd ...

How to flash the firmware to device?

To update any of the above firmware builds you log into your wrt1900ac router by opening a web browser and typing:

http://192.168.1.1

on the right-hand side you need to enter the password (default is admin)

NOTE: you should always update firmware using a wired (ethernet) connection to your router, NOT over WiFi.

You may want to save your old Linksys settings if you've changed any of them. You CAN'T import them into OpenWRT, but you will be able to restore them if you need to go back to Linksys's firmware. To backup the Linksys settings, click "troubleshooting" on the left and then click the "diagnostics" tab. Under "router configuration" look to the right for "restore configuration" and click "backup."

To put OpenWRT on, click "connectivity" on the left then look on the right for manual update firmware.

Click Choose File and find the .img file you saved from the links above of any of the three builds.

Watch the progress meter then wait a couple of minutes.

You may need to refresh the network connection of your computer. This will depend on your operating system, but worse case just reboot the computer. Some ISPs's ASDL/cable modems won't let you back onto the Internet until you turn off the modem, turn off the router, turn the modem back on, then turn the router back on again.

If the firmware you chose has LUCI installed, you should be able to go to http://192.168.1.1 and see the new OpenWRT firmware on the router. Change the login password (none set initially); this is the ADMIN password for the router, NOT your WiFi password to connect devices.

If the firmware does not have LUCI installed, you will need to telnet into your device first using 192.168.1.1 and set and admin password this way. After a password has been set, you can then use an SSH client to securely log into the router.

You'll then need to go in and set up what you want to. I think you might need to turn on and set ESSIDs and passwords for the two (WiFi) radios (one 2.4GHz, the other the 5GHz radio) in all of the firmwares. WPA2 might be the only encryption/cipher option that will work.

Revert to Linksys Stock Firmware

Flashing back to Linksys ("stock") firmware requires these steps.

  1. Download the latest Linksys image using the instructions in the Obtaining Firmware Images section above.
  2. Log into to OpenWRT at http://192.168.1.1 (enter the ADMIN password you set when you first logged in to OpenWRT)
  3. Find System menu → backup / flash firmware.
  4. Choose the Linksys (stock) .img file you saved above from Linksys's site.

You might want to first save your OpenWRT configuration for future flashing; choose Generate archive. But note, if you're jumping between big releases of OpenWRT, it's best NOT to restore settings but instead set them up by hand again from scratch.

When updating between OpenWRT builds/releases it's always recommended to flash back to stock (Linksys) FIRST, then reflash again from stock to the new/different OpenWRT build. This is a precaution that could help you out if there are any problems in the flashing process.

Image formats

When flashing from Linksys firmware always use the "factory" image. Preserving settings should not affect OpenWrt at all in either of these cases because OpenWrt does not use the "syscfg" partition for its settings the way Linksys does.

When flashing from OpenWrt, use the "sysupgrade" image. Although the factory image will work, the sysupgrade image has the fringe benefit of preserving the UBI container between flashes, which provides some wear-leveling.

In case something goes wrong with your firmware flash

This is contributed from forum user edgeman

I've found a way to manually switch the wrt1900ac from a trashed flash, to the secondary flash… It's done as follows:

Reset the router by holding the reset button in until the PWR light starts to flash {mine takes about 15 sec's} Once the power light stops flashing, you can power off the router with the power switch.

Turn the power back on and the PWR light will light. As soon as any other light turns on, power off the router with the power switch.

Turn the power back on and the PWR light will light. As soon as any other light turns on, power off the router with the power switch. Turn the power back on and the PWR light will light. As soon as any other light turns on, power off the router with the power switch.

Turn the power back on and the PWR light will light. This time just let the router power all the way up. It should now be on the alternate firmware.

Yes, you will power off three times. Hope this works for you-all…

~Tim~

Flashing Firmware using a USB to TTL Cable

Requirements:

A working "USB to TTL" connection to the WRT1900AC (see picture below for connectivity)

A working serial interface like Putty or Tera Term (set speed to 115200 baud)

A TFTP Server running on a client workstation connected to the WRT1900AC LAN port

The TFTP Server client workstation Local Area Connection configured with IP Address 192.168.1.2

The firmware to load is in the TFTP Server ready for download.

Instructions: Startup:

Boot WRT1900AC At the 3 second interrupt boot delay press space bar or any key U-Boot Commands:

setenv firmware_name firmware_image_name.img (the EXACT name of the firmware file name)

setenv ipaddr 192.168.1.1

setenv netmask 255.255.255.0

setenv serverip 192.168.1.2

run flash_pri_image

Optional:

If you want be 100% sure you are running a firmware image. Then you can flash the firmware to both the primary and secondary image locations by substituting "run flash_pri_image" with "run update_both_images".

Mac Video Tutorial

http://youtu.be/hcmtxdHkB4Y - made by lifehacksback

Windows Video Tutorial

Coming Soon - made by lifehacksback

Linux Video Tutorial

Coming Soon - made by lifehacksback

Serial Port

The Serial Port is labeled J1 on the board.

Pin 1 Pin 2 Pin 3 Pin 4 Pin 5 Pin 6
GND RX ? TX ? +3.3
Serial Header w/attached JST PH6 cable Typical JST PH6 cable

The header is a JST PH 6 pin connector, which uses a 2.0mm pitch, this means the more common 2.54mm pitch connectors will not fit properly. This includes the female connectors on popular USB-TTL adapters. However, removing the plastic casing from 2.54mm female connectors allows for a stable-enough connection in a pinch.

The correct JST PH 6 connector w/cable can be purchased online, eBay listings are common.

Arduino

You can use a USB-TTL converter (see below). You can also use an Arduino.

wrt1900acVCC 3,3VTXRXGND
Arduino3.3 PIN0 (RX)PIN1 (TX)GND

Arduino Arduino picture

MAX232 RS-232 Module

The MAX3232 RS-232 Line Driver chip can be purchased as a breakout board from a number of sources, an example of this is shown below. This chip will convert the TTL level RS-232 signals to the standard 12v voltage used by most RS-232 interfaces.

MAX3232 Board Underside of MAX3232

Boards will differ on exact connections, just be sure you connect the TTL side to the WRT1900AC, and the RS-232 side to your external connector.

Philmore 504K Finished Connection

One example of a simple connection is the use of a 3.5mm stereo headphone jack, like the Philmore 504K, shown here, already wired to the output of the MAX3232 board. Avoid using any 3.5mm jack smaller than this type, as there will not be sufficient threads for the nut that holds the jack to the casing.

A number of companies sell pre-made cables with a 3.5mm plug to a DB9 Female connector, commonly DB9 Pin 2 (Rx) will be the tip of the 3.5mm jack, and DB9 Pin 3 (Tx) will be the ring on the 3.5mm jack, and DB9 Pin 5 (Gnd) will be the Ground connector on the 3.5mm.

Inside the upper black housing, next to the antenna connector on the right side (front the front) of the unit, there is space for the 3.5mm socket. On the inside of this housting, there are several ridges top to bottom, using a diagonal cutter you can easily trim one of these off to make space for this connector. A 1/4" hole in the housing will let this mount easily.

For final assembly, be sure to insulate your connections on the 3.5mm jack and the MAX3232 board. Some clear heat-shrink tubing around the MAX3232 board would be ideal for this.

Older news

The following information has been superceded by current builds, and is included only for historical interest. WRT1900AC was announced on 6th of January 2014 as a router developed to be used with OpenWrt. Despite Linksys' announcement of working with OpenWrt community, no patches and no info were shared for the next several months. You can read the Official statement re: OpenWrt support for Linksys WRT1900AC at https://forum.openwrt.org/viewtopic.php?pid=230686 * On the 3rd of April 2014 Belkin posted link to ftp server containing patches adding WRT1900AC support. They couldn't be applied because of being incorrectly posted, not signed off and adding binary wireless driver ap8x.ko. * 5 days later a patchset in the form of single e-mail was posted to the openwrt-devel. It was malformed and not signed off, so still couldn't be applied. Release of wireless driver has been postponed. * Linksys started shipping on 10th or April * Wireless driver was announced to stay closed source on 30th of July. It'll likely consist of pre-built closed source part (so called "library") and probably some open source file calling kernel APIs. * Oddly, the wireless driver source was later distributed as part of the GPL release of the stock Linksys firmware. This driver requires significant refactoring before it can be included in OpenWRT.

At this point it is not possible to compile a fully working (including WiFi) customized OpenWrt build for WRT1900AC.

On Christmas Eve 2014, Marvell released an updated driver for the 88W8864 WiFi chip as found in the WRT1900AC to the openwrt developers mailing list https://lists.openwrt.org/pipermail/openwrt-devel/2014-December/030229.html At this time it is now possible to compile an image off trunk with this new driver. A prebuilt image can be found here: https://downloads.openwrt.org/snapshots/trunk/mvebu/

Tags

For some Help with the Tags, please have a look here: tags

toh/linksys/wrt1900ac.txt · Last modified: 2015/05/27 21:51 by lifehacksback