Porting guide ar71xx to ath79?

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?

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

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.

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.

6 Likes

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>

Fix your setting.

Tried different targets. No use. Drive is not mounted

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'

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

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

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

@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'

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?

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

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"

What is model router ? what external usb device ?

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

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

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

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