Comfast cf-e320n-v2 kernel 5 firmware

are there any plans to put out a kernel 5 firmware for the e320n-v2 ? If not what are the limitations of this model preventing the release of a 5 firmware ?

Transition to ath79, probably.

do you mean we wait for the ath79 to be ported to support e320n-v2 or e320n-v2 should be considered EOL with regards to kernel 5?

AFAIK a lot of devices needs to be migrated, and I'm not familiar with the progress, it's not a target i use myself.

Check the git commits, if you can see the progress for your device.

1 Like

Something I needed myself, so I tried to clone the process based on the COMFAST CF-E375AC commit

This is my WIP branch/PR -> https://github.com/openwrt/openwrt/pull/4520

1 Like

Just following the github reviews for this device. Do we really need USB modules to be loaded considering I don't see any USB ports for this device.

You are right, there are no visible USB ports on the devices, not sure why I added them them to the files, maybe I saw them in the old commits for the devices (ar71xx commits)

I updated the PR.

The kernel log for the e320n. I detects a USB hub but there are no USB ports.

[    0.000000] Linux version 4.14.171 (builder@buildhost) (gcc version 7.5.0 (OpenWrt GCC 7.5.0 r10947-65030d81f3)) #0 Thu Feb 27 21:05:12 2020
[    0.000000] MyLoader: sysp=b1b462d7, boardp=28985b0f, parts=03225425
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[    0.000000] SoC: Qualcomm Atheros QCA9533 ver 2 rev 0
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 04000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    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] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] On node 0 totalpages: 16384
[    0.000000] free_area_init_node: node 0, pgdat 804ead30, node_mem_map 81000020
[    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] random: get_random_bytes called from 0x804ee740 with crng_init=0
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line:  board=CF-E320N-V2 mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,16192k(firmware),64k(art-backup)ro console=ttyS0,115200 rootfstype=squashfs 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: 59320K/65536K available (3947K kernel code, 192K rwdata, 516K rodata, 328K init, 212K bss, 6216K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 51
[    0.000000] Clocks: CPU:650.000MHz, DDR:391.992MHz, AHB:216.666MHz, Ref:25.000MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 5880801374 ns
[    0.000009] sched_clock: 32 bits at 325MHz, resolution 3ns, wraps every 6607641598ns
[    0.008269] Calibrating delay loop... 432.53 BogoMIPS (lpj=2162688)
[    0.074873] pid_max: default: 32768 minimum: 301
[    0.079988] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.086969] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.097126] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.107571] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.115550] NET: Registered protocol family 16
[    0.122031] MIPS: machine is COMFAST CF-E320N v2
[    0.629170] clocksource: Switched to clocksource MIPS
[    0.635890] NET: Registered protocol family 2
[    0.641565] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.648930] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.655719] TCP: Hash tables configured (established 1024 bind 1024)
[    0.662630] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.668815] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.675825] NET: Registered protocol family 1
[    0.680508] PCI: CLS 0 bytes, default 32
[    0.685384] Crashlog allocated RAM at address 0x3f00000
[    0.692729] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[    0.705459] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.711669] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.734663] io scheduler noop registered
[    0.738804] io scheduler deadline registered (default)
[    0.744826] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.754028] console [ttyS0] disabled
[    0.777980] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 1562500) is a 16550A
[    0.787101] console [ttyS0] enabled
[    0.794661] bootconsole [early0] disabled
[    0.812286] m25p80 spi0.0: found w25q128, expected m25p80
[    0.827591] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.832527] 4 cmdlinepart partitions found on MTD device spi0.0
[    0.838633] Creating 4 MTD partitions on "spi0.0":
[    0.843618] 0x000000000000-0x000000010000 : "u-boot"
[    0.851026] 0x000000010000-0x000000020000 : "art"
[    0.857673] 0x000000020000-0x000000ff0000 : "firmware"
[    0.887526] 2 uimage-fw partitions found on MTD device firmware
[    0.893695] 0x000000020000-0x0000001b0000 : "kernel"
[    0.899764] 0x0000001b0000-0x000000ff0000 : "rootfs"
[    0.905699] mtd: device 4 (rootfs) set to be root filesystem
[    0.911667] 1 squashfs-split partitions found on MTD device rootfs
[    0.918075] 0x000000420000-0x000000ff0000 : "rootfs_data"
[    0.927221] 0x000000ff0000-0x000001000000 : "art-backup"
[    0.935741] libphy: Fixed MDIO Bus: probed
[    0.972799] libphy: ag71xx_mdio: probed
[    1.601743] ag71xx-mdio.1: Found an AR934X built-in switch
[    1.655043] eth0: Atheros AG71xx at 0xba000000, irq 5, mode: gmii
[    2.292211] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.1:04 [uid=004dd042, driver=Generic PHY]
[    2.302373] eth1: Atheros AG71xx at 0xb9000000, irq 4, mode: mii
[    2.310850] NET: Registered protocol family 10
[    2.321612] Segment Routing with IPv6
[    2.325525] NET: Registered protocol family 17
[    2.330278] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.344418] 8021q: 802.1Q VLAN Support v1.8
[    2.350881] hctosys: unable to open rtc device (rtc0)
[    2.362391] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[    2.372448] Freeing unused kernel memory: 328K
[    2.377038] This architecture does not have kernel memory protection.
[    2.539185] random: fast init done
[    3.097103] init: Console is alive
[    3.101063] init: - watchdog -
[    4.180150] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    4.246707] usbcore: registered new interface driver usbfs
[    4.252556] usbcore: registered new interface driver hub
[    4.258168] usbcore: registered new device driver usb
[    4.269945] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.278730] ehci-platform: EHCI generic platform driver
[    4.284331] ehci-platform ehci-platform: EHCI Host Controller
[    4.290363] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1
[    4.300712] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
[    4.329219] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
[    4.336619] hub 1-0:1.0: USB hub found
[    4.341086] hub 1-0:1.0: 1 port detected
[    4.346588] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.364721] init: - preinit -
[    5.028242] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    5.060049] random: procd: uninitialized urandom read (4 bytes read)
[    6.660630] eth0: link up (1000Mbps/Full duplex)
[    6.665455] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    8.442288] jffs2: notice: (417) jffs2_build_xattr_subsystem: complete building xattr subsystem, 23 of xdatum (3 unchecked, 20 orphan) and 54 of xref (24 dead, 0 orphan) found.
[    8.461004] mount_root: switching to jffs2 overlay
[    8.495563] overlayfs: upper fs does not support tmpfile.
[    8.507679] urandom-seed: Seeding with /etc/urandom.seed
[    8.697280] eth0: link down
[    8.716357] procd: - early -
[    8.719619] procd: - watchdog -
[    9.372597] procd: - watchdog -
[    9.376266] procd: - ubus -
[    9.491535] random: ubusd: uninitialized urandom read (4 bytes read)
[    9.500328] random: ubusd: uninitialized urandom read (4 bytes read)
[    9.507446] random: ubusd: uninitialized urandom read (4 bytes read)
[    9.515174] procd: - init -
[   10.331033] kmodloader: loading kernel modules from /etc/modules.d/*
[   10.370480] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   10.398937] Loading modules backported from Linux version v4.19.98-0-gd183c8e2647a
[   10.406858] Backport generated by backports.git v4.19.98-1-0-g8204eb99
[   10.432093] ip_tables: (C) 2000-2006 Netfilter Core Team
[   10.458634] nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
[   10.613392] xt_time: kernel timezone is -0000
[   10.765173] PPP generic driver version 2.4.2
[   10.780354] NET: Registered protocol family 24
[   10.824042] urngd: v1.0.2 started.
[   10.865712] ath: EEPROM regdomain: 0x0
[   10.865724] ath: EEPROM indicates default country code should be used
[   10.865727] ath: doing EEPROM country->regdmn map search
[   10.865746] ath: country maps to regdmn code: 0x3a
[   10.865752] ath: Country alpha2 being used: US
[   10.865756] ath: Regpair used: 0x3a
[   10.880675] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   10.883053] ieee80211 phy0: Atheros AR9531 Rev:2 mem=0xb8100000, irq=47
[   11.029704] kmodloader: done loading kernel modules from /etc/modules.d/*
[   11.481988] random: crng init done
[   11.485529] random: 6 urandom warning(s) missed due to ratelimiting
[   24.477916] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   24.519133] br-VLAN100: port 1(eth0.100) entered blocking state
[   24.525350] br-VLAN100: port 1(eth0.100) entered disabled state
[   24.531907] device eth0.100 entered promiscuous mode
[   24.537045] device eth0 entered promiscuous mode
[   24.581136] IPv6: ADDRCONF(NETDEV_UP): br-VLAN100: link is not ready
[   24.850641] br-VLAN2: port 1(eth0.2) entered blocking state
[   24.856424] br-VLAN2: port 1(eth0.2) entered disabled state
[   24.862690] device eth0.2 entered promiscuous mode
[   24.910953] IPv6: ADDRCONF(NETDEV_UP): br-VLAN2: link is not ready
[   25.218098] br-VLAN200: port 1(eth0.200) entered blocking state
[   25.224311] br-VLAN200: port 1(eth0.200) entered disabled state
[   25.230849] device eth0.200 entered promiscuous mode
[   25.314765] IPv6: ADDRCONF(NETDEV_UP): br-VLAN200: link is not ready
[   25.340892] br-lan: port 1(eth0) entered blocking state
[   25.346311] br-lan: port 1(eth0) entered disabled state
[   25.397647] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   25.455513] br-wan: port 1(eth1) entered blocking state
[   25.461020] br-wan: port 1(eth1) entered disabled state
[   26.040505] eth0: link up (1000Mbps/Full duplex)
[   26.056569] device eth1 entered promiscuous mode
[   26.066939] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   26.073795] br-lan: port 1(eth0) entered blocking state
[   26.079246] br-lan: port 1(eth0) entered forwarding state
[   26.099774] IPv6: ADDRCONF(NETDEV_UP): br-wan: link is not ready
[   26.153968] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   26.161091] br-VLAN2: port 1(eth0.2) entered blocking state
[   26.166862] br-VLAN2: port 1(eth0.2) entered forwarding state
[   26.173258] br-VLAN100: port 1(eth0.100) entered blocking state
[   26.179411] br-VLAN100: port 1(eth0.100) entered forwarding state
[   26.186277] br-VLAN200: port 1(eth0.200) entered blocking state
[   26.192467] br-VLAN200: port 1(eth0.200) entered forwarding state
[   26.559010] IPv6: ADDRCONF(NETDEV_CHANGE): br-VLAN2: link becomes ready
[   26.566323] IPv6: ADDRCONF(NETDEV_CHANGE): br-VLAN100: link becomes ready
[   26.573697] IPv6: ADDRCONF(NETDEV_CHANGE): br-VLAN200: link becomes ready
[   29.003125] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   31.959430] wlan0: authenticate with 14:4d:67:21:b5:74
[   31.978652] wlan0: send auth to 14:4d:67:21:b5:74 (try 1/3)
[   31.986258] wlan0: authenticated
[   32.000024] wlan0: associate with 14:4d:67:21:b5:74 (try 1/3)
[   32.011333] wlan0: RX AssocResp from 14:4d:67:21:b5:74 (capab=0x411 status=0 aid=2)
[   32.019755] wlan0: associated
[   33.019126] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

photo of cf e320n-V2 internals

Probably the controller from the QCA9531 chip.

1 Like

Hi @papdee , by any chance, do you have a picture of the other side as well ?

1 Like

Hi rabin,

Would you consider building a dumb AP firmware for this device. Dumb being the keyword here. No firewall, no dhcpd, no dnsmasq. Only the the services needed for a really dumb AP. If at some stage someone wanted the firewall or dhcp or dns services they could easily install it via opkg anyway.

These are ceiling mount APs and specifically built for business venues. I can't ever imagine them being used for anything else.

Hi @papdee ,

I really like to, at the moment the is PR to bring this device back to the 21.02 branch, But I'm still struggling with it. I'm basically trying to "copy & paste" the old code from 19.07 branch which was based on ar71xx to the new one ath79.

I'm currently getting guidance from people at OpenWRT Github and trying to make the necessary changes to merge the code. But the reality is I do not have much time to spend on it, life and everything. So it coming slow.

Development needs to be done against master, not stable release branches - chances for new device support being backported from master to openwrt-21.02 are low at best (possible, if you can convince a developer, but a rare exception, not a rule).

Good to know,
My PR is against master/main, The intention was for the code to merge/cherry-picked into the 21.02 branch.