OpenWrt Forum Archive

Topic: Gainstrong Minibox V1.0: looking for testers for 15.05+ build

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

The source code for the Minibox V1.0 is available online (but only for 14.07 Barrier Breaker). I have adapted the code for 15.05 and trunk and built images, but since I have no such hardware myself I cannot test it. So I'm looking for people who can confirm it works, so I can post my patch to the mailing list for inclusion in future OpenWrt releases.

WARNING: Things might break, make sure you know how to load a working image through e.g. TFTP.

I reworked the patch and built new images (15.05+, September 18th). My final patch has now been confirmed working so I have removed the other patches (thanks unknownbrother).

Also thanks to shining_wind for testing the older versions, of course smile.

Downloads:

Each build comes with checksums.

Patches: against 15.05 and against trunk.

Edit: the final patch (v5.3) has been confirmed to produce usable images. They have been sent to the mailing list for inclusion in trunk (patch for 15.05 has been sent upstream as well).

Thank you!

(Last edited by Borromini on 19 Sep 2015, 02:00)

I can test this, do I need to flash the factory image first? Factory images are usually used when the firmware image needs to be signed for the router to accept it, but Minibox is already Openwrt-based.

Thanks. You can indeed use the sysupgrade image if you're already on OpenWrt (but it's not recommended to keep settings between releases, so you'd need to back those up). If you could wait a few days to test though, I have posted my patch to the mailing list and once that's sorted out, I will post here again, I will rebuild the images then as well.

Could you tell me how the onboard LED behaves with stock firmware, btw? Gainstrong inverted the LED function in their code, and it's a setting for all ar71xx devices, so...

(Last edited by Borromini on 11 Aug 2015, 23:06)

Looks like the onboard LED is on on power up, then blinks during kernel boot, then solid on again.
Hope this helps!

Yes it does, thank you. I have adapted the patch and built a new image based on today's 15.05 checkout.

Could you test and report (and see if the LED does anything different with this build)?

Thanks smile

Borromini wrote:

The source code for the Minibox V1.0 is available online (but only for 14.07 Barrier Breaker). I have adapted the code for 15.05 and trunk and built images, but since I have no such hardware myself I cannot test it. So I'm looking for people who can confirm it works, so I can post my patch to the mailing list for inclusion in future OpenWrt releases.

Downloads:

Md5sums and sha256sums.

The patches themselves can be grabbed here.

Thank you!

I am new to all this so am gonna be asking a n00b question -- if we have a supported SoC e.g. the AR9331 then if we want to add our device, what are the things we need to patch or take care of. I see your patches but is there a high level logic which is valid for all new devices.

I am planning to create my own board with the Ar9331 and want to know what to watch out for.

Ok, I downloaded the sysupgrade image from https://volatilesystems.org/dl/openwrt/ … pgrade.bin and flashed it to the Minibox. The box came back up and I was able to connect to wifi.

Led was on on startup, flashing during boot, then off.

Kernel log after upgrade:

[    0.000000] Linux version 3.18.19 (stijn@okeanos) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r46062) ) #2 Wed Aug 12 21:12:15 CEST 2015
[    0.000000] MyLoader: sysp=e81d693c, boardp=ea21fa08, parts=bc8f2c07
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[    0.000000] SoC: Atheros AR9330 rev 1
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 04000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000-0x03ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000-0x03ffffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x03ffffff]
[    0.000000] On node 0 totalpages: 16384
[    0.000000] free_area_init_node: node 0, pgdat 8032a0f0, node_mem_map 81000000
[    0.000000]   Normal zone: 128 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16384 pages, LIFO batch:3
[    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: 16256
[    0.000000] Kernel command line:  board=MINIBOX-V1  console=ttyATH0,115200 rootfstype=squashfs,jffs2 noinitrd
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 61136K/65536K available (2370K kernel code, 128K rwdata, 448K rodata, 244K init, 188K bss, 4400K 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:25.000MHz
[    0.000000] Calibrating delay loop... 
[    0.080000] 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 MiniBox V1.0
[    0.590000] Switched to clocksource MIPS
[    0.590000] NET: Registered protocol family 2
[    0.600000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.600000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.600000] TCP: Hash tables configured (established 1024 bind 1024)
[    0.610000] TCP: reno registered
[    0.610000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.620000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.630000] NET: Registered protocol family 1
[    0.630000] PCI: CLS 0 bytes, default 32
[    0.630000] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.660000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.660000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.670000] msgmni has been set to 119
[    0.680000] io scheduler noop registered
[    0.680000] io scheduler deadline registered (default)
[    0.680000] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[    0.690000] ar933x-uart: ttyATH0 at MMIO 0x18020000 (irq = 11, base_baud = 1562500) is a AR933X UART
[    0.700000] console [ttyATH0] enabled
[    0.710000] bootconsole [early0] disabled
[    0.720000] m25p80 spi0.0: found w25q128, expected m25p80
[    0.720000] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.730000] 5 tp-link partitions found on MTD device spi0.0
[    0.730000] Creating 5 MTD partitions on "spi0.0":
[    0.740000] 0x000000000000-0x000000020000 : "u-boot"
[    0.740000] 0x000000020000-0x0000001273d4 : "kernel"
[    0.750000] 0x0000001273d4-0x000000ff0000 : "rootfs"
[    0.750000] mtd: device 2 (rootfs) set to be root filesystem
[    0.760000] 1 squashfs-split partitions found on MTD device rootfs
[    0.770000] 0x000000570000-0x000000ff0000 : "rootfs_data"
[    0.770000] 0x000000ff0000-0x000001000000 : "art"
[    0.780000] 0x000000020000-0x000000ff0000 : "firmware"
[    0.800000] libphy: ag71xx_mdio: probed
[    1.390000] ag71xx-mdio.1: Found an AR7240/AR9330 built-in switch
[    1.420000] eth0: Atheros AG71xx at 0xba000000, irq 5, mode:GMII
[    2.010000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.1:04 [uid=004dd041, driver=Generic PHY]
[    2.020000] eth1: Atheros AG71xx at 0xb9000000, irq 4, mode:MII
[    2.020000] TCP: cubic registered
[    2.020000] NET: Registered protocol family 17
[    2.030000] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    2.040000] 8021q: 802.1Q VLAN Support v1.8
[    2.050000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[    2.060000] Freeing unused kernel memory: 244K (80343000 - 80380000)
[    3.590000] init: Console is alive
[    3.590000] init: - watchdog -
[    5.580000] usbcore: registered new interface driver usbfs
[    5.580000] usbcore: registered new interface driver hub
[    5.590000] usbcore: registered new device driver usb
[    5.600000] Button Hotplug driver version 0.4.1
[    5.610000] SCSI subsystem initialized
[    5.620000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.630000] ehci-platform: EHCI generic platform driver
[    5.630000] ehci-platform ehci-platform: EHCI Host Controller
[    5.640000] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1
[    5.650000] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
[    5.680000] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
[    5.680000] hub 1-0:1.0: USB hub found
[    5.680000] hub 1-0:1.0: 1 port detected
[    5.690000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    5.700000] ohci-platform: OHCI generic platform driver
[    5.700000] uhci_hcd: USB Universal Host Controller Interface driver
[    5.720000] usbcore: registered new interface driver usb-storage
[    6.010000] usb 1-1: new high-speed USB device number 2 using ehci-platform
[    6.160000] usb-storage 1-1:1.0: USB Mass Storage device detected
[    6.160000] scsi host0: usb-storage 1-1:1.0
[    6.700000] init: - preinit -
[    7.460000] random: procd urandom read with 12 bits of entropy available
[    7.760000] scsi 0:0:0:0: Direct-Access     SMI      USB DISK         1100 PQ: 0 ANSI: 4
[    7.770000] sd 0:0:0:0: [sda] 16015360 512-byte logical blocks: (8.19 GB/7.63 GiB)
[    7.780000] sd 0:0:0:0: [sda] Write Protect is off
[    7.780000] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[    7.780000] sd 0:0:0:0: [sda] No Caching mode page found
[    7.790000] sd 0:0:0:0: [sda] Assuming drive cache: write through
[    7.800000]  sda: sda1
[    7.810000] sd 0:0:0:0: [sda] Attached SCSI removable disk
[    9.030000] eth0: link up (1000Mbps/Full duplex)
[   10.790000] jffs2_scan_eraseblock(): End of filesystem marker found at 0x10000
[   10.800000] jffs2_build_filesystem(): unlocking the mtd device... done.
[   10.800000] jffs2_build_filesystem(): erasing all blocks after the end marker... done.
[   44.920000] jffs2: notice: (351) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[   44.930000] mount_root: overlay filesystem has not been fully initialized yet
[   44.940000] mount_root: switching to jffs2 overlay
[   45.250000] eth0: link down
[   45.260000] procd: - early -
[   45.270000] procd: - watchdog -
[   46.150000] procd: - ubus -
[   47.160000] procd: - init -
[   49.760000] NET: Registered protocol family 10
[   49.770000] tun: Universal TUN/TAP device driver, 1.6
[   49.780000] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[   49.790000] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   49.850000] u32 classifier
[   49.850000]     input device check on
[   49.860000]     Actions configured
[   49.860000] Mirror/redirect action on
[   49.900000] nf_conntrack version 0.5.0 (959 buckets, 3836 max)
[   49.960000] arp_tables: (C) 2002 David S. Miller
[   49.970000] Loading modules backported from Linux version master-2015-03-09-0-g141f155
[   49.980000] Backport generated by backports.git backports-20150129-0-gdd4a670
[   50.000000] ip_tables: (C) 2000-2006 Netfilter Core Team
[   50.080000] usbcore: registered new interface driver usblp
[   50.190000] xt_time: kernel timezone is -0000
[   50.230000] cfg80211: Calling CRDA to update world regulatory domain
[   50.280000] cfg80211: World regulatory domain updated:
[   50.280000] cfg80211:  DFS Master region: unset
[   50.280000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   50.290000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   50.300000] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[   50.310000] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[   50.320000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[   50.330000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[   50.330000] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[   50.340000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[   50.350000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[   50.440000] PPP generic driver version 2.4.2
[   50.450000] NET: Registered protocol family 24
[   50.570000] ath: EEPROM regdomain: 0x0
[   50.570000] ath: EEPROM indicates default country code should be used
[   50.570000] ath: doing EEPROM country->regdmn map search
[   50.570000] ath: country maps to regdmn code: 0x3a
[   50.570000] ath: Country alpha2 being used: US
[   50.570000] ath: Regpair used: 0x3a
[   50.580000] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   50.590000] ieee80211 phy0: Atheros AR9330 Rev:1 mem=0xb8100000, irq=2
[   50.600000] cfg80211: Calling CRDA for country: US
[   50.600000] cfg80211: Regulatory domain changed to country: US
[   50.600000] cfg80211:  DFS Master region: FCC
[   50.610000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[   50.620000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)
[   50.630000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 1700 mBm), (N/A)
[   50.640000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s)
[   50.650000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
[   50.650000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
[   64.070000] device eth0 entered promiscuous mode
[   64.070000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   64.110000] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[   65.930000] eth0: link up (1000Mbps/Full duplex)
[   65.930000] br-lan: port 1(eth0) entered forwarding state
[   65.930000] br-lan: port 1(eth0) entered forwarding state
[   65.940000] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   67.410000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   67.440000] device wlan0 entered promiscuous mode
[   67.490000] br-lan: port 2(wlan0) entered forwarding state
[   67.500000] br-lan: port 2(wlan0) entered forwarding state
[   67.500000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   67.660000] eth0: link down
[   67.930000] br-lan: port 1(eth0) entered forwarding state
[   68.490000] br-lan: port 1(eth0) entered disabled state
[   69.160000] eth0: link up (1000Mbps/Full duplex)
[   69.160000] br-lan: port 1(eth0) entered forwarding state
[   69.170000] br-lan: port 1(eth0) entered forwarding state
[   69.500000] br-lan: port 2(wlan0) entered forwarding state
[   70.890000] random: nonblocking pool is initialized
[   71.170000] br-lan: port 1(eth0) entered forwarding state

System log after upgrade:

Wed Aug 12 19:11:05 2015 kern.info kernel: [    6.160000] scsi host0: usb-storage 1-1:1.0
Wed Aug 12 19:11:05 2015 user.info kernel: [    6.700000] init: - preinit -
Wed Aug 12 19:11:05 2015 kern.notice kernel: [    7.460000] random: procd urandom read with 12 bits of entropy available
Wed Aug 12 19:11:05 2015 kern.notice kernel: [    7.760000] scsi 0:0:0:0: Direct-Access     SMI      USB DISK         1100 PQ: 0 ANSI: 4
Wed Aug 12 19:11:05 2015 kern.notice kernel: [    7.770000] sd 0:0:0:0: [sda] 16015360 512-byte logical blocks: (8.19 GB/7.63 GiB)
Wed Aug 12 19:11:05 2015 kern.notice kernel: [    7.780000] sd 0:0:0:0: [sda] Write Protect is off
Wed Aug 12 19:11:05 2015 kern.debug kernel: [    7.780000] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
Wed Aug 12 19:11:05 2015 kern.err kernel: [    7.780000] sd 0:0:0:0: [sda] No Caching mode page found
Wed Aug 12 19:11:05 2015 kern.err kernel: [    7.790000] sd 0:0:0:0: [sda] Assuming drive cache: write through
Wed Aug 12 19:11:05 2015 kern.info kernel: [    7.800000]  sda: sda1
Wed Aug 12 19:11:05 2015 kern.notice kernel: [    7.810000] sd 0:0:0:0: [sda] Attached SCSI removable disk
Wed Aug 12 19:11:05 2015 kern.info kernel: [    9.030000] eth0: link up (1000Mbps/Full duplex)
Wed Aug 12 19:11:05 2015 kern.warn kernel: [   10.790000] jffs2_scan_eraseblock(): End of filesystem marker found at 0x10000
Wed Aug 12 19:11:05 2015 kern.warn kernel: [   10.800000] jffs2_build_filesystem(): unlocking the mtd device... done.
Wed Aug 12 19:11:05 2015 kern.warn kernel: [   10.800000] jffs2_build_filesystem(): erasing all blocks after the end marker... done.
Wed Aug 12 19:11:05 2015 kern.notice kernel: [   44.920000] jffs2: notice: (351) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
Wed Aug 12 19:11:05 2015 user.info kernel: [   44.930000] mount_root: overlay filesystem has not been fully initialized yet
Wed Aug 12 19:11:05 2015 user.info kernel: [   44.940000] mount_root: switching to jffs2 overlay
Wed Aug 12 19:11:05 2015 kern.info kernel: [   45.250000] eth0: link down
Wed Aug 12 19:11:05 2015 user.info kernel: [   45.260000] procd: - early -
Wed Aug 12 19:11:05 2015 user.info kernel: [   45.270000] procd: - watchdog -
Wed Aug 12 19:11:05 2015 user.info kernel: [   46.150000] procd: - ubus -
Wed Aug 12 19:11:05 2015 user.info kernel: [   47.160000] procd: - init -
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.760000] NET: Registered protocol family 10
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.770000] tun: Universal TUN/TAP device driver, 1.6
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.780000] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.790000] ip6_tables: (C) 2000-2006 Netfilter Core Team
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.850000] u32 classifier
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.850000]     input device check on
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.860000]     Actions configured
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.860000] Mirror/redirect action on
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.900000] nf_conntrack version 0.5.0 (959 buckets, 3836 max)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.960000] arp_tables: (C) 2002 David S. Miller
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.970000] Loading modules backported from Linux version master-2015-03-09-0-g141f155
Wed Aug 12 19:11:05 2015 kern.info kernel: [   49.980000] Backport generated by backports.git backports-20150129-0-gdd4a670
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.000000] ip_tables: (C) 2000-2006 Netfilter Core Team
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.080000] usbcore: registered new interface driver usblp
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.190000] xt_time: kernel timezone is -0000
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.230000] cfg80211: Calling CRDA to update world regulatory domain
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.280000] cfg80211: World regulatory domain updated:
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.280000] cfg80211:  DFS Master region: unset
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.280000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.290000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.300000] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.310000] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.320000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.330000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.330000] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.340000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.350000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.440000] PPP generic driver version 2.4.2
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.450000] NET: Registered protocol family 24
Wed Aug 12 19:11:05 2015 kern.debug kernel: [   50.570000] ath: EEPROM regdomain: 0x0
Wed Aug 12 19:11:05 2015 kern.debug kernel: [   50.570000] ath: EEPROM indicates default country code should be used
Wed Aug 12 19:11:05 2015 kern.debug kernel: [   50.570000] ath: doing EEPROM country->regdmn map search
Wed Aug 12 19:11:05 2015 kern.debug kernel: [   50.570000] ath: country maps to regdmn code: 0x3a
Wed Aug 12 19:11:05 2015 kern.debug kernel: [   50.570000] ath: Country alpha2 being used: US
Wed Aug 12 19:11:05 2015 kern.debug kernel: [   50.570000] ath: Regpair used: 0x3a
Wed Aug 12 19:11:05 2015 kern.debug kernel: [   50.580000] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.590000] ieee80211 phy0: Atheros AR9330 Rev:1 mem=0xb8100000, irq=2
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.600000] cfg80211: Calling CRDA for country: US
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.600000] cfg80211: Regulatory domain changed to country: US
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.600000] cfg80211:  DFS Master region: FCC
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.610000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.620000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.630000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 1700 mBm), (N/A)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.640000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.650000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
Wed Aug 12 19:11:05 2015 kern.info kernel: [   50.650000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
Wed Aug 12 19:11:10 2015 authpriv.warn dropbear[1215]: Failed loading /etc/dropbear/dropbear_ecdsa_host_key
Wed Aug 12 19:11:10 2015 authpriv.info dropbear[1215]: Not backgrounding
Wed Aug 12 19:11:12 2015 daemon.err insmod: module is already loaded - xt_multiport
Wed Aug 12 19:11:12 2015 daemon.err insmod: module is already loaded - xt_comment
Wed Aug 12 19:11:12 2015 daemon.err insmod: module is already loaded - xt_length
Wed Aug 12 19:11:14 2015 daemon.err insmod: module is already loaded - xt_multiport
Wed Aug 12 19:11:14 2015 daemon.err insmod: module is already loaded - xt_comment
Wed Aug 12 19:11:14 2015 daemon.err insmod: module is already loaded - xt_length
Wed Aug 12 19:11:14 2015 kern.info kernel: [   64.070000] device eth0 entered promiscuous mode
Wed Aug 12 19:11:14 2015 kern.info kernel: [   64.070000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
Wed Aug 12 19:11:14 2015 daemon.notice netifd: Interface 'lan' is enabled
Wed Aug 12 19:11:14 2015 daemon.notice netifd: Interface 'lan' is setting up now
Wed Aug 12 19:11:14 2015 daemon.notice netifd: Interface 'lan' is now up
Wed Aug 12 19:11:14 2015 daemon.notice netifd: Interface 'loopback' is enabled
Wed Aug 12 19:11:14 2015 daemon.notice netifd: Interface 'loopback' is setting up now
Wed Aug 12 19:11:14 2015 daemon.notice netifd: Interface 'loopback' is now up
Wed Aug 12 19:11:14 2015 kern.info kernel: [   64.110000] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
Wed Aug 12 19:11:14 2015 daemon.notice netifd: Interface 'wan' is enabled
Wed Aug 12 19:11:14 2015 daemon.notice netifd: Network device 'lo' link is up
Wed Aug 12 19:11:14 2015 daemon.notice netifd: Interface 'loopback' has link connectivity 
Wed Aug 12 19:11:16 2015 user.emerg syslog: SQM: Trying to start/stop SQM on all interfaces.
Wed Aug 12 19:11:16 2015 user.notice SQM: Trying to start/stop SQM on all interfaces.
Wed Aug 12 19:11:16 2015 user.notice SQM: Trying to start/stop SQM on interface br-lan
Wed Aug 12 19:11:16 2015 user.emerg syslog: SQM: /usr/lib/sqm/run.sh SQM for interface eth1 is not enabled, skipping over...
Wed Aug 12 19:11:16 2015 user.notice SQM: /usr/lib/sqm/run.sh SQM for interface eth1 is not enabled, skipping over...
Wed Aug 12 19:11:16 2015 kern.info kernel: [   65.930000] eth0: link up (1000Mbps/Full duplex)
Wed Aug 12 19:11:16 2015 kern.info kernel: [   65.930000] br-lan: port 1(eth0) entered forwarding state
Wed Aug 12 19:11:16 2015 kern.info kernel: [   65.930000] br-lan: port 1(eth0) entered forwarding state
Wed Aug 12 19:11:16 2015 daemon.notice netifd: Network device 'eth0' link is up
Wed Aug 12 19:11:16 2015 kern.info kernel: [   65.940000] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
Wed Aug 12 19:11:16 2015 daemon.notice netifd: Bridge 'br-lan' link is up
Wed Aug 12 19:11:16 2015 daemon.notice netifd: Interface 'lan' has link connectivity 
Wed Aug 12 19:11:17 2015 user.notice firewall: Reloading firewall due to ifup of lan (br-lan)
Wed Aug 12 19:11:17 2015 kern.info kernel: [   67.410000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
Wed Aug 12 19:11:17 2015 kern.info kernel: [   67.440000] device wlan0 entered promiscuous mode
Wed Aug 12 19:11:17 2015 kern.info kernel: [   67.490000] br-lan: port 2(wlan0) entered forwarding state
Wed Aug 12 19:11:17 2015 kern.info kernel: [   67.500000] br-lan: port 2(wlan0) entered forwarding state
Wed Aug 12 19:11:17 2015 kern.info kernel: [   67.500000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
Wed Aug 12 19:11:18 2015 kern.info kernel: [   67.660000] eth0: link down
Wed Aug 12 19:11:18 2015 daemon.notice netifd: radio0 (1409): Configuration file: /var/run/hostapd-phy0.conf
Wed Aug 12 19:11:18 2015 daemon.notice netifd: radio0 (1409): Using interface wlan0 with hwaddr 0c:ef:af:cf:XX:XX and ssid "MiniBox_XXXX"
Wed Aug 12 19:11:18 2015 daemon.notice netifd: radio0 (1409): wlan0: interface state UNINITIALIZED->ENABLED
Wed Aug 12 19:11:18 2015 daemon.notice netifd: radio0 (1409): wlan0: AP-ENABLED 
Wed Aug 12 19:11:18 2015 daemon.notice netifd: Network device 'eth0' link is down
Wed Aug 12 19:11:18 2015 kern.info kernel: [   67.930000] br-lan: port 1(eth0) entered forwarding state
Wed Aug 12 19:11:18 2015 daemon.notice netifd: Network device 'wlan0' link is up
Wed Aug 12 19:11:18 2015 kern.info kernel: [   68.490000] br-lan: port 1(eth0) entered disabled state
Wed Aug 12 19:11:19 2015 user.emerg syslog: Generating RSA private key, 1024 bit long modulus
Wed Aug 12 19:11:19 2015 kern.info kernel: [   69.160000] eth0: link up (1000Mbps/Full duplex)
Wed Aug 12 19:11:19 2015 kern.info kernel: [   69.160000] br-lan: port 1(eth0) entered forwarding state
Wed Aug 12 19:11:19 2015 kern.info kernel: [   69.170000] br-lan: port 1(eth0) entered forwarding state
Wed Aug 12 19:11:19 2015 daemon.notice netifd: Network device 'eth0' link is up
Wed Aug 12 19:11:19 2015 kern.info kernel: [   69.500000] br-lan: port 2(wlan0) entered forwarding state
Wed Aug 12 19:11:21 2015 kern.notice kernel: [   70.890000] random: nonblocking pool is initialized
Wed Aug 12 19:11:21 2015 kern.info kernel: [   71.170000] br-lan: port 1(eth0) entered forwarding state
Wed Aug 12 19:11:22 2015 user.emerg syslog: Generating selfsigned certificate with subject 'C=DE,ST=Berlin,L=Berlin,CN=OpenWrt,' and validity 20150812191119-20170811191119
Wed Aug 12 19:11:24 2015 daemon.info dnsmasq[1660]: started, version 2.73 cachesize 150
Wed Aug 12 19:11:24 2015 daemon.info dnsmasq[1660]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack no-ipset no-auth no-DNSSEC loop-detect inotify
Wed Aug 12 19:11:24 2015 daemon.info dnsmasq-dhcp[1660]: DHCP, IP range 192.168.2.100 -- 192.168.2.249, lease time 12h
Wed Aug 12 19:11:24 2015 daemon.info dnsmasq[1660]: using local addresses only for domain lan
Wed Aug 12 19:11:24 2015 daemon.warn dnsmasq[1660]: no servers found in /tmp/resolv.conf.auto, will retry
Wed Aug 12 19:11:24 2015 daemon.info dnsmasq[1660]: read /etc/hosts - 1 addresses
Wed Aug 12 19:11:24 2015 daemon.info dnsmasq[1660]: read /tmp/hosts/dhcp - 1 addresses
Wed Aug 12 19:11:24 2015 daemon.info dnsmasq-dhcp[1660]: read /etc/ethers - 0 addresses
Wed Aug 12 19:11:26 2015 user.emerg syslog: configfile: stat (/etc/collectd/conf.d) failed: No such file or directory
Wed Aug 12 19:11:26 2015 user.notice SQM: Trying to start/stop SQM on interface lo
Wed Aug 12 19:11:26 2015 user.emerg syslog: plugin_load: Could not find plugin "splash_leases" in /usr/lib/collectd
Wed Aug 12 19:11:26 2015 user.emerg syslog: plugin_load: Could not find plugin "tcpconns" in /usr/lib/collectd
Wed Aug 12 19:11:26 2015 user.emerg syslog: Found a configuration for the `tcpconns' plugin, but the plugin isn't loaded or didn't register a configuration callback.
Wed Aug 12 19:11:26 2015 user.emerg syslog: Found a configuration for the `tcpconns' plugin, but the plugin isn't loaded or didn't register a configuration callback.
Wed Aug 12 19:11:26 2015 user.emerg syslog: Found a configuration for the `tcpconns' plugin, but the plugin isn't loaded or didn't register a configuration callback.
Wed Aug 12 19:11:27 2015 user.emerg syslog: rrdtool plugin: RRASingle = true: creating only AVERAGE RRAs
Wed Aug 12 19:11:27 2015 user.emerg syslog: plugin_load: Could not find plugin "processes" in /usr/lib/collectd
Wed Aug 12 19:11:27 2015 user.emerg syslog: Found a configuration for the `processes' plugin, but the plugin isn't loaded or didn't register a configuration callback.
Wed Aug 12 19:11:27 2015 user.emerg syslog: Found a configuration for the `processes' plugin, but the plugin isn't loaded or didn't register a configuration callback.
Wed Aug 12 19:11:27 2015 user.emerg syslog: Found a configuration for the `processes' plugin, but the plugin isn't loaded or didn't register a configuration callback.
Wed Aug 12 19:11:27 2015 user.emerg syslog: plugin_load: Could not find plugin "olsrd" in /usr/lib/collectd
Wed Aug 12 19:11:27 2015 user.emerg syslog: Found a configuration for the `olsrd' plugin, but the plugin isn't loaded or didn't register a configuration callback.
Wed Aug 12 19:11:27 2015 user.emerg syslog: Found a configuration for the `olsrd' plugin, but the plugin isn't loaded or didn't register a configuration callback.
Wed Aug 12 19:11:27 2015 user.emerg syslog: plugin_load: Could not find plugin "uptime" in /usr/lib/collectd
Wed Aug 12 19:11:29 2015 daemon.info procd: - init complete -
Wed Aug 12 19:12:15 2015 daemon.info hostapd: wlan0: STA 7c:7a:91:xx:xx:xx IEEE 802.11: authenticated
Wed Aug 12 19:12:15 2015 daemon.info hostapd: wlan0: STA 7c:7a:91:xx:xx:xx IEEE 802.11: associated (aid 1)
Wed Aug 12 19:12:15 2015 daemon.info hostapd: wlan0: STA 7c:7a:91:xx:xx:xx RADIUS: starting accounting session 55CB9A55-00000000
Wed Aug 12 19:12:15 2015 daemon.info dnsmasq-dhcp[1660]: DHCPREQUEST(br-lan) 192.168.2.122 7c:7a:91:xx:xx:xx
Wed Aug 12 19:12:15 2015 daemon.info dnsmasq-dhcp[1660]: DHCPACK(br-lan) 192.168.2.122 7c:7a:91:xx:xx:xx WINDOWS
Wed Aug 12 19:12:17 2015 daemon.warn odhcpd[1184]: DHCPV6 CONFIRM IA_NA from 000100011c59a3487c7a9103ed0a on br-lan: not on-link 
Wed Aug 12 19:12:17 2015 daemon.info dnsmasq[1660]: read /etc/hosts - 1 addresses
Wed Aug 12 19:12:17 2015 daemon.info dnsmasq[1660]: read /tmp/hosts/odhcpd - 0 addresses
Wed Aug 12 19:12:17 2015 daemon.info dnsmasq[1660]: read /tmp/hosts/dhcp - 1 addresses
Wed Aug 12 19:12:17 2015 daemon.info dnsmasq-dhcp[1660]: read /etc/ethers - 0 addresses
Wed Aug 12 19:12:18 2015 daemon.warn odhcpd[1184]: DHCPV6 CONFIRM IA_NA from 000100011c59a3487c7a9103ed0a on br-lan: not on-link 
Wed Aug 12 19:12:20 2015 daemon.warn odhcpd[1184]: DHCPV6 CONFIRM IA_NA from 000100011c59a3487c7a9103ed0a on br-lan: not on-link 
Wed Aug 12 19:12:24 2015 daemon.warn odhcpd[1184]: DHCPV6 SOLICIT IA_NA from 000100011c59a3487c7a9103ed0a on br-lan: ok fdd1:173f:b840::368/128 
Wed Aug 12 19:12:25 2015 daemon.warn odhcpd[1184]: DHCPV6 SOLICIT IA_NA from 000100011c59a3487c7a9103ed0a on br-lan: ok fdd1:173f:b840::368/128 
Wed Aug 12 19:12:27 2015 daemon.warn odhcpd[1184]: DHCPV6 SOLICIT IA_NA from 000100011c59a3487c7a9103ed0a on br-lan: ok fdd1:173f:b840::368/128 
Wed Aug 12 19:12:31 2015 daemon.warn odhcpd[1184]: DHCPV6 SOLICIT IA_NA from 000100011c59a3487c7a9103ed0a on br-lan: ok fdd1:173f:b840::368/128 
Wed Aug 12 19:12:39 2015 daemon.warn odhcpd[1184]: DHCPV6 SOLICIT IA_NA from 000100011c59a3487c7a9103ed0a on br-lan: ok fdd1:173f:b840::368/128 
Wed Aug 12 19:12:55 2015 daemon.warn odhcpd[1184]: DHCPV6 SOLICIT IA_NA from 000100011c59a3487c7a9103ed0a on br-lan: ok fdd1:173f:b840::368/128 
Wed Aug 12 19:13:27 2015 daemon.warn odhcpd[1184]: DHCPV6 SOLICIT IA_NA from 000100011c59a3487c7a9103ed0a on br-lan: ok fdd1:173f:b840::368/128 
Wed Aug 12 19:14:36 2015 authpriv.info dropbear[4574]: Child connection from 192.168.2.122:50593
Wed Aug 12 19:14:45 2015 authpriv.notice dropbear[4574]: Password auth succeeded for 'root' from 192.168.2.122:50593

Thanks a lot! Could you do a few more checks for me? Can you post the values of /sys/class/leds/*/brightness and tell me what firmware you're on (Gainstrong 14.07 or my 15.05 build)?

I will build an image with the LED polarity inverted, to see if the LED stays active during normal operation. Then I have some reference material to compare against when I invert the polarity.

Miniboxhacker: I had to add a profile file myself, that wasn't in 14.07 (don't know if that was sloppy coding from Gainstrong's part or just something that's new in 15.05 and up). Other than that, I didn't do much. The wiki has some general info but nothing ar71xx specific.

(Last edited by Borromini on 18 Aug 2015, 22:16)

I'm on your 15.05 build. I looked closer at the led during boot and I think this is what it's going. On power on, it turns on solid for about 10 seconds. Then it blinks about 4 times per second for 3 seconds, then blinks 2 times per second for 20 seconds. Then it turns off.

root@OpenWrt:/sys/class/leds# ls -l
lrwxrwxrwx    1 root     root             0 Aug 12 19:13 ath9k-phy0 -> ../../devices/platform/ar933x_wmac/leds/ath9k-phy0
lrwxrwxrwx    1 root     root             0 Jan  1  1970 minibox-v1:green:system -> ../../devices/platform/leds-gpio/leds/minibox-v1:green:system
root@OpenWrt:/sys/class/leds# cat */brightness
255
255
root@OpenWrt:/sys/class/leds# cat minibox-v1\:green\:system/trigger
[none] switch0 timer default-on netdev usbdev phy0rx phy0tx phy0assoc phy0radio phy0tpt

if I do

root@OpenWrt:/sys/class/leds# echo 0 > minibox-v1\:green\:system/brightness

the led turns on.

root@OpenWrt:/sys/class/leds# echo 0 > ath9k-phy0/brightness

does nothing.

Thanks! I now have a build up which inverts the polarity (download link in the first post has been updated).

Could you test and confirm LED behaviour, as well as check the value of /sys/class/leds/minibox-v1:green:system/brightness, and what happens to the LED if you echo 0 (or 255) into it?

Flashed the new firmware (it was 3.5Mb in size while the previous one was 5Mb). The router does not seem to boot anymore, the power light is solid on. I will try to flash it back to the original or previous firmware with TFTP or a programmer. Will probably take me a couple of days. I'll let you know when I'm done.

Sorry sad.

I will check the patch and rebuild.

Shining Wind, I have corrected the patch and rebuilt the image.

I have also rebuilt the images with my previous tknown working) patch, and all sysupgrade images are around 3,6 MiB (don't know if you kept the first build you flashed, I unfortunately didn't keep the older builds). I also built an image on trunk, and the sysupgrade file there is about 4 MiB (the config on trunk is pretty stock though, the one on 15.05 trimmed down).

The new build should have the LED working normally, I have also provided links to a build with the previous patch for reference.

(Last edited by Borromini on 23 Aug 2015, 00:24)

I flashed the old 46586 5.6Mb build through the bootloader, so I'm back in business. smile

Fortunately I saved that build, let me know if you need it. I did not keep a backup of the original firmware, bad idea on my part.

I'll try to download and install the new build later today, will let you know how it goes.

Ok thanks. Could you upload the r46586 build somewhere? Maybe the size difference is in the packages. I will take it apart and have a look at it.

As for Gainstrong's image, I think it can be found here.

(Last edited by Borromini on 23 Aug 2015, 18:18)

Here's the link to the 46586 firmware. I will try the new build later today.

Thanks. I have run another build, first post has been updated, the sysupgrade image is bigger now, but I think the problem was elsewhere.

I flashed build 46712, same result as with 46692 - led solid on, no boot. Reflashed back to 46586 and it came up again. Maybe the flashing process in the firmware is not working right? I can try to flash 46712 via the bootloader and see if that changes anything.

sad You could, but I doubt that would make much of a difference. I'll have to dive into the code again. In the meantime, can you use the link in the start post to the build with the older patch? That one has the LED fix already applied.

Thanks

Sure, do you want me to try the build in r46698/ar71xx/patch_v2?

Yeah, that's the one. Recent git but with the old patch from 46586.

Might be a bit before I can provide a new build.

Good news, the r46698/ar71xx/patch_v2 image flashed successfully. The led is still going through the on->blinking->off sequence though. The default brightness of ath9k-phy0 is now 0.

root@OpenWrt:/sys/class/leds# ls
ath9k-phy0               minibox-v1:green:system
root@OpenWrt:/sys/class/leds# cat */brightness
0
255
root@OpenWrt:/sys/class/leds# cat minibox-v1\:green\:system/brightness
255

This

root@OpenWrt:/sys/class/leds# echo 0 > minibox-v1\:green\:system/brightness

turns the led on.

This

root@OpenWrt:/sys/class/leds# echo 1 > minibox-v1\:green\:system/brightness

turns it back off.

Thank you for working on the minibox, let me know what else I can do to help.

(Last edited by shining_wind_3007 on 28 Aug 2015, 15:41)

Thanks. Looks like the polarity hasn't been fixed though... I'll keep you posted.

This is great work! The links for your volatilesystems site isn't working, looks like the site is down, at least for me anyway. I have hardware I can test on, I'm going to do a test with the dropbox link above... we'll see how it goes. Hoping I can help in some way.

confirmed, this one:
https://www.dropbox.com/s/arclwuer35cd9 … 6.bin?dl=0
is working for me, so far everything tests properly.  opkg.conf is set the volatilesystems url:

Downloading https://volatilesystems.org/dl/openwrt/ … ckages.gz.
Downloading https://volatilesystems.org/dl/openwrt/ … kages.sig.
Signature check failed.
Remove wrong Signature file.
wget: bad address 'volatilesystems.org'
wget: bad address 'volatilesystems.org'
Collected errors:
* opkg_download: Failed to download https://volatilesystems.org/dl/openwrt/ … ckages.gz, wget returned 1.
* opkg_download: Failed to download https://volatilesystems.org/dl/openwrt/ … kages.sig, wget returned 1.

which is down but probably not relevant. I'll try changing it to something else in a minute.

led light functions the same way as it did under 14.07, I tested it by configuring it through luci interface trigger: netdev device: wlan0

great work! What else should I test for? Also, how do I get this wonderful source code so I can work on it too?

The discussion might have continued from here.