I have two MR34 that were recently removed from a working Meraki environment, and I'm looking to get OpenWRT running on them. I have very little dev experience, unfortunately, but I'd like to try. Here's what I know so far.
Hardware information:
CPU: Freescale P1022NSE2LFB 1067/667 MHz (32-bit dual-core SoC @ 1Ghz)
Large Wifi card: BCM3460KML 0
Small Wifi card: BCM3431KML G
Onboard Wifi: BCM3428KML G
Reverse side
Toshiba 123082 Flash 13389AE 3
BCM54612E Ethernet controller
Nanya 1321 N15CB64M16FP DH (x2) - total of 256M RAM
I have a console running on CONN4 (115200, 3.3, TR, RX, GND)
Boot log with stock firmware:
NAND boot... transfering control
U-Boot 2011.12-00323-gd8ab75a-dirty (Aug 01 2013 - 13:07:36)
CPU0: P1022E, Version: 1.1, (0x80ee0011)
Core: E500, Version: 5.1, (0x80211151)
Clock Configuration:
CPU0:1066.667 MHz, CPU1:1066.667 MHz,
CCB:533.333 MHz,
DDR:333.333 MHz (666.667 MT/s data rate) (Asynchronous), LBC:66.667 MHz
L1: D-cache 32 kB enabled
I-cache 32 kB enabled
Board: Meraki TOPAZ Sys ID: 0xfd, Sys Ver: 0xfd, FPGA Ver: 0xfd, Promjet
I2C: ready
DRAM: 256 MiB (DDR3, 32-bit, CL=6, ECC off)
L2: 256 KB enabled
NAND: 128 MiB
MMC: FSL_SDHC: 0
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
*** Warning - bad CRC, using default environment
EEPROM: Read failed.
PCIe1: Root Complex of Slot 1, x1, regs @ 0xffe0a000
01:00.0 - 14e4:43a2 - Network controller
PCIe1: Bus 00 - 01
PCIe2: Root Complex of Slot 3, x1, regs @ 0xffe09000
03:00.0 - 14e4:a8dc - Network controller
PCIe2: Bus 02 - 03
PCIe3: Root Complex of Slot 2, x1, regs @ 0xffe0b000
05:00.0 - 14e4:4331 - Network controller
PCIe3: Bus 04 - 05
In: serial
Out: serial
Err: serial
Net: eTSEC1
Hit any key to stop autoboot: 1 0
NAND read: device 0 offset 0x100000, size 0x1000
4096 bytes read: OK
Creating 1 MTD partitions on "nand0":
0x000000200000-0x000008000000 : "mtd=2"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI: attached mtd1 to ubi0
UBI: MTD device name: "mtd=2"
UBI: MTD device size: 126 MiB
UBI: number of good PEBs: 1004
UBI: number of bad PEBs: 4
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 4
UBI: available PEBs: 661
UBI: total number of reserved PEBs: 343
UBI: number of PEBs reserved for bad PEB handling: 10
UBI: max/mean erase counter: 2478/2386
Read 0 bytes from volume part1 to 00c00000
No size specified -> Using max size (16902144)
## Booting kernel from Legacy Image at 00c10000 ...
Image Name: Linux-3.4.113
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 1783072 Bytes = 1.7 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 01000000 ...
Image Name: Simple Ramdisk Image
Image Type: PowerPC Linux RAMDisk Image (lzma compressed)
Data Size: 7649255 Bytes = 7.3 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 00c00400
Booting using the fdt blob at 0x00c00400
Uncompressing Kernel Image ... OK
Loading Ramdisk to 0ecb2000, end 0f3fd7e7 ... OK
Loading Device Tree to 03ffa000, end 03fff194 ... OK
[ 0.000000] Using Topaz machine description
[ 0.000000] Memory CAM mapping: 64/64/64/16/16/16/4/4/4/1 Mb, residual: 2Mb
[ 0.000000] Linux version 3.4.113 (jenkins@dal247.meraki.com) (gcc version 4.8.3 (GCC) ) #4 SMP Fri Sep 28 17:21:43 PDT 2018
[ 0.000000] Found initrd at 0xcecb2000:0xcf3fd7e7
[ 0.000000] CPU maps initialized for 1 thread per core
[ 0.000000] bootconsole [udbg0] enabled
setup_arch: bootmem
topaz_setup_arch()
[ 0.000000] Found FSL PCI host bridge at 0x00000000ffe09000. Firmware bus number: 0->255
[ 0.000000] PCI host bridge /pcie@ffe09000 ranges:
[ 0.000000] MEM 0x00000000a0000000..0x00000000bfffffff -> 0x00000000a0000000
[ 0.000000] IO 0x00000000ffc10000..0x00000000ffc1ffff -> 0x0000000000000000
[ 0.000000] /pcie@ffe09000: PCICSRBAR @ 0xfff00000
[ 0.000000] Found FSL PCI host bridge at 0x00000000ffe0a000. Firmware bus number: 0->255
[ 0.000000] PCI host bridge /pcie@ffe0a000 ranges:
[ 0.000000] MEM 0x00000000c0000000..0x00000000dfffffff -> 0x00000000c0000000
[ 0.000000] IO 0x00000000ffc20000..0x00000000ffc2ffff -> 0x0000000000000000
[ 0.000000] /pcie@ffe0a000: PCICSRBAR @ 0xfff00000
[ 0.000000] Found FSL PCI host bridge at 0x00000000ffe0b000. Firmware bus number: 0->255
[ 0.000000] PCI host bridge /pcie@ffe0b000 ranges:
[ 0.000000] MEM 0x0000000080000000..0x000000009fffffff -> 0x0000000080000000
[ 0.000000] IO 0x00000000ffc00000..0x00000000ffc0ffff -> 0x0000000000000000
[ 0.000000] /pcie@ffe0b000: PCICSRBAR @ 0xfff00000
[ 0.000000] Freescale P1022 DS reference board
arch: exit
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0x00000000 -> 0x0000fd00
[ 0.000000] Normal empty
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] Early memory PFN ranges
[ 0.000000] 0: 0x00000000 -> 0x0000fd00
[ 0.000000] MMU: Allocated 1088 bytes of context maps for 255 contexts
[ 0.000000] PERCPU: Embedded 7 pages/cpu @c05a3000 s6336 r8192 d14144 u32768
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64262
[ 0.000000] Kernel command line: root=/dev/ram console=ttyS0,115200 ubi.mtd=ubi MERAKI_BOARD=topaz mtdoops.mtddev=oops mem=255M
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Memory: 245452k/259072k available (3300k kernel code, 13620k reserved, 196k data, 203k bss, 152k init)
[ 0.000000] Kernel virtual memory layout:
[ 0.000000] * 0xfffdf000..0xfffff000 : fixmap
[ 0.000000] * 0xfdfc8000..0xfe000000 : early ioremap
[ 0.000000] * 0xd0000000..0xfdfc8000 : vmalloc & ioremap
[ 0.000000] SLUB: Genslabs=15, HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] NR_IRQS:512 nr_irqs:512 16
[ 0.000000] mpic: Setting up MPIC " OpenPIC " version 1.2 at ffe40000, max 2 CPUs
[ 0.000000] mpic: ISU size: 256, shift: 8, mask: ff
[ 0.000000] mpic: Initializing for 256 sources
[ 0.000000] clocksource: timebase mult[f000003] shift[24] registered
[ 0.006288] pid_max: default: 32768 minimum: 301
[ 0.010981] Mount-cache hash table entries: 512
[ 0.016824] mpic: requesting IPIs...
[ 0.020433] e500 family performance monitor hardware support registered
[ 0.108054] Brought up 2 CPUs
[ 0.111359] devtmpfs: initialized
[ 0.114964] NET: Registered protocol family 16
[ 0.121603] gpiochip_add: registered GPIOs 224 to 255 on device: /soc@ffe00000/gpio-controller@f000
[ 0.131041] PCI: Probing PCI hardware
[ 0.134759] PCI host bridge to bus 0000:00
[ 0.138773] pci_bus 0000:00: root bus resource [io 0xfdfed000-0xfdffcfff] (bus address [0x0000-0xffff])
[ 0.148212] pci_bus 0000:00: root bus resource [mem 0xa0000000-0xbfffffff]
[ 0.155090] pci 0000:00:00.0: ignoring class 0x0b2000 (doesn't match header type 01)
[ 0.163021] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[ 0.168708] PCI host bridge to bus 0001:02
[ 0.172725] pci_bus 0001:02: root bus resource [io 0xfdfdb000-0xfdfeafff] (bus address [0x0000-0xffff])
[ 0.182164] pci_bus 0001:02: root bus resource [mem 0xc0000000-0xdfffffff]
[ 0.189037] pci 0001:02:00.0: ignoring class 0x0b2000 (doesn't match header type 01)
[ 0.196786] pci 0001:02:00.0: Primary bus is hard wired to 0
[ 0.202367] pci 0001:02:00.0: bridge configuration invalid ([bus 01-01]), reconfiguring
[ 0.210508] pci 0001:02:00.0: PCI bridge to [bus 03-ff]
[ 0.216166] PCI host bridge to bus 0002:04
[ 0.220184] pci_bus 0002:04: root bus resource [io 0xfdfc9000-0xfdfd8fff] (bus address [0x0000-0xffff])
[ 0.229622] pci_bus 0002:04: root bus resource [mem 0x80000000-0x9fffffff]
[ 0.236495] pci 0002:04:00.0: ignoring class 0x0b2000 (doesn't match header type 01)
[ 0.244244] pci 0002:04:00.0: Primary bus is hard wired to 0
[ 0.249825] pci 0002:04:00.0: bridge configuration invalid ([bus 01-01]), reconfiguring
[ 0.257975] pci 0002:04:00.0: PCI bridge to [bus 05-ff]
[ 0.263618] pci 0000:00:00.0: PCI bridge to [bus 01-01]
[ 0.268761] pci 0000:00:00.0: bridge window [io 0xfdfed000-0xfdffcfff]
[ 0.275512] pci 0000:00:00.0: bridge window [mem 0xa0000000-0xbfffffff]
[ 0.282275] pci 0001:02:00.0: PCI bridge to [bus 03-03]
[ 0.287475] pci 0001:02:00.0: bridge window [io 0xfdfdb000-0xfdfeafff]
[ 0.294240] pci 0001:02:00.0: bridge window [mem 0xc0000000-0xdfffffff]
[ 0.301002] pci 0002:04:00.0: PCI bridge to [bus 05-05]
[ 0.306202] pci 0002:04:00.0: bridge window [io 0xfdfc9000-0xfdfd8fff]
[ 0.312965] pci 0002:04:00.0: bridge window [mem 0x80000000-0x9fffffff]
[ 0.319733] pci 0000:00:00.0: enabling device (0106 -> 0107)
[ 0.325366] pci 0001:02:00.0: enabling device (0106 -> 0107)
[ 0.331000] pci 0002:04:00.0: enabling device (0106 -> 0107)
[ 0.340598] bio: create slab <bio-0> at 0
[ 0.345880] Switching to clocksource timebase
[ 0.351993] NET: Registered protocol family 2
[ 0.361402] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.368394] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.375489] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.381965] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.388227] TCP: reno registered
[ 0.391435] UDP hash table entries: 128 (order: 0, 4096 bytes)
[ 0.397259] UDP-Lite hash table entries: 128 (order: 0, 4096 bytes)
[ 0.403620] NET: Registered protocol family 1
[ 0.408053] Unpacking initramfs...
[ 4.561766] Freeing initrd memory: 7472k freed
[ 4.632344] Meraki Topaz Init
[ 4.637331] Freescale MPC85xx CPU frequency switching(JOG) driver
[ 4.643418] cpufreq: Setting core0 frequency to 1066666 kHz and PLL ratio to 4:2
[ 4.650730] cpufreq: Setting core0 frequency to 1066666 kHz and PLL ratio to 4:2
[ 4.658120] cpufreq: Setting core1 frequency to 1066666 kHz and PLL ratio to 4:2
[ 4.665465] cpufreq: Setting core1 frequency to 1066666 kHz and PLL ratio to 4:2
[ 4.793917] msgmni has been set to 493
[ 4.801527] alg: No test for stdrng (krng)
[ 4.805625] io scheduler noop registered
[ 4.809478] io scheduler deadline registered (default)
[ 4.817028] Serial: 8250/16550 driver, 1 ports, IRQ sharing enabled
; s66=&*00V43482%0=4!15-mrªconsole [ttyS0] enabled, bootconsole disabled
[ 4.838535] console [ttyS0] enabled, bootconsole disabled
[ 4.861861] NAND device: Manufacturer ID: 0x98, Chip ID: 0xd1 (Toshiba NAND 128MiB 3,3V 8-bit)
[ 4.871691] Bad block table found at page 65472, version 0x01
[ 4.878057] Bad block table found at page 65408, version 0x01
[ 4.884406] 4 ofpart partitions found on MTD device ff800000.flash
[ 4.890602] Creating 4 MTD partitions on "ff800000.flash":
[ 4.896087] 0x000000000000-0x000000100000 : "firmware"
[ 4.905214] 0x000000100000-0x000000200000 : "factory"
[ 4.917556] 0x000000200000-0x000008000000 : "ubi"
[ 4.927096] 0x000000000000-0x000008000000 : "all"
[ 4.937420] eLBC NAND device at 0xff800000, bank 0
[ 4.947587] UBI: attaching mtd2 to ubi0
[ 4.951447] UBI: physical eraseblock size: 131072 bytes (128 KiB)
[ 4.957717] UBI: logical eraseblock size: 129024 bytes
[ 4.963112] UBI: smallest flash I/O unit: 2048
[ 4.967812] UBI: sub-page size: 512
[ 4.972423] UBI: VID header offset: 512 (aligned 512)
[ 4.978248] UBI: data offset: 2048
[ 5.212115] UBI: max. sequence number: 2395739
[ 5.230478] UBI: attached mtd2 to ubi0
[ 5.234251] UBI: MTD device name: "ubi"
[ 5.239035] UBI: MTD device size: 126 MiB
[ 5.243989] UBI: number of good PEBs: 1004
[ 5.248683] UBI: number of bad PEBs: 4
[ 5.253117] UBI: number of corrupted PEBs: 0
[ 5.257551] UBI: max. allowed volumes: 128
[ 5.262159] UBI: wear-leveling threshold: 4096
[ 5.266853] UBI: number of internal volumes: 1
[ 5.271287] UBI: number of user volumes: 4
[ 5.275721] UBI: available PEBs: 651
[ 5.280329] UBI: total number of reserved PEBs: 353
[ 5.285197] UBI: number of PEBs reserved for bad PEB handling: 20
[ 5.291280] UBI: max/mean erase counter: 2478/2386
[ 5.296060] UBI: image sequence number: 1448629305
[ 5.301536] UBI: background thread "ubi_bgt0d" started, PID 433
[ 5.349447] Freescale PowerQUICC MII Bus: probed
[ 5.356859] Freescale PowerQUICC MII Bus: probed
[ 5.392888] fsl-gianfar ethernet.1: eth0: mac: 00:01:73:01:23:42
[ 5.398932] fsl-gianfar ethernet.1: eth0: Running with NAPI enabled
[ 5.405195] fsl-gianfar ethernet.1: eth0: RX BD ring size for Q[0]: 256
[ 5.411800] fsl-gianfar ethernet.1: eth0: RX BD ring size for Q[1]: 256
[ 5.418405] fsl-gianfar ethernet.1: eth0: RX BD ring size for Q[2]: 256
[ 5.425011] fsl-gianfar ethernet.1: eth0: RX BD ring size for Q[3]: 256
[ 5.431619] fsl-gianfar ethernet.1: eth0: RX BD ring size for Q[4]: 256
[ 5.438224] fsl-gianfar ethernet.1: eth0: RX BD ring size for Q[5]: 256
[ 5.444829] fsl-gianfar ethernet.1: eth0: RX BD ring size for Q[6]: 256
[ 5.451443] fsl-gianfar ethernet.1: eth0: RX BD ring size for Q[7]: 256
[ 5.458059] fsl-gianfar ethernet.1: eth0: TX BD ring size for Q[0]: 256
[ 5.464665] fsl-gianfar ethernet.1: eth0: TX BD ring size for Q[1]: 256
[ 5.471271] fsl-gianfar ethernet.1: eth0: TX BD ring size for Q[2]: 256
[ 5.477875] fsl-gianfar ethernet.1: eth0: TX BD ring size for Q[3]: 256
[ 5.484480] fsl-gianfar ethernet.1: eth0: TX BD ring size for Q[4]: 256
[ 5.491084] fsl-gianfar ethernet.1: eth0: TX BD ring size for Q[5]: 256
[ 5.497689] fsl-gianfar ethernet.1: eth0: TX BD ring size for Q[6]: 256
[ 5.504295] fsl-gianfar ethernet.1: eth0: TX BD ring size for Q[7]: 256
[ 5.514939] i2c /dev entries driver
[ 5.519340] mpc-i2c ffe03000.i2c: timeout 1000000 us
[ 5.531541] mpc-i2c ffe03100.i2c: timeout 1000000 us
[ 5.538872] rtc-ds3232: probe of 1-0068 failed with error -5
[ 5.549042] ina2xx 0-0045: power monitor ina219 (Rshunt = 10000 uOhm)
[ 5.556799] booke_wdt: powerpc book-e watchdog driver loaded
[ 5.562843] cpufreq: Setting core0 frequency to 1066666 kHz and PLL ratio to 4:2
[ 5.570264] cpufreq: Setting core1 frequency to 1066666 kHz and PLL ratio to 4:2
[ 5.577663] cpuidle: using governor ladder
[ 5.581756] cpuidle: using governor menu
[ 5.593021] TCP: bic registered
[ 5.596220] TCP: cubic registered
[ 5.599533] TCP: westwood registered
[ 5.603108] TCP: htcp registered
[ 5.606337] NET: Registered protocol family 17
[ 5.618803] /mnt/jenkins/workspace/router/prod-signing/router-25-6/linux-3.4/drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[ 5.631204] devtmpfs: mounted
[ 5.634574] Freeing unused kernel memory: 152k freed
init started: BusyBox v1.24.1 (2018-09-28 16:55:57 PDT)
[ 5.802217] UBIFS: recovery needed
[ 5.896521] UBIFS: recovery completed
[ 5.900192] UBIFS: mounted UBI device 0, volume 3, name "storage"
[ 5.906280] UBIFS: file system size: 7354368 bytes (7182 KiB, 7 MiB, 57 LEBs)
[ 5.913586] UBIFS: journal size: 1032193 bytes (1008 KiB, 0 MiB, 6 LEBs)
[ 5.920802] UBIFS: media format: w4/r0 (latest is w4/r0)
[ 5.926626] UBIFS: default compressor: lzo
[ 5.930716] UBIFS: reserved for root: 347364 bytes (339 KiB)
WARNING! THIS CONSOLE IS LOGGED! UNAUTH[ 5.959884] storage-recovery: /storage mounted RW, monitoring
ORIZED ACCESS FORBIDDEN!
<Meraki> [ 5.990144] Sat Jan 1 00:00:00 UTC 2000
[ 6.065009] Quick boot reason lookup:
[ 6.070555] No valid safe config available or fallback disabled, remove unsafe config
[ 6.091251] sysctl: error: 'vm.extfrag_threshold' is an unknown key
[ 6.118643] Cannot change large-receive-offload
[ 6.124701] Cannot set device coalesce parameters: No such device
[ 6.157851] wl: module license 'Proprietary' taints kernel.
[ 6.294956] apr2v0: Broadcom BCMa8dc 802.11 Wireless Controller 6.37.14.105_e1.4.1.5 (r485445)
[ 6.337861] apr1v0: Broadcom BCM43a2 802.11 Wireless Controller 6.37.14.105_e1.4.1.5 (r485445)
[ 6.489414] apr0v0: Broadcom BCM4331 802.11 Wireless Controller 6.37.14.105_e1.4.1.5 (r485445)
[ 6.531758] setting trigger mode 0 for irq 32 failed (mpc8xxx_irq_set_type+0x0/0xc0)
[ 6.541835] sh: write error: Device or resource busy
[ 6.548389] ln: /meraki_gpio/reset_switch: File exists
[ 6.553905] setting trigger mode 0 for irq 33 failed (mpc8xxx_irq_set_type+0x0/0xc0)
[ 6.564286] setting trigger mode 0 for irq 35 failed (mpc8xxx_irq_set_type+0x0/0xc0)
[ 6.574545] setting trigger mode 0 for irq 36 failed (mpc8xxx_irq_set_type+0x0/0xc0)
[ 6.695070] sysctl -w vm.panic_on_oom=2
[ 6.701722] vm.panic_on_oom = 2
[ 6.811864] click: starting router thread pid 935 (cc1be100)
[ 6.859575] elts_meraki: module license 'unspecified' taints kernel.
[ 7.076329] Single synchronous check for reset
[ 7.099402]
[ 7.105733] boot 82 build 25-201809281433-G5614545c-rel-lawn board topaz-powerpc mac 00:18:0A:A4:F3:60
[ 7.118774] Module: wl .text=0xd0e83000 .data=0xd11ec954 .bss=0xd126e3b8
[ 7.118780] Module: dummy .text=0xd12fd000 .data=0xd12fd628 .bss=
[ 7.118784] Module: proclikefs .text=0xd1311000 .data= .bss=0xd1311dc0
[ 7.118787] Module: merakiclick .text=0xd1564000 .data=0xd1679c80 .bss=0xd167a120
[ 7.118791] Module: elts_meraki .text=0xd1c6e000 .data=0xd1f43728 .bss=0xd1f44e20
[ 7.172118] ramoops: platform device not found, using module parameters
[ 7.202151] phram: phram-oops device: 0x100000 at 0xff00000
[ 7.242248] 1+0 records in
[ 7.245202] 1+0 records out
[ 7.248233] 1048576 bytes (1.0MB) copied, 0.016244 seconds, 61.6MB/s
[ 8.350836]
[ 8.350840] !!!!! {/usr/bin/brain} opening /click/wlan_event/driver_reload failed: No such file or directory
[ 8.389114] brain: unloading click config
[ 8.393378] brain: spring cleaning pages
[ 8.657503] wlc_enable_probe_req: wl0: state down, deferring setting of host flags
[ 8.666814] wl0: _wl_add_meraki_monitor_if
[ 8.805447] brain: loading click config
[ 9.593275]
[ 9.593279] !!!!! {/usr/bin/brain} forkexec failed with status 254 cmd -wl -i apr0v0 wnm_maxidle 300
[ 9.631419] wlc_enable_probe_req: wl0: state down, deferring setting of host flags
[ 9.639321] wl0: wlc_create_dfs_mute_chspec: default chanspec returned is:
[ 9.646193] chanspec: 1006 (6)
[ 9.649244] Bandwidth 20 Mhz Channel band 2G
[ 9.653525] wl0: wlc_dfs_chanspec: Forced channel 1006(6) being selected.
...a bunch of similar logs to the last six lines...
<Meraki>
see next post.