/boot/initrd.img as generated by update-initramfs broken on JetPack 4.6

On a fresh SD-Card initialized with Jetson Nano Developer Kit SD Card Image JP v4.6, I am unable to switch from the default /boot/initrd to /boot/initrd.img, as generated by update-initramfs -u

As soon as I change the setting in /boot/extlinux/extlinux.conf as follows, the system is caught in an endless loop during booting:

Change from:

      INITRD /boot/initrd

to:

      INITRD /boot/initrd.dmg

Broken boot sequence as seen on TTL serial console (starting at U-Boot):

U-Boot 2020.04-g46e4604c78 (Jul 26 2021 - 12:09:42 -0700)

SoC: tegra210
Model: NVIDIA Jetson Nano Developer Kit
Board: NVIDIA P3450-0000
DRAM:  4 GiB
MMC:   sdhci@700b0000: 1, sdhci@700b0600: 0
Loading Environment from SPI Flash... SF: Detected mx25u3235f with page size 256 Bytes, erase size 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
849 bytes read in 28 ms (29.3 KiB/s)
1:      primary kernel
Retrieving file: /boot/initrd.img
15289650 bytes read in 693 ms (21 MiB/s)
Retrieving file: /boot/Image
34484232 bytes read in 1507 ms (21.8 MiB/s)
append: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1125 core_edp_ma=4000 gpt  earlycon=uart8250,mmio32,0x70006000  root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 
## Flattened Device Tree blob at 83100000
   Booting using the fdt blob at 0x83100000
ERROR: reserving fdt memory region failed (addr=0 size=0)
ERROR: reserving fdt memory region failed (addr=0 size=0)
   Using Device Tree in place at 0000000083100000, end 000000008317ce2a
copying carveout for /host1x@50000000/dc@54200000...
copying carveout for /host1x@50000000/dc@54240000...

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.253-tegra (buildbrain@mobile-u64-5496-d5000) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Mon Jul 26 12:13:06 PDT 2021
[    0.000000] Boot CPU: AArch64 Processor [411fd071]
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 32,
[    0.000000] OF: fdt: - 80000000 ,  7ee00000
[    0.000000] OF: fdt: - 100000000 ,  7f200000
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000070006000 (options '')
[    0.000000] bootconsole [uart8250] enabled

this is where the crash seems to happen, after that it restarts with a new boot sequence:

[0000.159] [L4T TegraBoot] (version 00.00.2018.01-l4t-8728f3cb)
[0000.164] Processing in cold boot mode Bootloader 2
[0000.169] A02 Bootrom Patch rev = 1023
[0000.173] Power-up reason: software reset
…

In comparison, here the same sequence with the functioning /boot/initrd:

U-Boot 2020.04-g46e4604c78 (Jul 26 2021 - 12:09:42 -0700)

SoC: tegra210
Model: NVIDIA Jetson Nano Developer Kit
Board: NVIDIA P3450-0000
DRAM:  4 GiB
MMC:   sdhci@700b0000: 1, sdhci@700b0600: 0
Loading Environment from SPI Flash... SF: Detected mx25u3235f with page size 256 Bytes, erase size 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
845 bytes read in 28 ms (29.3 KiB/s)
1:      primary kernel
Retrieving file: /boot/initrd
7160133 bytes read in 332 ms (20.6 MiB/s)
Retrieving file: /boot/Image
34484232 bytes read in 1508 ms (21.8 MiB/s)
append: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1125 core_edp_ma=4000 gpt  earlycon=uart8250,mmio32,0x70006000  root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 
## Flattened Device Tree blob at 83100000
   Booting using the fdt blob at 0x83100000
ERROR: reserving fdt memory region failed (addr=0 size=0)
ERROR: reserving fdt memory region failed (addr=0 size=0)
   Using Device Tree in place at 0000000083100000, end 000000008317ce2a
copying carveout for /host1x@50000000/dc@54200000...
copying carveout for /host1x@50000000/dc@54240000...

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.253-tegra (buildbrain@mobile-u64-5496-d5000) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Mon Jul 26 12:13:06 PDT 2021
[    0.000000] Boot CPU: AArch64 Processor [411fd071]
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 32,
[    0.000000] OF: fdt: - 80000000 ,  7ee00000
[    0.000000] OF: fdt: - 100000000 ,  7f200000
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000070006000 (options '')
[    0.000000] bootconsole [uart8250] enabled
[    1.072919] tegradc tegradc.1: dpd enable lookup fail:-19
[    1.578763] Host read timeout at address 545c00c4
[    1.819587] imx219 7-0010: imx219_board_setup: error during i2c read probe (-121)
[    1.827220] imx219 7-0010: board setup failed
[    1.855615] imx219 8-0010: imx219_board_setup: error during i2c read probe (-121)
[    1.863565] imx219 8-0010: board setup failed
[    2.532366] cgroup: cgroup2: unknown option "nsdelegate"
[    4.088222] random: crng init done
[    4.091626] random: 7 urandom warning(s) missed due to ratelimiting
[    4.544483] using random self ethernet address
[    4.560059] using random host ethernet address
[    5.872360] using random self ethernet address
[    5.895936] using random host ethernet address
[    7.789684] Bridge firewalling registered

Ubuntu 18.04.5 LTS 4t-tft ttyS0

The generated /boot/initrd.img used to function correctly on JetPack 4.3. I am aware of it already failing on 4.5.

I tried to understand the crash, but debugging this is a bit beyond me… It would be nice if this could be addressed, as it stops a variety of extensions from working, e.g. my read-only FS scripts based OverlayFS, (see overlayfs for Jetson), as well as rootOnUSB.

PS: On the fuctioning sequence, this statement is the first that doesn’t appear on the one that crashes:

[    1.072919] tegradc tegradc.1: dpd enable lookup fail:-19

Perhaps it’s a hint towards what’s wrong?

Hi,

What is your purpose here? Want to customize your own initrd?

PS: On the fuctioning sequence, this statement is the first that doesn’t appear on the one that crashes:
[ 1.072919] tegradc tegradc.1: dpd enable lookup fail:-19
Perhaps it’s a hint towards what’s wrong?

No, this only tells us maybe the display controller driver is not running. If you want to check the full dmesg, you can remove the quiet from kernel command line.

The purpose is written in the last sentence of my initial post: Allowing extensions such as OverlayFS to load. This used to work without problems up to JP 4.3

Hi,

Sorry that I am not sure how overlayFS is implemented. Can I just make this topic a simple one as if I ran update-initramfs and give it to extlinux.conf and it will fail to boot?

Also, @JerryChang has shared a workaround in overlayfs for Jetson - #33 by rkrabbenborg and I believe you were in that post too. What happened with this workaround? Does this not work anymore?

@WayneWWW yes the topic is this simple, which is why I created a separate issue, and the text already outlines this. You don’t need to load OverlayFS for the /boot/initrd.img to fail. The crash has nothing to do with OverlayFS. I only mentioned it because you asked what the use-case was. All it takes for the crash to happen is using the standard image, and switching the initrd over in extlinux.conf.

The mentioned workaround works, but it’s a hack, manually patching the default /boot/initrd file. I thought I should report this because a decent linux distribution should support update-initramfs, many things rely on it working.

Let us check.

1 Like

Here the interesting part of the log with quiet removed. The crash happens right before [0000.159] [L4T TegraBoot] (version 00.00.2018.01-l4t-8728f3cb):

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.253-tegra (buildbrain@mobile-u64-5496-d5000) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Mon Jul 26 12:13:06 PDT 2021
[    0.000000] Boot CPU: AArch64 Processor [411fd071]
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 32,
[    0.000000] OF: fdt: - 80000000 ,  7ee00000
[    0.000000] OF: fdt: - 100000000 ,  7f200000
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000070006000 (options '')
[    0.000000] bootconsole [uart8250] enabled
[    0.000000] OF: reserved mem: initialized node vpr-carveout, compatible id nvidia,vpr-carveout
[    0.000000] OF: reserved mem: initialized node iram-carveout, compatible id nvidia,iram-carveout
[    0.000000] OF: reserved mem: initialized node ramoops_carveout, compatible id nvidia,ramoops
[    0.000000] cma: Reserved 64 MiB at 0x00000000fac00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 24 pages/cpu s57624 r8192 d32488 u98304
[    0.000000] CPU features: enabling workaround for ARM erratum 832075
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 1023544
[    0.000000] Kernel command line: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1125 core_edp_ma=4000 gpt  earlycon=uart8250,mmio32,0x70006000  root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 
[    0.000000] log_buf_len individual max cpu contribution: 32768 bytes
[    0.000000] log_buf_len total cpu_extra contributions: 98304 bytes
[    0.000000] log_buf_len min size: 32768 bytes
[    0.000000] log_buf_len: 131072 bytes
[    0.000000] early log buf free: 29872(91%)
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Memory: 3560620K/4159488K available (15358K kernel code, 2956K rwdata, 6692K rodata, 8640K init, 612K bss, 123732K reserved, 475136K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000   (   250 GB)
[    0.000000]       .text : 0xffffff8008080000 - 0xffffff8008f80000   ( 15360 KB)
[    0.000000]     .rodata : 0xffffff8008f80000 - 0xffffff8009610000   (  6720 KB)
[    0.000000]       .init : 0xffffff8009610000 - 0xffffff8009e80000   (  8640 KB)
[    0.000000]       .data : 0xffffff8009e80000 - 0xffffff800a163008   (  2957 KB)
[    0.000000]        .bss : 0xffffff800a163008 - 0xffffff800a1fc0b4   (   613 KB)
[    0.000000]     fixed   : 0xffffffbefe7fd000 - 0xffffffbefec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffffffbf00000000 - 0xffffffc000000000   (     4 GB maximum)
[    0.000000]               0xffffffbf00000000 - 0xffffffbf03fc8000   (    63 MB actual)
[    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc0ff200000   (  4082 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 64.
[    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=4.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=4
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] /interrupt-controller@60004000: 192 interrupts forwarded to /interrupt-controller
[    0.000000] t210 clock and reset probe
[    0.000000] tegra-pmc: get_secure_pmc_setting: done secure_pmc=1
[    0.000000] clk_cbus_recalc_rate: no gbus parent
[    0.000000] clk_cbus_recalc_rate: no gbus parent
[    0.000000] clk_cbus_recalc_rate: no gbus parent
[    0.000000] clk_cbus_recalc_rate: no gbus parent
[    0.000000] clk_cbus_recalc_rate: no gbus parent
[    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 19.20MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000006] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.009856] Console: colour dummy device 80x25
[    0.014501] console [tty0] enabled
[    0.018015] bootconsole [uart8250] disabled
[0000.159] [L4T TegraBoot] (version 00.00.2018.01-l4t-8728f3cb)
[0000.164] Processing in cold boot mode Bootloader 2
[0000.169] A02 Bootrom Patch rev = 1023
[0000.173] Power-up reason: software reset
[0000.176] No Battery Present
[0000.179] pmic max77620 reset reason
[0000.182] pmic max77620 NVERC : 0x0
[0000.186] RamCode = 0
[0000.188] Platform has DDR4 type RAM

Looks like the reason behind this crash is still unknown. I had some other users who have such log before. But their problem is not related to initrd.

And method to dump more log is change the boot console to none.

+CMDLINE_ADD=“fbcon=map:0 net.ifnames=0 rootfstype=ext4 console=none keep_bootcon”;

This line is inside the board config in your Linux_for_Tegra. I assume you had tried manually flash the full board before.

I’ve had problems doing a full flash recently and reverted to using the SD-card image. In the past, this was just working… Do you expect a full flash to result in a different setup than using the SD-card image of JP 4.6?

Also, are you sure this makes a difference in amount of things being logged? I am currently using the TTL serial cable to get the full log on ttyS0,115200n8

Such options were also tried by other users before.

Also, I am not proposing any solution. It is just trying to enable more logs in console.

Ok you’re right, this does give me more log output, but I didn’t need to flash it, I can just change the arguments in the extlinux.conf file:

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.253-tegra (buildbrain@mobile-u64-5496-d5000) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Mon Jul 26 12:13:06 PDT 2021
[    0.000000] Boot CPU: AArch64 Processor [411fd071]
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 32,
[    0.000000] OF: fdt: - 80000000 ,  7ee00000
[    0.000000] OF: fdt: - 100000000 ,  7f200000
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000070006000 (options '')
[    0.000000] bootconsole [uart8250] enabled
[    0.000000] debug: skip boot console de-registration.
[    0.000000] OF: reserved mem: initialized node vpr-carveout, compatible id nvidia,vpr-carveout
[    0.000000] OF: reserved mem: initialized node iram-carveout, compatible id nvidia,iram-carveout
[    0.000000] OF: reserved mem: initialized node ramoops_carveout, compatible id nvidia,ramoops
[    0.000000] cma: Reserved 64 MiB at 0x00000000fac00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 24 pages/cpu s57624 r8192 d32488 u98304
[    0.000000] CPU features: enabling workaround for ARM erratum 832075
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 1023544
[    0.000000] Kernel command line: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1125 core_edp_ma=4000 gpt  earlycon=uart8250,mmio32,0x70006000  root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=none fbcon=map:0 net.ifnames=0 keep_bootcon
[    0.000000] log_buf_len individual max cpu contribution: 32768 bytes
[    0.000000] log_buf_len total cpu_extra contributions: 98304 bytes
[    0.000000] log_buf_len min size: 32768 bytes
[    0.000000] log_buf_len: 131072 bytes
[    0.000000] early log buf free: 29824(91%)
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Memory: 3560620K/4159488K available (15358K kernel code, 2956K rwdata, 6692K rodata, 8640K init, 612K bss, 123732K reserved, 475136K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000   (   250 GB)
[    0.000000]       .text : 0xffffff8008080000 - 0xffffff8008f80000   ( 15360 KB)
[    0.000000]     .rodata : 0xffffff8008f80000 - 0xffffff8009610000   (  6720 KB)
[    0.000000]       .init : 0xffffff8009610000 - 0xffffff8009e80000   (  8640 KB)
[    0.000000]       .data : 0xffffff8009e80000 - 0xffffff800a163008   (  2957 KB)
[    0.000000]        .bss : 0xffffff800a163008 - 0xffffff800a1fc0b4   (   613 KB)
[    0.000000]     fixed   : 0xffffffbefe7fd000 - 0xffffffbefec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffffffbf00000000 - 0xffffffc000000000   (     4 GB maximum)
[    0.000000]               0xffffffbf00000000 - 0xffffffbf03fc8000   (    63 MB actual)
[    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc0ff200000   (  4082 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 64.
[    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=4.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=4
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] /interrupt-controller@60004000: 192 interrupts forwarded to /interrupt-controller
[    0.000000] t210 clock and reset probe
[    0.000000] tegra-pmc: get_secure_pmc_setting: done secure_pmc=1
[    0.000000] clk_cbus_recalc_rate: no gbus parent
[    0.000000] clk_cbus_recalc_rate: no gbus parent
[    0.000000] clk_cbus_recalc_rate: no gbus parent
[    0.000000] clk_cbus_recalc_rate: no gbus parent
[    0.000000] clk_cbus_recalc_rate: no gbus parent
[    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 19.20MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000008] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.009879] Console: colour dummy device 80x25
[    0.015224] console [tty0] enabled
[    0.018750] kmemleak: Kernel memory leak detector disabled
[    0.024425] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=76800)
[    0.035021] pid_max: default: 32768 minimum: 301
[    0.040232] Security Framework initialized
[    0.044686] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.051602] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.060062] ftrace: allocating 47077 entries in 184 pages
[    0.232928] ASID allocator initialised with 65536 entries
[    0.275922] tegra-id: chipid=22117.
[    0.279576] tegra-id: opt_subrevision=0.
[    0.283641] Tegra Speedo/IDDQ fuse revision 4
[    0.288141] Tegra: CPU Speedo ID 9, SoC Speedo ID 0, GPU Speedo ID 2
[    0.294698] Tegra: CPU Process ID 0, SoC Process ID 0, GPU Process ID 0
[    0.301524] Tegra: CPU Speedo Value 1994, SoC Speedo Value 1914, GPU Speedo Value 1997
[    0.309695] Tegra: CPU IDDQ Value 1540, SoC IDDQ Value 1936, GPU IDDQ Value 2145
[    0.317337] Tegra Revision: A02 SKU: 0x8f CPU Process: 0 SoC Process: 0
[    0.324169] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0000-p3449-0000-b00.dts
[    0.342456] DTB Build time: Jul 26 2021 12:16:29
[    0.397275] CPU1: Booted secondary processor [411fd071]
[    0.429182] CPU2: Booted secondary processor [411fd071]
[    0.461157] CPU3: Booted secondary processor [411fd071]
[    0.461242] Brought up 4 CPUs
[    0.480496] SMP: Total of 4 processors activated.
[    0.485352] CPU features: detected feature: 32-bit EL0 Support
[    0.491628] CPU: All CPU(s) started at EL2
[    0.495879] alternatives: patching kernel code
[    0.508589] devtmpfs: initialized
[    0.549155] Initilizing CustomIPI irq domain
[    0.553887] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.563977] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.580841] pinctrl core: initialized pinctrl subsystem
[    0.586817] OS set in device tree is not L4T.
[    0.591743] regulator-dummy: no parameters
[    0.596257] Initializing plugin-manager
[    0.600387] Plugin module not found
[    0.604185] node /plugin-manager/fragement@0 match with board >=3448-0000-100
[    0.612055] node /plugin-manager/fragment@1 match with board >=3448-0000-101
[    0.620324] node /plugin-manager/fragement@7 match with odm-data enable-pmic-wdt
[    0.628167] node /plugin-manager/fragement@8 match with odm-data enable-pmic-wdt
[    0.636462] node /plugin-manager/fragement@13 match with board >=3448-0000-300
[    0.647387] NET: Registered protocol family 16
[    0.653350] pstore: using zlib compression
[    0.658072] console [pstore-1] enabled
[    0.661950] pstore: Registered ramoops as persistent store backend
[    0.668335] ramoops: attached 0x200000@0xb0000000, ecc: 0/0
[    0.684468] cpuidle: using governor menu
[    0.692610] tegra_smmu 70019000.iommu: Loaded Tegra IOMMU driver
[    0.700487] vdso: 2 pages (1 code @ ffffff8008f87000, 1 data @ ffffff8009e84000)
[    0.708158] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.716993] atomic_pool_init():622: DMA: preallocated 1024 KiB pool for atomic allocations
[    0.721156] random: fast init done
[    0.731377] Serial: AMBA PL011 UART driver
[    0.736113] tegra_powergate_init: DONE
[    0.740017] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.9/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0000-p3449-0000-b00.dts
[    0.758319] DTB Build time: Jul 26 2021 12:16:29
[    0.764854] Tegra reboot handler registered.
[    0.773752] iommu: Adding device tegra-carveouts to group 0
[    0.779657] platform tegra-carveouts: domain=ffffffc0f9bd0018 allocates as[0]=ffffffc0f944c0a8
[    0.788926] iommu: Adding device smmu_test to group 1
[    0.794228] platform smmu_test: domain=ffffffc0f9bd0258 allocates as[0]=ffffffc0f944c110
[    0.803438] mc: mapped MMIO address: 0xffffff8008041000 -> 0x70019000
[    0.810174] mc: mapped MMIO address: 0xffffff8008067000 -> 0x7001c000
[    0.816887] mc: mapped MMIO address: 0xffffff800807b000 -> 0x7001d000
[    0.823552] nv-tegra-mc 70019000.mc: No mssnvlink node
[    0.828875] mc-err: mcerr ops are set to t21x
[    0.843755] iommu: Adding device 70090000.xusb to group 2
[    0.849640] iommu: Adding device 70006000.serial to group 3
[    0.855468] platform 70006000.serial: domain=ffffffc0f94ad918 allocates as[0]=ffffffc0f944c178
[    0.864819] iommu: Adding device 70006040.serial to group 4
[    0.870842] iommu: Adding device 70006200.serial to group 5
[    0.876798] iommu: Adding device sound to group 6
[    0.881716] platform sound: domain=ffffffc0f94ade58 allocates as[0]=ffffffc0f944c1e0
[    0.890306] iommu: Adding device 7000d400.spi to group 7
[    0.896093] iommu: Adding device 7000d600.spi to group 8
[    0.901866] iommu: Adding device 70410000.spi to group 9
[    0.907662] iommu: Adding device 50000000.host1x to group 10
[    0.913799] iommu: Adding device 54080000.vi to group 11
[    0.919681] iommu: Adding device 54600000.isp to group 12
[    0.925527] iommu: Adding device 54680000.isp to group 13
[    0.931386] iommu: Adding device tegradc.0 to group 14
[    0.936751] platform tegradc.0: domain=ffffffc0f94dad98 allocates as[0]=ffffffc0f944c248
[    0.945627] platform tegradc.0: IOVA linear map 0x00000000d7000000(19000000)
[    0.953281] iommu: Adding device tegradc.1 to group 15
[    0.958658] platform tegradc.1: domain=ffffffc0f94e6018 allocates as[0]=ffffffc0f944c2b0
[    0.967521] platform tegradc.1: IOVA linear map 0x00000000d7000000(19000000)
[    0.975054] iommu: Adding device 54340000.vic to group 16
[    0.980851] iommu: Adding device 544c0000.nvenc to group 17
[    0.986810] iommu: Adding device 54500000.tsec to group 18
[    0.992670] iommu: Adding device 54100000.tsecb to group 19
[    0.998627] iommu: Adding device 54480000.nvdec to group 20
[    1.004604] iommu: Adding device 54380000.nvjpg to group 21
[    1.011381] iommu: Adding device 546c0000.i2c to group 22
[    1.017338] iommu: Adding device 57000000.gpu to group 23
[    1.022984] platform 57000000.gpu: domain=ffffffc0f9560018 allocates as[0]=ffffffc0f944c318
[    1.031658] platform 57000000.gpu: domain=ffffffc0f9560018 allocates as[1]=ffffffc0f944c380
[    1.040329] platform 57000000.gpu: domain=ffffffc0f9560018 allocates as[2]=ffffffc0f944c3e8
[    1.048995] platform 57000000.gpu: domain=ffffffc0f9560018 allocates as[3]=ffffffc0f944c450
[    1.058466] tegra-pmc 7000e400.pmc: i2c-thermtrip node not found, emergency thermal reset disabled.
[    1.067843] tegra-pmc 7000e400.pmc: scratch reg offset dts data not present
[    1.075054] tegra-pmc: ### PMC reset source: TEGRA_SOFTWARE_RESET
[    1.081369] tegra-pmc: ### PMC reset level: TEGRA_RESET_LEVEL_WARM
[    1.087764] tegra-pmc: ### PMC reset status reg: 0x3
[    1.144611] padctrl padctrl.0: Pad control driver tegra-pmc-padctrl registered
[    1.152089] tegra-pmc: Clear bootloader IO dpd settings
[    1.157513] tegra-pmc 7000e400.pmc: IO padctrl driver initialized
[    1.163874] tegra-pmc 7000e400.pmc: PMC: Successfully configure bootrom reset commands
[    1.172347] iommu: Adding device 70012000.se to group 24
[    1.178620] iommu: Adding device 7000c000.i2c to group 25
[    1.184485] iommu: Adding device 7000c400.i2c to group 26
[    1.190319] iommu: Adding device 7000c500.i2c to group 27
[    1.196155] iommu: Adding device 7000c700.i2c to group 28
[    1.201988] iommu: Adding device 7000d000.i2c to group 29
[    1.207820] iommu: Adding device 7000d100.i2c to group 30
[    1.213732] iommu: Adding device sdhci-tegra.0 to group 31
[    1.219461] platform sdhci-tegra.0: domain=ffffffc0f9571198 allocates as[0]=ffffffc0f944c4b8
[    1.229029] iommu: Adding device 700d0000.xudc to group 32
[    1.237958] vdd-ac-bat: 5000 mV 
[    1.241681] vdd-5v0-sys: 5000 mV 
[    1.245794] vdd-5v0-hdmi: 5000 mV 
[    1.249762] vdd-5v0-hdmi: supplied by vdd-5v0-sys
[    1.254898] vdd-1v8-sys: 1800 mV 
[    1.258706] vdd-fan: 5000 mV 
[    1.261989] vdd-fan: supplied by vdd-5v0-sys
[    1.266631] vdd-usb-vbus: 5000 mV 
[    1.270384] vdd-usb-vbus: supplied by vdd-5v0-sys
[    1.275608] vdd-usb-vbus2: 5000 mV 
[    1.305451] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.314771] gpio gpiochip0: gpio-line-names specifies 240 line names but there are 256 lines on the chip
[    1.325769] GPIO line 6 (system-suspend-gpio) hogged as output/high
[    1.332285] GPIO line 151 (camera-control-output-low) hogged as output/low
[    1.339417] GPIO line 152 (camera-control-output-low) hogged as output/low
[    1.346900] gpiochip_setup_dev: registered GPIOs 0 to 255 on device: gpiochip0 (tegra-gpio)
[    1.363530] eventlib_kernel: keventlib is initialized, test id: 0
[    1.370217] SCSI subsystem initialized
[    1.374562] usbcore: registered new interface driver usbfs
[    1.380304] usbcore: registered new interface driver hub
[    1.385843] usbcore: registered new device driver usb
[    1.395025] max77620 4-003c: PMIC Version OTP:0x35 and ES:0x8
[    1.405398] vdd-core: 600 <--> 1162 mV at 1125 mV 
[    1.411340] vdd-ddr-1v1: Bringing 1125000uV into 1150000-1150000uV
[    1.421297] vdd-ddr-1v1: 1150 mV 
[    1.429184] vdd-pre-reg-1v35: 1350 mV 
[    1.437174] vdd-1v8: 1800 mV 
[    1.445171] avdd-sys-1v2: 1200 mV 
[    1.453170] vdd-pex-1v0: 1050 mV 
[    1.457202] vddio-sdmmc-ap: 1800 <--> 3300 mV at 3300 mV 
[    1.463350] max77620-ldo3: at 3100 mV 
[    1.468463] vdd-rtc: 850 <--> 1100 mV at 1000 mV 
[    1.473898] max77620-ldo5: at 3100 mV 
[    1.480463] vddio-sdmmc3-ap: 1800 <--> 3300 mV at 2800 mV 
[    1.488461] avdd-1v05-pll: 1050 mV 
[    1.496459] avdd-io-hdmi-dp: 1050 mV 
[    1.502743] GPIO line 505 (spmic-default-output-high) hogged as output/high
[    1.510225] gpiochip_setup_dev: registered GPIOs 504 to 511 on device: gpiochip1 (max77620-gpio)
[    1.519586] max77620 4-003c: max77620 probe successful
[    1.527592] media: Linux media interface: v0.10
[    1.532373] Linux video capture interface: v2.00
[    1.538099] pps_core: LinuxPPS API ver. 1 registered
[    1.543249] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.552720] PTP clock support registered
[    1.559851] tegra210-emc 7001b000.external-memory-controller: validated EMC DFS table
[    1.568828] Advanced Linux Sound Architecture Driver Initialized.
[    1.575755] Bluetooth: Core ver 2.22
[    1.579515] NET: Registered protocol family 31
[    1.584121] Bluetooth: HCI device and connection manager initialized
[    1.590701] Bluetooth: HCI socket layer initialized
[    1.595756] Bluetooth: L2CAP socket layer initialized
[    1.601001] Bluetooth: SCO socket layer initialized
[    1.607819] tegra210_dvfs: no clock found for sdmmc2_ddr
[    1.613343] tegra210_dvfs: no clock found for sdmmc4_ddr
[    1.618895] tegra210_dvfs: no clock found for sdmmc1_ddr
[    1.624396] tegra210_dvfs: no clock found for sdmmc3_ddr
[    1.633149] tegra_dvfs: Unable to get vdd-cpu rail for step info, defering probe
[    1.642059] vdd-3v3-sys: 3300 mV 
[    1.645855] vdd-3v3-sys: supplied by vdd-5v0-sys
[    1.650691] vdd-1v8-sys: supplied by vdd-3v3-sys
[    1.656529] vdd-usb-vbus2: supplied by vdd-3v3-sys
[    1.661892] vdd-3v3-sd: 3300 mV 
[    1.665628] vdd-3v3-sd: supplied by vdd-3v3-sys
[    1.670857] avdd-io-edp-1v05: 1050 mV 
[    1.675114] avdd-io-edp-1v05: supplied by avdd-1v05-pll
[    1.680652] vdd-usb-hub-en: 5000 mV 
[    1.684707] vdd-usb-hub-en: supplied by vdd-1v8-sys
[    1.690731] camchar: rtcpu character device driver loaded
[    1.697052] extcon-gpio-states extcon:extcon@1: Cable state:0, cable id:0
[    1.705394] clocksource: Switched to clocksource arch_sys_counter
[    1.751185] VFS: Disk quotas dquot_6.6.0
[    1.755440] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.763070] nvmap_heap_init: nvmap_heap_init: created heap block cache
[    1.770248] dma_declare_coherent_resizable_cma_memory:324: resizable heap=vpr, base=0x00000000d7000000, size=0x19000000
[    1.779530] thermal thermal_zone0: Registering thermal zone thermal_zone0 for type AO-therm
[    1.779979] thermal thermal_zone1: Registering thermal zone thermal_zone1 for type CPU-therm
[    1.780335] thermal thermal_zone2: Registering thermal zone thermal_zone2 for type GPU-therm
[    1.780598] thermal thermal_zone3: Registering thermal zone thermal_zone3 for type PLL-therm
[    1.780764] thermal thermal_zone4: Registering thermal zone thermal_zone4 for type PMIC-Die
[    1.781038] pre_t19x_iso_plat_init(): iso emc max clk=1600000KHz
[    1.781041] pre_t19x_iso_plat_init(): max_iso_bw=11520000KB
[    1.781556] NET: Registered protocol family 2
[    1.783059] TCP established hash table entries: 32768 (order: 6, 262144 bytes)
[    1.783285] TCP bind hash table entries: 32768 (order: 7, 524288 bytes)
[    1.783904] TCP: Hash tables configured (established 32768 bind 32768)
[    1.784071] UDP hash table entries: 2048 (order: 4, 65536 bytes)
[    1.784149] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
[    1.784613] NET: Registered protocol family 1
[    1.785353] RPC: Registered named UNIX socket transport module.
[    1.785356] RPC: Registered udp transport module.
[    1.785359] RPC: Registered tcp transport module.
[    1.785362] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.785656] Trying to unpack rootfs image as initramfs...
[    1.911074]  dma-vpr: heap size is not multiple of cma_chunk_size heap_info->num_chunks (13) rem_chunk_size(0x1000000)
[    1.922449] cma: enabled page replacement for spfn=d7000, epfn=f0000
[    1.929058] dma_declare_coherent_resizable_cma_memory:373: resizable cma heap=vpr create successful[    1.938260] tegra-carveouts tegra-carveouts: assigned reserved memory node vpr-carveout
[    1.946654] tegra-carveouts tegra-carveouts: iram :dma coherent mem declare 0x0000000040001000,258048
[    1.956229] tegra-carveouts tegra-carveouts: assigned reserved memory node iram-carveout
[    1.964636] nvmap: nvmap_select_cache_ops() nvmap cache ops set to set/ways
[    1.971861] nvmap_page_pool_init: Total RAM pages: 1008939
[    1.977541] nvmap_page_pool_init: nvmap page pool size: 126117 pages (492 MB)
[    1.985130] nvmap_background_zero_thread: PP zeroing thread starting.
[    1.985652] misc nvmap: created heap iram base 0x0000000040001000 size (252KiB)
[    1.986413] misc nvmap: created heap vpr base 0x00000000d7000000 size (409600KiB)
[    2.364579] rootfs image is not initramfs (uncompression error); looks like an initrd
[    2.417151] Unable to handle kernel write to read-only memory at virtual address ffffffc004080000
[    2.426382] Mem abort info:
[    2.429267]   ESR = 0x9600004f
[    2.432439]   Exception class = DABT (current EL), IL = 32 bits
[    2.438566]   SET = 0, FnV = 0
[    2.441730]   EA = 0, S1PTW = 0
[    2.444972] Data abort info:
[    2.447954]   ISV = 0, ISS = 0x0000004f
[    2.451917]   CM = 0, WnR = 1
[    2.454993] swapper pgtable: 4k pages, 39-bit VAs, pgd = ffffff800a200000
[    2.462010] [ffffffc004080000] *pgd=000000017f1f8003, *pud=000000017f1f8003, *pmd=000000017f1f7003, *pte=00e0000084080793
[    2.473373] Internal error: Oops: 9600004f [#1] PREEMPT SMP
[    2.479124] Modules linked in:
[    2.482286] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.9.253-tegra #1
[    2.489020] Hardware name: NVIDIA Jetson Nano Developer Kit (DT)
[    2.495218] task: ffffffc0fa6f0000 task.stack: ffffffc0fa66c000
[    2.501344] PC is at __memset+0x16c/0x190
[    2.505491] LR is at free_reserved_area+0xb4/0x118
[    2.510433] pc : [<ffffff80084587ac>] lr : [<ffffff80081cc27c>] pstate: 40400045
[    2.518062] sp : ffffffc0fa66fd00
[    2.521482] x29: ffffffc0fa66fd00 x28: ffffff8009833df8 
[    2.526972] x27: ffffff80096792a8 x26: ffffffbf00000000 
[    2.532459] x25: 0000000000000001 x24: ffffff80093c6910 
[    2.537949] x23: 0000000000000000 x22: ffffffc004094000 
[    2.543436] x21: 0000000000000e80 x20: ffffffc004080000 
[    2.548924] x19: ffffffbf00101fc0 x18: 00000000ffffffff 
[    2.554410] x17: 0000000000000000 x16: 0000000000000000 
[    2.559896] x15: 0000000000000001 x14: 540062e0721c005f 
[    2.565384] x13: f9429062f9400aa0 x12: 0000000000000002 
[    2.570871] x11: 9a9f0041ea23005f x10: 00000000000000ba 
[    2.576357] x9 : 0000000000000000 x8 : ffffffc004080000 
[    2.581844] x7 : 0000000000000000 x6 : 000000000000003f 
[    2.587332] x5 : 0000000000000040 x4 : 0000000000000000 
[    2.592823] x3 : 0000000000000004 x2 : 0000000000000fc0 
[    2.598311] x1 : 0000000000000000 x0 : ffffffc004080000 
[    2.603800] 
[    2.605336] Process swapper/0 (pid: 1, stack limit = 0xffffffc0fa66c000)
[    2.612247] Call trace:
[    2.614775] [<ffffff80084587ac>] __memset+0x16c/0x190
[    2.619995] [<ffffff8009616e10>] free_initrd_mem+0x20/0x2c
[    2.625655] [<ffffff8009613224>] free_initrd+0xa8/0xc0
[    2.630954] [<ffffff80096137a0>] populate_rootfs+0x118/0x138
[    2.636798] [<ffffff8008083b3c>] do_one_initcall+0x44/0x130
[    2.642549] [<ffffff8009610d20>] kernel_init_freeable+0x1a0/0x244
[    2.648840] [<ffffff8008f63dc0>] kernel_init+0x18/0x108
[    2.654229] [<ffffff80080838a0>] ret_from_fork+0x10/0x30
[    2.659723] ---[ end trace 4ba66fdc7e91854e ]---
[    2.668633] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    2.668633] 
[    2.678071] SMP: stopping secondary CPUs
[    2.686060] Rebooting in 5 seconds..
[0000.159] [L4T TegraBoot] (version 00.00.2018.01-l4t-8728f3cb)
[0000.164] Processing in cold boot mode Bootloader 2
[0000.169] A02 Bootrom Patch rev = 1023
[0000.173] Power-up reason: software reset
[0000.176] No Battery Present
[0000.179] pmic max77620 reset reason
[0000.182] pmic max77620 NVERC : 0x0
[0000.186] RamCode = 0
1 Like

I guess this is the interesting part:

[    2.364579] rootfs image is not initramfs (uncompression error); looks like an initrd
[    2.417151] Unable to handle kernel write to read-only memory at virtual address ffffffc004080000
[    2.426382] Mem abort info:
[    2.429267]   ESR = 0x9600004f
[    2.432439]   Exception class = DABT (current EL), IL = 32 bits
[    2.438566]   SET = 0, FnV = 0
[    2.441730]   EA = 0, S1PTW = 0
[    2.444972] Data abort info:
[    2.447954]   ISV = 0, ISS = 0x0000004f
[    2.451917]   CM = 0, WnR = 1
[    2.454993] swapper pgtable: 4k pages, 39-bit VAs, pgd = ffffff800a200000
[    2.462010] [ffffffc004080000] *pgd=000000017f1f8003, *pud=000000017f1f8003, *pmd=000000017f1f7003, *pte=00e0000084080793
[    2.473373] Internal error: Oops: 9600004f [#1] PREEMPT SMP
1 Like

I’ve found this post here and have tried that solution, but it does not work… I am now wondering, is the initrd.img simple too big for the 4Gb of my dev board? Is there any way to shrink it?

Even compressed, one is twice the size of the other, I am not sure why:

-rw-r--r--  1 root root  7160133 Aug  2 11:09 initrd
lrwxrwxrwx  1 root root       24 Jul 21 20:54 initrd.img -> initrd.img-4.9.253-tegra
-rw-r--r--  1 root root 15289650 Oct  1 13:03 initrd.img-4.9.253-tegra

In comparison, here the initrd.img that worked on JP 4.3:

-rw-r--r--  1 root root  5487751 Dez 16  2019 initrd
lrwxrwxrwx  1 root root       24 Feb 16 14:05 initrd.img -> initrd.img-4.9.140-tegra
-rw-r--r--  1 root root 15174223 Jun 10 16:25 initrd.img-4.9.140-tegra

I doubt it’s the size, the two are very similar (15174223 on 4.3 VS 15289650 on 4.6).

So it may be linked to size after all! I have played around with the settings inside /etc/initramfs-tools/initramfs.conf. If I switch from the default MODULES=most to MODULES=dep, the system works and I am able to reboot correctly with /boot/initrd.img! I am going to check if I can load OverlayFS in this way next!

The resulting file is much smaller, even smaller than the default initrd:

-rw-r--r--  1 root root  7160133 Aug  2 11:09 initrd
lrwxrwxrwx  1 root root       24 Jul 21 20:54 initrd.img -> initrd.img-4.9.253-tegra
-rw-r--r--  1 root root  5959603 Oct  4 14:49 initrd.img-4.9.253-tegra

Alright, that really did the trick! I have updated my install-nano.sh script accordingly, and it all works.

Perhaps MODULES=dep should be the default setting in order to get this to actually work for everybody?

Just a thought on why this happens…

The modules have a limited amount of space in which they can load. Typically they load at a physical address just prior to where the kernel itself is loaded, and any need for modules implies using a direct branch instruction.

The maximum size of a direct branch depends on architecture, and with a desktop PC that’s a very large jump range. When you add basically every possible module the PC won’t have a problem with this. When you go to 32-bit arm/armhf, then the maximum jump is only 32 MB (which is shared with other code). When you get to 64-bit arm64/aarch64, then the total content possible goes up to something like 128 MB (also shared with some other code), so you can include a lot more modules for 64-bit ARM versus 32-bit, but this is still highly limited in comparison to a desktop PC.

1 Like