Porting guide ar71xx to ath79?


#810

Hello
I am adding support for tl-wr841-v8 in tiny targets
Apart from the work needed for dts and etc scripts, the target have been added in tiny-tp-link.mk with this entry:

define Device/tplink_tl-wr841-v8
  $(Device/tplink-4mlzma)
  ATH_SOC := ar9341
  DEVICE_TITLE := TP-LINK TL-WR841N/ND v8
  TPLINK_HWID := 0x08410008
  SUPPORTED_DEVICES += tl-wr841-v8
endef
TARGET_DEVICES += tplink_tl-wr841-v8

doing so the image generation works, but I only get:

menion@Menionubuntu:/media/storage/das1/temp/openwrt_ath79/bin/targets/ath79/tiny$ ls -la
total 3512
drwxr-xr-x 1 menion menion     280 Oct 16 16:52 .
drwxr-xr-x 1 menion menion       8 Oct 16 15:24 ..
-rw-r--r-- 1 menion menion     824 Oct 16 17:18 config.seed
-rw-r--r-- 1 menion menion    2893 Oct 16 17:23 openwrt-ath79-tiny-device-tplink-tl-wr841-v8.manifest
-rw-r--r-- 1 menion menion 3580071 Oct 16 17:23 openwrt-ath79-tiny-tplink_tl-wr841-v8-initramfs-kernel.bin
drwxr-xr-x 1 menion menion    3220 Oct 16 17:19 packages
-rw-r--r-- 1 menion menion     323 Oct 16 17:23 sha256sums
menion@Menionubuntu:/media/storage/das1/temp/openwrt_ath79/bin/targets/ath79/tiny$

This, looking at the size, should be sysupgrade, but shouldn't I get a factory and sysupgrade image, named with these suffix?


#811

Any news about the fixing way of this bug?
All new build from ath79 target works without working wifi LED'S - and that bothers me


#812

Like I wrote above, I have reverted the culprit commit in my own build so leds work again.

I have seen no reaction from @nbd so I guess that the Wi-Fi driver unloading possibility is seen as more important than the Wi-Fi led functionality.


#813

Sorry, I didn't get around to looking into this yet. I hope to find the time to look into this the next few days.


#815

How to correctly mount USB2 flashdrive ext4 on ath79 system? Migrated wr842ndv2 from ar71xx to ath79, copied fstab config as is. USB not mounting...

cat etc/config/fstab

config 'global'
	option	anon_swap	'0'
	option	anon_mount	'0'
	option	auto_swap	'1'
	option	auto_mount	'1'
	option	delay_root	'5'
	option	check_fs	'0'
config 'mount'
        option  target  'opt'
        option  uuid    'e3f4e526-f8bd-d301-a0f4-e526f8bdd301'>

dmesg

[    0.000000] Linux version 4.14.76 (@vm) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r8340-80c61c161a)) #0 Tue Oct 16 14:07:41 2018
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001974c (MIPS 74Kc)
[    0.000000] MIPS: machine is TP-Link TL-WR842N/ND v2
[    0.000000] SoC: Atheros AR9341 rev 3
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 02000000 @ 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-0x0000000001ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000] On node 0 totalpages: 8192
[    0.000000] free_area_init_node: node 0, pgdat 804bbc40, node_mem_map 81007c60
[    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] random: get_random_bytes called from start_kernel+0x8c/0x474 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: 8128
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[    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: 26112K/32768K available (3461K kernel code, 143K rwdata, 864K rodata, 1220K init, 201K bss, 6656K 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] CPU clock: 535.000 MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7144898866 ns
[    0.000011] sched_clock: 32 bits at 267MHz, resolution 3ns, wraps every 8027976190ns
[    0.008247] Calibrating delay loop... 266.64 BogoMIPS (lpj=1333248)
[    0.094814] pid_max: default: 32768 minimum: 301
[    0.099922] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.106917] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.119251] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.129664] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.136195] pinctrl core: initialized pinctrl subsystem
[    0.142857] NET: Registered protocol family 16
[    0.175779] clocksource: Switched to clocksource MIPS
[    0.182375] NET: Registered protocol family 2
[    0.187899] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.195264] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.202034] TCP: Hash tables configured (established 1024 bind 1024)
[    0.208901] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.215076] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.222072] NET: Registered protocol family 1
[    0.226748] PCI: CLS 0 bytes, default 32
[    0.231747] Crashlog allocated RAM at address 0x1f00000
[    0.238887] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[    0.251437] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.257639] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.278902] io scheduler noop registered
[    0.283040] io scheduler deadline registered (default)
[    0.288947] ar7200-usb-phy usb-phy: phy reset is missing
[    0.296841] pinctrl-single 1804002c.pinmux: 544 pins at pa b804002c size 68
[    0.304791] gpio-export gpio-export: 1 gpio(s) exported
[    0.311262] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[    0.318868] console [ttyS0] disabled
[    0.322692] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 8, base_baud = 1562500) is a 16550A
[    0.331849] console [ttyS0] enabled
[    0.339415] bootconsole [early0] disabled
[    0.367588] m25p80 spi0.0: s25fl064k (8192 Kbytes)
[    0.372599] 3 fixed-partitions partitions found on MTD device spi0.0
[    0.379193] Creating 3 MTD partitions on "spi0.0":
[    0.384148] 0x000000000000-0x000000020000 : "u-boot"
[    0.390299] 0x000000020000-0x0000007f0000 : "firmware"
[    0.412935] 2 tplink-fw partitions found on MTD device firmware
[    0.419110] 0x000000020000-0x00000018de00 : "kernel"
[    0.425158] 0x00000018de00-0x0000007f0000 : "rootfs"
[    0.431180] mtd: device 3 (rootfs) set to be root filesystem
[    0.437131] 1 squashfs-split partitions found on MTD device rootfs
[    0.443526] 0x000000450000-0x0000007f0000 : "rootfs_data"
[    0.450035] 0x0000007f0000-0x000000800000 : "art"
[    0.457187] libphy: Fixed MDIO Bus: probed
[    0.796204] libphy: ag71xx_mdio: probed
[    1.086117] mdio-bus.0:1f: Found an AR934X built-in switch
[    1.091986] libphy: ar7240sw_mdio: probed
[    1.487735] ag71xx 19000000.eth: connected to PHY at mdio-bus.0:1f:00 [uid=004dd042, driver=Generic PHY]
[    1.498293] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MII
[    1.837635] ag71xx 1a000000.eth: connected to PHY at fixed-0:00 [uid=00000000, driver=Generic PHY]
[    1.847733] eth1: Atheros AG71xx at 0xba000000, irq 5, mode:GMII
[    1.856583] NET: Registered protocol family 17
[    1.861257] 8021q: 802.1Q VLAN Support v1.8
[    1.876128] VFS: Mounted root (squashfs filesystem) readonly on device 31:3.
[    1.891213] Freeing unused kernel memory: 1220K
[    1.895923] This architecture does not have kernel memory protection.
[    2.535791] random: fast init done
[    2.694416] init: Console is alive
[    2.698282] init: - watchdog -
[    4.100938] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    4.270871] usbcore: registered new interface driver usbfs
[    4.276717] usbcore: registered new interface driver hub
[    4.282306] usbcore: registered new device driver usb
[    4.332512] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.351070] SCSI subsystem initialized
[    4.361053] ehci-platform: EHCI generic platform driver
[    4.366832] ehci-platform 1b000000.usb: EHCI Host Controller
[    4.372714] ehci-platform 1b000000.usb: new USB bus registered, assigned bus number 1
[    4.380968] ehci-platform 1b000000.usb: irq 3, io mem 0x1b000000
[    4.415834] ehci-platform 1b000000.usb: USB 2.0 started, EHCI 1.00
[    4.423270] hub 1-0:1.0: USB hub found
[    4.427610] hub 1-0:1.0: 1 port detected
[    4.437308] usbcore: registered new interface driver usb-storage
[    4.444616] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.454282] init: - preinit -
[    5.467780] random: jshn: uninitialized urandom read (4 bytes read)
[    5.651414] random: jshn: uninitialized urandom read (4 bytes read)
[    5.920899] random: jshn: uninitialized urandom read (4 bytes read)
[    7.123066] urandom_read: 4 callbacks suppressed
[    7.123076] random: procd: uninitialized urandom read (4 bytes read)
[    8.096927] eth1: link up (1000Mbps/Full duplex)
[   11.360596] mount_root: loading kmods from internal overlay
[   11.398791] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[   11.407733] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
[   11.656783] jffs2: notice: (463) jffs2_build_xattr_subsystem: complete building xattr subsystem, 6 of xdatum (2 unchecked, 3 orphan) and 15 of xref (3 dead, 0 orphan) found.
[   11.673403] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[   11.685355] block: ignoring mount section cfg024d78 due to invalid target 'opt'
[   11.693548] block: extroot: not configured
[   11.737020] jffs2: notice: (461) jffs2_build_xattr_subsystem: complete building xattr subsystem, 6 of xdatum (2 unchecked, 3 orphan) and 15 of xref (3 dead, 0 orphan) found.
[   11.889673] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[   11.900632] block: ignoring mount section cfg024d78 due to invalid target 'opt'
[   11.908816] block: extroot: not configured
[   11.914165] mount_root: switching to jffs2 overlay
[   11.948139] overlayfs: upper fs does not support tmpfile.
[   11.959704] urandom-seed: Seeding with /etc/urandom.seed
[   12.027208] procd: - early -
[   12.030353] procd: - watchdog -
[   12.335869] eth1: link down
[   12.669640] procd: - watchdog -
[   12.673237] procd: - ubus -
[   12.794732] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.868061] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.877026] procd: - init -
[   13.362203] kmodloader: loading kernel modules from /etc/modules.d/*
[   13.376868] tun: Universal TUN/TAP device driver, 1.6
[   13.388610] Loading modules backported from Linux version v4.19-rc5-0-g6bf4ca7fbc85
[   13.396602] Backport generated by backports.git v4.19-rc5-1-0-g05571dcd
[   13.411038] nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
[   13.491546] xt_time: kernel timezone is -0000
[   13.523140] ip_tables: (C) 2000-2006 Netfilter Core Team
[   13.624314] ath: EEPROM regdomain: 0x0
[   13.624325] ath: EEPROM indicates default country code should be used
[   13.624330] ath: doing EEPROM country->regdmn map search
[   13.624348] ath: country maps to regdmn code: 0x3a
[   13.624355] ath: Country alpha2 being used: US
[   13.624360] ath: Regpair used: 0x3a
[   13.640288] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   13.642107] ieee80211 phy0: Atheros AR9340 Rev:3 mem=0xb8100000, irq=2
[   13.756996] kmodloader: done loading kernel modules from /etc/modules.d/*
[   21.228977] eth1: link up (1000Mbps/Full duplex)
[   21.248416] br-lan: port 1(eth1.1) entered blocking state
[   21.254005] br-lan: port 1(eth1.1) entered disabled state
[   21.259984] device eth1.1 entered promiscuous mode
[   21.264943] device eth1 entered promiscuous mode
[   21.286953] br-lan: port 1(eth1.1) entered blocking state
[   21.292544] br-lan: port 1(eth1.1) entered forwarding state
[   23.458300] eth0: link up (100Mbps/Full duplex)
[   23.542286] ath: EEPROM regdomain: 0x81b8
[   23.542297] ath: EEPROM indicates we should expect a country code
[   23.542304] ath: doing EEPROM country->regdmn map search
[   23.542311] ath: country maps to regdmn code: 0x37
[   23.542319] ath: Country alpha2 being used: LT
[   23.542324] ath: Regpair used: 0x37
[   23.542331] ath: regdomain 0x81b8 dynamically updated by user
[   27.452703] br-lan: port 2(wlan0) entered blocking state
[   27.458289] br-lan: port 2(wlan0) entered disabled state
[   27.464094] device wlan0 entered promiscuous mode
[   28.818419] br-lan: port 2(wlan0) entered blocking state
[   28.823926] br-lan: port 2(wlan0) entered forwarding state
[   28.899502] br-lan: port 3(tap0) entered blocking state
[   28.904913] br-lan: port 3(tap0) entered disabled state
[   28.910752] device tap0 entered promiscuous mode
[   28.915655] br-lan: port 3(tap0) entered blocking state
[   28.921115] br-lan: port 3(tap0) entered forwarding state
[   80.685281] random: crng init done>

opkg list-installed

base-files - 196-r8340-80c61c161a
block-mount - 2018-05-23-dd02dad3-3
blockd - 2018-05-23-dd02dad3-3
busybox - 1.29.3-3
dnsmasq - 2.80rc1-2
dropbear - 2017.75-8
etherwake - 1.09-4
firewall - 2018-08-13-1c4d5bcd-2
fstools - 2018-05-23-dd02dad3-3
fwtool - 1
hostapd-common - 2018-05-21-62566bc2-5
iptables - 1.6.2-3
iw - 4.14-1
iwinfo - 2018-07-31-65b8333f-1
jshn - 2018-07-25-c83a84af-2
jsonfilter - 2018-02-04-c7e938d6-1
kernel - 4.14.76-1-9cc80a6ef9b694efa585ab89b3446157
kmod-ath - 4.14.76+4.19-rc5-1-1
kmod-ath9k - 4.14.76+4.19-rc5-1-1
kmod-ath9k-common - 4.14.76+4.19-rc5-1-1
kmod-cfg80211 - 4.14.76+4.19-rc5-1-1
kmod-crypto-crc32c - 4.14.76-1
kmod-crypto-hash - 4.14.76-1
kmod-fs-autofs4 - 4.14.76-1
kmod-fs-ext4 - 4.14.76-1
kmod-gpio-button-hotplug - 4.14.76-2
kmod-ipt-conntrack - 4.14.76-1
kmod-ipt-core - 4.14.76-1
kmod-ipt-nat - 4.14.76-1
kmod-ipt-offload - 4.14.76-1
kmod-lib-crc16 - 4.14.76-1
kmod-mac80211 - 4.14.76+4.19-rc5-1-1
kmod-nf-conntrack - 4.14.76-1
kmod-nf-flow - 4.14.76-1
kmod-nf-ipt - 4.14.76-1
kmod-nf-nat - 4.14.76-1
kmod-nf-reject - 4.14.76-1
kmod-nls-base - 4.14.76-1
kmod-phy-ath79-usb - 4.14.76-1
kmod-scsi-core - 4.14.76-1
kmod-tun - 4.14.76-1
kmod-usb-core - 4.14.76-1
kmod-usb-ehci - 4.14.76-1
kmod-usb-ledtrig-usbport - 4.14.76-1
kmod-usb-storage - 4.14.76-1
kmod-usb2 - 4.14.76-1
libblobmsg-json - 2018-07-25-c83a84af-2
libc - 1.1.20-1
libgcc - 7.3.0-1
libip4tc - 1.6.2-3
libiwinfo - 2018-07-31-65b8333f-1
libjson-c - 0.12.1-2
libjson-script - 2018-07-25-c83a84af-2
liblzo - 2.10-1
libnl-tiny - 0.1-5
libopenssl - 1.0.2p-1
libpthread - 1.1.20-1
libubox - 2018-07-25-c83a84af-2
libubus - 2018-10-06-221ce7e7-1
libuci - 2018-08-11-4c8b4d6e-1
libuclient - 2018-08-03-ae1c656f-1
libxtables - 1.6.2-3
logd - 2018-02-14-128bc35f-2
netifd - 2018-10-02-a117e414-2
openvpn-openssl - 2.4.5-7
openwrt-keyring - 2018-05-18-103a32e9-1
opkg - 2017-12-07-3b417b9f-2
procd - 2018-10-11-94944ab0-2
swconfig - 11
uboot-envtools - 2018.03-2
ubox - 2018-02-14-128bc35f-2
ubus - 2018-10-06-221ce7e7-1
ubusd - 2018-10-06-221ce7e7-1
uci - 2018-08-11-4c8b4d6e-1
uclient-fetch - 2018-08-03-ae1c656f-1
usign - 2015-07-04-ef641914-1
wireless-regdb - 2017-10-20-4343d359
wpad-basic - 2018-05-21-62566bc2-5>

Ath79 builds with all kmod packages through opkg [flow offloading]
#816

Fix your setting.


#817

Tried different targets. No use. Drive is not mounted


#818

I see error in bootlog. Try edit fstab like this:

config 'mount'
option target '/data'
option uuid 'e3f4e526-f8bd-d301-a0f4-e526f8bdd301'
option  fstype  'ext4'
option  enabled '1'

#819

Your storage device is detected? I cannot find any logs.


#820

That is my problem. If I compile ar71xx it works, so it drive is functional. @leeandy did not work :frowning: (logs the same)


#822

The same. I will recompile with usbutils and check out. Thanks


#823

@h8red
On my ath79 router, default mount point is /mnt/sda1. When i'm change mount point to example /opt, it worked too.
I think you need recheck partitions of usb device.

OpenWrt SNAPSHOT, r8340-80c61c161a

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 5.5M      5.5M         0 100% /rom
tmpfs                    60.9M    608.0K     60.3M   1% /tmp
/dev/mtdblock8           24.6M   1020.0K     23.6M   4% /overlay
overlayfs:/overlay       24.6M   1020.0K     23.6M   4% /
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda1                 7.4G     17.0M      7.0G   0% /mnt/sda1
root@OpenWrt:~# ls /dev/sd*
/dev/sda   /dev/sda1
root@OpenWrt:~# cat /etc/config/fstab

config global
	option anon_swap '0'
	option anon_mount '0'
	option auto_swap '1'
	option auto_mount '1'
	option delay_root '5'
	option check_fs '0'

config mount
	option target '/mnt/sda1'
	option uuid '08d46a9c-6104-4f91-92dd-4cc994783870'
	option enabled '1'

If i'm delete /opt directory, my bootlog doesn't same of you.

[   14.331944] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[   14.347373] block: extroot: not configured
[   14.352498] mount_root: switching to jffs2 overlay
[   14.429412] overlayfs: upper fs does not support tmpfile

root@OpenWrt:~# ls /opt
ls: /opt: No such file or directory
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 5.5M      5.5M         0 100% /rom
tmpfs                    60.9M     72.0K     60.9M   0% /tmp
/dev/mtdblock8           24.6M   1020.0K     23.6M   4% /overlay
overlayfs:/overlay       24.6M   1020.0K     23.6M   4% /
tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~# cat /etc/config/fstab

config global
	option anon_swap '0'
	option anon_mount '0'
	option auto_swap '1'
	option auto_mount '1'
	option delay_root '5'
	option check_fs '0'

config mount
	option target '/opt'
	option uuid '08d46a9c-6104-4f91-92dd-4cc994783870'
	option enabled '1'


#824

df -h

Filesystem Size Used Available Use% Mounted on
/dev/root 2.8M 2.8M 0 100% /rom
tmpfs 13.3M 464.0K 12.9M 3% /tmp
/dev/mtdblock4 3.6M 288.0K 3.3M 8% /overlay
overlayfs:/overlay 3.6M 288.0K 3.3M 8% /
tmpfs 512.0K 0 512.0K 0% /dev>

Maybe I need kmod-usb-ohci or kmod-usb-uhci packages?


#825

Not need, -uhci/ohci for support legacy usb v1 devices.


#826

Can`t even see it in /dev. Led is not lit also (did not check on ar71xx target...) No sda found. Rechecked drive, reformatted. Weired stuff

block info

/dev/mtdblock3: UUID="d814a633-e2524db8-3e81bd7b-4920acf2" VERSION="4.0" MOUNT="/rom" TYPE="squashfs"
/dev/mtdblock4: MOUNT="/overlay" TYPE="jffs2"


#827

What is model router ? what external usb device ?


#828

Tplink wr842 v2. USB kingston 8 GB
Going back to ar71xx target for time being. USB is essential for my setup


#829

Hello,

I would like to contribute with the migration.

There is some place to see who is working on which device migration and the status?

Salu2


#830

You can see pull requests on github and also some info on the mailing list.


#831

Would it better to track the status, progress and "who is porting which device" with something like a Google spreadsheet or some 'todo' lists for teams?

I could create one with easy structure if people are interested.

Salu2