Puncte:1

Nu se poate porni RISC-V cu Qemu pe Ubuntu 18.04

drapel cn

Î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
Christian Ehrhardt avatar
drapel sl
Emularea Risc a făcut pași majori înainte în ultimii ani, în general, aș recomanda să încercați versiunile de pe https://launchpad.net/~canonical-server/+archive/ubuntu/server-backports - În plus, pentru pașii de utilizare a acestui https: //wiki.ubuntu.com/RISC-V vă duce la imaginile și comenzile/opțiunile de care aveți nevoie pentru a începe. Anunțați-mă dacă este suficient pentru ca acesta să funcționeze, atunci putem face un răspuns.
rushi47 avatar
drapel cn
@ChristianEhrhardt îți mulțumesc că ai scris-o, parcurgeam acest forum, dar pare complet. În pașii descriși: `Utilizați în continuare OpenSBI bootloader și u-boot-qemu pentru a porni mașina virtuală` sub `Booting with qemu`, veți putea descrie cum să utilizați opensbi și qemu smode uboot. Orice link va fi de mare ajutor?
Christian Ehrhardt avatar
drapel sl
Comanda qemu care urmează este ceea ce ar trebui să utilizați. Dar sunt de acord, deși acest lucru a funcționat pentru mine în trecut, acum nu mă plâng că nu am găsit o imagine de încărcat. Pot încă porni imaginea mea veche, dar nu și descărcările actuale - așa că ceva din imagini s-a schimbat, ceea ce implică o modificare a pașilor de pe pagina wiki. Voi da un ping la câțiva oameni în speranța că ar putea ști...
Christian Ehrhardt avatar
drapel sl
vezi https://www.reddit.com/r/RISCV/comments/rt7hsh/a_note_on_qemu_and_ubootqemu_and_precompiled/ și https://discourse.ubuntu.com/t/ubuntu-server-on-risc-v-documentation-needs-updating/ 23927/11 . TL;DR - până la rezolvare, vă rugăm să instalați u-boot-qemu (2021.10+dfsg-1) de la https://packages.debian.org/de/sid/all/u-boot-qemu/download . Cu acest lucru, pașii documentați funcționează din nou.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.