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