How to create initrd/initramfs for use with tftp

So my initramfs is also 17.5M uncompressed. This one was booting, right?

I linked your initramfs in my kernel and thus works.but i don’t know resulting size (initrd was also gzipped)

removed my modules and have the basic ramfs (24M unpacked cpio), build into kernel (12.75 MB) and load it successfull via tftp (no login needed)

[17:03:34]$ grep initram .config
CONFIG_INITRAMFS_SOURCE="../initramfs.cpio"

just to confirm that it is a size based issue

[   15.641524] Run /init as init process                                        
                                                                                
Processing /etc/profile... Done                                                 
                                                                                
/ # ls                                                                          
bin      dev      include  lib      proc     sbin     usr                       
boot     etc      init     linuxrc  run      sys                                
/ #

I may have found another way.

What I did:

a) installed initramfs-tools

b) I ran update-initramfs -c -t -k "5.15.173-bpi-r2-main"

c) I extracted new initrd image: unmkinitramfs -v /boot/bananapi/bpi-r2/linux/initrd.img-5.15.173-bpi-r2-main /tmp/extracted_initrd

d) from x86_64 system, I took initramfs hooks for ZFS, because I need it, and because package for armhf doesn’t exist (shell scripts) and copied them to extracted directory tree

e) I used bellow to recompress the initramfs image back to cpio format:

cd /tmp/extracted_initrd
find . -print0 | cpio --null --create --format=newc >../initramfs.cpio

f) I then took resulting initramfs.cpio to the kernel source tree, updated initrd configuration to point to this file, and started rebuild. I will post once done, whether or not it was successful. But to me, it seems most natural thing towards ubuntu I have on BPI-R2.

It boots. And seems to be working. Although - it is not, not really, not yet. I got stuck during the boot with init, which tried to execute script I didn’t uploaded to the initrd image. Also, I was missing few libraries, so I have to repackage. But so far, according to what I saw on the console, the system requested an IP from local DHCP, set a hostname, created /dev/, /sys/ and /proc, and initiated /sbin/init, which tried to mount non-existent SD card (forgot my own fstab there…), and froze there… When I came back a bit later, it was in kernel panic screen, generic message “cant mount fs” - but I am close. At least I hope I may really be :wink:

You should use $(uname -r) for kernel version and afaik it depends you have the sources on your system and the symlink in lib dir pointing to it. Thats why my way (there was another thread) was using /proc/config.gz to get kernel config

Yes, I know. Let’s assume I have this set up. As for running it with variable - yes, correct. Was easier to copy/paste from ls of /boot, to be honest :wink:

As for kernel config, I have made a copy to /boot subdir, and renamed it in the same fashion as “config-$(uname -r)” so that unmkinitramfs can find it.

BPI-R2> fatload mmc 0:1 ${loadaddr} ${bpi}/${board}/${service}/${kernel}; bootm
50130953 bytes read in 2445 ms (19.6 MiB/s)
## Booting kernel from Legacy Image at 80200000 ...
   Image Name:   Linux Kernel 5.15.173-main
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    50130889 Bytes = 47.8 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
Working FDT set to 0
   Loading Kernel Image to 80008000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.15.173-bpi-r2-main (virnik@ap-unimatrix) (gcc (Ubuntu 11.4.0-9ubuntu1) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #4 SMP Tue Dec 10 15:16:09 UTC 2024
[    0.000000] CPU: ARMv7 Processor [410fc073] revision 3 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Bananapi BPI-R2
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] [WMT-CONSYS-HW][W]reserve_memory_consys_fn: name: consys-reserve-memory, base: 0xffe00000, size: 0x100000
[    0.000000] OF: reserved mem: initialized node consys-reserve-memory, compatible id mediatek,consys-reserve-memory
[    0.000000] cma: Reserved 64 MiB at 0xfb800000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x000000009effffff]
[    0.000000]   HighMem  [mem 0x000000009f000000-0x00000000ffffefff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x00000000ffdfffff]
[    0.000000]   node   0: [mem 0x00000000ffe00000-0x00000000ffefffff]
[    0.000000]   node   0: [mem 0x00000000fff00000-0x00000000ffffefff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffefff]
[    0.000000] percpu: Embedded 17 pages/cpu s39180 r8192 d22260 u69632
[    0.000000] pcpu-alloc: s39180 r8192 d22260 u69632 alloc=17*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 523171
[    0.000000] Kernel command line: board=bpi-r2 console=earlyprintk console=tty1 fbcon=map:0 console=ttyS0,115200 root=ZFS=rpool/ROOT/ubuntu_h1wz1w service=linux vmalloc=512M debug=7 initcall_debug=0 ipv6.disable=1
 video=HDMI-A-1:1280x1024D fsck.mode=force fsck.repair=yes
[    0.000000] Unknown kernel command line parameters "board=bpi-r2 service=linux", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1947176K/2097148K available (15360K kernel code, 1696K rwdata, 5380K rodata, 39936K init, 985K bss, 84436K reserved, 65536K cma-reserved, 1522684K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 49760 entries in 146 pages
[    0.000000] ftrace: allocated 146 pages with 3 groups
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=16 to nr_cpu_ids=4.
[    0.000000]  Rude variant of Tasks RCU 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: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    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.000001] sched_clock: 56 bits at 13MHz, resolution 76ns, wraps every 4398046511101ns
[    0.000020] Switching to timer-based delay loop, resolution 76ns
[    0.000202] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 147020034397 ns
[    0.000229] sched_clock: 32 bits at 13MHz, resolution 76ns, wraps every 165191050201ns
[    0.000843] Console: colour dummy device 80x30
[    0.001459] printk: console [tty1] enabled
[    0.001518] Calibrating delay loop (skipped), value calculated using timer frequency.. 26.00 BogoMIPS (lpj=130000)
[    0.001556] CPU: Testing write buffer coherency: ok
[    0.001620] pid_max: default: 32768 minimum: 301
[    0.001848] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.001888] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.003200] CPU0: update cpu_capacity 1024
[    0.003245] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.004514] Setting up static identity map for 0x80100000 - 0x80100060
[    0.004717] rcu: Hierarchical SRCU implementation.
[    0.005965] smp: Bringing up secondary CPUs ...
[    0.006746] CPU1: update cpu_capacity 1024
[    0.006761] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.007651] CPU2: update cpu_capacity 1024
[    0.007666] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.008509] CPU3: update cpu_capacity 1024
[    0.008524] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.008648] smp: Brought up 1 node, 4 CPUs
[    0.008750] SMP: Total of 4 processors activated (104.00 BogoMIPS).
[    0.008771] CPU: All CPU(s) started in SVC mode.
[    0.009591] devtmpfs: initialized
[    0.018664] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 3
[    0.019067] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.019121] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.021748] pinctrl core: initialized pinctrl subsystem
[    0.023408] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.026146] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.027527] thermal_sys: Registered thermal governor 'step_wise'
[    0.028091] No ATAGs?
[    0.028304] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.028340] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.099981] gpiochip_find_base: found new base at 232
[    0.100638] gpio gpiochip0: (1000b000.pinctrl): added GPIO chardev (254:0)
[    0.100785] gpio gpiochip0: registered GPIOs 232 to 511 on 1000b000.pinctrl
[    0.100821] gpio gpiochip0: (1000b000.pinctrl): created GPIO range 0->279 ==> 1000b000.pinctrl PIN 0->279
[    0.136472] platform 14015000.hdmi: Fixing up cyclic dependency with 14014000.dpi
[    0.138553] platform connector: Fixing up cyclic dependency with 14015000.hdmi
[    0.571017] raid6: neonx8   gen()   681 MB/s
[    0.741159] raid6: neonx8   xor()   549 MB/s
[    0.911306] raid6: neonx4   gen()   936 MB/s
[    1.081444] raid6: neonx4   xor()   709 MB/s
[    1.251593] raid6: neonx2   gen()   944 MB/s
[    1.421735] raid6: neonx2   xor()   692 MB/s
[    1.591896] raid6: neonx1   gen()   773 MB/s
[    1.762030] raid6: neonx1   xor()   568 MB/s
[    1.932237] raid6: int32x8  gen()   244 MB/s
[    2.102330] raid6: int32x8  xor()   151 MB/s
[    2.272523] raid6: int32x4  gen()   253 MB/s
[    2.442590] raid6: int32x4  xor()   163 MB/s
[    2.612754] raid6: int32x2  gen()   306 MB/s
[    2.782902] raid6: int32x2  xor()   185 MB/s
[    2.953046] raid6: int32x1  gen()   325 MB/s
[    3.123168] raid6: int32x1  xor()   180 MB/s
[    3.123188] raid6: using algorithm neonx2 gen() 944 MB/s
[    3.123206] raid6: .... xor() 692 MB/s, rmw enabled
[    3.123222] raid6: using neon recovery algorithm
[    3.123839] reg-fixed-voltage regulator-1p8v: GPIO lookup for consumer (null)
[    3.123881] reg-fixed-voltage regulator-1p8v: using device tree for GPIO lookup
[    3.123915] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/regulator-1p8v[0]'
[    3.123967] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/regulator-1p8v[0]'
[    3.124005] reg-fixed-voltage regulator-1p8v: using lookup tables for GPIO lookup
[    3.124030] reg-fixed-voltage regulator-1p8v: No GPIO consumer (null) found
[    3.124424] reg-fixed-voltage regulator-3p3v: GPIO lookup for consumer (null)
[    3.124462] reg-fixed-voltage regulator-3p3v: using device tree for GPIO lookup
[    3.124495] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/regulator-3p3v[0]'
[    3.124540] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/regulator-3p3v[0]'
[    3.124577] reg-fixed-voltage regulator-3p3v: using lookup tables for GPIO lookup
[    3.124603] reg-fixed-voltage regulator-3p3v: No GPIO consumer (null) found
[    3.124923] reg-fixed-voltage regulator-5v: GPIO lookup for consumer (null)
[    3.124955] reg-fixed-voltage regulator-5v: using device tree for GPIO lookup
[    3.124985] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/regulator-5v[0]'
[    3.125028] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/regulator-5v[0]'
[    3.125064] reg-fixed-voltage regulator-5v: using lookup tables for GPIO lookup
[    3.125089] reg-fixed-voltage regulator-5v: No GPIO consumer (null) found
[    3.125400] reg-fixed-voltage fixedregulator@0: GPIO lookup for consumer (null)
[    3.125434] reg-fixed-voltage fixedregulator@0: using device tree for GPIO lookup
[    3.125466] of_get_named_gpiod_flags: can't parse 'gpios' property of node '/fixedregulator@0[0]'
[    3.125509] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator@0[0]'
[    3.125547] reg-fixed-voltage fixedregulator@0: using lookup tables for GPIO lookup
[    3.125572] reg-fixed-voltage fixedregulator@0: No GPIO consumer (null) found
[    3.125856] iommu: Default domain type: Translated 
[    3.125882] iommu: DMA domain TLB invalidation policy: strict mode 
[    3.126205] vgaarb: loaded
[    3.126873] SCSI subsystem initialized
[    3.127190] libata version 3.00 loaded.
[    3.127457] usbcore: registered new interface driver usbfs
[    3.127528] usbcore: registered new interface driver hub
[    3.127593] usbcore: registered new device driver usb
[    3.127938] mc: Linux media interface: v0.10
[    3.127998] videodev: Linux video capture interface: v2.00
[    3.128093] pps_core: LinuxPPS API ver. 1 registered
[    3.128112] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[    3.128152] PTP clock support registered
[    3.129171] mediatek,efuse 10206000.efuse: GPIO lookup for consumer wp
[    3.129221] mediatek,efuse 10206000.efuse: using device tree for GPIO lookup
[    3.129255] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/efuse@10206000[0]'
[    3.129309] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/efuse@10206000[0]'
[    3.129350] mediatek,efuse 10206000.efuse: using lookup tables for GPIO lookup
[    3.129375] mediatek,efuse 10206000.efuse: No GPIO consumer wp found
[    3.129873] Advanced Linux Sound Architecture Driver Initialized.
[    3.130727] Bluetooth: Core ver 2.22
[    3.130823] NET: Registered PF_BLUETOOTH protocol family
[    3.130844] Bluetooth: HCI device and connection manager initialized
[    3.130871] Bluetooth: HCI socket layer initialized
[    3.130892] Bluetooth: L2CAP socket layer initialized
[    3.130926] Bluetooth: SCO socket layer initialized
[    3.131881] clocksource: Switched to clocksource arch_sys_counter
[    3.207042] NET: Registered PF_INET protocol family
[    3.207321] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    3.208214] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    3.208279] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    3.208313] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    3.208372] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    3.208448] TCP: Hash tables configured (established 4096 bind 4096)
[    3.208585] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    3.208640] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    3.208924] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    3.211188] RPC: Registered named UNIX socket transport module.
[    3.211236] RPC: Registered udp transport module.
[    3.211253] RPC: Registered tcp transport module.
[    3.211268] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    3.211295] PCI: CLS 0 bytes, default 64
[    3.212601] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    3.214591] Initialise system trusted keyrings
[    3.215022] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[    3.223665] NFS: Registering the id_resolver key type
[    3.223790] Key type id_resolver registered
[    3.223812] Key type id_legacy registered
[    3.223961] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    3.224007] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    5.318507] ZFS: Loaded module v2.2.6-1, ZFS pool version 5000, ZFS filesystem version 5
[    5.410986] xor: measuring software checksum speed
[    5.414343]    arm4regs        :   992 MB/sec
[    5.418303]    8regs           :   835 MB/sec
[    5.421758]    32regs          :   954 MB/sec
[    5.424121]    neon            :  1398 MB/sec
[    5.424144] xor: using function: neon (1398 MB/sec)
[    5.424167] async_tx: api initialized (async)
[    5.424190] Key type asymmetric registered
[    5.424207] Asymmetric key parser 'x509' registered
[    5.424383] bounce: pool size: 64 pages
[    5.424482] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    5.424513] io scheduler mq-deadline registered
[    5.424532] io scheduler kyber registered
[    5.428239] mediatek-hdmi-phy 10209100.hdmi-phy: Using default TX DRV impedance: 4.2k/36
[    5.429604] mediatek-mipi-tx 10010000.dsi-phy: can't get nvmem_cell_get, ignore it
[    5.497944] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    5.500081] printk: console [ttyS0] disabled
[    5.500141] mt6577-uart 11004000.serial: GPIO lookup for consumer rs485-term
[    5.500167] mt6577-uart 11004000.serial: using device tree for GPIO lookup
[    5.500201] of_get_named_gpiod_flags: can't parse 'rs485-term-gpios' property of node '/serial@11004000[0]'
[    5.500254] of_get_named_gpiod_flags: can't parse 'rs485-term-gpio' property of node '/serial@11004000[0]'
[    5.500295] mt6577-uart 11004000.serial: using lookup tables for GPIO lookup
[    5.500318] mt6577-uart 11004000.serial: No GPIO consumer rs485-term found
[    5.520528] 11004000.serial: ttyS0 at MMIO 0x11004000 (irq = 207, base_baud = 1625000) is a ST16650V2
[    6.789983] printk: console [ttyS0] enabled
[    6.795380] mt6577-uart 11002000.serial: GPIO lookup for consumer rs485-term
[    6.802526] mt6577-uart 11002000.serial: using device tree for GPIO lookup
[    6.809429] of_get_named_gpiod_flags: can't parse 'rs485-term-gpios' property of node '/serial@11002000[0]'
[    6.819232] of_get_named_gpiod_flags: can't parse 'rs485-term-gpio' property of node '/serial@11002000[0]'
[    6.828928] mt6577-uart 11002000.serial: using lookup tables for GPIO lookup
[    6.836002] mt6577-uart 11002000.serial: No GPIO consumer rs485-term found
[    6.863054] 11002000.serial: ttyS1 at MMIO 0x11002000 (irq = 208, base_baud = 1625000) is a ST16650V2
[    6.873446] mt6577-uart 11003000.serial: GPIO lookup for consumer rs485-term
[    6.880525] mt6577-uart 11003000.serial: using device tree for GPIO lookup
[    6.887460] of_get_named_gpiod_flags: can't parse 'rs485-term-gpios' property of node '/serial@11003000[0]'
[    6.897277] of_get_named_gpiod_flags: can't parse 'rs485-term-gpio' property of node '/serial@11003000[0]'
[    6.906976] mt6577-uart 11003000.serial: using lookup tables for GPIO lookup
[    6.914051] mt6577-uart 11003000.serial: No GPIO consumer rs485-term found
[    6.941079] 11003000.serial: ttyS2 at MMIO 0x11003000 (irq = 209, base_baud = 1625000) is a ST16650V2
[    6.951942] mtk_rng 1020f000.rng: registered RNG driver
[    6.952115] random: crng init done
[    6.958232] platform 15004000.jpegdec: Adding to iommu group 0
[    6.966686] platform 14007000.ovl: Adding to iommu group 1
[    6.972393] platform 14008000.rdma: Adding to iommu group 2
[    6.978140] platform 14009000.wdma: Adding to iommu group 3
[    6.983928] platform 14012000.rdma: Adding to iommu group 4
[    6.998846] mediatek-drm mediatek-drm.1.auto: Adding component match for /ovl@14007000
[    7.006958] mediatek-drm mediatek-drm.1.auto: Adding component match for /rdma@14008000
[    7.015180] mediatek-drm mediatek-drm.1.auto: Adding component match for /color@1400b000
[    7.023450] mediatek-drm mediatek-drm.1.auto: Adding component match for /rdma@14012000
[    7.031545] mediatek-drm mediatek-drm.1.auto: Adding component match for /dpi@14014000
[    7.042546] [drm] hdmi-audio-codec driver bound to HDMI
[    7.056478] loop: module loaded
[    7.059865] [WMT-DETECT][I]wmt_detect_driver_init:driver(major 154) installed success
[    7.067810] [SDIO-DETECT][I]sdio_detect_init:sdio_register_driver() ret=0
[    7.074829] MTK-BTIF[E]hal_btif_clk_get_and_prepare(284):[CCF]clk_btif=219739fd
[    7.082218] MTK-BTIF[E]hal_btif_clk_get_and_prepare(290):[CCF]clk_btif_apdma=bbca06b5
[    7.092869] mt6323-regulator mt6323-regulator: Chip ID = 0x2023
[    7.110049] mdio_bus fixed-0: GPIO lookup for consumer reset
[    7.115834] mdio_bus fixed-0: using lookup tables for GPIO lookup
[    7.121969] mdio_bus fixed-0: No GPIO consumer reset found
[    7.150722] mtk_soc_eth 1b100000.ethernet: generated random MAC address 76:57:79:08:e6:f4
[    7.159003] of_get_named_gpiod_flags: can't parse 'link-gpios' property of node '/ethernet@1b100000/mac@0/fixed-link[0]'
[    7.169938] of_get_named_gpiod_flags: can't parse 'link-gpio' property of node '/ethernet@1b100000/mac@0/fixed-link[0]'
[    7.180837] mtk_soc_eth 1b100000.ethernet: generated random MAC address 7a:18:70:e1:66:d7
[    7.189071] of_get_named_gpiod_flags: can't parse 'link-gpios' property of node '/ethernet@1b100000/mac@1/fixed-link[0]'
[    7.200006] of_get_named_gpiod_flags: can't parse 'link-gpio' property of node '/ethernet@1b100000/mac@1/fixed-link[0]'
[    7.211543] mdio_bus mdio-bus: GPIO lookup for consumer reset
[    7.217346] mdio_bus mdio-bus: using device tree for GPIO lookup
[    7.223391] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ethernet@1b100000/mdio-bus[0]'
[    7.233724] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ethernet@1b100000/mdio-bus[0]'
[    7.243945] mdio_bus mdio-bus: using lookup tables for GPIO lookup
[    7.250132] mdio_bus mdio-bus: No GPIO consumer reset found
[    7.256522] mt7530 mdio-bus:00: GPIO lookup for consumer reset
[    7.262421] mt7530 mdio-bus:00: using device tree for GPIO lookup
[    7.268547] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ethernet@1b100000/mdio-bus/switch@0[0]' - status (0)
[    7.280377] gpio gpiochip0: Persistence not supported for GPIO 33
[    7.288375] mtk_soc_eth 1b100000.ethernet eth0: mediatek frame engine at 0xe00e0000, irq 226
[    7.297419] mtk_soc_eth 1b100000.ethernet eth1: mediatek frame engine at 0xe00e0000, irq 226
[    7.308002] xhci-mtk 1a1c0000.usb: xHCI Host Controller
[    7.313325] xhci-mtk 1a1c0000.usb: new USB bus registered, assigned bus number 1
[    7.324656] xhci-mtk 1a1c0000.usb: hcc params 0x01401198 hci version 0x96 quirks 0x0000000000290010
[    7.333866] xhci-mtk 1a1c0000.usb: irq 223, io mem 0x1a1c0000
[    7.339806] xhci-mtk 1a1c0000.usb: xHCI Host Controller
[    7.345093] xhci-mtk 1a1c0000.usb: new USB bus registered, assigned bus number 2
[    7.352554] xhci-mtk 1a1c0000.usb: Host supports USB 3.0 SuperSpeed
[    7.359810] hub 1-0:1.0: USB hub found
[    7.363704] hub 1-0:1.0: 1 port detected
[    7.368229] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    7.377218] hub 2-0:1.0: USB hub found
[    7.381048] hub 2-0:1.0: 1 port detected
[    7.386546] xhci-mtk 1a240000.usb: xHCI Host Controller
[    7.391834] xhci-mtk 1a240000.usb: new USB bus registered, assigned bus number 3
[    7.403103] xhci-mtk 1a240000.usb: hcc params 0x01401198 hci version 0x96 quirks 0x0000000000290010
[    7.412326] xhci-mtk 1a240000.usb: irq 224, io mem 0x1a240000
[    7.418263] xhci-mtk 1a240000.usb: xHCI Host Controller
[    7.423561] xhci-mtk 1a240000.usb: new USB bus registered, assigned bus number 4
[    7.430987] xhci-mtk 1a240000.usb: Host supports USB 3.0 SuperSpeed
[    7.438363] hub 3-0:1.0: USB hub found
[    7.442253] hub 3-0:1.0: 1 port detected
[    7.446757] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[    7.455731] hub 4-0:1.0: USB hub found
[    7.459555] hub 4-0:1.0: 1 port detected
[    7.464568] usbcore: registered new interface driver usb-storage
[    7.470729] usbcore: registered new interface driver usbserial_generic
[    7.477382] usbserial: USB Serial support registered for generic
[    7.484403] usb-conn-gpio 11200000.usb:connector: GPIO lookup for consumer id
[    7.491571] usb-conn-gpio 11200000.usb:connector: using device tree for GPIO lookup
[    7.499341] of_get_named_gpiod_flags: parsed 'id-gpios' property of node '/usb@11200000/connector[0]' - status (0)
[    7.509775] gpio gpiochip0: Persistence not supported for GPIO 44
[    7.515908] usb-conn-gpio 11200000.usb:connector: GPIO lookup for consumer vbus
[    7.523261] usb-conn-gpio 11200000.usb:connector: using device tree for GPIO lookup
[    7.530937] of_get_named_gpiod_flags: can't parse 'vbus-gpios' property of node '/usb@11200000/connector[0]'
[    7.540816] of_get_named_gpiod_flags: can't parse 'vbus-gpio' property of node '/usb@11200000/connector[0]'
[    7.550599] usb-conn-gpio 11200000.usb:connector: using lookup tables for GPIO lookup
[    7.558455] usb-conn-gpio 11200000.usb:connector: No GPIO consumer vbus found
[    7.565655] usb-conn-gpio 11200000.usb:connector: supply vbus not found, using dummy regulator
[    7.575523] usb_phy_generic usb_phy_generic.3.auto: GPIO lookup for consumer reset
[    7.583175] usb_phy_generic usb_phy_generic.3.auto: using lookup tables for GPIO lookup
[    7.591196] usb_phy_generic usb_phy_generic.3.auto: No GPIO consumer reset found
[    7.598639] usb_phy_generic usb_phy_generic.3.auto: GPIO lookup for consumer vbus-detect
[    7.606781] usb_phy_generic usb_phy_generic.3.auto: using lookup tables for GPIO lookup
[    7.614815] usb_phy_generic usb_phy_generic.3.auto: No GPIO consumer vbus-detect found
[    7.622792] usb_phy_generic usb_phy_generic.3.auto: supply vcc not found, using dummy regulator
[    7.632804] musb-hdrc musb-hdrc.4.auto: MUSB HDRC host driver
[    7.638603] musb-hdrc musb-hdrc.4.auto: new USB bus registered, assigned bus number 5
[    7.647423] hub 5-0:1.0: USB hub found
[    7.651253] hub 5-0:1.0: 1 port detected
[    7.656838] g_serial gadget: Gadget Serial v2.4
[    7.661402] g_serial gadget: g_serial ready
[    7.666054] mousedev: PS/2 mouse device common for all mice
[    7.673643] mt6397-rtc mt6323-rtc: registered as rtc0
[    7.678779] mt6397-rtc mt6323-rtc: setting system clock to 2024-12-10T16:21:03 UTC (1733847663)
[    7.689985] Registered IR keymap rc-empty
[    7.694178] rc rc0: mtk_cir as /devices/platform/10013000.cir/rc/rc0
[    7.700786] rc rc0: lirc_dev: driver mtk_cir registered at minor = 0, raw IR receiver, no transmitter
[    7.710232] input: mtk_cir as /devices/platform/10013000.cir/rc/rc0/input0
[    7.717650] mtk_cir 10013000.cir: Initialized MT7623 IR driver, sample period = 46us
[    7.726589] mtk-jpeg 15004000.jpegdec: mtk-jpeg-dec device registered as /dev/video0 (81,0)
[    7.735835] mtk-thermal 1100b000.thermal: Device not calibrated, using default calibration values
[    7.746536] mtk-wdt 10007000.watchdog: Watchdog enabled (timeout=31 sec, nowayout=0)
[    7.755826] device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: [email protected]
[    7.764790] device-mapper: multipath round-robin: version 1.2.0 loaded
[    7.771346] device-mapper: multipath queue-length: version 0.2.0 loaded
[    7.777990] device-mapper: multipath service-time: version 0.3.0 loaded
[    7.784714] device-mapper: raid: Loading target version 1.15.1
[    7.791206] cpu cpu0: dummy supplies not allowed for exclusive requests
[    7.800748] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/blue[0]' - status (0)
[    7.809855] gpio gpiochip0: Persistence not supported for GPIO 240
[    7.810595] mtk-msdc 11240000.mmc: GPIO lookup for consumer cd
[    7.810986] mtk-msdc 11230000.mmc: GPIO lookup for consumer wp
[    7.810998] mtk-msdc 11230000.mmc: using device tree for GPIO lookup
[    7.811015] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/mmc@11230000[0]'
[    7.811045] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/mmc@11230000[0]'
[    7.811067] mtk-msdc 11230000.mmc: using lookup tables for GPIO lookup
[    7.811076] mtk-msdc 11230000.mmc: No GPIO consumer wp found
[    7.816104] gpio-472 (?): no flags found for gpios
[    7.821974] mtk-msdc 11240000.mmc: using device tree for GPIO lookup
[    7.827981] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/green[0]' - status (0)
[    7.834202] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/mmc@11240000[0]' - status (0)
[    7.843016] gpio gpiochip0: Persistence not supported for GPIO 241
[    7.851709] gpio gpiochip0: Persistence not supported for GPIO 261
[    7.858232] gpio-473 (?): no flags found for gpios
[    7.858392] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/red[0]' - status (0)
[    7.863942] mtk-msdc 11240000.mmc: Got CD GPIO
[    7.868730] gpio gpiochip0: Persistence not supported for GPIO 239
[    7.875087] mtk-msdc 11240000.mmc: GPIO lookup for consumer wp
[    7.875096] mtk-msdc 11240000.mmc: using device tree for GPIO lookup
[    7.884159] gpio-471 (?): no flags found for gpios
[    7.893660] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/mmc@11240000[0]'
[    7.901936] hid: raw HID events driver (C) Jiri Kosina
[    7.906043] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/mmc@11240000[0]'
[    7.910965] usbcore: registered new interface driver usbhid
[    7.919716] mtk-msdc 11240000.mmc: using lookup tables for GPIO lookup
[    7.924167] usbhid: USB HID core driver
[    7.930350] mtk-msdc 11240000.mmc: No GPIO consumer wp found
[    7.938278] mtk-iommu-v1 10205000.mmsys_iommu: bound 14010000.larb (ops mtk_smi_larb_component_ops)
[    8.000761] mtk-iommu-v1 10205000.mmsys_iommu: bound 16010000.larb (ops mtk_smi_larb_component_ops)
[    8.009864] mtk-iommu-v1 10205000.mmsys_iommu: bound 15001000.larb (ops mtk_smi_larb_component_ops)
[    8.022694] IPv6: Loaded, but administratively disabled, reboot required to enable
[    8.030304] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    8.036830] NET: Registered PF_PACKET protocol family
[    8.042703] NET: Registered PF_KCM protocol family
[    8.047745] 8021q: 802.1Q VLAN Support v1.8
[    8.052494] ThumbEE CPU extension supported.
[    8.056798] Registering SWP/SWPB emulation handler
[    8.062151] Loading compiled-in X.509 certificates
[    8.089697] mtk-pcie 1a140000.pcie: host bridge /pcie@1a140000 ranges:
[    8.096366] mtk-pcie 1a140000.pcie:       IO 0x001a160000..0x001a16ffff -> 0x001a160000
[    8.104468] mtk-pcie 1a140000.pcie:      MEM 0x0060000000..0x006fffffff -> 0x0060000000
[    8.127325] mmc1: new high speed MMC card at address 0001
[    8.134135] mmcblk1: mmc1:0001 8GTF4R 7.28 GiB 
[    8.142150]  mmcblk1: p1 p2
[    8.146371] mmcblk1boot0: mmc1:0001 8GTF4R 4.00 MiB 
[    8.147197] mtk-pcie 1a140000.pcie: PCI host bridge to bus 0000:00
[    8.154518] mmcblk1boot1: mmc1:0001 8GTF4R 4.00 MiB 
[    8.157616] pci_bus 0000:00: root bus resource [bus 00-ff]
[    8.165005] mmcblk1rpmb: mmc1:0001 8GTF4R 512 KiB, chardev (242:0)
[    8.168045] pci_bus 0000:00: root bus resource [io  0x0000-0xffff] (bus address [0x1a160000-0x1a16ffff])
[    8.183766] pci_bus 0000:00: root bus resource [mem 0x60000000-0x6fffffff]
[    8.190700] pci 0000:00:00.0: [14c3:0801] type 01 class 0x060400
[    8.196762] pci 0000:00:00.0: reg 0x14: [mem 0x00000000-0x0000ffff]
[    8.203139] pci 0000:00:00.0: supports D1
[    8.207157] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    8.213402] pci 0000:00:01.0: [14c3:0801] type 01 class 0x060400
[    8.219455] pci 0000:00:01.0: reg 0x14: [mem 0x00000000-0x0000ffff]
[    8.225851] pci 0000:00:01.0: supports D1
[    8.229871] pci 0000:00:01.0: PME# supported from D0 D1 D3hot
[    8.238466] PCI: bus0: Fast back to back transfers disabled
[    8.244110] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    8.252170] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    8.260412] pci 0000:01:00.0: [168c:0033] type 00 class 0x028000
[    8.266495] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x0001ffff 64bit]
[    8.273354] pci 0000:01:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    8.280178] pci 0000:01:00.0: supports D1
[    8.284218] pci 0000:01:00.0: PME# supported from D0 D1 D3hot
[    8.314535] PCI: bus1: Fast back to back transfers disabled
[    8.320141] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    8.327042] pci 0000:02:00.0: [1b21:0611] type 00 class 0x010185
[    8.333124] pci 0000:02:00.0: reg 0x10: initial BAR value 0x00000000 invalid
[    8.340185] pci 0000:02:00.0: reg 0x10: [io  size 0x0008]
[    8.345617] pci 0000:02:00.0: reg 0x14: initial BAR value 0x00000000 invalid
[    8.352689] pci 0000:02:00.0: reg 0x14: [io  size 0x0004]
[    8.358104] pci 0000:02:00.0: reg 0x18: initial BAR value 0x00000000 invalid
[    8.365173] pci 0000:02:00.0: reg 0x18: [io  size 0x0008]
[    8.370588] pci 0000:02:00.0: reg 0x1c: initial BAR value 0x00000000 invalid
[    8.377692] pci 0000:02:00.0: reg 0x1c: [io  size 0x0004]
[    8.383131] pci 0000:02:00.0: reg 0x20: initial BAR value 0x00000000 invalid
[    8.390189] pci 0000:02:00.0: reg 0x20: [io  size 0x0010]
[    8.395618] pci 0000:02:00.0: reg 0x24: [mem 0x00000000-0x000001ff]
[    8.401917] pci 0000:02:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    8.434519] PCI: bus2: Fast back to back transfers disabled
[    8.440128] pci_bus 0000:02: busn_res: [bus 02-ff] end is updated to 02
[    8.446839] pci 0000:00:00.0: BAR 8: assigned [mem 0x60000000-0x600fffff]
[    8.453668] pci 0000:00:00.0: BAR 9: assigned [mem 0x60100000-0x601fffff pref]
[    8.460907] pci 0000:00:01.0: BAR 8: assigned [mem 0x60200000-0x602fffff]
[    8.467724] pci 0000:00:01.0: BAR 9: assigned [mem 0x60300000-0x603fffff pref]
[    8.474975] pci 0000:00:00.0: BAR 1: assigned [mem 0x60400000-0x6040ffff]
[    8.481777] pci 0000:00:01.0: BAR 1: assigned [mem 0x60410000-0x6041ffff]
[    8.488590] pci 0000:00:01.0: BAR 7: assigned [io  0x1000-0x1fff]
[    8.494714] pci 0000:01:00.0: BAR 0: assigned [mem 0x60000000-0x6001ffff 64bit]
[    8.502062] pci 0000:01:00.0: BAR 6: assigned [mem 0x60100000-0x6010ffff pref]
[    8.509299] pci 0000:00:00.0: PCI bridge to [bus 01]
[    8.514288] pci 0000:00:00.0:   bridge window [mem 0x60000000-0x600fffff]
[    8.521086] pci 0000:00:00.0:   bridge window [mem 0x60100000-0x601fffff pref]
[    8.528340] pci 0000:02:00.0: BAR 6: assigned [mem 0x60300000-0x6030ffff pref]
[    8.535591] pci 0000:02:00.0: BAR 5: assigned [mem 0x60200000-0x602001ff]
[    8.542407] pci 0000:02:00.0: BAR 4: assigned [io  0x1000-0x100f]
[    8.548512] pci 0000:02:00.0: BAR 0: assigned [io  0x1010-0x1017]
[    8.554645] pci 0000:02:00.0: BAR 2: assigned [io  0x1018-0x101f]
[    8.560752] pci 0000:02:00.0: BAR 1: assigned [io  0x1020-0x1023]
[    8.566872] pci 0000:02:00.0: BAR 3: assigned [io  0x1024-0x1027]
[    8.572995] pci 0000:00:01.0: PCI bridge to [bus 02]
[    8.577967] pci 0000:00:01.0:   bridge window [io  0x1000-0x1fff]
[    8.584084] pci 0000:00:01.0:   bridge window [mem 0x60200000-0x602fffff]
[    8.590882] pci 0000:00:01.0:   bridge window [mem 0x60300000-0x603fffff pref]
[    8.598362] pcieport 0000:00:00.0: enabling device (0140 -> 0142)
[    8.604747] pcieport 0000:00:00.0: PME: Signaling with IRQ 259
[    8.610947] pcieport 0000:00:01.0: enabling device (0140 -> 0143)
[    8.617300] pcieport 0000:00:01.0: PME: Signaling with IRQ 253
[    8.623638] ahci 0000:02:00.0: version 3.0
[    8.627771] ahci 0000:02:00.0: enabling device (0140 -> 0143)
[    8.633682] ahci 0000:02:00.0: SSS flag set, parallel bus scan disabled
[    8.640363] ahci 0000:02:00.0: AHCI 0001.0200 32 slots 2 ports 6 Gbps 0x3 impl IDE mode
[    8.648415] ahci 0000:02:00.0: flags: 64bit ncq sntf stag led clo pmp pio slum part ccc sxs 
[    8.658922] scsi host0: ahci
[    8.662720] scsi host1: ahci
[    8.665915] ata1: SATA max UDMA/133 abar m512@0x60200000 port 0x60200100 irq 253
[    8.673398] ata2: SATA max UDMA/133 abar m512@0x60200000 port 0x60200180 irq 253
[    8.681404] mediatek-dpi 14014000.dpi: Found bridge node: /hdmi@14015000
[    8.688467] mediatek-drm mediatek-drm.1.auto: bound 14007000.ovl (ops mtk_disp_ovl_component_ops)
[    8.697426] mediatek-drm mediatek-drm.1.auto: bound 14008000.rdma (ops mtk_disp_rdma_component_ops)
[    8.706516] mediatek-drm mediatek-drm.1.auto: bound 1400b000.color (ops mtk_disp_color_component_ops)
[    8.715773] mediatek-drm mediatek-drm.1.auto: bound 14012000.rdma (ops mtk_disp_rdma_component_ops)
[    8.724889] [drm] forcing HDMI-A-1 connector on
[    8.729433] mediatek-drm mediatek-drm.1.auto: bound 14014000.dpi (ops mtk_dpi_component_ops)
[    8.737994] mediatek-drm mediatek-drm.1.auto: Not creating crtc 1 because component 9 is disabled or missing
[    8.748840] [drm] Initialized mediatek 1.0.0 20150513 for mediatek-drm.1.auto on minor 0
[    8.825595] Console: switching to colour frame buffer device 160x64
[    8.848634] mediatek-drm mediatek-drm.1.auto: [drm] fb0: mediatekdrmfb frame buffer device
[    8.857739] mt7530 mdio-bus:00: GPIO lookup for consumer reset
[    8.863762] mt7530 mdio-bus:00: using device tree for GPIO lookup
[    8.869993] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ethernet@1b100000/mdio-bus/switch@0[0]' - status (0)
[    8.882017] gpio gpiochip0: Persistence not supported for GPIO 33
[    8.913966] mt7530 mdio-bus:00: no interrupt support
[    8.919494] mdio_bus mt7530-0: GPIO lookup for consumer reset
[    8.925381] mdio_bus mt7530-0: using lookup tables for GPIO lookup
[    8.931687] mdio_bus mt7530-0: No GPIO consumer reset found
[    8.945965] mdio_bus mt7530-0:00: GPIO lookup for consumer reset
[    8.952155] mdio_bus mt7530-0:00: using lookup tables for GPIO lookup
[    8.958714] mdio_bus mt7530-0:00: No GPIO consumer reset found
[    8.973551] mdio_bus mt7530-0:01: GPIO lookup for consumer reset
[    8.979729] mdio_bus mt7530-0:01: using lookup tables for GPIO lookup
[    8.986312] mdio_bus mt7530-0:01: No GPIO consumer reset found
[    9.000872] mdio_bus mt7530-0:02: GPIO lookup for consumer reset
[    9.007068] mdio_bus mt7530-0:02: using lookup tables for GPIO lookup
[    9.013666] mdio_bus mt7530-0:02: No GPIO consumer reset found
[    9.028476] mdio_bus mt7530-0:03: GPIO lookup for consumer reset
[    9.034684] mdio_bus mt7530-0:03: using lookup tables for GPIO lookup
[    9.041242] mdio_bus mt7530-0:03: No GPIO consumer reset found
[    9.056127] mdio_bus mt7530-0:04: GPIO lookup for consumer reset
[    9.062336] mdio_bus mt7530-0:04: using lookup tables for GPIO lookup
[    9.068896] mdio_bus mt7530-0:04: No GPIO consumer reset found
[    9.083628] mdio_bus mt7530-0:05: GPIO lookup for consumer reset
[    9.089786] mdio_bus mt7530-0:05: using lookup tables for GPIO lookup
[    9.096384] mdio_bus mt7530-0:05: No GPIO consumer reset found
[    9.103704] mt7530 mdio-bus:00 wan (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7530 PHY] (irq=POLL)
[    9.115352] mt7530 mdio-bus:00 lan0 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7530 PHY] (irq=POLL)
[    9.127050] mt7530 mdio-bus:00 lan1 (uninitialized): PHY [mt7530-0:02] driver [MediaTek MT7530 PHY] (irq=POLL)
[    9.138780] mt7530 mdio-bus:00 lan2 (uninitialized): PHY [mt7530-0:03] driver [MediaTek MT7530 PHY] (irq=POLL)
[    9.150534] mt7530 mdio-bus:00 lan3 (uninitialized): PHY [mt7530-0:04] driver [MediaTek MT7530 PHY] (irq=POLL)
[    9.161437] of_get_named_gpiod_flags: can't parse 'link-gpios' property of node '/ethernet@1b100000/mdio-bus/switch@0/ports/port@5/fixed-link[0]'
[    9.174822] of_get_named_gpiod_flags: can't parse 'link-gpio' property of node '/ethernet@1b100000/mdio-bus/switch@0/ports/port@5/fixed-link[0]'
[    9.181912] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    9.194279] of_get_named_gpiod_flags: can't parse 'link-gpios' property of node '/ethernet@1b100000/mdio-bus/switch@0/ports/port@6/fixed-link[0]'
[    9.224197] of_get_named_gpiod_flags: can't parse 'link-gpio' property of node '/ethernet@1b100000/mdio-bus/switch@0/ports/port@6/fixed-link[0]'
[    9.224230] ata1.00: ATA-10: ADATA SU650, XD0R840H, max UDMA/133
[    9.243116] ata1.00: 234441648 sectors, multi 1: LBA48 NCQ (depth 32), AA
[    9.255455] mt7530 mdio-bus:00: configuring for fixed/trgmii link mode
[    9.281720] DSA: tree 0 setup
[    9.290891] usb-conn-gpio 11200000.usb:connector: GPIO lookup for consumer id
[    9.304038] usb-conn-gpio 11200000.usb:connector: using device tree for GPIO lookup
[    9.304071] ata1.00: configured for UDMA/133
[    9.317653] of_get_named_gpiod_flags: parsed 'id-gpios' property of node '/usb@11200000/connector[0]' - status (0)
[    9.328165] scsi 0:0:0:0: Direct-Access     ATA      ADATA SU650      840H PQ: 0 ANSI: 5
[    9.344095] gpio gpiochip0: Persistence not supported for GPIO 44
[    9.359579] sd 0:0:0:0: [sda] 234441648 512-byte logical blocks: (120 GB/112 GiB)
[    9.370259] usb-conn-gpio 11200000.usb:connector: GPIO lookup for consumer vbus
[    9.383825] sd 0:0:0:0: [sda] Write Protect is off
[    9.397035] usb-conn-gpio 11200000.usb:connector: using device tree for GPIO lookup
[    9.407743] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    9.421367] of_get_named_gpiod_flags: can't parse 'vbus-gpios' property of node '/usb@11200000/connector[0]'
[    9.432476] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    9.448209] of_get_named_gpiod_flags: can't parse 'vbus-gpio' property of node '/usb@11200000/connector[0]'
[    9.479210] usb-conn-gpio 11200000.usb:connector: using lookup tables for GPIO lookup
[    9.493227] usb-conn-gpio 11200000.usb:connector: No GPIO consumer vbus found
[    9.506544] usb-conn-gpio 11200000.usb:connector: supply vbus not found, using dummy regulator
[    9.522331] mt7530 mdio-bus:00: Link is Up - 1Gbps/Full - flow control rx/tx
[    9.533074] clk: Disabling unused clocks
[    9.545897] ALSA device list:
[    9.552663]  sda: sda1 sda2 sda3
[    9.554839]   No soundcards found.
[    9.565502] sd 0:0:0:0: [sda] Attached SCSI disk
[    9.573347] Warning: unable to open an initial console.
[    9.851899] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    9.871583] ata2.00: ATA-10: ADATA SU650, XD0R840H, max UDMA/133
[    9.885278] ata2.00: 234441648 sectors, multi 1: LBA48 NCQ (depth 32), AA
[    9.912763] ata2.00: configured for UDMA/133
[    9.923122] scsi 1:0:0:0: Direct-Access     ATA      ADATA SU650      840H PQ: 0 ANSI: 5
[    9.938313] sd 1:0:0:0: [sdb] 234441648 512-byte logical blocks: (120 GB/112 GiB)
[    9.951680] sd 1:0:0:0: [sdb] Write Protect is off
[    9.962174] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    9.973018] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    9.992937]  sdb: sdb1 sdb2 sdb3
[   10.003639] sd 1:0:0:0: [sdb] Attached SCSI disk
[   10.067920] Freeing unused kernel image (initmem) memory: 39936K
[   10.080213] Run /init as init process
[   10.089724]   with arguments:
[   10.098496]     /init
[   10.106521]   with environment:
[   10.115396]     HOME=/
[   10.123459]     TERM=linux
[   10.131823]     board=bpi-r2
[   10.140348]     service=linux
[   40.171987] vusb: disabling
[   40.180472] vmc: disabling
[   40.188840] vmch: disabling
[   40.197261] vgp1: disabling
[   40.205664] vcamaf: disabling
[   51.778833] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[   51.792100] CPU: 1 PID: 1 Comm: init Not tainted 5.15.173-bpi-r2-main #4
[   51.804310] Hardware name: Mediatek Cortex-A7 (Device Tree)
[   51.815435] Backtrace: 
[   51.823443] [<c0fb53f0>] (dump_backtrace) from [<c0fb5808>] (show_stack+0x20/0x24)
[   51.836776]  r7:00000001 r6:c13a77f0 r5:600e0093 r4:c13bf058
[   51.848056] [<c0fb57e8>] (show_stack) from [<c0fba648>] (dump_stack_lvl+0x48/0x54)
[   51.861275] [<c0fba600>] (dump_stack_lvl) from [<c0fba66c>] (dump_stack+0x18/0x1c)
[   51.874386]  r5:00000000 r4:c3ea9790
[   51.883346] [<c0fba654>] (dump_stack) from [<c0fb5c54>] (panic+0x100/0x31c)
[   51.895732] [<c0fb5b54>] (panic) from [<c012e934>] (do_exit+0x370/0x3b8)
[   51.907760]  r3:00000001 r2:00000000 r1:00000100 r0:c13a77f0
[   51.918723]  r7:00000001
[   51.926481] [<c012e5c4>] (do_exit) from [<c012ea7c>] (do_group_exit+0x50/0xc4)
[   51.939027]  r7:000000f8 r4:00000100
[   51.947852] [<c012ea2c>] (do_group_exit) from [<c012eb10>] (__wake_up_parent+0x0/0x30)
[   51.961155]  r7:000000f8 r6:00000001 r5:00000004 r4:00000000
[   51.972155] [<c012eaf0>] (sys_exit_group) from [<c0100060>] (ret_fast_syscall+0x0/0x48)
[   51.985508] Exception stack(0xc416ffa8 to 0xc416fff0)
[   51.995822] ffa0:                   00000000 00000004 00000001 b6f89ca0 004df190 004df190
[   52.009319] ffc0: 00000000 00000004 00000001 000000f8 004a6349 b6fa8cd8 00000000 004dd240
[   52.022788] ffe0: 000000f8 bee639ec b6ef6413 b6e8d6c6
[   52.033087] CPU3: stopping
[   52.040972] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 5.15.173-bpi-r2-main #4
[   52.053330] Hardware name: Mediatek Cortex-A7 (Device Tree)
[   52.064083] Backtrace: 
[   52.071605] [<c0fb53f0>] (dump_backtrace) from [<c0fb5808>] (show_stack+0x20/0x24)
[   52.084330]  r7:c4024dc0 r6:00000003 r5:600f0193 r4:c13bf058
[   52.095054] [<c0fb57e8>] (show_stack) from [<c0fba648>] (dump_stack_lvl+0x48/0x54)
[   52.107703] [<c0fba600>] (dump_stack_lvl) from [<c0fba66c>] (dump_stack+0x18/0x1c)
[   52.120372]  r5:c3e7b320 r4:c3ea9630
[   52.128999] [<c0fba654>] (dump_stack) from [<c0110758>] (do_handle_IPI+0x2f4/0x32c)
[   52.141773] [<c0110464>] (do_handle_IPI) from [<c01107b8>] (ipi_handler+0x28/0x30)
[   52.154456]  r9:c41c5f30 r8:df80200c r7:c4024dc0 r6:00000014 r5:c3d05804 r4:c413c400
[   52.167348] [<c0110790>] (ipi_handler) from [<c019e2fc>] (handle_percpu_devid_irq+0x9c/0x200)
[   52.181132] [<c019e260>] (handle_percpu_devid_irq) from [<c01975e0>] (handle_domain_irq+0x6c/0x88)
[   52.195431]  r7:00000004 r6:00000000 r5:00000000 r4:c3cf5c48
[   52.206422] [<c0197574>] (handle_domain_irq) from [<c0101360>] (gic_handle_irq+0x88/0x9c)
[   52.220034]  r7:c3cf5c54 r6:df802000 r5:c3e10440 r4:c3d05804
[   52.231098] [<c01012d8>] (gic_handle_irq) from [<c0100b7c>] (__irq_svc+0x5c/0x78)
[   52.244051] Exception stack(0xc41c5f30 to 0xc41c5f78)
[   52.254550] 5f20:                                     00009120 00000000 00000001 c011f840
[   52.268255] 5f40: c3e7c140 00000003 c3d04f14 c3d04f68 c3e7ab1b c13ab8e8 00000000 c41c5f8c
[   52.281956] 5f60: c41c5f90 c41c5f80 c0109268 c010926c 600f0013 ffffffff
[   52.294071]  r9:c41c4000 r8:c3e7ab1b r7:c41c5f64 r6:ffffffff r5:600f0013 r4:c010926c
[   52.307353] [<c0109224>] (arch_cpu_idle) from [<c0fcd55c>] (default_idle_call+0x4c/0xdc)
[   52.321078] [<c0fcd510>] (default_idle_call) from [<c0167e40>] (do_idle+0xd8/0x148)
[   52.334364]  r5:00000003 r4:c41c4000
[   52.343463] [<c0167d68>] (do_idle) from [<c01681f8>] (cpu_startup_entry+0x28/0x30)
[   52.356677]  r9:410fc073 r8:8000406a r7:c41c5ff8 r6:10c0387d r5:00000003 r4:00000098
[   52.370070] [<c01681d0>] (cpu_startup_entry) from [<c0110d74>] (secondary_start_kernel+0x174/0x198)
[   52.384847] [<c0110c00>] (secondary_start_kernel) from [<80101430>] (0x80101430)
[   52.398018]  r5:00000051 r4:841a406a
[   52.407360] CPU0: stopping
[   52.415832] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.15.173-bpi-r2-main #4
[   52.428851] Hardware name: Mediatek Cortex-A7 (Device Tree)
[   52.440347] Backtrace: 
[   52.448717] [<c0fb53f0>] (dump_backtrace) from [<c0fb5808>] (show_stack+0x20/0x24)
[   52.462392]  r7:c4024dc0 r6:00000000 r5:60070193 r4:c13bf058
[   52.474170] [<c0fb57e8>] (show_stack) from [<c0fba648>] (dump_stack_lvl+0x48/0x54)
[   52.487973] [<c0fba600>] (dump_stack_lvl) from [<c0fba66c>] (dump_stack+0x18/0x1c)
[   52.501826]  r5:c3e7b320 r4:c3ea9630
[   52.511696] [<c0fba654>] (dump_stack) from [<c0110758>] (do_handle_IPI+0x2f4/0x32c)
[   52.525790] [<c0110464>] (do_handle_IPI) from [<c01107b8>] (ipi_handler+0x28/0x30)
[   52.539782]  r9:c3d01ec8 r8:df80200c r7:c4024dc0 r6:00000014 r5:c3d05804 r4:c413c400
[   52.553932] [<c0110790>] (ipi_handler) from [<c019e2fc>] (handle_percpu_devid_irq+0x9c/0x200)
[   52.568916] [<c019e260>] (handle_percpu_devid_irq) from [<c01975e0>] (handle_domain_irq+0x6c/0x88)
[   52.584380]  r7:00000004 r6:00000000 r5:00000000 r4:c3cf5c48
[   52.596496] [<c0197574>] (handle_domain_irq) from [<c0101360>] (gic_handle_irq+0x88/0x9c)
[   52.611194]  r7:c3cf5c54 r6:df802000 r5:c3e10440 r4:c3d05804
[   52.623332] [<c01012d8>] (gic_handle_irq) from [<c0100b7c>] (__irq_svc+0x5c/0x78)
[   52.637356] Exception stack(0xc3d01ec8 to 0xc3d01f10)
[   52.648908] 1ec0:                   00009242 00000000 00000001 c011f840 c3e7c140 00000000
[   52.663653] 1ee0: c3d04f14 c3d04f68 c3e7ab1b c13ab8e8 c3d089b0 c3d01f24 c3d01f28 c3d01f18
[   52.678418] 1f00: c0109268 c010926c 60070013 ffffffff
[   52.690027]  r9:c3d00000 r8:c3e7ab1b r7:c3d01efc r6:ffffffff r5:60070013 r4:c010926c
[   52.704407] [<c0109224>] (arch_cpu_idle) from [<c0fcd55c>] (default_idle_call+0x4c/0xdc)
[   52.719170] [<c0fcd510>] (default_idle_call) from [<c0167e40>] (do_idle+0xd8/0x148)
[   52.733496]  r5:00000000 r4:c3d00000
[   52.743657] [<c0167d68>] (do_idle) from [<c01681f8>] (cpu_startup_entry+0x28/0x30)
[   52.757888]  r9:c3ea9000 r8:00000000 r7:deffc200 r6:c3d04ec0 r5:c3ed9170 r4:000000e7
[   52.772279] [<c01681d0>] (cpu_startup_entry) from [<c0fc5894>] (rest_init+0xc8/0xd0)
[   52.786681] [<c0fc57cc>] (rest_init) from [<c1600d4c>] (arch_call_rest_init+0x18/0x1c)
[   52.801250]  r5:c3ed9170 r4:c3ea9040
[   52.811424] [<c1600d34>] (arch_call_rest_init) from [<c16013e8>] (start_kernel+0x620/0x664)
[   52.826476] [<c1600dc8>] (start_kernel) from [<00000000>] (0x0)
[   52.839091] CPU2: stopping
[   52.848419] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 5.15.173-bpi-r2-main #4
[   52.862232] Hardware name: Mediatek Cortex-A7 (Device Tree)
[   52.874476] Backtrace: 
[   52.883519] [<c0fb53f0>] (dump_backtrace) from [<c0fb5808>] (show_stack+0x20/0x24)
[   52.897800]  r7:c4024dc0 r6:00000002 r5:600f0193 r4:c13bf058
[   52.910113] [<c0fb57e8>] (show_stack) from [<c0fba648>] (dump_stack_lvl+0x48/0x54)
[   52.924408] [<c0fba600>] (dump_stack_lvl) from [<c0fba66c>] (dump_stack+0x18/0x1c)
[   52.938679]  r5:c3e7b320 r4:c3ea9630
[   52.948876] [<c0fba654>] (dump_stack) from [<c0110758>] (do_handle_IPI+0x2f4/0x32c)
[   52.963249] [<c0110464>] (do_handle_IPI) from [<c01107b8>] (ipi_handler+0x28/0x30)
[   52.977523]  r9:c41c3f30 r8:df80200c r7:c4024dc0 r6:00000014 r5:c3d05804 r4:c413c400
[   52.991941] [<c0110790>] (ipi_handler) from [<c019e2fc>] (handle_percpu_devid_irq+0x9c/0x200)
[   53.007176] [<c019e260>] (handle_percpu_devid_irq) from [<c01975e0>] (handle_domain_irq+0x6c/0x88)
[   53.022845]  r7:00000004 r6:00000000 r5:00000000 r4:c3cf5c48
[   53.033101] SMP: failed to stop secondary CPUs
0 [  - 5 35.30.04646118800]]  ------[ e[ enndd  KKeerrnnel pel apnainci c-  -n ont syot nscyinncgi:n gAtte: Amtptteemdp tteo kid tlol  kiinlilt ! exiniitt!c oedxei=t0x00cod0e0=001x0000 0]---0
 1[   53.063105]  r7:c3cf5c54 r6:df802000 r5:c3e10440 r4:c3d05804
[   53.068756] [<c01012d8>] (gic_handle_irq) from [<c0100b7c>] (__irq_svc+0x5c/0x78)

It boots. But I have played too much with the init script as it seems.

How do you load and pass your initrd to linux? Possibly you override (parts of) initrd with kernel…

I specified initramfs image file in kconfig. That is why my uImage is so bloated.

Ah,not yet used this…but should work.

tried to avoid build initrd into kernel as my initrds are nearly static (in your case it makes sense building into it). So i used uboot with my var initrd to load initrd separately.

Is there an initrd and it is build on r2? How large is your uImage? Possibly to large when decompressed

Maybe this is the rootcause why kernel is crashing:

Warning: unable to open an initial console.

Compressed image is some 48MB, decompressed about 150MB. As for console - yeah but since this is all busybox, I may be missing either setuid, or something else The image could be smaller, if I’d use busybox overlay. Ubuntu uses also busybox, but instead of symlinks, it copies it to all command filenames.

I can share what I have, it is just not fully working yet.

I built everything natively on BPi-R2 (croos also works on my desktop).

I guess issue/crash is because of size…my initrds are smaller than 20M compressed. But they are buildroot only,not created by initramfs command in ubuntu/debian.

Maybe you pack all modules into the initrd?

yes, it packed everything in. You believe that the size is the criteria? Where is this limit coming from, the HW?

As for missing console - just noticed my initramfs doesn’t have any TTY created. Bellow should fix it, although it will take time before I’ll be able to test it out:

  • in your extracted overlay/initramfs fakeroot, enter dev/ and execute:
mknod -m 622 console c 5 1
mknod -m 622 tty0 c 4 0

Repackage initramfs/kernel, and try out.

This is usually taken care of by ubuntu scripts, so I will have to review them if I do miss something or not. You can’t execute /init, if you don’t have TTY to execute it in.

The limit is memory layout…you need to make sure nothing goes beyond boundaries and overrides something else. Not sure how builtin initrd is handled,but you load kernel,it is unpacked somewhere else,then initrd is extracted from kernel and maybe also unpacked before running kernel and then starting init from initrd.

Good to know, thanks. I’ll see if it will die out again, so far I am not certain it dies out because of memory limits. It is likely that the message you pointed out is true clue - the init process didn’t had a console to output to. I’ll keep trying. I know it could work, it is just that I have to learn on how to do it.

BTW, this is also usually my job, although in corporate - to find out how linux/unix things work, remake them, and offer results :wink: This is just fun, hobby, and thing I like to spend my time on.

Image Name:   Linux Kernel 5.15.173-main
Created:      Tue Dec 10 19:26:53 2024
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    50094064 Bytes = 48919.98 KiB = 47.77 MiB
Load Address: 80008000
Entry Point:  80008000
===========================================

BTW, I was right. By adding tty to dev, I progressed further:

Loading, please wait...
mknod: /dev/console: File exists
mknod: /dev/tty0: File exists
Starting systemd-udevd version 255.4-1ubuntu8.4
[   18.065425] input: mtk-pmic-keys as /devices/platform/1000d000.pwrap/1000d000.pwrap:mt6323/mtk-pmic-keys/input/input1
[   18.442321] md/raid1:md0: active with 2 out of 2 mirrors
[   18.447752] md0: detected capacity change from 0 to 8378368
[   18.530510] SPI driver spidev has no spi_device_id for linux,spidev
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... lvm is not available
done.
Begin: Running /scripts/local-premount ... done.
[   47.210699] vusb: disabling
[   47.213532] vmc: disabling
[   47.216245] vmch: disabling
[   47.219040] vgp1: disabling
[   47.221891] vcamaf: disabling
Begin: Waiting for root file system ... Begin: Running /scripts/local-block ... done.
done.
Gave up waiting for root file system device.  Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  /dev/mmcblk0p2 does not exist.  Dropping to a shell!


BusyBox v1.36.1 (Ubuntu 1:1.36.1-6ubuntu3.1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs) cat /proc/cmdline
console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait ip=dhcp
(initramfs) zpool import rpool
(initramfs) zpool import hpool
Assertion 'path_is_absolute(p)' failed at src/basic/chase.c:648, function chase(). Aborting.
Aborted
(initramfs) df
Filesystem           1024-blocks    Used Available Use% Mounted on
udev                    973396         0    973396   0% /dev
tmpfs                   205228       624    204604   0% /run
rpool/USERDATA/root_h1wz1w
                      30178048    210560  29967488   1% /root
rpool/ROOT/ubuntu_h1wz1w/opt
                      29967616       128  29967488   0% /opt
rpool/ROOT/ubuntu_h1wz1w/tmp
                      29967616       128  29967488   0% /tmp
rpool/ROOT/ubuntu_h1wz1w/usr/local
                      29967616       128  29967488   0% /usr/local
rpool/ROOT/ubuntu_h1wz1w/var/cache
                      30387200    419712  29967488   1% /var/cache
rpool/ROOT/ubuntu_h1wz1w/var/games
                      29967616       128  29967488   0% /var/games
rpool/ROOT/ubuntu_h1wz1w/var/log
                      29967872       384  29967488   0% /var/log
rpool/ROOT/ubuntu_h1wz1w/var/lib
                      29971072      3584  29967488   0% /var/lib
rpool/ROOT/ubuntu_h1wz1w/var/mail
                      29967616       128  29967488   0% /var/mail
rpool/ROOT/ubuntu_h1wz1w/var/spool
                      29967616       128  29967488   0% /var/spool
rpool/ROOT/ubuntu_h1wz1w/var/tmp
                      29967616       128  29967488   0% /var/tmp
rpool/ROOT/ubuntu_h1wz1w/var/lib/nfs
                      29967616       128  29967488   0% /var/lib/nfs
rpool/ROOT/ubuntu_h1wz1w/var/lib/NetworkManager
                      29967616       128  29967488   0% /var/lib/NetworkManager
rpool/ROOT/ubuntu_h1wz1w/var/lib/dpkg
                      29981824     14336  29967488   0% /var/lib/dpkg
rpool/ROOT/ubuntu_h1wz1w/var/lib/AccountsService
                      29967616       128  29967488   0% /var/lib/AccountsService
rpool/ROOT/ubuntu_h1wz1w/var/lib/apt
                      30195584    228096  29967488   1% /var/lib/apt
(initramfs) ls /home
ls: /home: No such file or directory
(initramfs)

(initramfs) 

dunno why it want to mount /dev/mmcblk0p2, but that is rootfs on my SD. I will have to check it out, but finally, I have working initramfs. And the size isn’t a problem apparently.

Ignore mknod errors - I added both the devices + commands to create them in init itself. I will clean it up afterwards.

ZFS works. hpool can’t be mounted, as my zpool doesn’t have /home dir. I will fix it before trying again. Now I have to realize what is exporting wrong rootfs, whether it is in the ramdisk itself (probably), or elsewhere.

Looks like your root param was not changed…looks like my default bootargs for netboot.

Do you use my env for netboot? It uses a different base for buildargs.

Manually defined from within u-boot shell. And yes, I have your fork, plus some patches:

setenv partition 0:1
setenv bootenv uEnv-zfs.txt
run loadbootenv
env import -t ${scriptaddr} ${filesize}
setenv kernel uImage-5.15.173-bpi-r2-main
setenv console "earlyprintk console=tty1 fbcon=map:0 console=ttyS0,115200"
setenv bootopts "vmalloc=512M debug=7 initcall_debug=0 ipv6.disable=1 video=HDMI-A-1:1280x1024D fsck.mode=force fsck.repair=yes init_on_alloc=0"
setenv aload_kernel "fatload $device $partition $kaddr ${bpi}/${board}/${service}/${kernel}"
fatload mmc 0:1 ${loadaddr} ${bpi}/${board}/${service}/${kernel}; bootm

uEnv-zfs.txt:

#
## uEnv.txt
#
bpi=bananapi
board=bpi-r2
chip=mt7623n
service=linux
#
kernel=uImage-5.15.173-bpi-r2-main
#
kaddr=0x84000000
rdaddr=0x86000000
#
initsata=pci enum;scsi scan
console=earlyprintk console=tty1 fbcon=map:0 console=ttyS0,115200
bootopts=vmalloc=512M debug=7 initcall_debug=0 ipv6.disable=1 video=HDMI-A-1:1280x1024D fsck.mode=force fsck.repair=yes init_on_alloc=0
abootargs=setenv bootargs board=${board} console=${console} root=ZFS="rpool/ROOT/ubuntu_h1wz1w" service=${service} ${bootopts}
ahello=echo Banana Pi ${board} chip: $chip Service: $service
aboot=if fatload $device $partition $rdaddr ${bpi}/berryboot.img; then bootm $kaddr $rdaddr ; else bootm $kaddr; fi
aload_kernel=fatload $device $partition $kaddr ${bpi}/${board}/${service}/${kernel}
uenvcmd=run ahello abootargs aload_kernel aboot
## END

I’ve checked initramfs image, and it doesn’t relate to any rootfs on its own. So it has to be in either uBoot, or some env param I overlooked. Any idea?

See code position above…it is builtin env

Here var netbootargs is used if you choose boot from tftp in uboot menu.

netbootargs=root=/dev/mmcblk0p2 rw rootwait
#ip=dhcp sets ip on eth0 instead of wan

But if you start kernel really from mmc like above it should not be loaded. It looks like your bootargs are not overwritten…this var contains the cmdline…bootopts is only a helper var which needs to be merged into bootargs. It seems it is generated before and you have not changed afterwards

again, I didn’t choose any menu item. I pressed ESC right when u-Boot boot menu shows, and it drops me to u-boot shell. Then, I used above declarations to start the boot sequence.

As you can see, I clearly define both the kernel, and rootfs vars.

Also, I am not using NFS, but internal EMMC or external SD (both are mirrors of the same configuration, with the same u-boot flashed, same rootfs configuration, same awareness of ssds and zfs pools on them. I can interact with zfs normally while the system boots. But I can’t use zfs as a rootfs at this moment, as I have to figure out how to make initramfs stop trying to mount wrong rootfs dev. It says that it reads those from kernelcmd, but I would assume that is what I’ve defined by setting:

setenv bootargs "board=${board} console=${console} root=ZFS="rpool/ROOT/ubuntu_h1wz1w" service=${service} ${bootopts}"

But it looks like it was ignored.

Update: now looking at it, maybe I am just an idiot, it is possible that I actually didn’t use the last declaration (this post, above), to set the rootfs. OK, I’ll give it few more shots this night, hopefully I’ll figure something out. We have fully working initramfs. That is good. And this initramfs also is aware of zfs, which is awesome. It is not limited by 20MB of size apparently. Extracted has over 185MB. Now, I only have to find out where the devil is hidden.

Ubuntu’s initramfs uses stages, in which it calls certain features (like - initiate local storage, then initiate nfs, then zfs…)

How u-Boot defines kernelcmd?

I’ve DONE IT!!!

setenv partition 0:1
setenv bootenv uEnv-zfs.txt
run loadbootenv
env import -t ${scriptaddr} ${filesize}
setenv kernel uImage-5.15.173-bpi-r2-main
setenv root "ZFS="rpool/ROOT/ubuntu_h1wz1w""
setenv console "earlyprintk console=tty1 fbcon=map:0 console=ttyS0,115200"
setenv bootargs "board=${board} console=${console} root=ZFS="rpool/ROOT/ubuntu_h1wz1w" service=${service} ${bootopts}"
setenv bootopts "vmalloc=768M debug=7 initcall_debug=0 root=ZFS="rpool/ROOT/ubuntu_h1wz1w" ipv6.disable=1 video=HDMI-A-1:1280x1024D fsck.mode=force fsck.repair=yes init_on_alloc=0"
fatload mmc 0:1 ${loadaddr} ${bpi}/${board}/${service}/${kernel}; bootm

And now…

root@ap-unimatrix:~# zpool status
  pool: hpool
 state: ONLINE
config:

        NAME                                    STATE     READ WRITE CKSUM
        hpool                                   ONLINE       0     0     0
          mirror-0                              ONLINE       0     0     0
            ata-ADATA_SU650_2N35291H8BXL-part3  ONLINE       0     0     0
            ata-ADATA_SU650_2N352LA6C81H-part3  ONLINE       0     0     0

errors: No known data errors

  pool: rpool
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sda2    ONLINE       0     0     0
            sdb2    ONLINE       0     0     0

errors: No known data errors

root@ap-unimatrix:~# zfs list
NAME                                               USED  AVAIL  REFER  MOUNTPOINT
hpool                                             3.22M  73.2G    96K  /home
hpool/HOME                                         192K  73.2G    96K  none
hpool/HOME/ubuntu_h1wz1w                            96K  73.2G    96K  /home
hpool/USERDATA                                     404K  73.2G    96K  /
hpool/USERDATA/guest_h1wz1w                         96K  73.2G    96K  /home/guest
hpool/USERDATA/monitor_h1wz1w                       96K  73.2G    96K  /home/monitor
hpool/USERDATA/virnik_h1wz1w                       116K  73.2G   116K  /home/virnik
rpool                                             1.94G  28.6G    96K  /
rpool/ROOT                                        1.73G  28.6G    96K  none
rpool/ROOT/ubuntu_h1wz1w                          1.73G  28.6G  1.01G  /
rpool/ROOT/ubuntu_h1wz1w/opt                        96K  28.6G    96K  /opt
rpool/ROOT/ubuntu_h1wz1w/tmp                       280K  28.6G   136K  /tmp
rpool/ROOT/ubuntu_h1wz1w/usr                       192K  28.6G    96K  /usr
rpool/ROOT/ubuntu_h1wz1w/usr/local                  96K  28.6G    96K  /usr/local
rpool/ROOT/ubuntu_h1wz1w/var                       737M  28.6G    96K  /var
rpool/ROOT/ubuntu_h1wz1w/var/cache                 461M  28.6G   410M  /var/cache
rpool/ROOT/ubuntu_h1wz1w/var/games                  96K  28.6G    96K  /var/games
rpool/ROOT/ubuntu_h1wz1w/var/lib                   274M  28.6G  3.41M  /var/lib
rpool/ROOT/ubuntu_h1wz1w/var/lib/AccountsService    96K  28.6G    96K  /var/lib/AccountsService
rpool/ROOT/ubuntu_h1wz1w/var/lib/NetworkManager    108K  28.6G   108K  /var/lib/NetworkManager
rpool/ROOT/ubuntu_h1wz1w/var/lib/apt               254M  28.6G   223M  /var/lib/apt
rpool/ROOT/ubuntu_h1wz1w/var/lib/dpkg             15.9M  28.6G  13.9M  /var/lib/dpkg
rpool/ROOT/ubuntu_h1wz1w/var/lib/nfs                96K  28.6G    96K  /var/lib/nfs
rpool/ROOT/ubuntu_h1wz1w/var/log                  1.04M  28.6G   768K  /var/log
rpool/ROOT/ubuntu_h1wz1w/var/mail                   96K  28.6G    96K  /var/mail
rpool/ROOT/ubuntu_h1wz1w/var/spool                 152K  28.6G    96K  /var/spool
rpool/ROOT/ubuntu_h1wz1w/var/tmp                   208K  28.6G   120K  /var/tmp
rpool/USERDATA                                     206M  28.6G    96K  /
rpool/USERDATA/root_h1wz1w                         206M  28.6G   206M  /root
root@ap-unimatrix:~# 

My only problem now is to compose uEnv.txt correctly. I came up with this:

#
## uEnv.txt
#
bpi=bananapi
board=bpi-r2
chip=mt7623n
service=linux
#
kernel=uImage-5.15.173-bpi-r2-main
root=ZFS="rpool/ROOT/ubuntu_h1wz1w"

#
kaddr=0x84000000
rdaddr=0x86000000
#
initsata=pci enum;scsi scan
console=earlyprintk console=tty1 fbcon=map:0 console=ttyS0,115200
abootargs=setenv bootargs "board=${board} console=${console} root=ZFS="rpool/ROOT/ubuntu_h1wz1w" service=${service} ${bootopts}"
bootargs=board=${board} console=${console} root=ZFS="rpool/ROOT/ubuntu_h1wz1w" service=${service} ${bootopts}
bootopts=vmalloc=512M debug=7 initcall_debug=0 ipv6.disable=1 video=HDMI-A-1:1280x1024D fsck.mode=force fsck.repair=yes init_on_alloc=0
ahello=echo Banana Pi ${board} chip: $chip Service: $service
aboot=if fatload $device $partition $rdaddr ${bpi}/berryboot.img; then bootm $kaddr $rdaddr ; else bootm $kaddr; fi
aload_kernel=fatload $device $partition $kaddr ${bpi}/${board}/${service}/${kernel}
uenvcmd=run ahello abootargs aload_kernel aboot
## END

The problem is, that while it starts booting, it freezes on mediatek drm messages. I assume that some vars aren’t declared correctly. Can you please review?

Update: Solved. Bellow is my uEnv.txt:

#
## uEnv.txt
#
bpi=bananapi
board=bpi-r2
chip=mt7623n
service=linux
#
kernel=uImage-5.15.173-bpi-r2-main
root=ZFS=rpool/ROOT/ubuntu_h1wz1w

#
kaddr=0x84000000
rdaddr=0x86000000
#
initsata=pci enum;scsi scan
console=earlyprintk console=tty1 fbcon=map:0 console=ttyS0,115200
bootargs=board=${board} console=${console} root=ZFS=rpool/ROOT/ubuntu_h1wz1w service=${service} ${bootopts}
bootopts=vmalloc=512M debug=7 initcall_debug=0 ipv6.disable=1 video=HDMI-A-1:1280x1024D fsck.mode=force fsck.repair=yes init_on_alloc=0
ahello=echo Banana Pi ${board} chip: $chip Service: $service
aboot=if fatload $device $partition $rdaddr ${bpi}/berryboot.img; then bootm $kaddr $rdaddr ; else bootm $kaddr; fi
aload_kernel=fatload $device $partition $kaddr ${bpi}/${board}/${service}/${kernel}
uenvcmd=run ahello abootargs aload_kernel aboot
## END

Now it boots to zfs rootfs just fine. I may as well try to use bootfs on zfs, since my u-Boot does support binary execution from zfs dataset.

We’ll see. so far, I am fine with having EMMC used to boot and to store kernel. After all, I’d like to retain booting from EMMC, should disks die or something. But for now, I’ve achieved all my goals for this machine. I will publish what I have in next post.

Here is somewhat ‘complete’ repository of what I’ve used. I will post git repositories with all my changes later.

Another items to deal with: Thermal throttling due to wrongly designed thermal functions of kernel. This would serve me as a lead. And than this. (resolved. Three lower trigger points removed, and cpu governor set to performance (cpufreq), which makes sure that the CPU stays on its top frequency 1,3GHz, ~37°C with active cooling under heavy load)

Optional:

  • rebuild u-boot with u-boot api enabled (done)
  • edit and extend uBoot’s boot menu (resolved - My u-Boot is offering GRUB, ZFS, EMMC, SD and NFS boot options)
  • chain-load GRUB through uBoot API (like DeadMeat did here) (resolved, GRUB loads fine. Currently dealing with wrong zImage format - according to GRUB)
  • find a way to make CPU fan spin. Plugged, wired, but not spinning ATM (resolved - the connector has reversed polarity - I had to patch a new connector with VCC and GND wires swapped).

Promissed repositories (don’t mind untrusted cert - server cert is signed by my private CA, which is not trusted by public):

https://git.nutcracker.cz/czf-repo/bpi-router-linux-5.15-main.git

https://git.nutcracker.cz/czf-repo/u-boot.git

https://git.nutcracker.cz/czf-repo/wireless-regdb.git

https://git.nutcracker.cz/czf-repo/zfs-2.2.2.git

https://git.nutcracker.cz/czf-repo/extracted_initrd.git