OpenWrt Forum Archive

Topic: Add support of VIZIO XWR100 (based on WRT400N)

The content of this topic has been archived between 22 Mar 2018 and 15 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

adm1jtg wrote:

Ok I lied since updating everything on the staus/overview page always just reads collecting data and never displays any information. I have tried re-flashing and powering down and up the router and cant get it to display information on this page.

Not sure what else to try....

Also would you happen to have the
vmlinux-xwr100.uImage mtd2
openwrt-ar71xx-generic-root.squashfs-64k mtd
files that match your original version as the orginal updated that status page properly

I could even sysupdate with a sysupdate version of the original firmeware if you have that available

While the firmware works really well i need the status page to work so I can see things like dhcp leases and wan ip adress and all.

Let me know what you recommend

Did you try to reset to factory default?
As for old firmware, I only keep firmware which I'm currently using

dony71 wrote:
adm1jtg wrote:

Ok I lied since updating everything on the staus/overview page always just reads collecting data and never displays any information. I have tried re-flashing and powering down and up the router and cant get it to display information on this page.

Not sure what else to try....

Also would you happen to have the
vmlinux-xwr100.uImage mtd2
openwrt-ar71xx-generic-root.squashfs-64k mtd
files that match your original version as the orginal updated that status page properly

I could even sysupdate with a sysupdate version of the original firmeware if you have that available

While the firmware works really well i need the status page to work so I can see things like dhcp leases and wan ip adress and all.

Let me know what you recommend

Did you try to reset to factory default?
As for old firmware, I only keep firmware which I'm currently using

I am happy to say its NOT the firmware after all. I re-did all the flashing, factory reset and all that and no change. Still no status updates but the I tried IE browser instead of my default chrome and everything works perfectly. No idea why this is the case but as i said this means it has NOTHING to do with the firmware which makes me very happy.

I will try and figure out what plugin or extension chrome is missing.

Thanks again for all the help the openwrt firmware makes this router so much better.

dony71 wrote:
adm1jtg wrote:

Great. I appreciate it and yes it did seem very stable so your probably right about some other network device being the culprit. Does this latest version by chance have DLNA support off the usb port? as thats really the main feature i missed.

why you need DLNA?
router is for network routing purpose, not for video streaming.
this router has only 32MB RAM and it will be easily exhausted
doing DLNA streaming which might cause instability function of the router.
buy media streaming device like roku if you need DLNA streaming.
for doing router job, openwrt enrich a lot of routing feature
such as QOS priority, extensive firewall like blocking certain
website on certain period of time and/or on certain device, etc
i have include such extensive firewall feature and QOS as well in this firmware image.

I've found DLNA to be a royal pain to be honest.but I don't think devices like the roku are really worth the money to be honest.

dony71 wrote:

i try compiling uboot from vizio GPL but somehow network is not working in uboot

cmtsij,
did you try to compile uboot whether network working?

something wrong with athrs26_phy.c
anybody familiar with this code? cmtsij?

btw, AP94 has several sources and I check u-boot.bin original from package, all of them don't work
even recompile also, network still failure

Vizio GPL
http://store.vizio.com/xwr100-routercodes

WRT400N GPL
http://sourceforge.net/projects/officia … rt400n/v1/

WR703N GPL
https://code.google.com/p/wr703n-uboot- … e/checkout

compile has some warning below
anything could break network function?

In file included from /home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/common.h:102,
                 from bzlib.c:2:
/home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/image.h:129:1: warning: "CONFIG_LZMA" redefined
<command line>:5:1: warning: this is the location of the previous definition
In file included from /home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/common.h:102,
                 from bzlib_decompress.c:2:
/home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/image.h:129:1: warning: "CONFIG_LZMA" redefined
<command line>:5:1: warning: this is the location of the previous definition
In file included from /home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/common.h:102,
                 from crc32.c:12:
/home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/image.h:129:1: warning: "CONFIG_LZMA" redefined
<command line>:5:1: warning: this is the location of the previous definition
In file included from /home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/common.h:102,
                 from display_options.c:24:
/home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/image.h:129:1: warning: "CONFIG_LZMA" redefined
<command line>:5:1: warning: this is the location of the previous definition
In file included from /home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/common.h:102,
                 from vsprintf.c:17:
/home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/image.h:129:1: warning: "CONFIG_LZMA" redefined
<command line>:5:1: warning: this is the location of the previous definition
LzmaDecode.c: In function `LzmaDecodeProperties':
LzmaDecode.c:127: warning: implicit declaration of function `printf'
In file included from /home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/common.h:102,
                 from LzmaWrapper.c:32:
/home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/image.h:129:1: warning: "CONFIG_LZMA" redefined
<command line>:5:1: warning: this is the location of the previous definition
LzmaWrapper.c: In function `lzma_inflate':
LzmaWrapper.c:149: warning: comparison between pointer and integer
LzmaWrapper.c: At top level:
LzmaWrapper.c:46: warning: 'dpos' defined but not used
LzmaTools.c: In function `lzma_inflate':
LzmaTools.c:149: warning: comparison between pointer and integer
LzmaTools.c: At top level:
LzmaTools.c:46: warning: 'dpos' defined but not used
mips-linux-ar: creating lib_lzma.a
cmd_boot.c: In function `do_go':
cmd_boot.c:63: warning: passing arg 1 of pointer to function makes integer from pointer without a cast
cmd_bootm.c:157:1: warning: "CONFIG_LZMA" redefined
In file included from /home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/common.h:102,
                 from cmd_bootm.c:27:
/home/dony71/Project/VIZIO_1.01.02/boot/u-boot-1.1.4/include/image.h:129:1: warning: this is the location of the previous definition
cmd_bootm.c: In function `do_bootm':
cmd_bootm.c:327: warning: implicit declaration of function `mips_cache_flush'
xyzModem.c: In function `zm_flush':
xyzModem.c:266: warning: unused variable `p'
xyzModem.c: In function `xyzModem_stream_open':
xyzModem.c:455: warning: unused variable `console_chan'
ap94.c: In function `ar7100_mem_config':
ap94.c:46: warning: implicit declaration of function `ar7100_ddr_find_size'
../common/ar7100_flash.c:28:1: warning: "display" redefined
In file included from ../common/ar7100_flash.c:21:
../common/ar7100_flash.h:41:1: warning: this is the location of the previous definition
../common/ar7100_flash.c:39: warning: function declaration isn't a prototype
../common/ar7100_flash.c:43: warning: function declaration isn't a prototype
../common/ar7100_flash.c:53: warning: function declaration isn't a prototype
../common/ar7100_flash.c: In function `flash_init':
../common/ar7100_flash.c:86: warning: passing arg 1 of `flash_get_geom' from incompatible pointer type
../common/ar7100_flash.c:70: warning: unused variable `i'
../common/ar7100_flash.c:71: warning: unused variable `rd'
ap94_pci.c: In function `plat_dev_init':
ap94_pci.c:92: warning: implicit declaration of function `ar7100_pci_write_config'
ap94_pci.c: At top level:
ap94_pci.c:310: warning: static declaration of 'ar7100_pci_write_config' follows non-static declaration
ap94_pci.c:92: warning: previous implicit declaration of 'ar7100_pci_write_config' was here
ap94_pci.c: In function `pci_init_board':
ap94_pci.c:429: warning: `return' with a value, in function returning void
ap94_pci.c:362: warning: unused variable `val'
cpu.c: In function `flush_cache':
cpu.c:74: warning: implicit declaration of function `dcache_flush_range'
cpu.c:68: warning: unused variable `i'
ag7100.c:54: warning: return type defaults to `int'
ag7100.c: In function `ag7100_check_link':
ag7100.c:289: warning: unused variable `fdx'
ag7100.c:289: warning: unused variable `i'
ag7100.c: In function `ag7100_mac_addr_loc':
ag7100.c:513: warning: unused variable `flash_info'
ag7100.c: In function `pkt_push':
ag7100.c:60: warning: control reaches end of non-void function
ag7100.c: At top level:
ag7100.c:249: warning: 'is_setup_done' defined but not used
meminit.c: In function `ar7100_ddr_tap_config':
meminit.c:93: warning: initialization makes pointer from integer without a cast
meminit.c:93: warning: initialization makes pointer from integer without a cast
meminit.c:117: warning: passing arg 1 of `flush_cache' makes integer from pointer without a cast
meminit.c:137: warning: passing arg 1 of `flush_cache' makes integer from pointer without a cast
meminit.c:91: warning: unused variable `prev'
meminit.c: In function `ar7100_ddr_get_width':
meminit.c:161: warning: initialization makes pointer from integer without a cast
meminit.c:161: warning: initialization makes pointer from integer without a cast
meminit.c: In function `sanity_mem_check':
meminit.c:197: warning: initialization makes pointer from integer without a cast
meminit.c: In function `ar7100_ddr_find_size':
meminit.c:220: warning: initialization makes pointer from integer without a cast
meminit.c:221: warning: unused variable `incr'
meminit.c: In function `ar7100_ddr_tap_config':
meminit.c:92: warning: 'floor' might be used uninitialized in this function
meminit.c:92: warning: 'ceiling' might be used uninitialized in this function
net.c: In function `NetLoop':
net.c:514: warning: label `skip_netloop' defined but not used
net.c: In function `NetStartAgain':
net.c:643: warning: integer overflow in expression
net.c: In function `PingStart':
net.c:819: warning: integer overflow in expression
eth.c: In function `eth_initialize':
eth.c:235: warning: implicit declaration of function `ag7100_enet_initialize'
nfs.c: In function `NfsHandler':
nfs.c:673: warning: integer overflow in expression
nfs.c: In function `NfsStart':
nfs.c:762: warning: integer overflow in expression
pci_indirect.c: In function `indirect_read_config_byte':
pci_indirect.c:110: warning: implicit declaration of function `out_le32'
pci_indirect.c:110: warning: implicit declaration of function `in_8'
pci_indirect.c: In function `indirect_read_config_word':
pci_indirect.c:111: warning: implicit declaration of function `in_le16'
pci_indirect.c: In function `indirect_read_config_dword':
pci_indirect.c:112: warning: implicit declaration of function `in_le32'
pci_indirect.c: In function `indirect_write_config_byte':
pci_indirect.c:118: warning: implicit declaration of function `out_8'
pci_indirect.c: In function `indirect_write_config_word':
pci_indirect.c:119: warning: implicit declaration of function `out_le16'

(Last edited by dony71 on 12 Apr 2014, 00:12)

I thought I would share this, I made a video documenting all the steps required to get this router into failsafe mode:

http://youtu.be/w5axinUSo6I

Of course this information was taken from the failsafe.generic wiki page, but this video takes the guesswork out of it because it shows exactly what the lights do the exact moment the broadcast packet is sent

today i compile another u-boot with DEBUGOUT enable in athrs26_phy.h
i'm very puzzle because i don't see anything wrong on DEBUGOUT print below,
but ping still shows unsuccessful

=============================================================
U-Boot 1.1.4 (Apr 16 2014 - 16:51:50)
AP94 (ar7100) U-boot 0.0.12
DRAM:  b8050000: 0xc0140180
32 MB
Top of RAM usable for U-Boot at: 82000000
Reserving 224k for U-Boot at: 81fc4000
Reserving 192k for malloc() at: 81f94000
Reserving 44 Bytes for Board Info at: 81f93fd4
Reserving 36 Bytes for Global Data at: 81f93fb0
Reserving 128k for boot params() at: 81f73fb0
Stack Pointer at: 81f73f98
Now running in RAM - U-Boot at: 81fc4000
id read 0x100000ff
flash size 8MB, sector count = 128
Flash:  8 MB
In:    serial
Out:   serial
Err:   serial
Net:   ag7100_enet_initialize...
No valid address in Flash. Using fixed address
start auto negogiation on each phy
PHY Base: 0x0 PHY Addr: 0x0
PHY Base: 0x0 PHY Addr: 0x1
PHY Base: 0x0 PHY Addr: 0x2
PHY Base: 0x0 PHY Addr: 0x3
associated PHY
Port 0, Neg Success
Port 1, Neg Success
Port 2, Neg Success
Port 3, Neg Success
Initialize software status
eth0: Phy Specific Status=0010
eth0: Phy Specific Status=0010
eth0: Phy Specific Status=0010
eth0: Phy Specific Status=0010;
                               eth0: 00:03:7f:09:0b:ad
eth0 up
No valid address in Flash. Using fixed address
start auto negogiation on each phy
PHY Base: 0x0 PHY Addr: 0x4
associated PHY
Port 4, Neg Success
Initialize software status
eth1: Phy Specific Status=0010
eth1: 00:03:7f:09:0b:ad
eth1 up
eth0, eth1
Hit any key to stop autoboot:  0
ar7100> ping 192.168.1.5
enet0 port0 up
Using eth0 device
sending ARP for c0a80105
ARP broadcast 1
ARP broadcast 2
ping failed; host 192.168.1.5 is not alive

dony71 wrote:

you can update firmware via SSH
to do this, you need to download all 3 files for env, uImage and rootfs
upload those 3 files in /tmp via SCP, go to /tmp, then issue command below :
mtd -e mtd1 write env.bin mtd1
mtd -e mtd2 write vmlinux-xwr100.uImage mtd2
mtd -e mtd3 write openwrt-ar71xx-generic-root.squashfs-64k mtd3


http://www.mediafire.com/download/p3pms … fr/env.bin
http://www.mediafire.com/download/zd02d … 100.uImage
http://www.mediafire.com/download/pyibh … uashfs-64k

I flashed this, and now the router won't boot.  The power LED flashes for a couple seconds, then the Ethernet LEDs flash once, and a link is established.  Wireshark detects no packets from it.  I can't get it into failsafe mode.  Is there anything else I can do?

I hooked up to the onboard serial port, but all I'm getting in putty is garbage.  What are the proper settings?

mrhanman wrote:

I hooked up to the onboard serial port, but all I'm getting in putty is garbage.  What are the proper settings?

115200 8n1

I been trying to compile the image for this firmware, I got the first build created, and I wanted to upgrade I been three days searching how to compile but that is way beyond my knowledge, I found the link above to download the latest version already compiled but it trows me to the github and there is no .bin.

Can someone help me please

cmtsij wrote:

I build the image of XWR100 and upgrade the kernel to 3.18.8 with OpenVPN/PPTP/L2TP.
download here: https://github.com/cmtsij/openwrt/relea … NUX_3.18.8
WARNING: Flash at you own risk.

I see that you build the image for a XWR100, can you share it with me? I see your posted the link but I think I still need to compile it, I've been trying to compile it for a few days, I wanted to use the XWR100 as a repeater/extender but I'm starting to give up. I see that openwrt has image for a lot of routers but not for this one.

Thank you.

My email is abescalamis@gmail.com

(Last edited by abescalamis on 12 May 2015, 23:27)

I am currently using cmtsij's 3.18.8 version referenced above (Chaos Calmer r44596) and was previously using the Attitude Adjustment version before that. I am wanting to enable the SQM features but all the current repositories are for a slightly different version of kernel. Wondering if anyone has successfully built for Chaos Calmer 15.05.1 so that the software repositories work?

cmtsij wrote:

[
Also I backup all stock firmware by dump /dev/mtdblockX before working to being OpenWrt.

Any chance anyone still has all the stock firmware available? I mistakenly erased my calibration data during one of my flash attempts.

sharrq27 wrote:

I am currently using cmtsij's 3.18.8 version referenced above (Chaos Calmer r44596) and was previously using the Attitude Adjustment version before that. I am wanting to enable the SQM features but all the current repositories are for a slightly different version of kernel. Wondering if anyone has successfully built for Chaos Calmer 15.05.1 so that the software repositories work?

I still works patches for XWR100.
Please fetch those patches from here:
https://github.com/cmtsij/openwrt/tree/ … 4020160725

Once finish the build:
you can see those files:
## use this firemware from Vizio stock to OpenWrt
bin/ar71xx/openwrt-ar71xx-generic-xwr100-squashfs-factory.bin

## flash in OpenWrt command line or Luci GUI
bin/ar71xx/openwrt-ar71xx-generic-xwr100-squashfs-sysupgrade.bin

## bootloader recovery rootfs.
bin/ar71xx/openwrt-ar71xx-generic-xwr100-tftp-rootfs.squash.bin
# setup a tftp server on you PC with ip 192.168.1.5, and host the renamed file in your tftp server.
# rename it as "rootfs.squash"
# and "run loadFiles" on bootloader

## bootloader recovery kernel.
bin/ar71xx/openwrt-ar71xx-generic-xwr100-tftp-vmlinux.lzma.uImage.bin
# setup a tftp server on you PC with ip 192.168.1.5, and host the renamed file in your tftp server.
# rename it as vmlinux.lzma.uImage
# and "run loadLinux" on bootloader

- OR - you and "run upgrade" to recovery kernel and rootfs.
here is the detail of run commands

loadLinux=tftpboot 0x80010000 vmlinux.lzma.uImage;erase 0xbf040000 +0x160000;cp.b 0x80010000 0xbf040000 0x160000                                                        
loadFiles=tftpboot 0x80010000 rootfs.squash;erase 0xbf1b0000 +0x600000;cp.b 0x80010000 0xbf1b0000 0x600000                                                              
upgrade=run loadLinux;run loadFiles

(Last edited by cmtsij on 12 Aug 2016, 02:58)

sharrq27 wrote:
cmtsij wrote:

[
Also I backup all stock firmware by dump /dev/mtdblockX before working to being OpenWrt.

Any chance anyone still has all the stock firmware available? I mistakenly erased my calibration data during one of my flash attempts.

sharrq27 wrote:
cmtsij wrote:

[
Also I backup all stock firmware by dump /dev/mtdblockX before working to being OpenWrt.

Any chance anyone still has all the stock firmware available? I mistakenly erased my calibration data during one of my flash attempts.

I can't provide my calibration data to you.
But a nice person dumped whole flash content.
http://www.dd-wrt.com/phpBB2/viewtopic. … 859#746859
you can use it to export factory and caldata
Download it and un-rar it.
and run command

dd if=XWR100.bin of=mtdbloack6_factory.bin skip=$((0x007c0000)) bs=1 count=$((0x00010000))
dd if=XWR100.bin of=mtdbloack8_caldata.bin skip=$((0x007f0000)) bs=1 count=$((0x00010000))

write the label mac address to caldata

#!/bin/sh

label_mac=00:11:22:33:44:55
label_mac_plus_one=00:11:22:33:44:56

mac_to_hex()
{
    local mac="${1//:/}"
    for hex in $(echo $mac | grep -o ..); do
        printf \\$(printf '%03o' 0x$hex)
    done
}

mac_to_hex $label_mac      | dd of=mtdbloack8_caldata.bin conv=notrunc seek=$((0x520c)) bs=1 count=6
mac_to_hex $label_mac_plus | dd of=mtdbloack8_caldata.bin conv=notrunc seek=$((0x110c)) bs=1 count=6

(Last edited by cmtsij on 12 Aug 2016, 04:18)

cmtsij wrote:

I still works patches for XWR100.
Please fetch those patches from here:

Once finish the build:
you can see those files:
## use this firemware from Vizio stock to OpenWrt
bin/ar71xx/openwrt-ar71xx-generic-xwr100-squashfs-factory.bin

## flash in OpenWrt command line or Luci GUI
bin/ar71xx/openwrt-ar71xx-generic-xwr100-squashfs-sysupgrade.bin

## bootloader recovery rootfs.
bin/ar71xx/openwrt-ar71xx-generic-xwr100-tftp-rootfs.squash.bin
# setup a tftp server on you PC with ip 192.168.1.5, and host the renamed file in your tftp server.
# rename it as "rootfs.squash"
# and "run loadFiles" on bootloader

## bootloader recovery kernel.
bin/ar71xx/openwrt-ar71xx-generic-xwr100-tftp-vmlinux.lzma.uImage.bin
# setup a tftp server on you PC with ip 192.168.1.5, and host the renamed file in your tftp server.
# rename it as vmlinux.lzma.uImage
# and "run loadLinux" on bootloader

- OR - you and "run upgrade" to recovery kernel and rootfs.
here is the detail of run commands

loadLinux=tftpboot 0x80010000 vmlinux.lzma.uImage;erase 0xbf040000 +0x160000;cp.b 0x80010000 0xbf040000 0x160000                                                        
loadFiles=tftpboot 0x80010000 rootfs.squash;erase 0xbf1b0000 +0x600000;cp.b 0x80010000 0xbf1b0000 0x600000                                                              
upgrade=run loadLinux;run loadFiles

Has anyone compiled the above? if so, can you please share the compiled version.

I am currently using cmtsij's 3.18.8 version, I want to use the above but I'm a NOOB, I'm sure that it has been compiled but wondering why no one shares it, I will try to compile it myself but it looks very hard, I know it will take me weeks if not months, I will start by downloading ubuntu.

(Last edited by abescalamis on 21 Mar 2017, 05:00)

abescalamis wrote:

Has anyone compiled the above? if so, can you please share the compiled version.

I am currently using cmtsij's 3.18.8 version, I want to use the above but I'm a NOOB, I'm sure that it has been compiled but wondering why no one shares it, I will try to compile it myself but it looks very hard, I know it will take me weeks if not months, I will start by downloading ubuntu.

I just finished compiling it.   I downloaded OpenWRT from the github.com/openwrt/openwrt.git, then I went to cmtsij's repository, pulled the three commits he made and ported them over to the newest version of OpenWRT.

I changed a few things.   I made it so that Vizio XWR100 was the default profile.  Then I set it so the Vizio XWR100 profile built with these packages:

kmod-usb-core kmod-usb2 kmod-usb-ohci kmod-user-hid kmod-usb-storage kmod-usb-storage-extras kmod-ledtrig-usbdev

It was setup to build with these packages (the generic profile that was selected):

kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev

Because this router supports a USB port, I was trying to set it up where that USB port could be used as external storage, if someone hooked up a USB hard drive or a USB thumb drive.   I also wanted it so someone could hook a keyboard up to that USB port, if they wanted, and have it recognized and be able to type to the console.

The build was successful.   I made a simple batch script that downloaded the latest version of OpenWRT from github, patched it, update the feeds, install the feeds, etc.   It was supposed to call make menuconfig and then make, but I have a custom trap setup to catch error messages, to display them a bit nicer.   But after the feeds get installed, for whatever reason, the script exits.   I have to manually change into the directory the script creates and then manually run make menuconfig and make.    I think this because the feed script calls exit.   I'll have to look into that and try to come up with a workaround.

I will test the file.   The openwrt-ar71xx-generic-xwr100-squashfs-factory.bin file is 3.3MB.   The Vizio XWR100 has an 8MB flash with 32MB of RAM.   This should be enough.

I want to work on upgrading the Nor flash and the RAM in this router though.   For the RAM, I need to check to see how many address lines there are going to RAM.   I figure 32MB requires 25 address lines, but someone said that this router uses DRAM, which uses a Matrix, so less address lines are required.   If it requires 25 address lines for 32MB, for 64MB of RAM, it'd require 26.   Not sure how to calculate the address lines for DRAM though, which use those Matrixes.   I gotta research that some more.

Anyway.   I'm new to this and had some questions.    Is uboot the stock bootloader that comes with this Vizio?   Does OpenWRT update that bootloader?   The bootloader determines what types of flash are compatible, I believe.   So I wanted to try and custom build uboot, if it didn't support the flash I was going to add (a 128MB (1Gb)) Nor flash (16-SOIC package).

Once I upload the OpenWRT openwrt-ar71xx-generic-xwr100-squashfs-factory.bin firmware I built and verify it doesn't brick the system or anything, I will try to upload it here for you and everyone else.

Also, I don't understand those run commands that cmtsij talks about.   Do I run those on the actual router, once I get OpenWRT installed?   Could someone show me an example of the entire command that I'd run?

I see he mentions tftp.   That'd make me think I have to run it from my Linux box.   But to my knowledge, there isn't any Linux run command.   Unless it's a command for the tftp client.   I don't have a lot of experience with TFTP, although, I have used it (way back when I went to college).   That was with Cisco routers though.   I don't remember much about it.

What are the purposes of the openwrt-ar71xx-generic-xwr100-tftp-rootfs.squash.bin image?   Is there no recovery image when I install the openwrt-ar71xx-generic-xwr100-squashfs-factory.bin firmware?   I see the openwrt-ar71xx-generic-xwr100-squashfs-sysupgrade.bin image is a uboot legacy uImage.   Does that mean once I get OpenWRT on there, by going from stock firmware directly to OpenWRT, using the factory.bin image, if I install that sysupgrade.bin image, it'll update the bootloader?

Thanks!
Thanks!!!!

I compiled the kernel with LuCI.   There's an issue that I don't know how to fix.

When I go to the web interface, I click on System -> Attended Sysupgrade and see the following:

This page contains the following errors:
error on line 319 at column 7: Opening and ending tag mismatch: input line 0 and div
Below is a rendering of the page up to the first error.

This is my first time using OpenWRT, so I don't know how to verify if that System Upgrade works yet from the web interface.   But I can perform one from the SSH prompt.

When I plug a connection in the WAN port, an LED lights up on the front, like it's supposed to.   But when I hit the WPS button, no LEDs light up.   When I insert a USB thumb drive, I don't see any LEDs lighting up on the front.   Not sure if they're supposed to or how to fix that either.

I can't figure out how to upload files here, so I've uploaded them to my server, where they can be downloaded:

But I cannot post links to my site.   Any suggestions?

This is the latest version of OpenWRT, from github.  If you want, I can compile the version provided directly by cmtsij.   Let me know, thanks!

What are the purposes of the openwrt-ar71xx-generic-xwr100-tftp-rootfs.squash.bin image?   Is there no recovery image when I install the openwrt-ar71xx-generic-xwr100-squashfs-factory.bin firmware?   I see the openwrt-ar71xx-generic-xwr100-squashfs-sysupgrade.bin image is a uboot legacy uImage.   Does that mean once I get OpenWRT on there, by going from stock firmware directly to OpenWRT, using the factory.bin image, if I install that sysupgrade.bin image, it'll update the bootloader?

tftp-xxxx.bin for bootloade upgrade
you need to have UART access and reboot device and hold it in bootloader(ctrl+c).
then you can flash these images by bootloader commands:

run loadFiles
run loadLinux

before you "run" bootloader commands:
Please remember to rename files and place these files in your tftp server with IP 192.168.1.5:

lede-ar71xx-generic-xwr100-tftp-rootfs.squash.bin -> rootfs.squash
lede-ar71xx-generic-xwr100-tftp-vmlinux.lzma.uImage.bin -> vmlinux.lzma.uImage

lede-ar71xx-generic-xwr100-squashfs-factory.bin is used for (stock => OpenWrt/Lede)
lede-ar71xx-generic-xwr100-squashfs-sysupgrade.bin is used for (OpenWrt/Lede => OpenWrt/Lede)
If you need to rollback to stock, you need these images from Vizio released.

The discussion might have continued from here.