[BPI-R4] Debian 11 with basic router modules

Alright, the root problem here, is that i don’t know the boot procedure of arm64 devices :slight_smile: So, let me see if i figure all of this.

Correct, all files here are from your repo.

Ok, so starting from the beginning, so far these commands are correct, yes? They are done in NAND (openwrt). And no fip file flashing then:

echo 0 >  /sys/block/mmcblk0boot0/force_ro

dd if=bpi-r4_emmc_bl2.img of=/dev/mmcblk0boot0

You mean compiling the full image, kernel included, in the R4? Ok, but before that, how do i flash and boot your image? Because so far, like you see above, i can only get the R4 to load boot stage.

Sure, can you please share the commands?

Oh BTW, i think this can be done without the usb drive. Like, in a remote machine: dd if=/some-image_here.gz | gunzip -c | ssh R4_ip dd of=/dev/whatever_partitions

My device got stuck at the exact same place. And I just found the root cause is that I only flashed the /dev/mmcblk0 but /dev/mmcblk0boot0. So I did the following steps to make it boot completely.

I built the below packs manually from Frank’s repos:

Uboot:
bpi-r4_emmc_img.gz
bpi-r4_emmc_bl2.img
bpi-r4_emmc_fip.bin

Linux:
bpi-r4_6.12.47-main.tar.gz

Ubuntu noble emmc image:
bpi-r4_noble_6.12.47-main_sdmmc.img.gz

Copy files to USB drive.
Boot from NAND (Openwrt base) with USB inserted.
Flash eMMC like this:

echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=bpi-r4_emmc_bl2.img of=/dev/mmcblk0boot0
gunzip -c bpi-r4_noble_6.12.47-main_sdmmc.img.gz | dd bs=512 conv=notrunc,fsync of=/dev/mmcblk0
mmc bootpart enable 1 1 /dev/mmcblk0

Boot from eMMC is okay:

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 01AB [0101]
Jump to BL

NOTICE:  BL2: v2.12.0(release):822d09ff94e-bpi-r4-emmc
NOTICE:  BL2: Built : 19:53:27, Oct  9 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 : 19:53:30, Oct  9 2025


U-Boot 2025.07-bpi-g05101a32152c-dirty (Oct 09 2025 - 19:53:03 +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 - 6a:15:16:3b:a8:90
eth0: ethernet@15110100
Hit any key to stop autoboot:  0
22 bytes read in 0 ms


  *** 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.
      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
9430324 bytes read in 630 ms (14.3 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.12.47-main
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x460000e8
     Data Size:    9348482 Bytes = 8.9 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x44000000
     Entry Point:  0x44000000
     Hash algo:    sha1
     Hash value:   db873a3d249aed78dffcf04d11227cfb09822c04
   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
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x468ea768
     Data Size:    36736 Bytes = 35.9 KiB
     Architecture: AArch64
     Load Address: 0x47000000
     Hash algo:    sha1
     Hash value:   a141981f607a7f7a89b7328300d2b81661150ee1
   Verifying Hash Integrity ... sha1+ OK
   Loading fdt from 0x468ea768 to 0x47000000
   Loading Device Tree to 00000000fe7ef000, end 00000000fe7fafff ... OK
Working FDT set to fe7ef000
## 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:   0x468fcd44
     Data Size:    1554 Bytes = 1.5 KiB
     Architecture: Unknown Architecture
   Verifying Hash Integrity ... OK
   Booting using the fdt blob at 0xfe7ef000
Working FDT set to fe7ef000
   Uncompressing Kernel Image to 44000000
   Loading Device Tree to 00000000fe7e2000, end 00000000fe7ee292 ... OK
Working FDT set to fe7e2000
set /chosen/rootdisk to bootrom media: rootdisk-emmc (phandle 0x0000008e)

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd090]
[    0.000000] Linux version 6.12.47-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 Thu Oct  9 20:30:03 CST 2025
[    0.000000] Machine model: Banana Pi BPI-R4
[    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 s84568 r8192 d30120 u122880
[    0.000000] pcpu-alloc: s84568 r8192 d30120 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: GIC system register 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] 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] Built 1 zonelists, mobility grouping on.  Total pages: 1048576
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: area num 4.
[    0.000000] software IO TLB: mapped [mem 0x00000000fa7e2000-0x00000000fe7e2000] (64MB)
[    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_CTRL.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.008374] Console: colour dummy device 80x25
[    0.012902] Calibrating delay loop (skipped), value calculated using timer frequency.. 26.00 BogoMIPS (lpj=130000)
[    0.023390] pid_max: default: 32768 minimum: 301
[    0.028153] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.035659] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.044101] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.050775] rcu: Hierarchical SRCU implementation.
[    0.055622] rcu:     Max phase no-delay instances is 1000.
[    0.061015] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.069404] EFI services will not be available.
[    0.074105] smp: Bringing up secondary CPUs ...
[    0.078949] Detected VIPT I-cache on CPU1
[    0.078989] GICv3: CPU1: found redistributor 1 region 0:0x000000000c0a0000
[    0.078998] arch_timer: Enabling local workaround for ARM erratum 858921
[    0.079012] arch_timer: CPU1: Trapping CNTVCT access
[    0.079017] CPU1: Booted secondary processor 0x0000000001 [0x411fd090]
[    0.079327] Detected VIPT I-cache on CPU2
[    0.079351] GICv3: CPU2: found redistributor 2 region 0:0x000000000c0c0000
[    0.079356] arch_timer: Enabling local workaround for ARM erratum 858921
[    0.079362] arch_timer: CPU2: Trapping CNTVCT access
[    0.079366] CPU2: Booted secondary processor 0x0000000002 [0x411fd090]
[    0.079636] Detected VIPT I-cache on CPU3
[    0.079658] GICv3: CPU3: found redistributor 3 region 0:0x000000000c0e0000
[    0.079664] arch_timer: Enabling local workaround for ARM erratum 858921
[    0.079669] arch_timer: CPU3: Trapping CNTVCT access
[    0.079674] CPU3: Booted secondary processor 0x0000000003 [0x411fd090]
[    0.079718] smp: Brought up 1 node, 4 CPUs
[    0.172135] SMP: Total of 4 processors activated.
[    0.176891] CPU: All CPU(s) started at EL2
[    0.181032] CPU features: detected: 32-bit EL0 Support
[    0.186236] CPU features: detected: CRC32 instructions
[    0.191467] alternatives: applying system-wide alternatives
[    0.197339] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[    0.205902] Memory: 4017028K/4194304K available (13248K kernel code, 2504K rwdata, 4624K rodata, 4800K init, 441K bss, 173080K reserved, 0K cma-reserved)
[    0.220338] devtmpfs: initialized
[    0.225856] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.235841] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.242843] 26320 pages in range for non-PLT usage
[    0.242846] 517840 pages in range for PLT usage
[    0.247748] pinctrl core: initialized pinctrl subsystem
[    0.257853] DMI not present or invalid.
[    0.263061] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.269363] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.276599] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.284541] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.292856] thermal_sys: Registered thermal governor 'fair_share'
[    0.292860] thermal_sys: Registered thermal governor 'bang_bang'
[    0.299035] thermal_sys: Registered thermal governor 'step_wise'
[    0.305112] thermal_sys: Registered thermal governor 'user_space'
[    0.311274] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.324356] ASID allocator initialised with 65536 entries
[    0.330293] printk: legacy console [ramoops-1] enabled
[    0.335851] pstore: Registered ramoops as persistent store backend
[    0.342109] ramoops: using 0x10000@0x42ff0000, ecc: 0
[    0.349345] /soc/interrupt-controller@c000000: Fixed dependency cycle(s) with /soc/interrupt-controller@c000000
[    0.362894] /soc/pcie@11280000: Fixed dependency cycle(s) with /soc/pcie@11280000/interrupt-controller
[    0.372453] /soc/pcie@11290000: Fixed dependency cycle(s) with /soc/pcie@11290000/interrupt-controller
[    0.381975] /soc/pcie@11300000: Fixed dependency cycle(s) with /soc/pcie@11300000/interrupt-controller
[    0.391507] /soc/pcie@11310000: Fixed dependency cycle(s) with /soc/pcie@11310000/interrupt-controller
[    0.402915] cryptd: max_cpu_qlen set to 1000
[    0.407544] iommu: Default domain type: Translated
[    0.412415] iommu: DMA domain TLB invalidation policy: strict mode
[    0.418924] SCSI subsystem initialized
[    0.422789] libata version 3.00 loaded.
[    0.426749] usbcore: registered new interface driver usbfs
[    0.432316] usbcore: registered new interface driver hub
[    0.437713] usbcore: registered new device driver usb
[    0.442932] pps_core: LinuxPPS API ver. 1 registered
[    0.447994] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[    0.457247] PTP clock support registered
[    0.462079] vgaarb: loaded
[    0.468475] clocksource: Switched to clocksource arch_sys_counter
[    0.477562] NET: Registered PF_INET protocol family
[    0.482657] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.492062] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.500732] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.508586] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.516704] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear)
[    0.524606] TCP: Hash tables configured (established 32768 bind 32768)
[    0.531318] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.538163] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.545567] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.551604] RPC: Registered named UNIX socket transport module.
[    0.557601] RPC: Registered udp transport module.
[    0.562384] RPC: Registered tcp transport module.
[    0.567145] RPC: Registered tcp-with-tls transport module.
[    0.572702] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.579236] PCI: CLS 0 bytes, default 64
[    0.584636] Initialise system trusted keyrings
[    0.589237] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[    0.595924] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.601966] NFS: Registering the id_resolver key type
[    0.607094] Key type id_resolver registered
[    0.611336] Key type id_legacy registered
[    0.615403] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.622198] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.629703] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.665046] Key type asymmetric registered
[    0.669198] Asymmetric key parser 'x509' registered
[    0.674161] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    0.681659] io scheduler mq-deadline registered
[    0.686244] io scheduler kyber registered
[    0.690322] io scheduler bfq registered
[    0.697271] mtk-xsphy soc:xphy@11e10000: failed to get ref_clk(id-1)
[    0.712238] mtk-socinfo mtk-socinfo.0.auto: error -ENOENT: Failed to get socinfo data
[    0.720219] mtk-socinfo mtk-socinfo.0.auto: probe with driver mtk-socinfo failed with error -2
[    0.751061] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    0.758791] printk: legacy console [ttyS0] disabled
[    0.784016] 11000000.serial: ttyS0 at MMIO 0x11000000 (irq = 99, base_baud = 2500000) is a ST16650V2
[    0.793300] printk: legacy console [ttyS0] enabled
[    0.793300] printk: legacy console [ttyS0] enabled
[    0.802883] printk: legacy bootconsole [uart8250] disabled
[    0.802883] printk: legacy bootconsole [uart8250] disabled
[    0.820025] loop: module loaded
[    0.824719] spi-nand spi0.0: Winbond SPI NAND was found.
[    0.830051] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
[    0.838293] 2 fixed-partitions partitions found on MTD device spi0.0
[    0.844659] OF: Bad cell count for /soc/spi@11007000/spi_nand@0/partitions
[    0.851581] OF: Bad cell count for /soc/spi@11007000/spi_nand@0/partitions
[    0.858759] Creating 2 MTD partitions on "spi0.0":
[    0.863547] 0x000000000000-0x000000200000 : "bl2"
[    0.870572] 0x000000200000-0x000008000000 : "ubi"
[    0.959602] ubi0: attaching mtd1
[    1.811589] ubi0: scanning is finished
[    1.878900] ubi0: attached mtd1 (name "ubi", size 126 MiB)
[    1.884386] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    1.891259] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    1.898035] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    1.904988] ubi0: good PEBs: 1007, bad PEBs: 1, corrupted PEBs: 0
[    1.911072] ubi0: user volume: 3, internal volumes: 1, max. volumes count: 128
[    1.918281] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 1697192243
[    1.927401] ubi0: available PEBs: 107, total reserved PEBs: 900, PEBs reserved for bad PEB handling: 19
[    1.936789] ubi0: background thread "ubi_bgt0d" started, PID 868
[    2.060052] usbcore: registered new interface driver usb-storage
[    2.066211] i2c_dev: i2c /dev entries driver
[    2.071035] /soc/i2c@11003000/rt5190a@64: Fixed dependency cycle(s) with /soc/i2c@11003000/rt5190a@64/regulators/buck1
[    2.082351] pca954x 1-0070: supply vdd not found, using dummy regulator
[    2.091619] rtc-pcf8563 2-0051: low voltage detected, date/time is not reliable.
[    2.099102] rtc-pcf8563 2-0051: registered as rtc0
[    2.105082] rtc-pcf8563 2-0051: low voltage detected, date/time is not reliable.
[    2.112477] rtc-pcf8563 2-0051: hctosys: unable to read the hardware clock
[    2.120314] at24 2-0057: supply vcc not found, using dummy regulator
[    2.127240] at24 2-0057: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[    2.133882] i2c i2c-1: Added multiplexed i2c bus 2
[    2.138785] i2c i2c-1: Added multiplexed i2c bus 3
[    2.143643] i2c i2c-1: Added multiplexed i2c bus 4
[    2.148527] i2c i2c-1: Added multiplexed i2c bus 5
[    2.153312] pca954x 1-0070: registered 4 multiplexed busses for I2C switch pca9545
[    2.161508] mtk-lvts-thermal 1100a000.lvts: golden temp=60
[    2.168189] mtk-wdt 1001c000.watchdog: Watchdog enabled (timeout=31 sec, nowayout=0)
[    2.177865] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    2.184417] usbcore: registered new interface driver usbhid
[    2.189994] usbhid: USB HID core driver
[    2.194116] hw perfevents: enabled with armv8_cortex_a73 PMU driver, 7 (0,8000003f) counters available
[    2.203827] NET: Registered PF_INET6 protocol family
[    2.209195] Segment Routing with IPv6
[    2.212872] In-situ OAM (IOAM) with IPv6
[    2.216811] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.222992] NET: Registered PF_PACKET protocol family
[    2.228124] 8021q: 802.1Q VLAN Support v1.8
[    2.236629] Loading compiled-in X.509 certificates
[    2.251600] phy phy-soc:[email protected]: type_sw - reg 0x218, index 0
[    2.258422] mtk-pcie-gen3 11280000.pcie: host bridge /soc/pcie@11280000 ranges:
[    2.265750] mtk-pcie-gen3 11280000.pcie: Parsing ranges property...
[    2.272017] mtk-pcie-gen3 11280000.pcie:       IO 0x0020000000..0x00201fffff -> 0x0020000000
[    2.272697] mtk-msdc 11230000.mmc: Final PAD_DS_TUNE: 0x13414
[    2.280451] mtk-pcie-gen3 11280000.pcie:      MEM 0x0020200000..0x0027ffffff -> 0x0020200000
[    2.286302] mmc0: new HS400 MMC card at address 0001
[    2.300787] mmcblk0: mmc0:0001 8GTF4R 7.28 GiB
[    2.307963]  mmcblk0: p1 p2 p3 p4 p5 p6
[    2.312584] mmcblk0boot0: mmc0:0001 8GTF4R 4.00 MiB
[    2.318958] mmcblk0boot1: mmc0:0001 8GTF4R 4.00 MiB
[    2.324981] mmcblk0rpmb: mmc0:0001 8GTF4R 512 KiB, chardev (243:0)
...
(more to skip here)
...
[  OK  ] Reached target multi-user.target - Multi-User System.
[  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.12.47-bpi-r4-main aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro
root@bpi-r4:~#
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:~#
root@bpi-r4:~# uname -a
Linux bpi-r4 6.12.47-bpi-r4-main #1 SMP Thu Oct  9 20:30:03 CST 2025 aarch64 aarch64 aarch64 GNU/Linux
root@bpi-r4:~#