Điểm:1

Không thể khởi động RISC-V với Qemu trên Ubuntu 18.04

lá cờ cn

Tôi đang cố chạy RISCV bằng Qemu trên máy Ubuntu 18.04. Đối với điều tương tự, tôi đã làm theo các hướng dẫn bên dưới:

Nhưng sau khi làm theo tất cả các bước, tôi gặp phải sự cố (Vui lòng xem bên dưới để biết nhật ký khởi động hoàn chỉnh):

[ 0.400573] Kernel hoảng loạn - không đồng bộ hóa: Không tìm thấy init hoạt động. Hãy thử chuyển tùy chọn init= cho kernel. Xem Tài liệu Linux/admin-guide/init.rst để được hướng dẫn.

Tôi đã cố gắn tệp .img đã tạo và tôi có thể thấy /sbin/init hiện diện

rushi@watershed:/mnt/rootfs$ ll sbin/init
lrwxrwxrwx 1 gốc gốc 14 ngày 21 tháng 12 21:41 sbin/init -> ../bin/busybox*
rushi@watershed:/mnt/rootfs/sbin$ ll ../bin/busybox
-rwxr-xr-x 1 gốc gốc 989272 ngày 21 tháng 12 21:41 ../bin/busybox*

Tôi chưa quen với tất cả quy trình khởi động hệ thống và phát triển RISCV, quá trình biên dịch nói chung. giúp đỡ của bạn sẽ được nhiều đánh giá cao.

Dưới đây là bootlog hoàn chỉnh:

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 mặc định

OpenSBI v0.9
   ____ _____ ____ _____
  / __ \ / ____| _ \_ _|
 | | | |_ __ ___ _ __ | (___||_)|| |
 | | | | '_ \ / _ \ '_ \ \___ \| _ < | |
 | |__| | |_) | __/ | | |____) | |_)|| |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Tên nền tảng: riscv-virtio,qemu
Tính năng nền tảng: hẹn giờ, mfdeleg
Nền tảng HART Đếm : 1
Cơ sở chương trình cơ sở: 0x80000000
Kích thước phần sụn: 100 KB
Phiên bản SBI thời gian chạy: 0.2

Tên miền0: root
Tên miền0 Khởi động HART : 0
Tên miền0 HART : 0*
Tên miền0 Vùng00 : 0x0000000080000000-0x000000008001ffff ()
Miền0 Vùng01 : 0x0000000000000000-0xffffffffffffffffff (R,W,X)
Tên miền0 Địa chỉ tiếp theo : 0x0000000080200000
Miền0 Tiếp Arg1 : 0x00000000bf000000
Miền0 Chế độ tiếp theo : Chế độ S
Domain0 SysReset : có

ID HART khởi động: 0
Khởi động tên miền HART: root
Khởi động HART ISA: rv64imafdcsu
Các tính năng của Boot HART: scounteren,mcounteren,thời gian
Khởi động HART PMP Đếm: 16
Khởi động HART PMP Độ chi tiết: 4
Khởi động bit địa chỉ HART PMP: 54
Khởi động HART MHPM Đếm: 0
Khởi động HART MHPM Đếm: 0
Khởi động HART MIDELEG : 0x0000000000000222
Khởi động HART MEDELEG: 0x000000000000b109
[ 0,000000] OF: fdt: Bỏ qua phạm vi bộ nhớ 0x80000000 - 0x80200000
[ 0,000000] Phiên bản Linux 5.4.166 (phiên bản gcc 11.1.0 (GCC)) #2 SMP Thứ Hai ngày 20 tháng 12 04:17:38 Múi giờ miền Đông năm 2021
[ 0,000000] initrd không tìm thấy hoặc trống - vô hiệu hóa initrd
[ 0,000000] Phạm vi vùng:
[ 0,000000] DMA32 [bộ nhớ 0x0000000080200000-0x00000000bfffffff]
[ 0,000000] Bình thường trống
[ 0,000000] Bắt đầu vùng di chuyển cho mỗi nút
[ 0,000000] Phạm vi nút bộ nhớ ban đầu
[ 0,000000] nút 0: [mem 0x0000000080200000-0x00000000bfffffff]
[ 0,000000] Nút thiết lập initmem 0 [mem 0x0000000080200000-0x00000000bfffffff]
[ 0,000000] phần mềm IO TLB: đã ánh xạ [mem 0xbb000000-0xbf000000] (64MB)
[ 0,000000] elf_hwcap là 0x112d
[ 0,000000] percpu: Nhúng 17 trang/cpu s30680 r8192 d30760 u69632
[ 0,000000] Đã tạo 1 danh sách khu vực, bật nhóm di động. Tổng số trang: 258055
[ 0,000000] Dòng lệnh hạt nhân: root=/dev/vda ro console=ttyS0
[ 0,000000] Các mục trong bảng băm bộ nhớ cache Dentry: 131072 (thứ tự: 8, 1048576 byte, tuyến tính)
[ 0,000000] Các mục trong bảng băm inode-cache: 65536 (thứ tự: 7, 524288 byte, tuyến tính)
[ 0,000000] Đang sắp xếp __ex_table...
[ 0,000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0,000000] Bộ nhớ: 955488K/1046528K khả dụng (6252K mã hạt nhân, 397K rwdata, 1958K rodata, 213K init, 305K bss, 91040K dự trữ, 0K cma dự trữ)
[ 0,000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0,000000] rcu: Triển khai RCU phân cấp.
[ 0,000000] rcu: RCU giới hạn CPU từ NR_CPUS=8 thành nr_cpu_ids=1.
[ 0,000000] rcu: Giá trị tính toán RCU của độ trễ đăng ký người lập lịch trình là 25 giây.
[ 0,000000] rcu: Điều chỉnh hình học cho rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0,000000] NR_IRQS: 0, nr_irqs: 0, irqs được phân bổ trước: 0
[ 0,000000] plic: đã ánh xạ 53 ngắt với 1 trình xử lý cho 2 ngữ cảnh.
[ 0,000000] riscv_timer_init_dt: Đăng ký cpuid nguồn clock [0] hartid [0]
[ 0,000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
[ 0,000102] sched_clock: 64 bit ở 10MHz, độ phân giải 100ns, kết thúc mỗi 4398046511100ns
[ 0,003386] Bảng điều khiển: thiết bị giả màu 80x25
[ 0,004764] Vòng trễ hiệu chỉnh (đã bỏ qua), giá trị được tính bằng cách sử dụng tần số hẹn giờ.. 20,00 BogoMIPS (lpj=40000)
[ 0,004930] pid_max: mặc định: 32768 tối thiểu: 301
[ 0,008515] Các mục trong bảng băm của bộ đệm ẩn: 2048 (thứ tự: 2, 16384 byte, tuyến tính)
[ 0,008564] Các mục trong bảng băm Mountpoint-cache: 2048 (thứ tự: 2, 16384 byte, tuyến tính)
[ 0,034175] rcu: Triển khai SRCU phân cấp.
[ 0.036327] smp: Đưa CPU phụ lên ...
[ 0.036403] smp: Mang lại 1 nút, 1 CPU
[ 0,045787] devtmpfs: đã khởi tạo
[ 0,051744] ngẫu nhiên: get_random_u32 được gọi từ bucket_table_alloc.isra.0+0x4e/0x150 với crng_init=0
[ 0,053928] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0,054075] mục bảng băm futex: 256 (thứ tự: 2, 16384 byte, tuyến tính)
[ 0,056622] NET: Họ giao thức đã đăng ký 16
[ 0,099525] vgaarb: đã tải
[ 0.100575] Đã khởi tạo hệ thống con SCSI
[ 0.102143] usbcore: trình điều khiển giao diện mới đã đăng ký usbfs
[ 0.102453] usbcore: trung tâm trình điều khiển giao diện mới đã đăng ký
[ 0.102622] usbcore: usb trình điều khiển thiết bị mới đã đăng ký
[ 0.110644] clocksource: Đã chuyển sang clocksource riscv_clocksource
[ 0.126588] NET: Họ giao thức đã đăng ký 2
[ 0.127458] Các mục trong bảng băm nhận dạng IP: 16384 (thứ tự: 5, 131072 byte, tuyến tính)
[ 0.130630] mục nhập bảng băm tcp_listen_portaddr_hash: 512 (thứ tự: 1, 8192 byte, tuyến tính)
[ 0.130731] Các mục trong bảng băm do TCP thiết lập: 8192 (thứ tự: 4, 65536 byte, tuyến tính)
[ 0.130939] Các mục trong bảng băm liên kết TCP: 8192 (thứ tự: 5, 131072 byte, tuyến tính)
[ 0.131127] TCP: Đã định cấu hình bảng băm (đã thiết lập 8192 liên kết 8192)
[ 0.132583] Các mục trong bảng băm UDP: 512 (thứ tự: 2, 16384 byte, tuyến tính)
[ 0.132818] Mục nhập bảng băm UDP-Lite: 512 (thứ tự: 2, 16384 byte, tuyến tính)
[ 0.134108] NET: Họ giao thức đã đăng ký 1
[ 0.136391] RPC: Mô-đun vận chuyển ổ cắm UNIX có tên đã đăng ký.
[ 0.136457] RPC: Mô-đun vận chuyển udp đã đăng ký.
[ 0.136482] RPC: Mô-đun vận chuyển tcp đã đăng ký.
[ 0.136498] RPC: Mô-đun truyền tải kênh sau tcp NFSv4.1 đã đăng ký.
[ 0.136592] PCI: CLS 0 byte, mặc định 64
[ 0.143017] workingset: timestamp_bits=62 max_order=18 bucket_order=0
[ 0.154976] NFS: Đăng ký loại khóa id_resolver
[ 0.155730] Đã đăng ký loại khóa id_resolver
[ 0.155785] Loại khóa id_legacy đã đăng ký
[ 0.155901] nfs4filelayout_init: Đang đăng ký trình điều khiển bố cục tệp NFSv4...
[ 0.156003] nfs4flexfilelayout_init: Đang đăng ký trình điều khiển bố cục NFSv4 Flexfile...
[ 0.156506] 9p: Cài đặt hỗ trợ hệ thống tệp v9fs 9p2000
[ 0.157700] NET: Họ giao thức đã đăng ký 38
[ 0.157962] Phiên bản trình điều khiển chung (bsg) SCSI lớp khối đã tải phiên bản 0.4 (chính 252)
[ 0.158088] thời hạn mq của bộ lập lịch io đã đăng ký
[ 0.158171] kyber lập lịch io đã đăng ký
[ 0.160653] pci-host-generic 30000000.pci: cầu máy chủ /soc/pci@30000000 phạm vi:
[ 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 tại [mem 0x30000000-0x3fffffff] cho [bus 00-ff]
[ 0.164317] pci-host-generic 30000000.pci: Cầu nối máy chủ PCI với xe buýt 0000:00
[ 0.164487] pci_bus 0000:00: tài nguyên bus gốc [bus 00-ff]
[ 0.164605] pci_bus 0000:00: tài nguyên bus gốc [io 0x0000-0xffff]
[ 0.164624] pci_bus 0000:00: tài nguyên bus gốc [mem 0x40000000-0x7fffffff]
[ 0.164638] pci_bus 0000:00: tài nguyên bus gốc [mem 0x400000000-0x7ffffffff]
[ 0.166493] pci 0000:00:00.0: [1b36:0008] loại 00 lớp 0x060000
[ 0.236158] Sê-ri: Trình điều khiển 8250/16550, 4 cổng, tắt tính năng chia sẻ IRQ
[ 0.242182] printk: bảng điều khiển [ttyS0] bị tắt
[ 0,243277] 10000000.uart: ttyS0 tại MMIO 0x10000000 (irq = 10, base_baud = 230400) là 16550A
[ 0.267699] printk: đã bật bảng điều khiển [ttyS0]
[ 0.269576] [drm] đã bật cài đặt chế độ hạt nhân radeon.
Vòng lặp [ 0.282172]: đã tải mô-đun
[ 0,291691] virtio_blk virtio0: [vda] 102400 khối logic 512 byte (52,4 MB/50,0 MiB)
[ 0.310649] libphy: Đã sửa lỗi MDIO Bus: đã thăm dò
[ 0.311762] e1000e: Trình điều khiển mạng Intel(R) PRO/1000 - 3.2.6-k
[ 0.312026] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 0.312608] ehci_hcd: Trình điều khiển Bộ điều khiển Máy chủ (EHCI) 'Nâng cao' USB 2.0
[ 0.312982] ehci-pci: Trình điều khiển nền tảng EHCI PCI
[ 0.313376] ehci-platform: Trình điều khiển nền tảng chung EHCI
[ 0.313809] ohci_hcd: Trình điều khiển Bộ điều khiển Máy chủ (OHCI) USB 1.1 'Mở'
[ 0.314134] ohci-pci: Trình điều khiển nền tảng OHCI PCI
[ 0.314614] ohci-platform: Trình điều khiển nền tảng chung OHCI
[ 0.315707] usbcore: uas trình điều khiển giao diện mới đã đăng ký
[ 0.316137] usbcore: bộ lưu trữ usb trình điều khiển giao diện mới đã đăng ký
[ 0.317205] mousedev: Thiết bị chuột PS/2 chung cho tất cả chuột
[ 0.318871] usbcore: trình điều khiển giao diện mới đã đăng ký usbhid
[ 0.319160] usbhid: Trình điều khiển lõi USB HID
[ 0.320916] NET: Họ giao thức đã đăng ký 10
[ 0.326954] Định tuyến phân đoạn với IPv6
[ 0.327577] sit: Trình điều khiển đường hầm IPv6, IPv4 và MPLS qua IPv4
[ 0.330230] NET: Họ giao thức đã đăng ký 17
[ 0.331759] 9pnet: Cài đặt hỗ trợ 9P2000
[ 0.332245] Đã đăng ký loại khóa dns_resolver
[ 0.347909] EXT4-fs (vda): gắn hệ thống tệp ext2 bằng hệ thống con ext4
[ 0.357523] EXT4-fs (vda): hệ thống tệp được gắn mà không có nhật ký. Lựa chọn: (không)
[ 0.358113] VFS: Chỉ đọc gốc được gắn (hệ thống tệp ext2) trên thiết bị 254:0.
[ 0.363449] devtmpfs: đã gắn kết
[ 0.382965] Giải phóng bộ nhớ kernel chưa sử dụng: 212K
[ 0.383233] Kiến trúc này không có tính năng bảo vệ bộ nhớ nhân.
[ 0.383571] Chạy /sbin/init như quá trình init
[ 0.398108] Chạy /etc/init như quá trình init
[ 0.398596] Chạy /bin/init như quá trình init
[ 0.399549] Chạy /bin/sh dưới dạng quy trình khởi tạo
[ 0.400573] Kernel hoảng loạn - không đồng bộ hóa: Không tìm thấy init hoạt động. Hãy thử chuyển tùy chọn init= cho kernel. Xem Tài liệu Linux/admin-guide/init.rst để được hướng dẫn.
[ 0.401379] CPU: 0 PID: 1 Giao tiếp: hoán đổi/0 Không bị nhiễm độc 5.4.166 #2
[ 0,401701] Theo dõi cuộc gọi:
[ 0.401947] [<ffffffe000037ad0>] walk_stackframe+0x0/0xa6
[ 0.402232] [<ffffffe000643072>] show_stack+0x2e/0x38
[ 0.402510] [<ffffffe00064b914>] dump_stack+0x66/0x80
[ 0.402757] [<ffffffe0006431bc>] hoảng loạn+0xd6/0x260
[ 0.402978] [<ffffffe00064bb4e>] kernel_init+0xbc/0xc8
[ 0.403215] [<ffffffe0000367e4>] ret_from_Exception+0x0/0xc
[ 0.404033] ---[ end Kernel panic - not syncing: No working init found. Hãy thử chuyển tùy chọn init= cho kernel. Xem Tài liệu Linux/admin-guide/init.rst để được hướng dẫn. ]---
QEMU: Đã chấm dứt
Christian Ehrhardt avatar
lá cờ sl
Mô phỏng rủi ro đã tạo ra những bước tiến quan trọng trong những năm qua, tôi thường khuyên bạn nên thử các bản dựng từ https://launchpad.net/~canonical-server/+archive/ubuntu/server-backports - Ngoài ra, để biết các bước sử dụng https này: //wiki.ubuntu.com/RISC-V đưa bạn đến các hình ảnh và lệnh/tùy chọn mà bạn cần để bắt đầu. Hãy cho tôi biết nếu điều đó đủ để làm cho nó hoạt động, sau đó chúng ta có thể đưa ra câu trả lời.
rushi47 avatar
lá cờ cn
@ChristianEhrhardt cảm ơn bạn đã viết nó ra, tôi đã xem qua diễn đàn này nhưng nó có vẻ hoàn chỉnh. Trong các bước được mô tả: `Tiếp theo, hãy sử dụng bộ tải khởi động OpenSBI & u-boot-qemu để khởi động máy ảo` trong phần `Khởi động bằng qemu`, bạn có thể mô tả cách sử dụng uboot của opensbi & qemu smode không. Bất kỳ liên kết sẽ được nhiều hữu ích?
Christian Ehrhardt avatar
lá cờ sl
Lệnh qemu theo sau đây là lệnh nên sử dụng. Nhưng tôi đồng ý, trong khi điều này trước đây hiệu quả với tôi thì bây giờ nó thất bại khiến tôi phàn nàn về việc không tìm thấy hình ảnh để tải. Tôi vẫn có thể khởi động hình ảnh cũ của mình, nhưng không thể khởi động các bản tải xuống hiện tại - vì vậy một số thứ trong hình ảnh đã thay đổi, ngụ ý thay đổi các bước trên trang wiki. Tôi sẽ ping một vài người với hy vọng họ có thể biết...
Christian Ehrhardt avatar
lá cờ sl
xem https://www.reddit.com/r/RISCV/comments/rt7hsh/a_note_on_qemu_and_ubootqemu_and_precompiled/ và https://discourse.ubuntu.com/t/ubuntu-server-on-risc-v-documentation-needs-updating/ 23927/11 . TL; DR - cho đến khi giải quyết xong, vui lòng cài đặt u-boot-qemu (2021.10+dfsg-1) từ https://packages.debian.org/de/sid/all/u-boot-qemu/download . Với vị trí đó, các bước được ghi lại hoạt động trở lại.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.