Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

u-boot tweaks, booting faster by 5 seconds #265

Merged
merged 4 commits into from
Feb 14, 2022
Merged

u-boot tweaks, booting faster by 5 seconds #265

merged 4 commits into from
Feb 14, 2022

Conversation

MaxKellermann
Copy link
Collaborator

No description provided.

This speeds up the kernel boot time by 2.5 seconds, because the
kernel doesn't have to wait for the serial console to accept the
kernel's verbose messages.
Allows users to add more kernel parameters to config.uEnv.
@MaxKellermann MaxKellermann changed the title u-boot tweaks, booting faster by 2.5 seconds u-boot tweaks, booting faster by 5 seconds Feb 9, 2022
@MaxKellermann
Copy link
Collaborator Author

Kernel boots faster by 2.5 second, and userspace boots faster by another 2.5 seconds only due to "quiet" kernel option.

@mihu-ov
Copy link
Member

mihu-ov commented Feb 9, 2022

Great! With all the important improvements made in the last weeks behind the curtain this is very noticeable also to the average user.

Copy link
Member

@linuxianer99 linuxianer99 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me !

@lordfolken
Copy link
Contributor

yes the synchronus nature of the kernel messages on the console is a problem. I also tested this 2 days ago as i created a non-quiet kernel.

I have also noticed that we loose a lot of time in device initialization due to all the compiled in modules.
If we get the serial adapters and wifi adapters out of theere we get the root fs 3 seconds faster.

@MaxKellermann
Copy link
Collaborator Author

I have also noticed that we loose a lot of time in device initialization due to all the compiled in modules. If we get the serial adapters and wifi adapters out of theere we get the root fs 3 seconds faster.

Please post numbers

@MaxKellermann
Copy link
Collaborator Author

If we get the serial adapters and wifi adapters out of theere we get the root fs 3 seconds faster.

Monolithic kernel:

5126928 bytes read in 297 ms (16.5 MiB/s)
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.2 (oe-user@oe-host) (arm-ovlinux-linux-gnueabi-gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37.20210721) #1 SMP Wed Feb 9 00:10:14 UTC 2022
[...]
[    0.856366] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    0.857444] devtmpfs: mounted
[    0.860042] Freeing unused kernel memory: 1024K
[    0.897894] Run /sbin/init as init process

Modular kernel (reverted dd8b3db):

4126160 bytes read in 254 ms (15.5 MiB/s)
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.2 (oe-user@oe-host) (arm-ovlinux-linux-gnueabi-gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37.20210721) #1 SMP Thu Feb 10 13:27:04 UTC 2022
[...]
[    0.767245] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    0.768485] devtmpfs: mounted
[    0.772729] Freeing unused kernel memory: 1024K
[    0.787119] Run /sbin/init as init process

So yes, there is a difference, of course there is. It's 40ms for loading an additional 1 MB of kernel from the SD card, plus the boot time is delayed by 110ms.
These 110ms surprise me, I thought that would be smaller; I guess I should dig into the kernel sources and try to find ways to optimize this (and submit the patch upstream). Having more (inactive) drivers in the kernel shouldn't take so long, for my taste.

But we're really talking about 150ms, not 3000ms.

@lordfolken
Copy link
Contributor

Here is a kernel message of the non-modular kernel:
oduct=2, SerialNumber=1
[ 5.824926] usb usb3: Product: Generic Platform OHCI controller
[ 5.838725] usb usb3: Manufacturer: Linux 5.10.2 ohci_hcd
[ 5.848115] usb usb3: SerialNumber: 1c14400.usb
[ 5.857361] hub 3-0:1.0: USB hub found
[ 5.865106] hub 3-0:1.0: 1 port detected
[ 5.874178] ohci-platform 1c1c400.usb: Generic Platform OHCI controller
[ 5.888541] ohci-platform 1c1c400.usb: new USB bus registered, assigned bus number 4
[ 5.904406] ohci-platform 1c1c400.usb: irq 46, io mem 0x01c1c400
[ 5.993546] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10
[ 6.009907] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 6.025138] usb usb4: Product: Generic Platform OHCI controller
[ 6.038211] usb 2-1: new high-speed USB device number 2 using ehci-platform
[ 6.039034] usb usb4: Manufacturer: Linux 5.10.2 ohci_hcd
[ 6.063448] usb usb4: SerialNumber: 1c1c400.usb
[ 6.072711] hub 4-0:1.0: USB hub found
[ 6.080535] hub 4-0:1.0: 1 port detected
[ 6.089181] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 6.107941] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 6.122755] ALSA device list:
[ 6.129769] #0: sun4i-codec
[ 6.137323] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 6.153935] cfg80211: failed to load regulatory.db
[ 6.165296] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 6.182319] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[ 6.199410] devtmpfs: mounted
[ 6.208398] Freeing unused kernel memory: 1024K
[ 6.228985] Run /sbin/init as init process
[ 6.237332] with arguments:
[ 6.237339] /sbin/init
[ 6.237343] with environment:
[ 6.237348] HOME=/
[ 6.237352] TERM=linux
[ 6.261717] usb 2-1: New USB device found, idVendor=174c, idProduct=2074, bcdDevice= 1.00
[ 6.283873] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 6.305100] usb 2-1: Product: ASM107x
[ 6.315961] usb 2-1: Manufacturer: Asmedia
[ 6.327157] usb 2-1: SerialNumber: 0000000A0004
[ 6.338065] hub 2-1:1.0: USB hub found
[ 6.346573] hub 2-1:1.0: 4 ports detected
[ 6.678517] usb 2-1.1: new low-speed USB device number 3 using ehci-platform
[ 6.924416] usb 2-1.1: New USB device found, idVendor=1c4f, idProduct=0002, bcdDevice= 1.10
[ 6.942697] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 6.959869] usb 2-1.1: Product: HCT Keyboard
[ 6.969104] usb 2-1.1: Manufacturer: SEM
[ 6.969165] systemd[1]: System time before build time, advancing clock.
[ 7.001166] input: SEM HCT Keyboard as /devices/platform/soc/1c1c000.usb/usb2/2-1/2-1.1/2-1.1:1.0/0003:1C4F:0002.0001/input/input3
[ 7.091470] hid-generic 0003:1C4F:0002.0001: input: USB HID v1.10 Keyboard [SEM HCT Keyboard] on usb-1c1c000.usb-1.1/input0
[ 7.121839] systemd[1]: systemd 249.7+ running in system mode (-PAM -AUDIT -SELINUX -APPARMOR -IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL -ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[ 7.124296] input: SEM HCT Keyboard Consumer Control as /devices/platform/soc/1c1c000.usb/usb2/2-1/2-1.1/2-1.1:1.1/0003:1C4F:0002.0002/input/input4
[ 7.195230] systemd[1]: Detected architecture arm.
[ 7.281145] systemd[1]: Hostname set to .
[ 7.310040] input: SEM HCT Keyboard System Control as /devices/platform/soc/1c1c000.usb/usb2/2-1/2-1.1/2-1.1:1.1/0003:1C4F:0002.0002/input/input5
[ 7.336171] hid-generic 0003:1C4F:0002.0002: input: USB HID v1.10 Device [SEM HCT Keyboard] on usb-1c1c000.usb-1.1/input1
[ 7.478345] usb 2-1.2: new high-speed USB device number 4 using ehci-platform
[ 7.682171] usb 2-1.2: New USB device found, idVendor=0bda, idProduct=8179, bcdDevice= 0.00
[ 7.699118] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 7.828293] usb 2-1.3: new low-speed USB device number 5 using ehci-platform
[ 8.022181] usb 2-1.3: New USB device found, idVendor=04b3, idProduct=310c, bcdDevice= 2.00
[ 8.039259] usb 2-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 8.055245] usb 2-1.3: Product: USB Optical Mouse
[ 8.069762] input: USB Optical Mouse as /devices/platform/soc/1c1c000.usb/usb2/2-1/2-1.3/2-1.3:1.0/0003:04B3:310C.0003/input/input6
[ 8.096499] hid-generic 0003:04B3:310C.0003: input: USB HID v1.11 Mouse [USB Optical Mouse] on usb-1c1c000.usb-1.3/input0
[ 8.238634] systemd[1]: Queued start job for default target Multi-User System.
[ 8.256813] random: systemd: uninitialized urandom read (16 bytes read)
[ 8.274309] systemd[1]: Created slice Slice /system/getty.
[ 8.319271] random: systemd: uninitialized urandom read (16 bytes read)
[ 8.336197] systemd[1]: Created slice Slice /system/modprobe.
[ 8.379272] random: systemd: uninitialized urandom read (16 bytes read)
[ 8.396153] systemd[1]: Created slice Slice /system/serial-getty.
[ 8.440149] systemd[1]: Created slice User and Session Slice.
[ 8.480300] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[ 8.529091] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ 8.580503] systemd[1]: Reached target Host and Network Name Lookups.
[ 8.629853] systemd[1]: Reached target Path Units.
[ 8.670825] systemd[1]: Reached target Remote File Systems.
[ 8.720753] systemd[1]: Reached target Slice Units.
[ 8.760804] systemd[1]: Reached target Swaps.
[ 8.801869] systemd[1]: Listening on initctl Compatibility Named Pipe.
[ 8.872642] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[ 8.897744] systemd[1]: Listening on Journal Socket (/dev/log).
[ 8.952015] systemd[1]: Listening on Journal Socket.
[ 9.002422] systemd[1]: Listening on Network Service Netlink Socket.
[ 9.052234] systemd[1]: Listening on udev Control Socket.
[ 9.091886] systemd[1]: Listening on udev Kernel Socket.
[ 9.131992] systemd[1]: Listening on User Database Manager Socket.
[ 9.181876] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[ 9.205803] systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped.
[ 9.231676] systemd[1]: Condition check resulted in Kernel Debug File System being skipped.
[ 9.252496] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
[ 9.276797] systemd[1]: Mounting Temporary Directory /tmp...
[ 9.299064] systemd[1]: Condition check resulted in Create List of Static Device Nodes being skipped.
[ 9.322865] systemd[1]: Starting Load Kernel Module configfs...
[ 9.384212] systemd[1]: Starting Load Kernel Module drm...
[ 9.444858] systemd[1]: Starting Load Kernel Module fuse...
[ 9.505193] systemd[1]: Starting File System Check on Root Device...
[ 9.550845] systemd[1]: systemd-journald.service: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[ 9.580035] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
[ 9.603611] systemd[1]: Starting Journal Service...
[ 9.627994] systemd[1]: Condition check resulted in Load Kernel Modules being skipped.
[ 9.653113] systemd[1]: Starting Apply Kernel Variables...
[ 9.673625] systemd[1]: Starting Coldplug All udev Devices...
[ 9.694069] systemd[1]: Starting Setup Virtual Console...
[ 9.731936] systemd[1]: Mounted Temporary Directory /tmp.
[ 9.750094] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[ 9.772012] systemd[1]: Finished Load Kernel Module configfs.
[ 9.789560] systemd[1]: modprobe@drm.service: Deactivated successfully.
[ 9.809908] systemd[1]: Finished Load Kernel Module drm.
[ 9.823091] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[ 9.843593] systemd[1]: Finished Load Kernel Module fuse.
[ 9.855706] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
[ 9.877967] systemd[1]: Condition check resulted in Kernel Configuration File System being skipped.
[ 9.913680] systemd[1]: Finished Apply Kernel Variables.
[ 9.927301] systemd[1]: Started Journal Service.
[ 10.248285] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 10.353208] systemd-journald[105]: Received client request to flush runtime journal.
[ 10.382399] systemd-journald[105]: File /var/log/journal/ad4d4bb086c945c9aee8dd7f6f87a754/system.journal corrupted or uncleanly shut down, renaming and replacing.
[ 11.841070] lib80211: common routines for IEEE802.11 drivers
[ 11.855224] lib80211_crypt: registered algorithm 'NULL'
[ 11.926585] r8188eu: module is from the staging directory, the quality is unknown, you have been warned.
[ 11.984866] Chip Version Info: CHIP_8188E_Normal_Chip_TSMC_D_CUT_1T1R_RomVer(0)
[ 12.093201] usbcore: registered new interface driver r8188eu
[ 14.358272] random: crng init done
[ 14.361706] random: 7 urandom warning(s) missed due to ratelimiting
[ 16.570089] input: ts_uinput as /devices/virtual/input/input7
[ 17.356120] sun7i-dwmac 1c50000.ethernet eth0: PHY [stmmac-0:01] driver [Generic PHY] (irq=POLL)
[ 17.378350] sun7i-dwmac 1c50000.ethernet eth0: No Safety Features support found
[ 17.386307] sun7i-dwmac 1c50000.ethernet eth0: RX IPC Checksum Offload disabled
[ 17.386322] sun7i-dwmac 1c50000.ethernet eth0: No MAC Management Counters available
[ 17.386331] sun7i-dwmac 1c50000.ethernet eth0: PTP not supported by HW
[ 17.404372] sun7i-dwmac 1c50000.ethernet eth0: configuring for phy/mii link mode
[ 36.328529] vcc3v0: disabling
[ 36.332204] vcc5v0: disabling
[ 757.699661] MAC Address = 7c:c2:c6:15:aa:e2
[ 776.206758] R8188EU: assoc success

Here is the modular one:
[ 0.000000] CPU: ARMv7 Processor [410fc074] revision 4 (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: Cubietech Cubieboard2
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] Reserved memory: created CMA memory pool at 0x4a000000, size 96 MiB
[ 0.000000] OF: reserved mem: initialized node default-pool, compatible id shared-dma-pool
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000040000000-0x000000006fffffff]
[ 0.000000] HighMem [mem 0x0000000070000000-0x000000007dffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000040000000-0x000000007dffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000007dffffff]
[ 0.000000] On node 0 totalpages: 253952
[ 0.000000] Normal zone: 1536 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 196608 pages, LIFO batch:63
[ 0.000000] HighMem zone: 57344 pages, LIFO batch:15
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: Using PSCI v0.1 Function IDs from DT
[ 0.000000] percpu: Embedded 15 pages/cpu s31564 r8192 d21684 u61440
[ 0.000000] pcpu-alloc: s31564 r8192 d21684 u61440 alloc=15*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 252416
[ 0.000000] Kernel command line: root=/dev/mmcblk0p2 rootwait panic=10 lima.job_hang_limit=10 fbcon=rotate:0 vconsole.font=default8x16
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 898016K/1015808K available (6144K kernel code, 875K rwdata, 1668K rodata, 1024K init, 231K bss, 19488K reserved, 98304K cma-reserved, 229376K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[ 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=2
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] GIC: Using split EOI/Deactivate mode
[ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000008] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000021] Switching to timer-based delay loop, resolution 41ns
[ 0.000432] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000734] clocksource: hstimer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370868154 ns
[ 0.000973] Console: colour dummy device 80x30
[ 0.001437] printk: console [tty0] enabled
[ 0.001491] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.001528] pid_max: default: 32768 minimum: 301
[ 0.001689] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.001726] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.002512] CPU: Testing write buffer coherency: ok
[ 0.002865] /cpus/cpu@0 missing clock-frequency property
[ 0.002908] /cpus/cpu@1 missing clock-frequency property
[ 0.002930] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.003511] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.003679] rcu: Hierarchical SRCU implementation.
[ 0.004244] smp: Bringing up secondary CPUs ...
[ 0.014977] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.015134] smp: Brought up 1 node, 2 CPUs
[ 0.015182] SMP: Total of 2 processors activated (96.00 BogoMIPS).
[ 0.015199] CPU: All CPU(s) started in HYP mode.
[ 0.015212] CPU: Virtualization extensions available.
[ 0.015899] devtmpfs: initialized
[ 0.022013] random: get_random_bytes called from net_ns_init+0x6c/0x290 with crng_init=0
[ 0.022101] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 4
[ 0.022559] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.022615] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[ 0.026162] pinctrl core: initialized pinctrl subsystem
[ 0.027274] NET: Registered protocol family 16
[ 0.028661] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.029787] thermal_sys: Registered thermal governor 'step_wise'
[ 0.030078] cpuidle: using governor ladder
[ 0.030155] cpuidle: using governor menu
[ 0.051409] fbcon: Taking over console
[ 0.053174] SCSI subsystem initialized
[ 0.053225] libata version 3.00 loaded.
[ 0.053418] usbcore: registered new interface driver usbfs
[ 0.053461] usbcore: registered new interface driver hub
[ 0.053533] usbcore: registered new device driver usb
[ 0.053764] pps_core: LinuxPPS API ver. 1 registered
[ 0.053769] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti giometti@linux.it
[ 0.053787] PTP clock support registered
[ 0.054384] Advanced Linux Sound Architecture Driver Initialized.
[ 0.055437] clocksource: Switched to clocksource arch_sys_counter
[ 0.056334] simple-framebuffer 7e000000.framebuffer: framebuffer at 0x7e000000, 0x12c000 bytes, mapped to 0x(ptrval)
[ 0.056381] simple-framebuffer 7e000000.framebuffer: format=x8r8g8b8, mode=640x480x32, linelength=2560
[ 0.056930] Console: switching to colour frame buffer device 80x30
[ 0.065732] simple-framebuffer 7e000000.framebuffer: fb0: simplefb registered!
[ 0.080680] NET: Registered protocol family 2
[ 0.084881] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.092023] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 0.099147] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.102896] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.106699] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.110412] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.114305] NET: Registered protocol family 1
[ 0.119011] Initialise system trusted keyrings
[ 0.122967] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[ 0.132427] Key type asymmetric registered
[ 0.136321] Asymmetric key parser 'x509' registered
[ 0.140178] bounce: pool size: 64 pages
[ 0.144069] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 0.151992] io scheduler mq-deadline registered
[ 0.155992] io scheduler kyber registered
[ 0.160806] sun4i-usb-phy 1c13400.phy: Couldn't request ID GPIO
[ 0.168408] sun4i-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.174174] sun4i-pinctrl 1c20800.pinctrl: supply vcc-pb not found, using dummy regulator
[ 0.182921] pwm-backlight lcd: supply power not found, using dummy regulator
[ 0.244457] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.271584] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 56, base_baud = 1500000) is a U6_16550A
[ 0.933207] printk: console [ttyS0] enabled
[ 0.941865] sun4i-pinctrl 1c20800.pinctrl: supply vcc-pg not found, using dummy regulator
[ 0.978671] 1c28c00.serial: ttyS1 at MMIO 0x1c28c00 (irq = 57, base_baud = 1500000) is a U6_16550A
[ 1.016875] 1c29000.serial: ttyS2 at MMIO 0x1c29000 (irq = 58, base_baud = 1500000) is a U6_16550A
[ 1.034204] sun4i-pinctrl 1c20800.pinctrl: supply vcc-pi not found, using dummy regulator
[ 1.050209] sun4i-pinctrl 1c20800.pinctrl: supply vcc-ph not found, using dummy regulator
[ 1.087189] 1c29400.serial: ttyS3 at MMIO 0x1c29400 (irq = 59, base_baud = 1500000) is a U6_16550A
[ 1.127603] 1c29800.serial: ttyS4 at MMIO 0x1c29800 (irq = 60, base_baud = 1500000) is a U6_16550A
[ 1.151048] sun4i-pinctrl 1c20800.pinctrl: supply vcc-pd not found, using dummy regulator
[ 1.171781] lima 1c40000.gpu: gp - mali400 version major 1 minor 1
[ 1.182377] lima 1c40000.gpu: pp0 - mali400 version major 1 minor 1
[ 1.192916] lima 1c40000.gpu: pp1 - mali400 version major 1 minor 1
[ 1.203331] lima 1c40000.gpu: l2 cache 64K, 4-way, 64byte cache line, 64bit external bus
[ 1.220192] lima 1c40000.gpu: bus rate = 300000000
[ 1.229220] lima 1c40000.gpu: mod rate = 384000000
[ 1.238536] [drm] Initialized lima 1.1.0 20191231 for 1c40000.gpu on minor 0
[ 1.251030] ahci-sunxi 1c18000.sata: supply ahci not found, using dummy regulator
[ 1.266792] ahci-sunxi 1c18000.sata: supply phy not found, using dummy regulator
[ 1.283474] libphy: Fixed MDIO Bus: probed
[ 1.292345] sun4i-pinctrl 1c20800.pinctrl: supply vcc-pa not found, using dummy regulator
[ 1.308850] sun7i-dwmac 1c50000.ethernet: IRQ eth_wake_irq not found
[ 1.319374] sun7i-dwmac 1c50000.ethernet: IRQ eth_lpi not found
[ 1.329433] sun7i-dwmac 1c50000.ethernet: PTP uses main clock
[ 1.339106] sun7i-dwmac 1c50000.ethernet: no reset control found
[ 1.348964] sun7i-dwmac 1c50000.ethernet: no regulator found
[ 1.358603] sun7i-dwmac 1c50000.ethernet: Version ID not available
[ 1.368457] sun7i-dwmac 1c50000.ethernet: DWMAC1000
[ 1.376924] sun7i-dwmac 1c50000.ethernet: DMA HW capability register supported
[ 1.390865] sun7i-dwmac 1c50000.ethernet: Normal descriptors
[ 1.399908] sun7i-dwmac 1c50000.ethernet: Ring mode enabled
[ 1.409317] libphy: stmmac: probed
[ 1.418868] usbcore: registered new interface driver rtl8150
[ 1.427862] usbcore: registered new interface driver r8152
[ 1.436417] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.446008] ehci-platform: EHCI generic platform driver
[ 1.454873] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 1.464301] ohci-platform: OHCI generic platform driver
[ 1.473296] usbcore: registered new interface driver usb-storage
[ 1.482711] musb-sunxi 1c13000.usb: Invalid or missing 'dr_mode' property
[ 1.492764] musb-sunxi: probe of 1c13000.usb failed with error -22
[ 1.503236] input: 1c25000.rtp as /devices/platform/soc/1c25000.rtp/input/input0
[ 1.518655] sunxi-rtc 1c20d00.rtc: registered as rtc0
[ 1.527107] sunxi-rtc 1c20d00.rtc: setting system clock to 1970-01-01T00:00:11 UTC (11)
[ 1.541606] i2c /dev entries driver
[ 1.549413] axp20x-i2c 0-0034: AXP20x variant AXP209 found
[ 1.564500] axp20x-gpio axp20x-gpio: DMA mask not set
[ 1.574386] axp20x-gpio axp20x-gpio: AXP209 pinctrl and GPIO driver loaded
[ 1.584818] input: axp20x-pek as /devices/platform/soc/1c2ac00.i2c/i2c-0/0-0034/axp20x-pek/input/input1
[ 1.609976] vdd-rtc: supplied by regulator-dummy
[ 1.618989] avcc: supplied by regulator-dummy
[ 1.627255] ldo3: supplied by regulator-dummy
[ 1.635015] ldo4: supplied by regulator-dummy
[ 1.643156] ldo5: supplied by regulator-dummy
[ 1.651277] vdd-cpu: supplied by regulator-dummy
[ 1.659626] vdd-int-dll: supplied by regulator-dummy
[ 1.668625] axp20x-i2c 0-0034: AXP20X driver loaded
[ 1.678460] Registered IR keymap rc-empty
[ 1.685737] rc rc0: sunxi-ir as /devices/platform/soc/1c21800.ir/rc/rc0
[ 1.695684] input: sunxi-ir as /devices/platform/soc/1c21800.ir/rc/rc0/input2
[ 1.706627] sunxi-ir 1c21800.ir: initialized sunXi IR driver
[ 1.715948] Driver for 1-wire Dallas network protocol.
[ 1.724450] usbcore: registered new interface driver DS9490R
[ 1.734009] sunxi-wdt 1c20c90.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 1.750411] sun4i-pinctrl 1c20800.pinctrl: supply vcc-pf not found, using dummy regulator
[ 1.751088] sun4i-ss 1c15000.crypto-engine: Die ID 0
[ 1.773916] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[ 1.782828] usbcore: registered new interface driver usbhid
[ 1.791581] usbhid: USB HID core driver
[ 1.803918] NET: Registered protocol family 17
[ 1.805804] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[ 1.811570] Registering SWP/SWPB emulation handler
[ 1.829690] Loading compiled-in X.509 certificates
[ 1.840487] sun4i-drm display-engine: bound 1e00000.display-frontend (ops 0xc0745460)
[ 1.854832] sun4i-drm display-engine: bound 1e20000.display-frontend (ops 0xc0745460)
[ 1.869371] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc0744c00)
[ 1.883791] sun4i-drm display-engine: attempt to add DMA range to existing map
[ 1.898439] sun4i-drm display-engine: bound 1e40000.display-backend (ops 0xc0744c00)
[ 1.914136] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc0743560)
[ 1.929960] sun4i-drm display-engine: No panel or bridge found... RGB output disabled
[ 1.945705] sun4i-drm display-engine: bound 1c0d000.lcd-controller (ops 0xc0743560)
[ 1.961961] sun4i-drm display-engine: bound 1c16000.hdmi (ops 0xc0745b80)
[ 1.973215] checking generic (7e000000 12c000) vs hw (0 ffffffff)
[ 1.973225] fb0: switching to sun4i-drm-fb from simple
[ 1.982458] random: fast init done
[ 1.990185] Console: switching to colour dummy device 80x30
[ 1.996357] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 1
[ 2.009458] mmc0: host does not support reading read-only switch, assuming write-enable
[ 2.011267] mmc0: Problem switching card into high-speed mode!
[ 2.011494] mmc0: new SDHC card at address 0001
[ 2.012369] mmcblk0: mmc0:0001 SD16G 14.6 GiB
[ 2.015111] mmcblk0: p1 p2
[ 2.042078] Console: switching to colour frame buffer device 80x30
[ 2.123358] sun4i-drm display-engine: [drm] fb0: sun4i-drmdrmfb frame buffer device
[ 2.140055] ahci-sunxi 1c18000.sata: supply ahci not found, using dummy regulator
[ 2.154809] ahci-sunxi 1c18000.sata: supply phy not found, using dummy regulator
[ 2.265481] ahci-sunxi 1c18000.sata: controller can't do PMP, turning off CAP_PMP
[ 2.280840] ahci-sunxi 1c18000.sata: forcing PORTS_IMPL to 0x1
[ 2.290697] ahci-sunxi 1c18000.sata: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl platform mode
[ 2.307362] ahci-sunxi 1c18000.sata: flags: ncq sntf pm led clo only pio slum part ccc
[ 2.324332] scsi host0: ahci-sunxi
[ 2.331850] ata1: SATA max UDMA/133 mmio [mem 0x01c18000-0x01c18fff] port 0x100 irq 44
[ 2.347944] ehci-platform 1c14000.usb: EHCI Host Controller
[ 2.357021] ehci-platform 1c14000.usb: new USB bus registered, assigned bus number 1
[ 2.371876] ehci-platform 1c14000.usb: irq 40, io mem 0x01c14000
[ 2.405449] ehci-platform 1c14000.usb: USB 2.0 started, EHCI 1.00
[ 2.415134] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[ 2.430034] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.430042] usb usb1: Product: EHCI Host Controller
[ 2.430052] usb usb1: Manufacturer: Linux 5.10.2 ehci_hcd
[ 2.460840] usb usb1: SerialNumber: 1c14000.usb
[ 2.469455] hub 1-0:1.0: USB hub found
[ 2.476583] hub 1-0:1.0: 1 port detected
[ 2.485010] ehci-platform 1c1c000.usb: EHCI Host Controller
[ 2.493909] ehci-platform 1c1c000.usb: new USB bus registered, assigned bus number 2
[ 2.508294] ehci-platform 1c1c000.usb: irq 45, io mem 0x01c1c000
[ 2.545451] ehci-platform 1c1c000.usb: USB 2.0 started, EHCI 1.00
[ 2.554870] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[ 2.569171] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.582470] usb usb2: Product: EHCI Host Controller
[ 2.590421] usb usb2: Manufacturer: Linux 5.10.2 ehci_hcd
[ 2.598832] usb usb2: SerialNumber: 1c1c000.usb
[ 2.607002] hub 2-0:1.0: USB hub found
[ 2.613731] hub 2-0:1.0: 1 port detected
[ 2.621793] ohci-platform 1c14400.usb: Generic Platform OHCI controller
[ 2.631381] ohci-platform 1c14400.usb: new USB bus registered, assigned bus number 3
[ 2.645085] ohci-platform 1c14400.usb: irq 41, io mem 0x01c14400
[ 2.677660] ata1: SATA link down (SStatus 0 SControl 300)
[ 2.719683] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10
[ 2.733757] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.746739] usb usb3: Product: Generic Platform OHCI controller
[ 2.755569] usb usb3: Manufacturer: Linux 5.10.2 ohci_hcd
[ 2.763834] usb usb3: SerialNumber: 1c14400.usb
[ 2.771938] hub 3-0:1.0: USB hub found
[ 2.778655] hub 3-0:1.0: 1 port detected
[ 2.786715] ohci-platform 1c1c400.usb: Generic Platform OHCI controller
[ 2.796401] ohci-platform 1c1c400.usb: new USB bus registered, assigned bus number 4
[ 2.810282] ohci-platform 1c1c400.usb: irq 46, io mem 0x01c1c400
[ 2.889650] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10
[ 2.903918] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.917457] usb usb4: Product: Generic Platform OHCI controller
[ 2.926576] usb usb4: Manufacturer: Linux 5.10.2 ohci_hcd
[ 2.935079] usb usb4: SerialNumber: 1c1c400.usb
[ 2.943433] hub 4-0:1.0: USB hub found
[ 2.950362] hub 4-0:1.0: 1 port detected
[ 2.958363] ALSA device list:
[ 2.964226] #0: sun4i-codec
[ 2.986143] usb 2-1: new high-speed USB device number 2 using ehci-platform
[ 2.990956] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 3.011386] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[ 3.023165] devtmpfs: mounted
[ 3.030654] Freeing unused kernel memory: 1024K
[ 3.038324] Run /sbin/init as init process
[ 3.045287] with arguments:
[ 3.045292] /sbin/init
[ 3.045295] with environment:
[ 3.045301] HOME=/
[ 3.045305] TERM=linux
[ 3.208705] usb 2-1: New USB device found, idVendor=174c, idProduct=2074, bcdDevice= 1.00
[ 3.224596] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 3.235736] usb 2-1: Product: ASM107x
[ 3.243269] usb 2-1: Manufacturer: Asmedia
[ 3.251257] usb 2-1: SerialNumber: 0000000A0004
[ 3.261430] hub 2-1:1.0: USB hub found
[ 3.272382] hub 2-1:1.0: 4 ports detected
[ 3.617387] usb 2-1.1: new low-speed USB device number 3 using ehci-platform
[ 3.656326] systemd[1]: System time before build time, advancing clock.
[ 3.816154] systemd[1]: systemd 249.7+ running in system mode (-PAM -AUDIT -SELINUX -APPARMOR -IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL -ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[ 3.892517] systemd[1]: Detected architecture arm.
[ 3.906874] usb 2-1.1: New USB device found, idVendor=1c4f, idProduct=0002, bcdDevice= 1.10
[ 3.937095] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.948448] systemd[1]: Hostname set to .
[ 3.963114] usb 2-1.1: Product: HCT Keyboard
[ 3.963133] usb 2-1.1: Manufacturer: SEM
[ 4.014681] input: SEM HCT Keyboard as /devices/platform/soc/1c1c000.usb/usb2/2-1/2-1.1/2-1.1:1.0/0003:1C4F:0002.0001/input/input3
[ 4.033602] random: systemd: uninitialized urandom read (16 bytes read)
[ 4.062738] systemd[1]: Initializing machine ID from random generator.
[ 4.075702] systemd[1]: Installed transient /etc/machine-id file.
[ 4.118820] hid-generic 0003:1C4F:0002.0001: input: USB HID v1.10 Keyboard [SEM HCT Keyboard] on usb-1c1c000.usb-1.1/input0
[ 4.148852] input: SEM HCT Keyboard Consumer Control as /devices/platform/soc/1c1c000.usb/usb2/2-1/2-1.1/2-1.1:1.1/0003:1C4F:0002.0002/input/input4
[ 4.249985] input: SEM HCT Keyboard System Control as /devices/platform/soc/1c1c000.usb/usb2/2-1/2-1.1/2-1.1:1.1/0003:1C4F:0002.0002/input/input5
[ 4.271661] hid-generic 0003:1C4F:0002.0002: input: USB HID v1.10 Device [SEM HCT Keyboard] on usb-1c1c000.usb-1.1/input1
[ 4.406866] usb 2-1.2: new high-speed USB device number 4 using ehci-platform
[ 4.607440] usb 2-1.2: New USB device found, idVendor=0bda, idProduct=8179, bcdDevice= 0.00
[ 4.623076] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4.637651] usb 2-1.2: Product: 802.11n NIC
[ 4.645444] usb 2-1.2: Manufacturer: Realtek
[ 4.653196] usb 2-1.2: SerialNumber: 00E04C0001
[ 4.775527] usb 2-1.3: new low-speed USB device number 5 using ehci-platform
[ 4.969463] usb 2-1.3: New USB device found, idVendor=04b3, idProduct=310c, bcdDevice= 2.00
[ 4.984677] usb 2-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 4.998745] usb 2-1.3: Product: USB Optical Mouse
[ 5.011054] input: USB Optical Mouse as /devices/platform/soc/1c1c000.usb/usb2/2-1/2-1.3/2-1.3:1.0/0003:04B3:310C.0003/input/input6
[ 5.030267] hid-generic 0003:04B3:310C.0003: input: USB HID v1.11 Mouse [USB Optical Mouse] on usb-1c1c000.usb-1.3/input0
[ 5.156157] systemd[1]: Queued start job for default target Multi-User System.
[ 5.172741] random: systemd: uninitialized urandom read (16 bytes read)
[ 5.185121] systemd[1]: Created slice Slice /system/getty.
[ 5.226527] random: systemd: uninitialized urandom read (16 bytes read)
[ 5.239708] systemd[1]: Created slice Slice /system/modprobe.
[ 5.275819] random: systemd: uninitialized urandom read (16 bytes read)
[ 5.288992] systemd[1]: Created slice Slice /system/serial-getty.
[ 5.327174] systemd[1]: Created slice User and Session Slice.
[ 5.366898] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[ 5.427109] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ 5.477599] systemd[1]: Reached target Host and Network Name Lookups.
[ 5.516396] systemd[1]: Reached target Path Units.
[ 5.556438] systemd[1]: Reached target Remote File Systems.
[ 5.596293] systemd[1]: Reached target Slice Units.
[ 5.636435] systemd[1]: Reached target Swaps.
[ 5.677993] systemd[1]: Listening on initctl Compatibility Named Pipe.
[ 5.751617] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[ 5.777380] systemd[1]: Listening on Journal Socket (/dev/log).
[ 5.818023] systemd[1]: Listening on Journal Socket.
[ 5.858499] systemd[1]: Listening on Network Service Netlink Socket.
[ 5.898159] systemd[1]: Listening on udev Control Socket.
[ 5.937860] systemd[1]: Listening on udev Kernel Socket.
[ 5.978056] systemd[1]: Listening on User Database Manager Socket.
[ 6.018015] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[ 6.045546] systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped.
[ 6.066137] systemd[1]: Condition check resulted in Kernel Debug File System being skipped.
[ 6.086226] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
[ 6.108775] systemd[1]: Mounting Temporary Directory /tmp...
[ 6.151975] systemd[1]: Starting Create List of Static Device Nodes...
[ 6.192019] systemd[1]: Starting Load Kernel Module configfs...
[ 6.231955] systemd[1]: Starting Load Kernel Module drm...
[ 6.272948] systemd[1]: Starting Load Kernel Module fuse...
[ 6.323583] systemd[1]: Starting File System Check on Root Device...
[ 6.368944] systemd[1]: systemd-journald.service: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[ 6.391763] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
[ 6.415360] systemd[1]: Starting Journal Service...
[ 6.430543] systemd[1]: Condition check resulted in Load Kernel Modules being skipped.
[ 6.450158] systemd[1]: Starting Apply Kernel Variables...
[ 6.465651] systemd[1]: Starting Coldplug All udev Devices...
[ 6.486036] systemd[1]: Starting Setup Virtual Console...
[ 6.508058] systemd[1]: Mounted Temporary Directory /tmp.
[ 6.523676] systemd[1]: Finished Create List of Static Device Nodes.
[ 6.541347] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[ 6.557826] systemd[1]: Finished Load Kernel Module configfs.
[ 6.569586] systemd[1]: modprobe@drm.service: Deactivated successfully.
[ 6.584699] systemd[1]: Finished Load Kernel Module drm.
[ 6.596234] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[ 6.611207] systemd[1]: Finished Load Kernel Module fuse.
[ 6.622790] systemd[1]: Finished Apply Kernel Variables.
[ 6.637353] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
[ 6.656398] systemd[1]: Condition check resulted in Kernel Configuration File System being skipped.
[ 6.750139] systemd[1]: Started Journal Service.
[ 7.126500] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 7.229202] systemd-journald[85]: Received client request to flush runtime journal.
[ 8.678635] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 8.999840] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 9.011717] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 9.026731] cfg80211: failed to load regulatory.db
[ 9.040596] lib80211: common routines for IEEE802.11 drivers
[ 9.049605] lib80211_crypt: registered algorithm 'NULL'
[ 9.101100] r8188eu: module is from the staging directory, the quality is unknown, you have been warned.
[ 9.138996] Chip Version Info: CHIP_8188E_Normal_Chip_TSMC_D_CUT_1T1R_RomVer(0)
[ 9.213426] usbcore: registered new interface driver r8188eu
[ 10.895563] random: crng init done
[ 10.899034] random: 6 urandom warning(s) missed due to ratelimiting
[ 13.987674] input: ts_uinput as /devices/virtual/input/input7
[ 14.786187] sun7i-dwmac 1c50000.ethernet eth0: PHY [stmmac-0:01] driver [Generic PHY] (irq=POLL)
[ 14.826316] sun7i-dwmac 1c50000.ethernet eth0: No Safety Features support found
[ 14.833729] sun7i-dwmac 1c50000.ethernet eth0: RX IPC Checksum Offload disabled
[ 14.841175] sun7i-dwmac 1c50000.ethernet eth0: No MAC Management Counters available
[ 14.848898] sun7i-dwmac 1c50000.ethernet eth0: PTP not supported by HW
[ 14.876773] sun7i-dwmac 1c50000.ethernet eth0: configuring for phy/mii link mode
[ 33.115720] vcc3v0: disabling
[ 33.119629] vcc5v0: disabling
[ 51.336054] MAC Address = 7c:c2:c6:15:aa:e2
[ 74.690619] R8188EU: assoc success

[ 3.816154] systemd[1]: systemd 249.7+ running in system mode (-PAM -AUDIT -SELINUX -APPARMOR -IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL -ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[ 7.126500] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)

vs

[ 7.121839] systemd[1]: systemd 249.7+ running in system mode (-PAM -AUDIT -SELINUX -APPARMOR -IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL -ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[ 10.248285] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)

@MaxKellermann
Copy link
Collaborator Author

My kernel finishes booting after 0.8 seconds. Your modular kernel needs more than 3 seconds. Something's very wrong with your measurements.

@lordfolken
Copy link
Contributor

Don´t look at journalctl. Look at dmesg.

@MaxKellermann
Copy link
Collaborator Author

Don´t look at journalctl. Look at dmesg.

I did. Didn't you see that my paste has the same dmesg-style time stamps, and no journalctl formatting?

@lordfolken
Copy link
Contributor

Could that still be due to the serial line?
alone the line count is 380vs539.

@lordfolken
Copy link
Contributor

I'll try your PR #265 and see if that makes a significant difference.

@MaxKellermann
Copy link
Collaborator Author

I'll try your PR #265 and see if that makes a significant difference.

But... this is PR #265.

If you weren't using these patches, which I advertised as speeding up kernel boot by 2.5 seconds, of course you had 2.5 seconds longer kernel boot times. And your monolithic/modular times are irrelevant. That is what was wrong with your measurements!

@lordfolken
Copy link
Contributor

The measurements are both from master, one with your mono kernel patch, one without. There is nothing "wrong" with these measurements. They very well apply to master.

@MaxKellermann
Copy link
Collaborator Author

The numbers are useless for arguing against a monolithic kernel, beacuse its bad boot performance was not actually being caused by it being monolithic, but by a serial console which was slowing down the boot process. With a "quiet" kernel, that aspect disappears completely.
Technically, that was not a "wrong measurement"; the measurement itself may be correct, but the results are useless and irrelevant.

@MaxKellermann
Copy link
Collaborator Author

@kedder?

@kedder
Copy link
Member

kedder commented Feb 13, 2022

@MaxKellermann this looks good, but if I'm reading it right, we will no longer get any log on serial console (correct me if I'm wrong)? Is there a way to enable the logging when (for example) debugging a device that doesn't boot?

@lordfolken
Copy link
Contributor

@MaxKellermann this looks good, but if I'm reading it right, we will no longer get any log on serial console (correct me if I'm wrong)? Is there a way to enable the logging when (for example) debugging a device that doesn't boot?

Errors will still show with the quiet option. Its just the general kernel messages that will only accessible via dmesg.

Potentially we could create a "debug" entry in u-boot configuration that could be selected manually. Most linux distros do this and do a full verbose boot.

@MaxKellermann
Copy link
Collaborator Author

Errors will still show with the quiet option. Its just the general kernel messages that will only accessible via dmesg.

Correct. This just removes boring messages from the serial console, but keeps them in dmesg. They are not lost, they are just not printed on the serial console.

Potentially we could create a "debug" entry in u-boot configuration that could be selected manually. Most linux distros do this and do a full verbose boot.

There's no u-boot "menu" (as in "grub menu") where a user can select an "entry". u-boot is non-interactive.
But with my patches, you can add extra_bootargs=debug to /boot/config.uEnv if you care. Which will, of course, slow down the boot process by 5 seconds.

@kedder
Copy link
Member

kedder commented Feb 13, 2022

I used serial console in several situations and it helped a lot - e.g. when openvario was constantly rebooting in a loop without showing anything on screen and there was no way to get to dmesg output.

But with my patches, you can add extra_bootargs=debug to /boot/config.uEnv if you care.

Cool, that works for me.

@lordfolken
Copy link
Contributor

Errors will still show with the quiet option. Its just the general kernel messages that will only accessible via dmesg.

Correct. This just removes boring messages from the serial console, but keeps them in dmesg. They are not lost, they are just not printed on the serial console.

Potentially we could create a "debug" entry in u-boot configuration that could be selected manually. Most linux distros do this and do a full verbose boot.

There's no u-boot "menu" (as in "grub menu") where a user can select an "entry". u-boot is non-interactive. But with my patches, you can add extra_bootargs=debug to /boot/config.uEnv if you care. Which will, of course, slow down the boot process by 5 seconds.

While there is no interactive grub-style menu, you could set an alias like debugboot and make that function available on the uboot shell.

Potentially it could also be triggered by the remote stick. For example pressing and holding "F1".

@linuxianer99 linuxianer99 merged commit 6e5ef9c into Openvario:master Feb 14, 2022
@MaxKellermann MaxKellermann deleted the u-boot-tweaks branch February 14, 2022 08:10
@mihu-ov mihu-ov mentioned this pull request May 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants