BPI-R4 Ubuntu Image

Hi @frank-w

According to the pipeline workflow of Images repo, what are the purposes of adding replacehostapd=1 and replaceiperf=1?

It replaces binaries (installing to different location to be used instead of the distribution version) for hostapd and iperf(3) with a most recent version because the versions shipped by ubuntu/debian were too old for wifi7 (missing SAE) and iperf had issues while rss/lro tests.

These binaries are built by my arm-crosscompile repo and downloaded by the image builder scripts.

What if the sourcefiles_bpi-r4.conf contains both “replaceiperf=1” and "userpackages=“iperf3"”?

I see the build script would install your pre-built iperf binaries first, then it runs “apt install” for iperf3. Would it be your binaries or the distributed version?

It would install distribution package and then install the selfcompiled binary.

For self compiled iperf i only set a prefix where build puts the output files

And in images repo i extract these to /usr/local

Normally /usr/local/bin is used before/usr/bin. You can delete the files in /usr/local/bin and then iperf3 command uses the distribution version.

You can check this with “which” command. Preferred command is defined by PATH env variable.

@frank-w

Notice that I’m testing on Uboot 2025-10 and Linux 6.17.0 for Ubuntu noble emmc.

It got stuck at the kernel boot process:

F0: 102B 0000
FA: 1042 0000
FA: 1042 0000 [0200]
F9: 1041 0000
F3: 1006 0033 [0200]
F3: 4001 00E0 [0200]
F3: 0000 0000
V0: 0000 0000 [0001]
00: 0000 0000
BP: 0600 0041 [0000]
G0: 1190 0000
EC: 0000 0000 [2000]
MK: 0000 0000 [0000]
T0: 0000 01FF [0101]
Jump to BL

NOTICE:  BL2: v2.12.0(release):822d09ff94e-bpi-r4-emmc
NOTICE:  BL2: Built : 10:54:25, Oct 13 2025
NOTICE:  WDT: Cold boot
NOTICE:  WDT: disabled
NOTICE:  CPU: MT7988
NOTICE:  EMI: Using DDR unknown settings
NOTICE:  EMI: Detected DRAM size: 4096 MB
NOTICE:  EMI: complex R/W mem test passed
NOTICE:  LVTS: Enable thermal HW reset
NOTICE:  BL2: Booting BL31
NOTICE:  BL31: v2.12.0(release):822d09ff94e-bpi-r4-emmc
NOTICE:  BL31: Built : 10:54:29, Oct 13 2025


U-Boot 2025.10-bpi-g00eb041e0df8-dirty (Oct 13 2025 - 10:54:02 +0800)

CPU:   MediaTek MT7988
Model: mt7988-rfb
DRAM:  4 GiB
Core:  66 devices, 24 uclasses, devicetree: separate
MMC:   mmc@11230000: 0
Loading Environment from UBI... spi-nand: spi_nand spi_nand@0: Winbond SPI NAND was found.
spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
jedec_spi_nor spi_nor@0: unrecognized JEDEC id bytes: ff, ff, ff
Volume ubootenv not found!

** Unable to read env from ubi:ubootenv **
In:    serial@11000000
Out:   serial@11000000
Err:   serial@11000000
=> board_late_init...
bootmedia:emmc
Net:   MediaTek MT7988 built-in switch

Warning: ethernet@15110100 (eth0) using random MAC address - 36:b1:31:13:8a:f2
eth0: ethernet@15110100
Hit any key to stop autoboot: 0
35 bytes read in 1 ms (34.2 KiB/s)


  *** U-Boot Boot Menu ***

      1. Enter kernel-name to boot from SD/EMMC.
      2. Boot kernel from TFTP.
      3. Boot from SD/EMMC.
      4. Boot kernel from NVME.
      5. Boot kernel from UBI.
      0. Exit


  Press UP/DOWN to move, ENTER to select, ESC to quit




## Error: "initrd" not defined
EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x1
BOOT_PARTITION_ENABLE: 0x1 (boot0)
PARTITION_ACCESS: 0x0 (user)
emmc available
bootconf=#conf-base
fit=bpi-r4.itb
9994840 bytes read in 669 ms (14.2 MiB/s)
No UBIFS volume mounted!
## Loading kernel (any) from FIT Image at 46000000 ...
   Using 'conf-base' configuration
   Trying 'kernel-1' kernel subimage
     Description:  Linux Kernel 6.17.0-main
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x460000e8
     Data Size:    9809511 Bytes = 9.4 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x44000000
     Entry Point:  0x44000000
     Hash algo:    sha1
     Hash value:   bd33f14be4b1bdd7b0444481edf806ff068b8d46
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt (any) from FIT Image at 46000000 ...
   Using 'conf-base' configuration
   Trying 'fdt-base' fdt subimage
     Description:  Flattened Device Tree blob BPI-R4 dual SFP+
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x4695b05c
     Data Size:    33164 Bytes = 32.4 KiB
     Architecture: AArch64
     Load Address: 0x47000000
     Hash algo:    sha1
     Hash value:   f1cd4bb3346cf215a4c1b3c580923e3bb49e9ca5
   Verifying Hash Integrity ... sha1+ OK
   Loading fdt from 0x4695b05c to 0x47000000
   Booting using the fdt blob at 0x47000000
Working FDT set to 47000000
   Uncompressing Kernel Image to 44000000
   Loading Device Tree to 00000000fe7ef000, end 00000000fe7fa18b ... OK
Working FDT set to fe7ef000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd090]
[    0.000000] Linux version 6.17.0-bpi-r4-main (ubuntu@c40702609f18) (aarch64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #1 SMP Mon Oct 13 11:24:52 CST 2025
[    0.000000] Machine model: Banana Pi BPI-R4 (2x SFP+)
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000011000000 (options '')
[    0.000000] printk: legacy bootconsole [uart8250] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] OF: reserved mem: 0x0000000042ff0000..0x0000000042ffffff (64 KiB) map non-reusable ramoops@42ff0000
[    0.000000] OF: reserved mem: 0x0000000043000000..0x000000004304ffff (320 KiB) nomap non-reusable secmon@43000000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000013fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000042ffffff]
[    0.000000]   node   0: [mem 0x0000000043000000-0x000000004304ffff]
[    0.000000]   node   0: [mem 0x0000000043050000-0x000000013fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000013fffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.5
[    0.000000] percpu: Embedded 30 pages/cpu s83800 r8192 d30888 u122880
[    0.000000] pcpu-alloc: s83800 r8192 d30888 u122880 alloc=30*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GICv3 CPU interface
[    0.000000] CPU features: detected: Spectre-BHB
[    0.000000] CPU features: detected: ARM erratum 858921
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Kernel command line: board=bpi-r4 console=ttyS0,115200n1 earlycon=uart8250,mmio32,0x11000000 root=/dev/mmcblk0p6 rootfstype=ext4 rootwait debug=7
[    0.000000] Unknown kernel command line parameters "board=bpi-r4", will be passed to user space.
[    0.000000] printk: log buffer data + meta data: 131072 + 458752 = 589824 bytes
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] software IO TLB: area num 4.
[    0.000000] software IO TLB: mapped [mem 0x00000000fa7ef000-0x00000000fe7ef000] (64MB)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1048576
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 416 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: GICD_CTLR.DS=0, SCR_EL3.FIQ=0
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x000000000c080000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: Enabling local workaround for ARM erratum 858921
[    0.000000] arch_timer: CPU0: Trapping CNTVCT access
[    0.000000] arch_timer: cp15 timer(s) running at 13.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2ff89eacb, max_idle_ns: 440795202429 ns
[    0.000000] sched_clock: 56 bits at 13MHz, resolution 76ns, wraps every 4398046511101ns
[    0.008263] Console: colour dummy device 80x25
[    0.012790] Calibrating delay loop (skipped), value calculated using timer frequency.. 26.00 BogoMIPS (lpj=130000)
[    0.023280] pid_max: default: 32768 minimum: 301
[    0.028043] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.035544] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.043995] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.050647] rcu: Hierarchical SRCU implementation.
[    0.055494] rcu:     Max phase no-delay instances is 1000.
[    0.060889] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.069273] EFI services will not be available.
[    0.073980] smp: Bringing up secondary CPUs ...
[    0.078827] Detected VIPT I-cache on CPU1
[    0.078871] GICv3: CPU1: found redistributor 1 region 0:0x000000000c0a0000
[    0.078879] arch_timer: Enabling local workaround for ARM erratum 858921
[    0.078893] arch_timer: CPU1: Trapping CNTVCT access
[    0.078900] CPU1: Booted secondary processor 0x0000000001 [0x411fd090]
[    0.079203] Detected VIPT I-cache on CPU2
[    0.079226] GICv3: CPU2: found redistributor 2 region 0:0x000000000c0c0000
[    0.079232] arch_timer: Enabling local workaround for ARM erratum 858921
[    0.079238] arch_timer: CPU2: Trapping CNTVCT access
[    0.079242] CPU2: Booted secondary processor 0x0000000002 [0x411fd090]
[    0.079516] Detected VIPT I-cache on CPU3
[    0.079537] GICv3: CPU3: found redistributor 3 region 0:0x000000000c0e0000
[    0.079543] arch_timer: Enabling local workaround for ARM erratum 858921
[    0.079548] arch_timer: CPU3: Trapping CNTVCT access
[    0.079553] CPU3: Booted secondary processor 0x0000000003 [0x411fd090]
[    0.079594] smp: Brought up 1 node, 4 CPUs
[    0.172008] SMP: Total of 4 processors activated.
[    0.176766] CPU: All CPU(s) started at EL2
[    0.180906] CPU features: detected: 32-bit EL0 Support
[    0.186108] CPU features: detected: CRC32 instructions
[    0.191312] CPU features: detected: PMUv3
[    0.195398] alternatives: applying system-wide alternatives
[    0.201276] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[    0.209841] Memory: 4015804K/4194304K available (13824K kernel code, 2610K rwdata, 4992K rodata, 4992K init, 365K bss, 174284K reserved, 0K cma-reserved)
[    0.224266] devtmpfs: initialized
[    0.229721] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.239697] posixtimers hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.247213] futex hash table entries: 1024 (65536 bytes on 1 NUMA nodes, total 64 KiB, linear).
[    0.256068] 26016 pages in range for non-PLT usage
[    0.256071] 517536 pages in range for PLT usage
[    0.260958] pinctrl core: initialized pinctrl subsystem
[    0.271114] DMI not present or invalid.
[    0.276123] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.282443] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.289677] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.297615] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.305924] thermal_sys: Registered thermal governor 'fair_share'
[    0.305928] thermal_sys: Registered thermal governor 'bang_bang'
[    0.312103] thermal_sys: Registered thermal governor 'step_wise'
[    0.318181] thermal_sys: Registered thermal governor 'user_space'
[    0.324342] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.337415] ASID allocator initialised with 65536 entries
[    0.343291] printk: legacy console [ramoops-1] enabled
[    0.348829] pstore: Registered ramoops as persistent store backend
[    0.355086] ramoops: using 0x10000@0x42ff0000, ecc: 0
[    0.361968] /soc/interrupt-controller@c000000: Fixed dependency cycle(s) with /soc/interrupt-controller@c000000
[    0.375714] /soc/pcie@11280000: Fixed dependency cycle(s) with /soc/pcie@11280000/interrupt-controller
[    0.385266] /soc/pcie@11290000: Fixed dependency cycle(s) with /soc/pcie@11290000/interrupt-controller
[    0.394790] /soc/pcie@11300000: Fixed dependency cycle(s) with /soc/pcie@11300000/interrupt-controller
[    0.404327] /soc/pcie@11310000: Fixed dependency cycle(s) with /soc/pcie@11310000/interrupt-controller
[    0.416058] iommu: Default domain type: Translated
[    0.420923] iommu: DMA domain TLB invalidation policy: strict mode
[    0.427398] SCSI subsystem initialized
[    0.431254] libata version 3.00 loaded.
[    0.435210] usbcore: registered new interface driver usbfs
[    0.440790] usbcore: registered new interface driver hub
[    0.446180] usbcore: registered new device driver usb
[    0.451400] pps_core: LinuxPPS API ver. 1 registered
[    0.456426] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[    0.465689] PTP clock support registered
[    0.470619] vgaarb: loaded
[    0.474310] clocksource: Switched to clocksource arch_sys_counter
[    0.483672] NET: Registered PF_INET protocol family
[    0.488791] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.498207] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.506868] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.514725] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.522837] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear)
[    0.530738] TCP: Hash tables configured (established 32768 bind 32768)
[    0.537450] UDP hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    0.544424] UDP-Lite hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    0.551949] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.558003] RPC: Registered named UNIX socket transport module.
[    0.564001] RPC: Registered udp transport module.
[    0.568777] RPC: Registered tcp transport module.
[    0.573537] RPC: Registered tcp-with-tls transport module.
[    0.579094] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.585627] PCI: CLS 0 bytes, default 64
[    0.592644] Initialise system trusted keyrings
[    0.597263] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[    0.603958] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.610026] NFS: Registering the id_resolver key type
[    0.615160] Key type id_resolver registered
[    0.619392] Key type id_legacy registered
[    0.623460] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.630252] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.637776] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.645379] cryptd: max_cpu_qlen set to 1000
[    0.678470] Key type asymmetric registered
[    0.682617] Asymmetric key parser 'x509' registered
[    0.687584] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    0.695081] io scheduler mq-deadline registered
[    0.699669] io scheduler kyber registered
[    0.703747] io scheduler bfq registered
[    0.708949] mtk-xsphy soc:xs-phy@11e10000: failed to get ref_clk(id-1)
[    0.724025] mtk-socinfo mtk-socinfo.0.auto: error -ENOENT: Failed to get socinfo data
[    0.731992] mtk-socinfo mtk-socinfo.0.auto: probe with driver mtk-socinfo failed with error -2
[    0.761966] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    0.769641] printk: legacy console [ttyS0] disabled
[    0.794862] 11000000.serial: ttyS0 at MMIO 0x11000000 (irq = 99, base_baud = 2500000) is a ST16650V2
[    0.804142] printk: legacy console [ttyS0] enabled
[    0.804142] printk: legacy console [ttyS0] enabled
[    0.813725] printk: legacy bootconsole [uart8250] disabled
[    0.813725] printk: legacy bootconsole [uart8250] disabled
[    0.837847] loop: module loaded
[    0.842499] spi-nand spi0.0: Winbond SPI NAND was found.
[    0.847844] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
[    0.856100] 2 fixed-partitions partitions found on MTD device spi0.0
[    0.862716] Creating 2 MTD partitions on "spi0.0":
[    0.867510] 0x000000000000-0x000000200000 : "bl2"
[    0.874031] 0x000000200000-0x000008000000 : "ubi"
[    0.948162] ubi0: attaching mtd1
[    1.302883] ubi0: scanning is finished
[    1.364817] ubi0: attached mtd1 (name "ubi", size 126 MiB)
[    1.370305] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    1.377178] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    1.383953] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    1.390904] ubi0: good PEBs: 1007, bad PEBs: 1, corrupted PEBs: 0
[    1.396988] ubi0: user volume: 3, internal volumes: 1, max. volumes count: 128
[    1.404196] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 1717567889
[    1.413316] ubi0: available PEBs: 107, total reserved PEBs: 900, PEBs reserved for bad PEB handling: 19
[    1.422702] ubi0: background thread "ubi_bgt0d" started, PID 876
[    1.545520] mtk_soc_eth 15100000.ethernet: generated random MAC address f2:52:7e:94:18:7c
[    1.554114] usbcore: registered new interface driver usb-storage
[    1.560270] i2c_dev: i2c /dev entries driver
[    1.565072] /soc/i2c@11003000/rt5190a@64: Fixed dependency cycle(s) with /soc/i2c@11003000/rt5190a@64/regulators/buck1
[    1.576688] pca954x 2-0070: supply vdd not found, using dummy regulator
[    1.586097] rtc-pcf8563 3-0051: low voltage detected, date/time is not reliable.
[    1.593569] rtc-pcf8563 3-0051: registered as rtc0
[    1.599560] rtc-pcf8563 3-0051: low voltage detected, date/time is not reliable.
[    1.606950] rtc-pcf8563 3-0051: hctosys: unable to read the hardware clock
[    1.614920] at24 3-0057: supply vcc not found, using dummy regulator
[    1.621846] at24 3-0057: 256 byte 24c02 EEPROM, writable, 8 bytes/write
[    1.628490] i2c i2c-2: Added multiplexed i2c bus 3
[    1.633385] i2c i2c-2: Added multiplexed i2c bus 4
[    1.638257] i2c i2c-2: Added multiplexed i2c bus 5
[    1.643112] i2c i2c-2: Added multiplexed i2c bus 6
[    1.647905] pca954x 2-0070: registered 4 multiplexed busses for I2C switch pca9545
[    1.656079] mtk-lvts-thermal 1100a000.lvts: golden temp=60
[    1.663163] mtk-wdt 1001c000.watchdog: Watchdog enabled (timeout=31 sec, nowayout=0)
[    1.672858] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.679387] usbcore: registered new interface driver usbhid
[    1.684955] usbhid: USB HID core driver
[    1.694387] hw perfevents: enabled with armv8_cortex_a73 PMU driver, 7 (0,8000003f) counters available
[    1.704075] NET: Registered PF_INET6 protocol family
[    1.709438] Segment Routing with IPv6
[    1.713107] In-situ OAM (IOAM) with IPv6
[    1.717056] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.723238] NET: Registered PF_PACKET protocol family
[    1.728383] 8021q: 802.1Q VLAN Support v1.8
[    1.736993] Loading compiled-in X.509 certificates
[    1.751842] phy phy-soc:[email protected]: type_sw - reg 0x194, index 0
[    1.759236] mtk-pcie-gen3 11280000.pcie: host bridge /soc/pcie@11280000 ranges:
[    1.759398] mtk-pcie-gen3 11290000.pcie: host bridge /soc/pcie@11290000 ranges:
[    1.759607] mtk-pcie-gen3 11300000.pcie: host bridge /soc/pcie@11300000 ranges:
[    1.759635] mtk-pcie-gen3 11300000.pcie: Parsing ranges property...
[    1.759676] mtk-pcie-gen3 11300000.pcie:       IO 0x0030000000..0x00301fffff -> 0x0030000000
[    1.759688] mtk-pcie-gen3 11300000.pcie:      MEM 0x0030200000..0x0037ffffff -> 0x0030200000
[    1.759915] mtk-pcie-gen3 11310000.pcie: host bridge /soc/pcie@11310000 ranges:
[    1.759924] mtk-pcie-gen3 11310000.pcie: Parsing ranges property...
[    1.759933] mtk-pcie-gen3 11310000.pcie:       IO 0x0038000000..0x00381fffff -> 0x0038000000
[    1.759942] mtk-pcie-gen3 11310000.pcie:      MEM 0x0038200000..0x003fffffff -> 0x0038200000
[    1.760448] sfp sfp1: Host maximum power 3.0W
[    1.761053] sfp sfp2: Host maximum power 3.0W
[    1.766570] mtk-pcie-gen3 11280000.pcie: Parsing ranges property...
[    1.773869] mtk-pcie-gen3 11290000.pcie: Parsing ranges property...
[    1.781179] mtk-pcie-gen3 11280000.pcie:       IO 0x0020000000..0x00201fffff -> 0x0020000000
[    1.787434] mtk-pcie-gen3 11290000.pcie:       IO 0x0028000000..0x00281fffff -> 0x0028000000
[    1.795846] mtk-pcie-gen3 11280000.pcie:      MEM 0x0020200000..0x0027ffffff -> 0x0020200000
[    1.804267] mtk-pcie-gen3 11290000.pcie:      MEM 0x0028200000..0x002fffffff -> 0x0028200000
[    1.875531] mtk_soc_eth 15100000.ethernet: generated random MAC address 7a:3d:a3:83:c0:54
[    1.898528] xhci-mtk 11200000.usb: supply vbus not found, using dummy regulator
[    1.905937] xhci-mtk 11200000.usb: supply vusb33 not found, using dummy regulator
[    1.913923] xhci-mtk 11200000.usb: xHCI Host Controller
[    1.919174] xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 1
[    1.929638] xhci-mtk 11200000.usb: hcc params 0x01403f99 hci version 0x110 quirks 0x0000000000200010
[    1.938799] xhci-mtk 11200000.usb: irq 110, io mem 0x11200000
[    1.944882] xhci-mtk 11200000.usb: xHCI Host Controller
[    1.950102] xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 2
[    1.957497] xhci-mtk 11200000.usb: Host supports USB 3.2 Enhanced SuperSpeed
[    1.964336] mtk-pcie-gen3 11300000.pcie: PCIe link down, current LTSSM state: detect.quiet (0x1)
[    1.964336] mtk-pcie-gen3 11310000.pcie: PCIe link down, current LTSSM state: detect.quiet (0x1)
[    1.964364] mtk-pcie-gen3 11310000.pcie: probe with driver mtk-pcie-gen3 failed with error -110
[    1.964943] hub 1-0:1.0: USB hub found
[    1.973317] mtk-pcie-gen3 11300000.pcie: probe with driver mtk-pcie-gen3 failed with error -110
[    1.982095] hub 1-0:1.0: 1 port detected
[    2.007302] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    2.015668] hub 2-0:1.0: USB hub found
[    2.019172] mtk-pcie-gen3 11280000.pcie: PCIe link down, current LTSSM state: detect.quiet (0x1)
[    2.019419] hub 2-0:1.0: 1 port detected
[    2.028199] mtk-pcie-gen3 11280000.pcie: probe with driver mtk-pcie-gen3 failed with error -110
[    2.090789] mtk-pcie-gen3 11290000.pcie: PCIe link down, current LTSSM state: detect.quiet (0x1)
[    2.099627] mtk-pcie-gen3 11290000.pcie: probe with driver mtk-pcie-gen3 failed with error -110
[    2.155542] mtk_soc_eth 15100000.ethernet: generated random MAC address 16:a9:cc:8f:6e:bd
[    2.163748] mtk_soc_eth 15100000.ethernet: generated random MAC address 7e:2a:6d:f3:67:48
[    2.175593] mtk_soc_eth 15100000.ethernet eth0: mediatek frame engine at 0xffffffc083fc0000, irq 102
[    2.185274] mtk_soc_eth 15100000.ethernet eth1: mediatek frame engine at 0xffffffc083fc0000, irq 102
[    2.194936] mtk_soc_eth 15100000.ethernet eth2: mediatek frame engine at 0xffffffc083fc0000, irq 102
[    2.287443] mt7530-mmio 15020000.switch: configuring for fixed/internal link mode
[    2.294960] mt7530-mmio 15020000.switch: Link is Up - 10Gbps/Full - flow control off
[    2.322419] mt7530-mmio 15020000.switch wan (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7988 PHY] (irq=112)
[    2.362275] mt7530-mmio 15020000.switch lan1 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7988 PHY] (irq=113)
[    2.402069] mt7530-mmio 15020000.switch lan2 (uninitialized): PHY [mt7530-0:02] driver [MediaTek MT7988 PHY] (irq=114)
[    2.441859] mt7530-mmio 15020000.switch lan3 (uninitialized): PHY [mt7530-0:03] driver [MediaTek MT7988 PHY] (irq=115)
[    2.444319] usb 1-1: new high-speed USB device number 2 using xhci-mtk
[    2.453442] mtk_soc_eth 15100000.ethernet eth0: entered promiscuous mode
[    2.465775] DSA: tree 0 setup
[    2.469230] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[    2.476230] clk: Disabling unused clocks
[    2.481046] PM: genpd: Disabling unused power domains
[    2.486313] check access for rdinit=/init failed: -2, ignoring
[    2.492168] Waiting for root device /dev/mmcblk0p6...
[    2.606875] hub 1-1:1.0: USB hub found
[    2.610780] hub 1-1:1.0: 5 ports detected
[    2.744474] usb 2-1: new SuperSpeed USB device number 2 using xhci-mtk
[    2.766932] hub 2-1:1.0: USB hub found
[    2.770875] hub 2-1:1.0: 4 ports detected
[    3.334315] usb 1-1.4: new high-speed USB device number 3 using xhci-mtk
[    3.485659] usb-storage 1-1.4:1.0: USB Mass Storage device detected
[    3.492105] scsi host0: usb-storage 1-1.4:1.0
[    3.574314] usb 1-1.5: new high-speed USB device number 4 using xhci-mtk
[    4.524754] scsi 0:0:0:0: Direct-Access     Myson    SD/MMC/MS Reader 1.00 PQ: 0 ANSI: 0 CCS
[    5.165919] sd 0:0:0:0: [sda] 242935808 512-byte logical blocks: (124 GB/116 GiB)
[    5.173589] sd 0:0:0:0: [sda] Write Protect is off
[    5.178386] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
[    5.183612] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    5.194663] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    5.265610]  sda: sda1
[    5.268063] sd 0:0:0:0: [sda] Attached SCSI removable disk
bootconf=#conf-base

Does not include the emmc overlay…detections seems to run (i see the partconf part),but seems the mmc var is not set…need to look why when i’m back home.

I just patched it in my fork (Uboot branch 2025-10-bpi):

eMMC boot now has “bootconf=#conf-base#ov-emmc”:

F0: 102B 0000
FA: 1042 0000
FA: 1042 0000 [0200]
F9: 1041 0000
F3: 1006 0033 [0200]
F3: 4001 00E0 [0200]
F3: 0000 0000
V0: 0000 0000 [0001]
00: 0000 0000
BP: 0600 0041 [0000]
G0: 1190 0000
EC: 0000 0000 [2000]
MK: 0000 0000 [0000]
T0: 0000 0204 [0101]
Jump to BL

NOTICE:  BL2: v2.12.0(release):822d09ff94e-bpi-r4-emmc
NOTICE:  BL2: Built : 16:30:47, Oct 13 2025
NOTICE:  WDT: Cold boot
NOTICE:  WDT: disabled
NOTICE:  CPU: MT7988
NOTICE:  EMI: Using DDR unknown settings
NOTICE:  EMI: Detected DRAM size: 4096 MB
NOTICE:  EMI: complex R/W mem test passed
NOTICE:  LVTS: Enable thermal HW reset
NOTICE:  BL2: Booting BL31
NOTICE:  BL31: v2.12.0(release):822d09ff94e-bpi-r4-emmc
NOTICE:  BL31: Built : 16:30:50, Oct 13 2025


U-Boot 2025.10-bpi-g24f378cd3e86-dirty (Oct 13 2025 - 16:30:22 +0800)

CPU:   MediaTek MT7988
Model: mt7988-rfb
DRAM:  4 GiB
Core:  66 devices, 24 uclasses, devicetree: separate
MMC:   mmc@11230000: 0
Loading Environment from UBI... spi-nand: spi_nand spi_nand@0: Winbond SPI NAND was found.
spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
jedec_spi_nor spi_nor@0: unrecognized JEDEC id bytes: ff, ff, ff
Volume ubootenv not found!

** Unable to read env from ubi:ubootenv **
In:    serial@11000000
Out:   serial@11000000
Err:   serial@11000000
=> board_late_init...
bootmedia:emmc
Net:   MediaTek MT7988 built-in switch

Warning: ethernet@15110100 (eth0) using random MAC address - fa:a7:77:78:66:c7
eth0: ethernet@15110100
Hit any key to stop autoboot: 0
35 bytes read in 1 ms (34.2 KiB/s)


  *** U-Boot Boot Menu ***

      1. Enter kernel-name to boot from SD/EMMC.
      2. Boot kernel from TFTP.
      3. Boot from SD/EMMC.
      4. Boot kernel from NVME.
      5. Boot kernel from UBI.
      0. Exit


  Press UP/DOWN to move, ENTER to select, ESC to quit





## Error: "initrd" not defined
EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x1
BOOT_PARTITION_ENABLE: 0x1 (boot0)
PARTITION_ACCESS: 0x0 (user)
emmc available
bootconf=#conf-base#ov-emmc
fit=bpi-r4.itb
9994840 bytes read in 669 ms (14.2 MiB/s)
No UBIFS volume mounted!
## Loading kernel (any) from FIT Image at 46000000 ...
   Using 'conf-base' configuration
   Trying 'kernel-1' kernel subimage
     Description:  Linux Kernel 6.17.0-main
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x460000e8
     Data Size:    9809511 Bytes = 9.4 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x44000000
     Entry Point:  0x44000000
     Hash algo:    sha1
     Hash value:   bd33f14be4b1bdd7b0444481edf806ff068b8d46
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt (any) from FIT Image at 46000000 ...
   Using 'conf-base' configuration
   Trying 'fdt-base' fdt subimage
     Description:  Flattened Device Tree blob BPI-R4 dual SFP+
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x4695b05c
     Data Size:    33164 Bytes = 32.4 KiB
     Architecture: AArch64
     Load Address: 0x47000000
     Hash algo:    sha1
     Hash value:   f1cd4bb3346cf215a4c1b3c580923e3bb49e9ca5
   Verifying Hash Integrity ... sha1+ OK
   Loading fdt from 0x4695b05c to 0x47000000
   Loading Device Tree to 00000000fe7ee000, end 00000000fe7f9fff ... OK
Working FDT set to fe7ee000
## Loading fdt (any) from FIT Image at 46000000 ...
   Using 'ov-emmc' configuration
   Trying 'fdt-ov-emmc' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x46985a9c
     Data Size:    935 Bytes = 935 Bytes
     Architecture: Unknown Architecture
   Verifying Hash Integrity ... OK
   Booting using the fdt blob at 0xfe7ee000
Working FDT set to fe7ee000
   Uncompressing Kernel Image to 44000000
   Loading Device Tree to 00000000fe7e2000, end 00000000fe7ed2cd ... OK
Working FDT set to fe7e2000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd090]
[    0.000000] Linux version 6.17.0-bpi-r4-main (ubuntu@c40702609f18) (aarch64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #1 SMP Mon Oct 13 11:24:52 CST 2025
[    0.000000] Machine model: Banana Pi BPI-R4 (2x SFP+)
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000011000000 (options '')
[    0.000000] printk: legacy bootconsole [uart8250] enabled
[    0.000000] efi: UEFI not found.
...
... (more to skip)
...
[  OK  ] Reached target graphical.target - Graphical Interface.
         Starting systemd-update-utmp-runle…- Record Runlevel Change in UTMP...
[  OK  ] Finished systemd-update-utmp-runle…e - Record Runlevel Change in UTMP.

Ubuntu 24.04.3 LTS bpi-r4 ttyS0

bpi-r4 login: root
Password:
Welcome to Ubuntu 24.04.3 LTS (GNU/Linux 6.17.0-bpi-r4-main aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

root@bpi-r4:~# cd /
root@bpi-r4:/# cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.3 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
root@bpi-r4:/# uname -a
Linux bpi-r4 6.17.0-bpi-r4-main #1 SMP Mon Oct 13 11:24:52 CST 2025 aarch64 aarch64 aarch64 GNU/Linux
root@bpi-r4:/#
1 Like

You are right…the setenv for the default mmc overlay has to be outside of the if. Will fix this asap in my repo.

@frank-w

As I’m not using WIFI NIC plug-in on the R4 board. Do you know how to perfectly disable/remove hostapd functionality from your Images repo?

In this case, the system usually spam a lot of FAILED messages of hostapd.service before I can enter the login info:

If I stop the hostapd service, it would spend a few minutes stuck in “Job systemd-networkd-wait-online.service …”:

systemctl disable --now hostapd
reboot

You can disable waiting for interfaces online in the files

/etc/systemd/network/XXX.network

Add the following section for the eth0/eth1/eth2 interfaces not part of a bridge:

[Link]
RequiredForOnline=no

And at bridges:

[Link]
RequiredForOnline=degraded-carrier

Is actually enough, no need to totally switch off.

1 Like

Thanks for advising.

But adding the above settings do not help in my case.

And I just find out the root cause is the tftp* packages which newly added.

So I remove them cleanly to resolve my problem. There is no more hostapd failure spam and systemd-networkd-wait-online.service stuck.

apt purge -y tftpd-hpa tftp-hpa
reboot

Unbelievable. Anyway, thanks.