Încerc să rulez RISCV folosind Qemu pe mașina Ubuntu 18.04.
Pentru același lucru am urmat tutorialele de mai jos:
Dar după ce am urmat toți pașii, mă confrunt cu problema (Vă rugăm să căutați mai jos un jurnal de pornire complet):
[ 0.400573] Panică kernel - nu se sincronizează: nu a fost găsită nicio inițiere funcțională. Încercați să treceți opțiunea init= la kernel. Consultați Documentația Linux/admin-guide/init.rst pentru îndrumări.
Am încercat să montez fișierul .img creat și văd că /sbin/init este prezent
rusi@watershed:/mnt/rootfs$ ll sbin/init
lrwxrwxrwx 1 root root 14 Dec 21 21:41 sbin/init -> ../bin/busybox*
rusi@watershed:/mnt/rootfs/sbin$ ll ../bin/busybox
-rwxr-xr-x 1 root root 989272 Dec 21 21:41 ../bin/busybox*
Sunt nou în toate procesele de dezvoltare RISCV și de pornire a sistemelor, compilare în general. Ajutorul dumneavoastră va fi foarte apreciat.
Mai jos este un bootlog complet:
user~/riscv64-linux$ sudo qemu-system-riscv64 -m 1024 -nographic -machine virt -kernel linux/arch/riscv/boot/Image -append "root=/dev/vda ro console=ttyS0" -drive file= rootfs/rootfs.img,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -bios default
OpenSBI v0.9
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
Nume platformă: riscv-virtio,qemu
Caracteristici platforme: timer,mfdeleg
Număr platformă HART: 1
Baza firmware: 0x80000000
Dimensiune firmware: 100 KB
Versiunea Runtime SBI: 0.2
Domain0 Name: root
Domain0 Boot HART: 0
Domenii0 HART: 0*
Domain0 Region00 : 0x0000000080000000-0x000000008001ffff ()
Domeniul0 Regiunea01: 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domeniul0 Următoarea adresă: 0x0000000080200000
Domain0 Next Arg1 : 0x00000000bf000000
Domain0 Next Mode: S-mode
Domain0 SysReset: da
ID HART de pornire: 0
Boot HART Domain: root
Boot HART ISA: rv64imafdcsu
Boot HART Caracteristici: sconteren,mcounteren,time
Boot HART PMP Count: 16
Boot HART PMP Granularity: 4
Boot HART Biți de adresă PMP: 54
Număr de MHPM de pornire HART: 0
Număr de MHPM de pornire HART: 0
Cizma HART MIDELEG : 0x0000000000000222
Boot HART MEDELEG : 0x000000000000b109
[ 0,000000] OF: fdt: Se ignoră intervalul de memorie 0x80000000 - 0x80200000
[ 0.000000] Linux versiunea 5.4.166 (gcc versiunea 11.1.0 (GCC)) #2 SMP Luni Dec 20 04:17:38 EST 2021
[ 0.000000] initrd nu a fost găsit sau este gol - dezactivarea initrd
[ 0,000000] Domenii de zonă:
[ 0,000000] DMA32 [mem 0x0000000080200000-0x00000000bffffff]
[ 0,000000] Normal gol
[ 0.000000] Pornire zonă mobilă pentru fiecare nod
[ 0,000000] Domenii timpurii de noduri de memorie
[ 0,000000] nodul 0: [mem 0x0000000080200000-0x00000000bffffff]
[ 0,000000] Nodul de configurare Initmem 0 [mem 0x0000000080200000-0x00000000bffffff]
[ 0,000000] software IO TLB: mapat [mem 0xbb000000-0xbf000000] (64MB)
[ 0,000000] elf_hwcap este 0x112d
[ 0,000000] percpu: încorporat 17 pagini/cpu s30680 r8192 d30760 u69632
[ 0,000000] Construit 1 liste de zone, grupare de mobilitate activată. Total pagini: 258055
[ 0.000000] Linia de comandă kernel: root=/dev/vda ro console=ttyS0
[ 0,000000] Intrări din tabelul hash din cache din Dentry: 131072 (comanda: 8, 1048576 octeți, liniar)
[ 0,000000] Intrări în tabelul hash pentru inode-cache: 65536 (ordine: 7, 524288 octeți, liniar)
[ 0,000000] Se sortează __ex_table...
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0,000000] Memorie: 955488K/1046528K disponibile (6252K cod kernel, 397K rwdata, 1958K rodata, 213K init, 305K bss, 91040K rezervat, 0K cma-rezervat)
[ 0,000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPU-uri=1, Nodes=1
[ 0.000000] rcu: Implementarea ierarhică a RCU.
[ 0.000000] rcu: RCU restricționează CPU-urile de la NR_CPUS=8 la nr_cpu_ids=1.
[ 0,000000] rcu: Valoarea calculată de RCU a întârzierii de înscriere a planificatorului este de 25 jiffies.
[ 0.000000] rcu: Ajustarea geometriei pentru rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0,000000] NR_IRQS: 0, nr_irqs: 0, irqs prealocate: 0
[ 0.000000] plic: mapat 53 de întreruperi cu 1 handler pentru 2 contexte.
[ 0.000000] riscv_timer_init_dt: Înregistrarea clocksource cpuid [0] hartid [0]
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
[ 0.000102] sched_clock: 64 de biți la 10MHz, rezoluție 100ns, împachetare la fiecare 4398046511100ns
[ 0,003386] Consolă: dispozitiv fals color 80x25
[ 0,004764] Bucle de întârziere de calibrare (sărit), valoare calculată folosind frecvența temporizatorului.. 20,00 BogoMIPS (lpj=40000)
[ 0,004930] pid_max: implicit: 32768 minim: 301
[ 0,008515] Intrări din tabelul hash de montare cache: 2048 (comanda: 2, 16384 de octeți, liniar)
[ 0,008564] Intrări în tabelul hash cache-montpoint: 2048 (comanda: 2, 16384 octeți, liniar)
[ 0.034175] rcu: Implementarea SRCU ierarhică.
[ 0.036327] smp: Se afișează procesoarele secundare...
[ 0,036403] smp: A creat 1 nod, 1 CPU
[ 0.045787] devtmpfs: inițializat
[ 0.051744] aleatoriu: get_random_u32 apelat de la bucket_table_alloc.isra.0+0x4e/0x150 cu crng_init=0
[ 0.053928] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0,054075] intrări în tabelul hash futex: 256 (ordine: 2, 16384 octeți, liniar)
[ 0,056622] NET: Familia de protocoale înregistrată 16
[ 0.099525] vgaarb: încărcat
[ 0.100575] Subsistemul SCSI inițializat
[ 0.102143] usbcore: a înregistrat un nou driver de interfață usbfs
[ 0.102453] usbcore: noul hub de driver de interfață înregistrat
[ 0.102622] usbcore: driver de dispozitiv nou înregistrat usb
[ 0.110644] clocksource: S-a comutat la clocksource riscv_clocksource
[ 0.126588] NET: Familia de protocoale înregistrată 2
[ 0,127458] Intrări în tabelul hash de identificare IP: 16384 (ordine: 5, 131072 octeți, liniar)
[ 0.130630] tcp_listen_portaddr_hash intrări în tabelul hash: 512 (ordine: 1, 8192 octeți, liniar)
[ 0.130731] TCP a stabilit intrări în tabelul hash: 8192 (ordine: 4, 65536 octeți, liniar)
[ 0,130939] Intrări în tabelul hash de legare TCP: 8192 (ordine: 5, 131072 octeți, liniar)
[ 0.131127] TCP: tabele hash configurate (stabilit 8192 bind 8192)
[ 0,132583] Intrări în tabelul hash UDP: 512 (ordine: 2, 16384 octeți, liniar)
[ 0,132818] Intrări în tabelul hash UDP-Lite: 512 (comanda: 2, 16384 octeți, liniar)
[ 0.134108] NET: Familia de protocoale înregistrată 1
[ 0.136391] RPC: Modul de transport de socket UNIX denumit înregistrat.
[ 0.136457] RPC: Modul de transport udp înregistrat.
[ 0.136482] RPC: Modul de transport tcp înregistrat.
[ 0.136498] RPC: Modulul de transport backchannel tcp NFSv4.1 înregistrat.
[ 0,136592] PCI: CLS 0 octeți, implicit 64
[ 0.143017] set de lucru: timestamp_bits=62 max_order=18 bucket_order=0
[ 0.154976] NFS: Înregistrarea tipului de cheie id_resolver
[ 0.155730] Tip cheie id_resolver înregistrat
[ 0.155785] Tip cheie id_legacy înregistrat
[ 0.155901] nfs4filelayout_init: Se înregistrează driverul pentru aspectul fișierului NFSv4...
[ 0.156003] nfs4flexfilelayout_init: Se înregistrează driverul NFSv4 Flexfile Layout...
[ 0.156506] 9p: Instalarea suportului pentru sistemul de fișiere v9fs 9p2000
[ 0.157700] NET: Familia de protocoale înregistrată 38
[ 0.157962] Versiunea 0.4 a driverului SCSI generic (bsg) de nivel bloc încărcat (major 252)
[ 0.158088] io scheduler mq-deadline înregistrat
[ 0.158171] io Scheduler kyber înregistrat
[ 0.160653] pci-host-generic 30000000.pci: puntea gazdă /soc/pci@30000000 intervale:
[ 0.161119] pci-host-generic 30000000.pci: IO 0x03000000..0x0300ffff -> 0x00000000
[ 0.161572] pci-host-generic 30000000.pci: MEM 0x40000000..0x7fffffff -> 0x40000000
[ 0.161637] pci-host-generic 30000000.pci: MEM 0x400000000..0x7ffffffff -> 0x400000000
[ 0.163515] pci-host-generic 30000000.pci: ECAM la [mem 0x30000000-0x3fffffff] pentru [bus 00-ff]
[ 0.164317] pci-host-generic 30000000.pci: punte gazdă PCI către magistrală 0000:00
[ 0.164487] pci_bus 0000:00: resursă magistrală rădăcină [bus 00-ff]
[ 0.164605] pci_bus 0000:00: resursă magistrală rădăcină [io 0x0000-0xffff]
[ 0.164624] pci_bus 0000:00: resursă magistrală rădăcină [mem 0x40000000-0x7fffffff]
[ 0.164638] pci_bus 0000:00: resursă magistrală rădăcină [mem 0x400000000-0x7ffffffff]
[ 0.166493] pci 0000:00:00.0: [1b36:0008] tip 00 clasa 0x060000
[ 0.236158] Serial: driver 8250/16550, 4 porturi, partajarea IRQ dezactivată
[ 0.242182] printk: consola [ttyS0] dezactivată
[ 0.243277] 10000000.uart: ttyS0 la MMIO 0x10000000 (irq = 10, base_baud = 230400) este un 16550A
[ 0.267699] printk: consola [ttyS0] activată
[ 0.269576] [drm] setarea modului nucleului radeon este activată.
[ 0.282172] buclă: modul încărcat
[ 0.291691] virtio_blk virtio0: [vda] 102400 blocuri logice de 512 octeți (52,4 MB/50,0 MiB)
[ 0.310649] libphy: magistrală MDIO fixă: sondată
[ 0.311762] e1000e: Driver de rețea Intel(R) PRO/1000 - 3.2.6-k
[ 0.312026] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 0.312608] ehci_hcd: Driver USB 2.0 „Îmbunătățit” Host Controller (EHCI)
[ 0.312982] ehci-pci: driverul platformei EHCI PCI
[ 0.313376] ehci-platform: driver de platformă generică EHCI
[ 0.313809] ohci_hcd: Driver USB 1.1 „Open” Host Controller (OHCI)
[ 0.314134] ohci-pci: driverul platformei OHCI PCI
[ 0.314614] ohci-platform: driver de platformă generic OHCI
[ 0.315707] usbcore: a înregistrat un nou driver de interfață uas
[ 0.316137] usbcore: a înregistrat un nou driver de interfață de stocare USB
[ 0.317205] mousedev: dispozitiv de mouse PS/2 comun pentru toți șoarecii
[ 0.318871] usbcore: a înregistrat un nou driver de interfață usbhid
[ 0.319160] usbhid: driver de bază USB HID
[ 0.320916] NET: Familia de protocoale înregistrată 10
[ 0.326954] Segmentare de rutare cu IPv6
[ 0.327577] sit: driver de tunel IPv6, IPv4 și MPLS peste IPv4
[ 0.330230] NET: Familia de protocoale înregistrată 17
[ 0.331759] 9pnet: Instalarea suportului 9P2000
[ 0.332245] Tip cheie dns_resolver înregistrat
[ 0.347909] EXT4-fs (vda): montarea sistemului de fișiere ext2 folosind subsistemul ext4
[ 0.357523] EXT4-fs (vda): sistem de fișiere montat fără jurnal. Opțiuni: (null)
[ 0.358113] VFS: rădăcină montată (sistem de fișiere ext2) numai în citire pe dispozitiv 254:0.
[ 0.363449] devtmpfs: montat
[ 0.382965] Eliberarea memoriei kernel neutilizate: 212K
[ 0.383233] Această arhitectură nu are protecție de memorie kernel.
[ 0.383571] Rulați /sbin/init ca proces init
[ 0.398108] Rulați /etc/init ca proces init
[ 0.398596] Rulați /bin/init ca proces init
[ 0.399549] Rulați /bin/sh ca proces init
[ 0.400573] Panică kernel - nu se sincronizează: nu a fost găsită nicio inițiere funcțională. Încercați să treceți opțiunea init= la kernel. Consultați Documentația Linux/admin-guide/init.rst pentru îndrumări.
[ 0.401379] CPU: 0 PID: 1 Comm: swapper/0 Netimbrat 5.4.166 #2
[ 0.401701] Urmărire apel:
[ 0.401947] [<ffffffe000037ad0>] walk_stackframe+0x0/0xa6
[ 0.402232] [<ffffffe000643072>] show_stack+0x2e/0x38
[ 0.402510] [<ffffffe00064b914>] dump_stack+0x66/0x80
[ 0,402757] [<ffffffe0006431bc>] panică+0xd6/0x260
[ 0.402978] [<ffffffe00064bb4e>] kernel_init+0xbc/0xc8
[ 0.403215] [<ffffffe0000367e4>] ret_from_exception+0x0/0xc
[ 0.404033] ---[ sfârșește panica kernelului - nu se sincronizează: nu a fost găsită nicio inițiere funcțională. Încercați să treceți opțiunea init= la kernel. Consultați Documentația Linux/admin-guide/init.rst pentru îndrumări. ]---
QEMU: Terminat