Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

BootingLinux with a bootloader written in Rust#139

nihalpasham started this conversation inGeneral
Discussion options

I've been working on a rust-basedbootloader for the raspberry pi 4 .

I'm not sure what I'm missing as I'm not well-versed with Linux but I assume folks who are, may be able to provide some pointers. So, here what I've done so far - follow theBooting AArch64 Linux guide and from what I was able to gather, there are 3 parts to bootingLinux-

  • device tree modification:
    • Linux uses a device tree for hardware discovery and we use this to pass boot parameters (i.e. kernel cmd line parameters).
    • We also use the DT to provide basic information about the address and size of the physical memory.
    • So, rather than write my own device tree for rpi4, I decompiled an existing one, edited it with the required info and recompiled it. Its in thedts folder
  • pre-boot checks: The kernel expects a known HW state. So, we'll need to do a few additional things like
    • jump to a lower privilege level (Linux calls this EL1 or exception level 1). By default, the raspberry pi starts executing at EL2 but I've transitioned into the more appropriate EL1.
    • disable the memory management unit MMU. (we never turn it on, so good here).
    • disable interrupts (we never enable interrupts i.e. GICv2 or the global interrupt controller is never turned on, so good again)
  • jump to kernel instruction:
    • After we're done with all of the above, we load the kernel and dtb into RAM and simply jump to the kernel's entry point, passing the device tree as an argument.
    • I've 2 impls for this. Both of them don’t work. Although, the generated assembly (below) checks out
0000000000089f90<boot_to_kernel>:   89f90:       f81f0ffe        str     x30, [sp,#-16]!   89f94:       aa0003e8        mov     x8, x0   89f98:       aa0103e0        mov     x0, x1   89f9c:       aa1f03e1        mov     x1, xzr   89fa0:       aa1f03e2        mov     x2, xzr   89fa4:       aa1f03e3        mov     x3, xzr   89fa8:       d63f0100        blr     x8   89fac:       d503205f        wfe   89fb0:       17ffffff        b       89fac<boot_to_kernel+0x1c>

My code manages to make it to the final jump after loading the kernel and dtb but after this point nothing happens i.e. I see no serial output or any indication that the kernel has booted (or failed to boot).

Full output:

[    0.000027] EMMC: reset card.[    0.000154] Divisor = 63, Freq Set = 396825[    0.407636] CSD Contents: 00 40 0e 00 32 5b 59 00 00ee 9d 7f 80 0a 40 00[    0.411465] cemmc_structure=1, spec_vers=0, taac=0x0E, nsac=0x00, tran_speed=0x32,ccc=0x05B5, read_bl_len=0x09, read_bl_partial=0b, write_blk_misalign=0b,read_blk_misalign=0b, dsr_imp=0b, sector_size =0x7F, erase_blk_en=1b[    0.431096] CSD 2.0: ver2_c_size = 0xEFFD, card capacity: 32026132480 bytes or 32.03GiB[    0.439001] wp_grp_size=0x0000000b, wp_grp_enable=0b, default_ecc=00b, r2w_factor=010b, write_bl_len=0x09, write_bl_partial=0b, file_format_grp=0, copy=0b, perm_write_protect=0b, tmp_write_protect=0b, file_format=0b ecc=00b[    0.458726] Divisor = 1, Freq Set = 25000000[    0.463437] EMMC: Bus widthset to 4[    0.466463] EMMC: SD Card Type 2 HC, 30542Mb, mfr_id: 27,'SM:EB2MW', r3.0, mfr_date: 8/2017, serial: 0xc8e6576d, RCA: 0x59b4[    0.477748] EMMC2 driver initialized…[    0.481484] rpi4 version 0.1.0[    0.484437] Booting on: Raspberry Pi 4[    0.488086] Current privilege level: EL1[    0.491908] Exception handling state:[    0.495469]       Debug:  Masked[    0.498597]       SError: Masked[    0.501724]       IRQ:    Masked[    0.504852]       FIQ:    Masked[    0.507980] Architectural timer resolution: 18 ns[    0.512584] Drivers loaded:[    0.515277]       1. BCM GPIO[    0.518144]       2. BCM PL011 UART[    0.521532] Chars written: 1426[W   0.524575]wait duration smaller than architecturally supported, skipping[    0.531349] create new emmc-fat controller...[    1.309897]  Listing root directory:[    1.311514]          Found: DirEntry { name: ShortFileName("boot"), mtime: Timestamp(2021-05-07 16:06:08), ctime: Timestamp(2021-05-07 16:06:08), attributes: FV, cluster: Cluster(0), size: 0, entry_block: BlockIdx(16290), entry_offset: 0 }[    1.331106]          Found: DirEntry { name: ShortFileName("BCM271~1.DTB"), mtime: Timestamp(2022-01-08 18:31:30), ctime: Timestamp(2022-01-08 18:35:56), attributes: FA, cluster: Cluster(65538), size: 25713, entry_block: BlockIdx(16290), entry_offset: 96 }[    1.353084]          Found: DirEntry { name: ShortFileName("KERNEL8.IMG"), mtime: Timestamp(2022-01-08 18:39:00), ctime: Timestamp(2022-01-08 18:39:36), attributes: FA, cluster: Cluster(154740), size: 131192, entry_block: BlockIdx(16290), entry_offset: 128 }[    1.375238]          Found: DirEntry { name: ShortFileName("VMLINUZ"), mtime: Timestamp(2022-01-08 18:37:12), ctime: Timestamp(2022-01-08 18:38:16), attributes: FA, cluster: Cluster(97567), size: 29272576, entry_block: BlockIdx(16290), entry_offset: 160 }[    1.401246]          Found: DirEntry { name: ShortFileName("CONFIG.TXT"), mtime: Timestamp(2022-01-04 11:46:38), ctime: Timestamp(2021-05-07 15:07:00), attributes: FA, cluster: Cluster(1017), size: 1846, entry_block: BlockIdx(17103), entry_offset: 352 }[    1.420111]          Found: DirEntry { name: ShortFileName("FIXUP4.DAT"), mtime: Timestamp(2021-04-30 14:01:38), ctime: Timestamp(2021-05-07 15:07:00), attributes: FA, cluster: Cluster(1036), size: 5446, entry_block: BlockIdx(17103), entry_offset: 480 }[    1.444596]          Found: DirEntry { name: ShortFileName("START4.ELF"), mtime: Timestamp(2021-04-30 14:01:38), ctime: Timestamp(2021-05-07 15:07:02), attributes: FA, cluster: Cluster(59166), size: 2228768, entry_block: BlockIdx(54532), entry_offset: 224 }[    1.465552]          Found: DirEntry { name: ShortFileName("SYSTEM~1"), mtime: Timestamp(2021-09-21 13:57:30), ctime: Timestamp(2021-09-21 13:57:28), attributes: DHS, cluster: Cluster(97564), size: 0, entry_block: BlockIdx(105365), entry_offset: 192 }[    1.486331]  Get handle to`dtb` filein root_dir...[    1.491266]  load`dtb` into RAM...[    1.579706]          loaded dtb: 25713 bytes, starting at addr: 0x3bc33e8[    1.582924] EOF[    1.584576]  Get handle to`kernel` filein root_dir...[    1.590823]  load`kernel` into RAM...[   94.896272]          loaded kernel: 29272576 bytes, starting at addr: 0x3bcfbe8[   94.900010] first 40 kernel bytes: [77, 90, 64, 250, 255, 63, 79, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0][   94.914952] EOF

So, I'm kind out of ideas (until I find a HW debugger) but if anyone has any pointers on what I might be missing here, that would be much appreciated.

You must be logged in to vote

Replies: 4 comments 4 replies

Comment options

The guide you linked says:

The AArch64 kernel does not currently provide a decompressor and therefore requires decompression (gzip etc.) to be performed by the boot loader if a compressed Image target (e.g. Image.gz) is used. For bootloaders that do not implement this requirement, the uncompressed Image target is available instead.

From looking at the filenames in your log, it saysvmlinuz, which usually denotes thecompressed kernel image.

You must be logged in to vote
3 replies
@andre-richter
Comment options

Also,in your link.ld, the stack is only__rpi_phys_binary_load_addr bytes big, aka0x80000 bytes aka 512 KiB. Which makes sense because the.text section needs to start at0x80000.

So it looks like you need to allocate space from somewhere else. Your stack-allocated array for the kernel won't fit in there.

But maybe you've fixed that locally already. Otherwise, I wonder why you even got logs to begin with instead of a (silent?) crash 🤔

@andre-richter
Comment options

Also, if you put the kernel into a stack allocation, be sure to check alignment requirements for code execution.

@nihalpasham
Comment options

From looking at the filenames in your log, it saysvmlinuz, which usually denotes thecompressed kernel image.

Yeah, I spent quite a bit of time tracking this one down. So, apparently not allvmlinuz files/images are actually compressed (at least not all aarch64 ones). I figured this out after spending a day trying to decompress myvmlinuz-image only to discover that Aarch64 linux-kernels come in their decompressed form (although the name says vmlinuz - which is pertty misleading).

  • So, upon jumping to the start of an Aarch64 kernel, execution starts inhead.S and the very first instruction is actually anop i.e. has no meaningful effect except that its opcode forms the magicMZ signature required by UEFI.

In the output below,4d 5a decodes to theMZ magic signature that EFI capable bootloaders look for

root@DESKTOP-M9O6B7J:/mnt/c/Users/Nil/devspace/rust/projects/rb/boards/test_impls/rpi4/apertis# hexdump -n64 -C vmlinuz00000000  4d 5a 40 fa ff 3f 4f 14  00 00 00 00 00 00 00 00|MZ@..?O.........|00000010  00 00 c9 01 00 00 00 00  0a 00 00 00 00 00 00 00|................|00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00|................|00000030  00 00 00 00 00 00 00 00  41 52 4d 64 40 00 00 00|........ARMd@...|

and if we were disassemble the first 2 instructions we get a nop and a (pc-relative) branch. The branch is actually where the real execution starts

root@DESKTOP-M9O6B7J:/mnt/c/Users/Nil/devspace/rust/projects/rb/boards/test_impls/rpi4/apertis# aarch64-linux-gnu-objdump -D --stop-address=0x8 -m aarch64 -b binary vmlinuzvmlinuz:     file format binaryDisassembly of section .data:0000000000000000<.data>:       0:       fa405a4d        ccmp    x18,#0x0, #0xd, pl  // pl = nfrst       4:       144f3fff        b       0x13d0000
Comment options

But maybe you've fixed that locally already. Otherwise, I wonder why you even got logs to begin with instead of a (silent?) crash

Yep, I changed the top of my stack (i.e. __boot_core_stack_end_exclusive) in link.ld to point to 0x598_0000 (or 93847552) to accommodate RAM-loading of the dtb and kernel images.

Which makes sense because the .text section needs to start at 0x80000.

I was wondering why the binary/bootloader needs to start at 0x80000. If I change the entry point to a higher address, rpi4 doesnt boot at all. I haven't tried lower addresses (i.e. entry points though)

You must be logged in to vote
0 replies
Comment options

Also, if you put the kernel into a stack allocation, be sure to check alignment requirements for code execution.

Ah, this may be it. I only checked to see if the top of the stack was aligned to the 64K page requirement. But I didn't check to see if the kernel was also aligned on a 64K page. I guess, I'll need to manually control where the kernel is loaded in RAM withunsafe raw pointers. I'll try and this and report back.

You must be logged in to vote
0 replies
Comment options

So it workedfinally and yep,Linux has a 2MB base-address alignment requirement. So, instead of relying on the stack for allocation, I edited the linker-script to add custom sections, one for each the dtb and kernel and it worked.

The kernel takes control and panics as it cant find a root fs. (there isn't one for now). Thank you for the tip :)

Output below

[    0.000027] EMMC: reset card.[    0.000146] Divisor = 63, Freq Set = 396825[    0.407463] CSD Contents: 00 40 0e 00 32 5b 59 00 00ee 9d 7f 80 0a 40 00[    0.411290] cemmc_structure=1, spec_vers=0, taac=0x0E, nsac=0x00, tran_speed=0x32,ccc=0x05B5, read_bl_len=0x09, read_bl_partial=0b, write_blk_misalign=0b,read_blk_misalign=0b, dsr_imp=0b, sector_size =0x7F, erase_blk_en=1b[    0.430921] CSD 2.0: ver2_c_size = 0xEFFD, card capacity: 32026132480 bytes or 32.03GiB[    0.438827] wp_grp_size=0x0000000b, wp_grp_enable=0b, default_ecc=00b, r2w_factor=010b, write_bl_len=0x09, write_bl_partial=0b, file_format_grp=0, copy=0b, perm_write_protect=0b, tmp_write_protect=0b, file_format=0b ecc=00b[    0.458551] Divisor = 1, Freq Set = 25000000[    0.463176] EMMC: Bus widthset to 4[    0.466202] EMMC: SD Card Type 2 HC, 30542Mb, mfr_id: 27,'SM:EB2MW', r3.0, mfr_date: 8/2017, serial: 0xc8e6576d, RCA: 0x59b4[    0.477399] EMMC2 driver initialized...[    0.481223] rpi4 version 0.1.0[    0.484175] Booting on: Raspberry Pi 4[    0.487824] Current privilege level: EL1[    0.491646] Exception handling state:[    0.495208]       Debug:  Masked[    0.498336]       SError: Masked[    0.501463]       IRQ:    Masked[    0.504591]       FIQ:    Masked[    0.507718] Architectural timer resolution: 18 ns[    0.512322] Drivers loaded:[    0.515016]       1. BCM GPIO[    0.517883]       2. BCM PL011 UART[    0.521271] Chars written: 1423[W   0.524314]wait duration smaller than architecturally supported, skipping[    0.531088] create new emmc-fat controller...[    0.537988]  Listing root directory:[    0.539822]          Found: DirEntry { name: ShortFileName("boot"), mtime: Timestamp(2021-05-07 16:06:08), ctime: Timestamp(2021-05-07 16:06:08), attributes: FV, cluster: Cluster(0), size: 0, entry_block: BlockIdx(16290), entry_offset: 0 }[    0.559419]          Found: DirEntry { name: ShortFileName("BCM271~1.DTB"), mtime: Timestamp(2022-01-08 18:31:30), ctime: Timestamp(2022-01-08 18:35:56), attributes: FA, cluster: Cluster(65538), size: 25713, entry_block: BlockIdx(16290), entry_offset: 96 }[    0.581396]          Found: DirEntry { name: ShortFileName("KERNEL8.IMG"), mtime: Timestamp(2022-01-09 17:49:46), ctime: Timestamp(2022-01-09 17:50:04), attributes: FA, cluster: Cluster(196610), size: 93519872, entry_block: BlockIdx(16290), entry_offset: 128 }[    0.603724]          Found: DirEntry { name: ShortFileName("VMLINUZ"), mtime: Timestamp(2022-01-08 18:37:12), ctime: Timestamp(2022-01-08 18:38:16), attributes: FA, cluster: Cluster(97567), size: 29272576, entry_block: BlockIdx(16290), entry_offset: 160 }[    0.629717]          Found: DirEntry { name: ShortFileName("CONFIG.TXT"), mtime: Timestamp(2022-01-04 11:46:38), ctime: Timestamp(2021-05-07 15:07:00), attributes: FA, cluster: Cluster(1017), size: 1846, entry_block: BlockIdx(17103), entry_offset: 352 }[    0.648580]          Found: DirEntry { name: ShortFileName("FIXUP4.DAT"), mtime: Timestamp(2021-04-30 14:01:38), ctime: Timestamp(2021-05-07 15:07:00), attributes: FA, cluster: Cluster(1036), size: 5446, entry_block: BlockIdx(17103), entry_offset: 480 }[    0.673098]          Found: DirEntry { name: ShortFileName("START4.ELF"), mtime: Timestamp(2021-04-30 14:01:38), ctime: Timestamp(2021-05-07 15:07:02), attributes: FA, cluster: Cluster(59166), size: 2228768, entry_block: BlockIdx(54532), entry_offset: 224 }[    0.694027]          Found: DirEntry { name: ShortFileName("SYSTEM~1"), mtime: Timestamp(2021-09-21 13:57:30), ctime: Timestamp(2021-09-21 13:57:28), attributes: DHS, cluster: Cluster(97564), size: 0, entry_block: BlockIdx(105365), entry_offset: 192 }[    0.714709] Get handle to`dtb` filein root_dir...[    0.719651]          load`dtb` into RAM...[    0.810164]          loaded dtb: 25713 bytes, starting at addr: 0x3a00000[    0.813383] Get handle to`kernel` filein root_dir...[    0.819571]          load`kernel` into RAM...[   92.781638]          loaded kernel: 29272576 bytes, starting at addr: 0x3c00000[   92.785375]***************************************** Starting kernel********************************************[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083][    0.000000] Linux version 5.15.0-trunk-arm64 (debian-kernel@lists.debian.org) (gcc-10 (Apertis 10.2.1-6+apertis3bv2022preb4) 10.2.1 20210110, GNU ld (GNU Binutilsfor Apertis) 2.35.2)#1 SMP Debian 5.15.1-1~exp1+apertis1 (2021-11-11)[    0.000000] Machine model: Raspberry Pi 4 Model B[    0.000000] efi: UEFI not found.[    0.000000] Reserved memory: created CMA memory pool at 0x0000000037400000, size 64 MiB[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool[    0.000000] NUMA: No NUMA configuration found[    0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x00000000fbffffff][    0.000000] NUMA: NODE_DATA [mem 0xfb814b00-0xfb816fff][    0.000000] Zone ranges:[    0.000000]   DMA      [mem 0x0000000000000000-0x000000003fffffff][    0.000000]   DMA32    [mem 0x0000000040000000-0x00000000fbffffff][    0.000000]   Normal   empty[    0.000000] Movable zone startfor each node[    0.000000] Early memory node ranges[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003b3fffff][    0.000000]   node   0: [mem 0x0000000040000000-0x00000000fbffffff][    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000000fbffffff][    0.000000] percpu: Embedded 29 pages/cpu s81752 r8192 d28840 u118784[    0.000000] Detected PIPT I-cache on CPU0[    0.000000] CPU features: detected: Spectre-v2[    0.000000] CPU features: detected: Spectre-v3a[    0.000000] CPU features: detected: Spectre-v4[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 996912[    0.000000] Policy zone: DMA32[    0.000000] Kernelcommand line:[    0.000000] Dentry cachehash table entries: 524288 (order: 10, 4194304 bytes, linear)[    0.000000] Inode-cachehash table entries: 262144 (order: 9, 2097152 bytes, linear)[    0.000000] mem auto-init: stack:off, heap alloc:on, heap free:off[    0.000000] software IO TLB: mapped [mem 0x0000000033400000-0x0000000037400000] (64MB)[    0.000000] Memory: 941556K/4050944K available (12352K kernel code, 2538K rwdata, 7808K rodata, 5760K init, 622K bss, 175900K reserved, 65536K cma-reserved)[    0.000000] random: get_random_u64 called from __kmem_cache_create+0x34/0x5cc with crng_init=0[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1[    0.000000] ftrace: allocating 40621 entriesin 159 pages[    0.000000] ftrace: allocated 159 pages with 6 groups[    0.000000] trace event string verifier disabled[    0.000000] rcu: Hierarchical RCU implementation.[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 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 25 jiffies.[    0.000000] rcu: Adjusting geometryfor rcu_fanout_leaf=16, nr_cpu_ids=4[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0[    0.000000] Root IRQ handler: gic_handle_irq[    0.000000] arch_timer: cp15 timer(s) running at 54.00MHz (virt).[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns[    0.000000] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns[    0.000218] Console: colour dummy device 80x25[    0.000573] printk: console [tty0] enabled[    0.000672] Calibrating delay loop (skipped), value calculated using timer frequency.. 108.00 BogoMIPS (lpj=216000)[    0.000701] pid_max: default: 32768 minimum: 301[    0.000849] LSM: Security Framework initializing[    0.000888] Yama: disabled by default;enable with sysctl kernel.yama.*[    0.001040] AppArmor: AppArmor initialized[    0.001061] TOMOYO Linux initialized[    0.001202] Mount-cachehash table entries: 8192 (order: 4, 65536 bytes, linear)[    0.001281] Mountpoint-cachehash table entries: 8192 (order: 4, 65536 bytes, linear)[    0.003781] rcu: Hierarchical SRCU implementation.[    0.005983] EFI services will not be available.[    0.006549] smp: Bringing up secondary CPUs ...[    0.007231] Detected PIPT I-cache on CPU1[    0.007309] CPU1: Booted secondary processor 0x0000000001 [0x410fd083][    0.008163] Detected PIPT I-cache on CPU2[    0.008211] CPU2: Booted secondary processor 0x0000000002 [0x410fd083][    0.009022] Detected PIPT I-cache on CPU3[    0.009070] CPU3: Booted secondary processor 0x0000000003 [0x410fd083][    0.009182] smp: Brought up 1 node, 4 CPUs[    0.009249] SMP: Total of 4 processors activated.[    0.009262] CPU features: detected: 32-bit EL0 Support[    0.009273] CPU features: detected: 32-bit EL1 Support[    0.009287] CPU features: detected: CRC32 instructions[    0.027635] ------------[ cut here ]------------[    0.027669] CPU: CPUs startedin inconsistent modes[    0.027683] WARNING: CPU: 0 PID: 1 at arch/arm64/kernel/smp.c:426 smp_cpus_done+0x78/0xc4[    0.027737] Modules linked in:[    0.027755] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.0-trunk-arm64#1  Debian 5.15.1-1~exp1+apertis1[    0.027780] Hardware name: Raspberry Pi 4 Model B (DT)[    0.027793] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)[    0.027814] pc: smp_cpus_done+0x78/0xc4[    0.027834] lr: smp_cpus_done+0x78/0xc4[    0.027853] sp: ffff800011cabe00[    0.027863] x29: ffff800011cabe00 x28: 0000000000000000 x27: 0000000000000000[    0.027892] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000[    0.027918] x23: 0000000000000000 x22: ffff800011bf1000 x21: 0000000000000000[    0.027942] x20: ffff800011527e40 x19: ffff800011a20000 x18: 0000000000000001[    0.027967] x17: 000000003303d82a x16: 0000000017a5ca54 x15: 0720072007200720[    0.027992] x14: 0720072d072d072d x13: 7365646f6d20746e x12: 65747369736e6f63[    0.028017] x11: ffff800011a00270 x10: ffff8000119a9530 x9: ffff80001011cc1c[    0.028042] x8: ffff8000119a7b68 x7: ffff8000119ffb68 x6: fffffffffffe1370[    0.028066] x5: 00000000000019c8 x4: 000000000000aff5 x3: 0000000000000000[    0.028090] x2: 0000000000000000 x1: 0000000000000000 x0: ffff0000401bbd00[    0.028115] Call trace:[    0.028127]  smp_cpus_done+0x78/0xc4[    0.028146]  smp_init+0x88/0x98[    0.028168]  kernel_init_freeable+0x194/0x328[    0.028188]  kernel_init+0x30/0x140[    0.028205]  ret_from_fork+0x10/0x20[    0.028231] ---[ end trace 63fbe691ec0b5d90 ]---[    0.028339] alternatives: patching kernel code[    0.118498] node 0 deferred pages initialisedin 88ms[    0.120117] devtmpfs: initialized[    0.128290] Registered cp15_barrier emulation handler[    0.128339] Registered setend emulation handler[    0.128358] KASLR disabled due to lack of seed[    0.128659] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns[    0.128756] futexhash table entries: 1024 (order: 4, 65536 bytes, linear)[    0.130859] pinctrl core: initialized pinctrl subsystem[    0.131744] DMI not present or invalid.[    0.132411] NET: Registered PF_NETLINK/PF_ROUTE protocol family[    0.137247] DMA: preallocated 512 KiB GFP_KERNEL poolfor atomic allocations[    0.138056] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA poolfor atomic allocations[    0.139117] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 poolfor atomic allocations[    0.139224] audit: initializing netlink subsys (disabled)[    0.139503] audit: type=2000 audit(0.136:1): state=initialized audit_enabled=0 res=1[    0.140678] thermal_sys: Registered thermal governor'fair_share'[    0.140687] thermal_sys: Registered thermal governor'bang_bang'[    0.140704] thermal_sys: Registered thermal governor'step_wise'[    0.140717] thermal_sys: Registered thermal governor'user_space'[    0.140729] thermal_sys: Registered thermal governor'power_allocator'[    0.140958] cpuidle: using governor ladder[    0.141002] cpuidle: using governor menu[    0.141066] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.[    0.141195] ASID allocator initialised with 65536 entries[    0.141611] Serial: AMBA PL011 UART driver[    0.168395] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages[    0.168437] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages[    0.168453] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages[    0.168468] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages[    0.827731] ACPI: Interpreter disabled.[    0.828414] iommu: Default domain type: Translated[    0.828435] iommu: DMA domain TLB invalidation policy: strict mode[    0.828758] vgaarb: loaded[    0.829101] EDAC MC: Ver: 3.0.0[    0.830911] NetLabel: Initializing[    0.830935] NetLabel:  domainhash size = 128[    0.830948] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO[    0.831028] NetLabel:  unlabeled traffic allowed by default[    0.831359] clocksource: Switched to clocksource arch_sys_counter[    0.876896] VFS: Disk quotas dquot_6.6.0[    0.877003] VFS: Dquot-cachehash table entries: 512 (order 0, 4096 bytes)[    0.877847] AppArmor: AppArmor Filesystem Enabled[    0.878080] pnp: PnP ACPI: disabled[    0.886909] NET: Registered PF_INET protocol family[    0.887522] IP identshash table entries: 65536 (order: 7, 524288 bytes, linear)[    0.890639] tcp_listen_portaddr_hashhash table entries: 2048 (order: 3, 32768 bytes, linear)[    0.890952] TCP establishedhash table entries: 32768 (order: 6, 262144 bytes, linear)[    0.891690] TCPbindhash table entries: 32768 (order: 7, 524288 bytes, linear)[    0.892002] TCP: Hash tables configured (established 32768bind 32768)[    0.892511] MPTCP tokenhash table entries: 4096 (order: 4, 98304 bytes, linear)[    0.892714] UDPhash table entries: 2048 (order: 4, 65536 bytes, linear)[    0.892836] UDP-Litehash table entries: 2048 (order: 4, 65536 bytes, linear)[    0.893509] NET: Registered PF_UNIX/PF_LOCAL protocol family[    0.893555] NET: Registered PF_XDP protocol family[    0.893578] PCI: CLS 0 bytes, default 64[    0.899624] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available[    0.899845] kvm [1]: HYP mode not available[    0.901207] Initialise system trusted keyrings[    0.901270] Keytype blacklist registered[    0.901484] workingset: timestamp_bits=42 max_order=20 bucket_order=0[    0.907865] zbud: loaded[    0.908694] integrity: Platform Keyring initialized[    0.908719] Keytype asymmetric registered[    0.908733] Asymmetric key parser'x509' registered[    0.908830] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)[    0.909106] io scheduler mq-deadline registered[    0.917118] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4[    0.918022] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:[    0.918057] brcm-pcie fd500000.pcie:   No bus range foundfor /scb/pcie@7d500000, using [bus 00-ff][    0.918106] brcm-pcie fd500000.pcie:      MEM 0x0600000000..0x0603ffffff -> 0x00f8000000[    0.918149] brcm-pcie fd500000.pcie:   IB MEM 0x0000000000..0x00bfffffff -> 0x0000000000[    0.981438] brcm-pcie fd500000.pcie: link up, 5.0 GT/s PCIe x1 (SSC)[    0.981675] brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00[    0.981697] pci_bus 0000:00: root bus resource [bus 00-ff][    0.981717] pci_bus 0000:00: root bus resource [mem 0x600000000-0x603ffffff] (bus address [0xf8000000-0xfbffffff])[    0.981775] pci 0000:00:00.0: [14e4:2711]type 01 class 0x060400[    0.981873] pci 0000:00:00.0: PME# supported from D0 D3hot[    0.984348] pci 0000:01:00.0: [1106:3483]type 00 class 0x0c0330[    0.984432] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00000fff 64bit][    0.984623] pci 0000:01:00.0: PME# supported from D0 D3hot[    0.997366] pci 0000:00:00.0: BAR 14: assigned [mem 0x600000000-0x6000fffff][    0.997398] pci 0000:01:00.0: BAR 0: assigned [mem 0x600000000-0x600000fff 64bit][    0.997430] pci 0000:00:00.0: PCI bridge to [bus 01][    0.997448] pci 0000:00:00.0:   bridge window [mem 0x600000000-0x6000fffff][    0.997645] pcieport 0000:00:00.0: enabling device (0000 -> 0002)[    0.997816] pcieport 0000:00:00.0: PME: Signaling with IRQ 50[    0.998202] pcieport 0000:00:00.0: AER: enabled with IRQ 50[    1.009317] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled[    1.011505] fe215040.serial: ttyS1 at MMIO 0xfe215040 (irq = 26, base_baud = 24999999) is a 16550[    2.138457] printk: console [ttyS1] enabled[    2.143703] Serial: AMBA driver[    2.146942] SuperH (H)SCI(F) driver initialized[    2.152116] msm_serial: driver initialized[    2.157303] cacheinfo: Unable to detect cache hierarchyfor CPU 0[    2.164327] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver[    2.172593] mousedev: PS/2 mouse device commonfor all mice[    2.179403] brcmstb-i2c fef04500.i2c:  @97500hz registeredin polling mode[    2.186670] brcmstb-i2c fef09500.i2c:  @97500hz registeredin polling mode[    2.194931] ledtrig-cpu: registered to indicate activity on CPUs[    2.201806] bcm2835-mbox fe00b880.mailbox: mailbox enabled[    2.209520] NET: Registered PF_INET6 protocol family[    2.221004] Segment Routing with IPv6[    2.224811] In-situ OAM (IOAM) with IPv6[    2.228893] mip6: Mobile IPv6[    2.231922] NET: Registered PF_PACKET protocol family[    2.237240] mpls_gso: MPLS GSO support[    2.241776] registered taskstats version 1[    2.245976] Loading compiled-in X.509 certificates[    2.401073] Loaded X.509 cert'Debian Secure Boot CA: 6ccece7e4c6c0d1f6149f3dd27dfcc5cbb419ea1'[    2.410015] Loaded X.509 cert'Debian Secure Boot Signer 2021 - linux: 4b6ef5abca669825178e052c84667ccbc0531f8c'[    2.421388] zswap: loaded using pool lzo/zbud[    2.426682] Keytype ._fscrypt registered[    2.430784] Keytype .fscrypt registered[    2.434783] Keytype fscrypt-provisioning registered[    2.442041] Keytype encrypted registered[    2.446160] AppArmor: AppArmor sha1 policy hashing enabled[    2.451809] ima: No TPM chip found, activating TPM-bypass![    2.457420] ima: Allocatedhash algorithm: sha256[    2.462262] ima: No architecture policies found[    2.466931] evm: Initialising EVM extended attributes:[    2.472167] evm: security.selinux[    2.475543] evm: security.SMACK64 (disabled)[    2.479891] evm: security.SMACK64EXEC (disabled)[    2.484591] evm: security.SMACK64TRANSMUTE (disabled)[    2.489735] evm: security.SMACK64MMAP (disabled)[    2.494433] evm: security.apparmor[    2.497898] evm: security.ima[    2.500919] evm: security.capability[    2.504560] evm: HMAC attrs: 0x1[    2.513599] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 24, base_baud = 0) is a PL011 rev2[    2.522980] serial serial0: tty port ttyAMA0 registered[    2.529439] raspberrypi-firmware soc:firmware: Attached to firmware from 2021-04-30T13:45:52[    2.703530] List of all partitions:[    2.707099] No filesystem could mount root, tried:[    2.707103][    2.713604] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)[    2.722014] CPU: 2 PID: 1 Comm: swapper/0 Tainted: G S                5.15.0-trunk-arm64#1  Debian 5.15.1-1~exp1+apertis1[    2.733255] Hardware name: Raspberry Pi 4 Model B (DT)[    2.738478] Call trace:[    2.740961]  dump_backtrace+0x0/0x1e4[    2.744706]  show_stack+0x24/0x30[    2.748083]  dump_stack_lvl+0x68/0x84[    2.751814]  dump_stack+0x18/0x34[    2.755187]  panic+0x158/0x358[    2.758292]  mount_block_root+0x1f4/0x210[    2.762376]  mount_root+0x15c/0x17c[    2.765926]  prepare_namespace+0x13c/0x17c[    2.770096]  kernel_init_freeable+0x2c8/0x328[    2.774530]  kernel_init+0x30/0x140[    2.778080]  ret_from_fork+0x10/0x20[    2.781721] SMP: stopping secondary CPUs[    2.785714] Kernel Offset: disabled[    2.789256] CPU features: 0x10000071,00000846[    2.793687] Memory Limit: none[    2.796795] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
You must be logged in to vote
1 reply
@andre-richter
Comment options

Awesome 👏

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Category
General
Labels
None yet
2 participants
@nihalpasham@andre-richter

[8]ページ先頭

©2009-2025 Movatter.jp