OpenWrt Forum Archive

Topic: Can't get into OnNetworks N150 router

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

I installed the image openwrt-15.05.1-ar71xx-generic-n150r-squashfs-factory.img via the factory firmware upgrade page

after it completed, I am unable to access the web interface or via telnet or SSH.

Anything I can do to get into the router without having to go via serial?

There're only 2 options. serial or network.
if network does not work then only serial is left.
Read wiki and find if your device supports TFTP recovery. Use it to reflash the image.
Ensure image is for your device not another

(Last edited by bolvan on 22 Mar 2016, 10:53)

I'm experiencing the same problem. 

I followed the instructions at https://wiki.openwrt.org/toh/netgear/wnr612v2, which stated

Note: The device is re-branded as the On Networks N150 router, in a different casing.

I downloaded openwrt-15.05.1-ar71xx-generic-n150r-squashfs-factory.img, verified the checksums, and installed it using the web interface.  However, this appears to have bricked the wireless router. 

Even if I connect via a wired Ethernet connection (though one of the LAN ports on the router; the corresponding LED lights up on the router, but nothing else), the router does not respond to DHCP requests.  Manually setting my computer's IP address to 192.168.1.2/24 and trying to connect to the router at 192.168.1.1 fails (ping fails, and the router doesn't respond on any common ports). 

There appears to be clearance sales on this router around now.  I suspect that many others buying this router now are expecting to be able to install OpenWRT on it (due to the bad reviews on the stock firmware).  So I want to leave a warning for others:

WARNING: Installing openwrt-15.05.1-ar71xx-generic-n150r-squashfs-factory.img via the web interface bricks the router.
From my experience and werlej83's report, the On Networks N150R is NOT compatible with OpenWRT.

A serial bootlog could help in resolving this issue.

tmo26 wrote:

A serial bootlog could help in resolving this issue.

I wish I had a 3.3V serial port /adapter I could use to debug this, and I might order one if I need to (but it'll probably cost me more than this router does ($3 USD after rebate)). 

I think I can get the boot loader into a firmware recovery mode (without using the serial port) by holding down the reset button when I power on the router.  So far, I've been able to resend the OpenWRT firmware using tftp, but I haven't been able to get it to boot yet. 

It's late at night here.  I may try different firmware images later (perhaps this weekend).

And a subsequent upgrade from Barrier Breaker (14.07) to Chaos Calmer (15.05.1) using the LuCI interface to flash the openwrt-15.05.1-ar71xx-generic-n150r-squashfs-sysupgrade.bin firmware image was successful. 

My current recommendation to install OpenWRT on the On Networks N150R is to:
1. Install openwrt-ar71xx-generic-n150r-squashfs-factory.img for Barrier Breaker (OpenWRT 14.07).
2. Then use OpenWRT to upgrade to openwrt-15.05.1-ar71xx-generic-n150r-squashfs-sysupgrade.bin.

Feel free to ask if you have trouble with this procedure; I'll try to update the wiki page this weekend. 

Now, to sleep smile

This doesn't really solve the issue with direct flashing of 15.05.1...

Could you let us know how exactly you got the router into recovery mode and what settings on the tftp server. Eg. ethernet over dhcp; or bootp, or manual (what ip address). etc. 
Thanks.

TabsFolders.com wrote:

Could you let us know how exactly you got the router into recovery mode and what settings on the tftp server. Eg. ethernet over dhcp; or bootp, or manual (what ip address). etc. 
Thanks.

I did this using my computer running Gentoo Linux, using tftp-hpa, following the instructions in "Using netkit's tftp" from https://wiki.openwrt.org/doc/howto/gene … p#linuxbsd.  You may need to adjust the tftp command(s) depending on which tftp client you use. 

Preparation:

Download and verify the checksum for openwrt-ar71xx-generic-n150r-squashfs-factory.img (OpenWRT Barrier Breaker 14.07).

Instructions:

1. Connect to a LAN port on the router using the included Ethernet cable.

2. The bootloader's recovery mode seems to have a DHCP server, so you can configure the Ethernet interface to use DHCP as usual. 
Alternatively, if you're not using DHCP, on the connected computer, as root (other commands can be done as a normal user):

ifconfig enp0s12 192.168.1.2/24 up

where enp0s12 is the name of the computer's Ethernet interface. 

3. Start and configure the tftp client (in the directory containing the firmware image):

tftp 192.168.1.1
binary
rexmt 1
timeout 60
trace

4. Continuously ping the router.  This will let you know when the bootloader's firmware recovery mode is ready (and when you can release the reset button on the next step). 

5. With the router off, while steadily holding down (i.e., pressing and holding) the reset button, power on the router.  You can do this either by using the built-in power button or by unplugging and plugging back in the power cable. 

Hold the reset button until you see some reply pings from step 4. 

6. In the tftp client, issue the command:

put openwrt-ar71xx-generic-n150r-squashfs-factory.img

.

7. The router will then install (flash) the firmware image and restart, booting OpenWRT.  Give it a few minutes; when the power light is steady green, you can try connecting to the router and proceed with the "First Login" part of installation. 

I recommend using telnet to connect to the router first, to configure the admin password.  In my experience with this router, if I set the admin password using the LuCI web interface, LuCI would continue to prompt me for a password (and the telnet server that allows the password to be reset will continue running).  I don't know why.

(Last edited by jchau on 27 Apr 2016, 15:52)

tmo26 wrote:

This doesn't really solve the issue with direct flashing of 15.05.1...

I know this isn't ideal: it's more of a workaround than a solution, and the original problem still remains in how the OpenWRT 15.05.1 factory firmware image interacts with the router. Sorry.

jchau wrote:

My current recommendation to install OpenWRT on the On Networks N150R is to:
1. Install openwrt-ar71xx-generic-n150r-squashfs-factory.img for Barrier Breaker (OpenWRT 14.07).
2. Then use OpenWRT to upgrade to openwrt-15.05.1-ar71xx-generic-n150r-squashfs-sysupgrade.bin.

Feel free to ask if you have trouble with this procedure; I'll try to update the wiki page this weekend.

Thanks jchau!

I just received my N150R today (free after rebate) and if I have time soon I'm gonna try and flash it for OpenWRT of some kind.

Just to confirm, for your method I don't require a special cable or anything, right?

(Last edited by yellowsnow4free on 28 Apr 2016, 04:04)

I followed jchau's advice to load 14.07 first (via serial/tftp). I then performed sysupgrade to 15.05.1.

My problem is that the router boots and runs, but it will not keep any of the settings I Save and Apply after a power cycle? Do you know what could be causing this issue?

Thank you @jchau for the amazingly detailed instructions!!!  I have un-bricked the router and working well for now on 14.07.

P.S. as a thank you contact me at kamil.bukala at tabsfolders.com for a free 1 year subscription.

P.P.S. Also as @bengal571 wrote, mine won't store configuration after poweroff.

I decided to risk it and flashed openwrt-ar71xx-generic-n150r-squashfs-factory.img (Barrier Breaker) using the web interface instead of TFTP.  It went fine!  So it appears the TFTP procedure isn't necessary unless you've already bricked it by flashing the latest version.

(Last edited by linuxrocks123 on 30 Apr 2016, 09:14)

I found out the reason for the config not surviving reboots -- the image is too large for the device's flash, so there's no space to save the config left!  Specifically, there's not enough space left for the jffs image -- you can see so from typing dmesg.  This may be the reason for the soft brick when installing 15.05 as well...

(Last edited by linuxrocks123 on 30 Apr 2016, 10:28)

linuxrocks123 wrote:

I found out the reason for the config not surviving reboots -- the image is too large for the device's flash, so there's no space to save the config left!  Specifically, there's not enough space left for the jffs image -- you can see so from typing dmesg.  This may be the reason for the soft brick when installing 15.05 as well...

Good catch, linuxrocks123.

For reference, here's my dmesg after a fresh flash (only config I changed was the root password):

[    0.000000] Linux version 3.18.23 (buildbot@builder1) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47269) ) #1 Sun Jan 31 18:39:35 CET 2016
[    0.000000] MyLoader: sysp=f7e5de55, boardp=be3d3bbf, parts=f7edde55
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[    0.000000] SoC: Atheros AR7240 rev 2
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 02000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000-0x01ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000-0x01ffffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x01ffffff]
[    0.000000] On node 0 totalpages: 8192
[    0.000000] free_area_init_node: node 0, pgdat 803762b0, node_mem_map 81000000
[    0.000000]   Normal zone: 64 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 8192 pages, LIFO batch:0
[    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] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line:  board=WNR612V2 console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,3712k(firmware),64k(art)ro rootfstype=squashfs,jffs2 noinitrd
[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 28324K/32768K available (2586K kernel code, 128K rwdata, 540K rodata, 256K init, 193K bss, 4444K reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:51
[    0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:5.000MHz
[    0.000000] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104)
[    0.080000] pid_max: default: 32768 minimum: 301
[    0.080000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.090000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.100000] NET: Registered protocol family 16
[    0.100000] MIPS: machine is NETGEAR WNR612 V2
[    0.550000] registering PCI controller with io_map_base unset
[    0.560000] PCI host bridge to bus 0000:00
[    0.570000] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff]
[    0.570000] pci_bus 0000:00: root bus resource [io  0x0000]
[    0.580000] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.580000] pci 0000:00:00.0: [168c:002b] type 00 class 0x028000
[    0.580000] pci 0000:00:00.0: fixup device configuration
[    0.590000] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x0000ffff 64bit]
[    0.590000] pci 0000:00:00.0: supports D1
[    0.590000] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    0.590000] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.590000] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x1000ffff 64bit]
[    0.590000] pci 0000:00:00.0: using irq 40 for pin 1
[    0.600000] Switched to clocksource MIPS
[    0.600000] NET: Registered protocol family 2
[    0.610000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.610000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.620000] TCP: Hash tables configured (established 1024 bind 1024)
[    0.630000] TCP: reno registered
[    0.630000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.640000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.640000] NET: Registered protocol family 1
[    0.650000] PCI: CLS 0 bytes, default 32
[    0.650000] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.660000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.670000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.680000] msgmni has been set to 55
[    0.690000] io scheduler noop registered
[    0.690000] io scheduler deadline registered (default)
[    0.690000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.700000] console [ttyS0] disabled
[    0.730000] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 12500000) is a 16550A
[    0.740000] console [ttyS0] enabled
[    0.740000] bootconsole [early0] disabled
[    0.750000] m25p80 spi0.0: found mx25l3205d, expected m25p80
[    0.760000] m25p80 spi0.0: mx25l3205d (4096 Kbytes)
[    0.770000] 4 cmdlinepart partitions found on MTD device spi0.0
[    0.770000] Creating 4 MTD partitions on "spi0.0":
[    0.780000] 0x000000000000-0x000000040000 : "u-boot"
[    0.780000] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.790000] 0x000000050000-0x0000003f0000 : "firmware"
[    0.800000] 2 netgear-fw partitions found on MTD device firmware
[    0.800000] 0x000000050000-0x000000172440 : "kernel"
[    0.810000] 0x000000172440-0x0000003f0000 : "rootfs"
[    0.820000] mtd: device 4 (rootfs) set to be root filesystem
[    0.820000] 1 squashfs-split partitions found on MTD device rootfs
[    0.830000] 0x0000003b0000-0x0000003f0000 : "rootfs_data"
[    0.840000] 0x0000003f0000-0x000000400000 : "art"
[    0.880000] libphy: ag71xx_mdio: probed
[    1.480000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:04 [uid=004dd041, driver=Generic PHY]
[    1.490000] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MII
[    2.080000] ag71xx-mdio.0: Found an AR7240/AR9330 built-in switch
[    2.120000] eth1: Atheros AG71xx at 0xba000000, irq 5, mode:GMII
[    2.130000] TCP: cubic registered
[    2.130000] NET: Registered protocol family 17
[    2.130000] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    2.150000] Bridge firewalling registered
[    2.150000] 8021q: 802.1Q VLAN Support v1.8
[    2.160000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[    2.170000] Freeing unused kernel memory: 256K (80390000 - 803d0000)
[    3.440000] init: Console is alive
[    3.440000] init: - watchdog -
[    4.980000] usbcore: registered new interface driver usbfs
[    4.990000] usbcore: registered new interface driver hub
[    4.990000] usbcore: registered new device driver usb
[    5.000000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.010000] ehci-platform: EHCI generic platform driver
[    5.020000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    5.030000] ohci-platform: OHCI generic platform driver
[    5.520000] init: - preinit -
[    6.270000] random: procd urandom read with 9 bits of entropy available
[    8.330000] eth1: link up (1000Mbps/Full duplex)
[    8.410000] mount_root: jffs2 not ready yet, using temporary tmpfs overlay
[    8.460000] eth1: link down
[    8.480000] procd: - early -
[    8.480000] procd: - watchdog -
[    9.200000] procd: - ubus -
[   10.210000] procd: - init -
[   11.180000] NET: Registered protocol family 10
[   11.190000] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   11.210000] Loading modules backported from Linux version master-2015-03-09-0-g141f155
[   11.220000] Backport generated by backports.git backports-20150129-0-gdd4a670
[   11.230000] ip_tables: (C) 2000-2006 Netfilter Core Team
[   11.250000] nf_conntrack version 0.5.0 (446 buckets, 1784 max)
[   11.300000] xt_time: kernel timezone is -0000
[   11.340000] cfg80211: Calling CRDA to update world regulatory domain
[   11.370000] cfg80211: World regulatory domain updated:
[   11.370000] cfg80211:  DFS Master region: unset
[   11.380000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   11.390000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   11.390000] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[   11.400000] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[   11.410000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[   11.420000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[   11.430000] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[   11.440000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[   11.450000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[   11.530000] PPP generic driver version 2.4.2
[   11.540000] NET: Registered protocol family 24
[   11.600000] PCI: Enabling device 0000:00:00.0 (0000 -> 0002)
[   11.610000] ath: phy0: Enable LNA combining
[   11.610000] ath: phy0: eeprom contains invalid mac address: ff:ff:ff:ff:ff:ff
[   11.620000] ath: phy0: random mac address will be used: c6:ce:f8:00:9a:da
[   11.630000] ath: EEPROM regdomain: 0x0
[   11.630000] ath: EEPROM indicates default country code should be used
[   11.630000] ath: doing EEPROM country->regdmn map search
[   11.630000] ath: country maps to regdmn code: 0x3a
[   11.630000] ath: Country alpha2 being used: US
[   11.630000] ath: Regpair used: 0x3a
[   11.640000] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   11.640000] ieee80211 phy0: Atheros AR9285 Rev:2 mem=0xb0000000, irq=40
[   11.650000] cfg80211: Calling CRDA for country: US
[   11.670000] cfg80211: Regulatory domain changed to country: US
[   11.670000] cfg80211:  DFS Master region: FCC
[   11.680000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   11.690000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)
[   11.700000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A)
[   11.710000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s)
[   11.720000] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s)
[   11.720000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
[   11.730000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
[   22.090000] jffs2: Too few erase blocks (4)
[   24.660000] device eth1 entered promiscuous mode
[   24.690000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   24.720000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   26.820000] eth1: link up (1000Mbps/Full duplex)
[   26.820000] br-lan: port 1(eth1) entered forwarding state
[   26.830000] br-lan: port 1(eth1) entered forwarding state
[   26.850000] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   28.830000] br-lan: port 1(eth1) entered forwarding state
[   76.530000] random: nonblocking pool is initialized

The relevant part seems to be

[    0.750000] m25p80 spi0.0: found mx25l3205d, expected m25p80
[    0.760000] m25p80 spi0.0: mx25l3205d (4096 Kbytes)
[    0.770000] 4 cmdlinepart partitions found on MTD device spi0.0
[    0.770000] Creating 4 MTD partitions on "spi0.0":
[    0.780000] 0x000000000000-0x000000040000 : "u-boot"
[    0.780000] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.790000] 0x000000050000-0x0000003f0000 : "firmware"
[    0.800000] 2 netgear-fw partitions found on MTD device firmware
[    0.800000] 0x000000050000-0x000000172440 : "kernel"
[    0.810000] 0x000000172440-0x0000003f0000 : "rootfs"
[    0.820000] mtd: device 4 (rootfs) set to be root filesystem
[    0.820000] 1 squashfs-split partitions found on MTD device rootfs
[    0.830000] 0x0000003b0000-0x0000003f0000 : "rootfs_data"
[    0.840000] 0x0000003f0000-0x000000400000 : "art"

and

[   22.090000] jffs2: Too few erase blocks (4)

The "rootfs_data" partition is only from 0x3b0000-0x3f0000 (the only space in the 4MB of flash that isn't taken up by something else), which is 262144 bytes long (if I'm interpreting this correctly), so we only have 256kiB of space for the jffs2 partition to store new and changed files. 

Also, df shows:

Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                   14288        68     14220   0% /
/dev/root                 2304      2304         0 100% /rom
tmpfs                    14288       408     13880   3% /tmp
tmpfs                    14288        68     14220   0% /tmp/root
overlayfs:/tmp/root      14288        68     14220   0% /
tmpfs                      512         0       512   0% /dev

Contrast this with my other router (Buffalo WZR-600DHP) running OpenWRT:

Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                   28992       996     27996   3% /
/dev/root                 2304      2304         0 100% /rom
tmpfs                    63100      1220     61880   2% /tmp
/dev/mtdblock8           28992       996     27996   3% /overlay
overlayfs:/overlay       28992       996     27996   3% /
tmpfs                      512         0       512   0% /dev

On the "On Networks N150R", probably because there isn't enough space on the flash for a jffs2 filesystem, a tmpfs filesystem (i.e., a RAM disk) is used instead:

# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root /rom squashfs ro,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,noatime 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,noatime 0 0
tmpfs /tmp tmpfs rw,nosuid,nodev,noatime 0 0
tmpfs /tmp/root tmpfs rw,noatime,mode=755 0 0
overlayfs:/tmp/root / overlay rw,noatime,lowerdir=/,upperdir=/tmp/root/upper,workdir=/tmp/root/work 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,size=512k,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,mode=600 0 0
debugfs /sys/kernel/debug debugfs rw,noatime 0 0

I wonder what the minimum requirements for OpenWRT are nowadays (for Chaos Calmer 15.05.1).  I suppose we can always make a more barebones flash image?  Or perhaps compile OpenWRT to optimize for space?  It's been a few years since I've delved into this stuff.

Related: https://wiki.openwrt.org/doc/techref/flash.layout.

(Last edited by jchau on 30 Apr 2016, 19:41)

jchau wrote:

And a subsequent upgrade from Barrier Breaker (14.07) to Chaos Calmer (15.05.1) using the LuCI interface to flash the openwrt-15.05.1-ar71xx-generic-n150r-squashfs-sysupgrade.bin firmware image was successful. 

My current recommendation to install OpenWRT on the On Networks N150R is to:
1. Install openwrt-ar71xx-generic-n150r-squashfs-factory.img for Barrier Breaker (OpenWRT 14.07).
2. Then use OpenWRT to upgrade to openwrt-15.05.1-ar71xx-generic-n150r-squashfs-sysupgrade.bin.

Feel free to ask if you have trouble with this procedure; I'll try to update the wiki page this weekend. 

Now, to sleep smile

I did one more experiment: I tried flashing openwrt-15.05.1-ar71xx-generic-n150r-squashfs-factory.img using tftp again (after doing steps 1 and 2 above).  And this too, was successful. 

From this, I suspect that OpenWRT 14.07 made some change to the flash that enables OpenWRT 15.05.1 to successfully boot on the On Networks N150R.

Somebody should test installing 15.05 directly through TFTP, with a router running stock firmware. Until then, the 14.07 procedure is only based on conjecture.

The JFSS2 partition not working can be fixed by typing

mtd -r erase rootfs_data

(Last edited by Borromini on 30 Apr 2016, 21:08)

Borromini wrote:

The JFSS2 partition not working can be fixed by typing

mtd -r erase rootfs_data

Thanks for the suggestion.  I tried

mtd -r erase rootfs_data

as you suggested, but this does not fix the problem.  (E.g., after I erased rootfs_data and the router rebooted, I set a new root password; after rebooting one more time, the root password is forgotten. And the overlayfs mounted on / still uses /tmp/root, which is a tmpfs filesystem.)

Although the command would probably fix a corrupted rootfs_data partition (by deleting it and starting over), I don't think that's the problem in this case; rather, the problem is that the rootfs_data partition (currently just 4 blocks) is too small to hold a jffs2 filesystem.

The solution to this problem is probably to try to shrink the squashfs filesystem by a few blocks to free up a few more blocks for the jffs2 filesystem.  (I've been trying to do this with OpenWRT-ImageBuilder this weekend, but I've been getting a Segmentation fault for package_install when I run

make image PROFILE=WNR612V2

that I need to debug, perhaps another weekend.)

I'm thinking that we may be able to free up a few blocks

  • with the "-Os" gcc flag,

  • perhaps removing the ppp packages (for people who don't need PPPoE)

  • and if need be, perhaps remove LuCI, though for my purposes, I prefer having a web UI

I have two of the On Networks N150R Router. The first one I was able to use TFTP and re-flash the firmware to the NetGear WNR612v2 using the image "wnr612v2-V1.0.0.3_1.0.2". The second router is being stubborn. After many attempts, no go on trying to TFTP the NetGear image to the router. I'm using Windows 7 with a ping going in one window and the TFTP command in the second window. I've also tried the tftp2.exe program with no luck. The firmware version in the second router is On Networks v1.0.0.3_1.0.5. Upgrading firmware from the On Network web interface using the image  "wnr612v2-V1.0.0.3_1.0.2" does not work.

Can I upgrade to v14.07 of OpenWRT from the On Networks web interface? By using this image "openwrt-14.07-ar71xx-generic-n150r-squashfs-factory.img".

Then, using OpenWRT's web interface, flash the NetGear image?

I thought I would ask as I'm concerned about bricking the router with not having TFTP working. Does OpenWRT always have TFTP recovery built-in their images? Is it possible On Network could of removed TFTP recovery from their v1.0.0.3_1.0.5 image?

I would like to use the routers as repeaters so I'm trying to keep both of them on the same firmware.

@jchau - Many thanks for the TFTP tutorial. If you can get a fully working OpenWRT image working I would consider using that on both routers.

Please don't respond to this post if all you have to say is "Why would want to use the NetGear firmware?"

Thanks in Advance.

(Last edited by tango on 2 May 2016, 03:50)

tango wrote:

I thought I would ask as I'm concerned about bricking the router with not having TFTP working. Does OpenWRT always have TFTP recovery built-in their images?

@tango, although I haven't personally verified this, https://wiki.openwrt.org/doc/techref/bootloader indicates that "the bootloader is not part of OpenWRT".  It is the bootloader (not OpenWRT) that provides the TFTP firmware recovery mode.  From my understanding, OpenWRT generally avoids altering the bootloader, so unless something goes wrong, flashing OpenWRT should not affect the TFTP firmware recovery mode of the bootloader. 

In your case, this means that flashing OpenWRT should neither fix the bootloader's TFTP firmware recovery mode nor break it (but I can't provide any guarantees right now; it's possible that the OpenWRT firmware image for the N150R has some quirks that I don't know about.). 

tango wrote:

I have two of the On Networks N150R Router. The first one I was able to use TFTP and re-flash the firmware to the NetGear WNR612v2 using the image "wnr612v2-V1.0.0.3_1.0.2". The second router is being stubborn. After many attempts, no go on trying to TFTP the NetGear image to the router. I'm using Windows 7 with a ping going in one window and the TFTP command in the second window. I've also tried the tftp2.exe program with no luck.

Can you elaborate on what you mean by "no luck"?  Does the router respond to pings after you try to put it in the bootloader's firmware recovery mode? 

This is just a guess, so it might not actually be your problem, but since you mention two routers, make sure you disconnect your computer from the first router (and any other network) (only connect to the second router) before you try to use TFTP to flash the second router. 

Also, since you have 2 routers, I'm guessing that you've set them to different IP addresses; note that these settings don't apply to the bootloader (and the bootloader's TFTP server would still be configured to listen at 192.168.1.1 (unless you've made changes to the bootloader, which I wouldn't recommend)).

Another diagnostic: when I have my router in the bootloader's firmware recovery mode, the power light blinks repeatedly.  Check to see if your router does the same?

Good luck!

I only had one router connected at a time and there was no other connections into the router except the ethernet cable from the computer. I set up a static IP of 192.168.1.2. When the router was booted normally, everything was working and the router was responding to pings without error. When in the TFTP recovery mode, I would occasionally get a good reply ping and I would start the  TFTP command, but the transfer would never take place. I never really could tell whether I was in recovery mode or not. I'll take your advice and look for a blinking power light on the router.

UPDATE: Success! Checking for a blinking power light did the trick, didn't have to ping at all. Thanks jchau. Note for future people doing the upgrade, the only two LED's on is a blinking power LED and a solid LAN LED from your wired ethernet connection This means TFTP recovery mode is running.

Notes: After flashing to the NetGear firmware and doing a "restore factory defaults" from the web interface a couple of things changed. 1. Login changed from admin/admin to admin/password and region changed to "Europe" under wireless settings. U.S. users will want to change back to "United States".

(Last edited by tango on 2 May 2016, 08:25)