Cover image for 最小Linux系统编译与运行

最小Linux系统编译与运行

字数 3.7k
阅读
访客

时间轴

时间轴

2025-06-23

init

2025-11-05

busybox build error in archlinux

本文介绍了在WSL2环境下编译并运行最小Linux系统的完整流程,包括BusyBox的编译与补丁处理、内核编译配置、以及通过QEMU启动系统的步骤。文章详细说明了在Arch Linux或高版本GCC下编译BusyBox时可能遇到的错误及解决方案,如make menuconfig失败和tc编译错误,并提供了inittab、rcS、fstab等系统文件的创建方法,以及设备文件和库文件的添加方式。此外,还介绍了使用Emacs配合clangd和dts-lsp阅读Linux源码与设备树的方法。最后,文章给出了QEMU运行结果及退出方式。

环境

win11 WSL2:

环境
环境

busybox编译

12345
wget https://www.busybox.net/downloads/busybox-1.37.0.tar.bz2bzip2 -d busybox-1.37.0.tar.bz2tar xvf busybox-1.37.0.tarcd busybox-1.37.0

Patch

这个版本直接编译aarch64有点问题,需要打一个补丁:

1
emacs libbb-sha-add-missing-shaNI-guard.patch

参考:

patch如下

123456789101112131415161718192021
--- libbb/hash_md5_sha.c | 2 ++ 1 file changed, 2 insertions(+)diff --git a/libbb/hash_md5_sha.c b/libbb/hash_md5_sha.cindex 57a801459..75a61c32c 100644--- a/libbb/hash_md5_sha.c+++ b/libbb/hash_md5_sha.c@@ -1313,7 +1313,9 @@ unsigned FAST_FUNC sha1_end(sha1_ctx_t *ctx, void *resbuf) 	hash_size = 8; 	if (ctx->process_block == sha1_process_block64 #if ENABLE_SHA1_HWACCEL+# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) 	 || ctx->process_block == sha1_process_block64_shaNI+# endif #endif 	) { 		hash_size = 5;--2.25.1

进入busybox源码目录执行:

1
patch -p1 < libbb-sha-add-missing-shaNI-guard.patch

编译

12345678
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- distcleanmake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfigmake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig# Settings# --- Build Option#   [*] Build static binary (no shared libs)make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- install

make menuconfig 失败

make menuconfig这一步,如果是在Arch Linux下编译,或使用了高版本gcc,可能会报错:

12345678910
[zhaohang@cyberboy busybox-1.37.0]$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig ***Unable to find the ncurses libraries or the*** required header files. ***'make menuconfig' requires the ncurses libraries.*** ***Install ncurses (ncurses-devel) and try again.***make[2]: ***[/home/zhaohang/repository/linux/busybox-1.37.0/scripts/kconfig/lxdialog/Makefile:15: scripts/kconfig/lxdialog/dochecklxdialog] Error 1make[1]:*** [/home/zhaohang/repository/linux/busybox-1.37.0/scripts/kconfig/Makefile:14: menuconfig] Error 2make: *** [Makefile:444: menuconfig] Error 2

即便已经安装了ncurses也会报错

1
sudo pacman -S ncurses

参考解决方案:

上面讨论说高版本gcc有一个break change, 即main函数必须有返回类型

123
emacs scripts/kconfig/lxdialog/check-lxdialog.sh# 把 第50行 main() {} 改成# int main() {return 0;}

tc build error

如果使用高版本的Linux内核,需要禁用tc,参考

在make menuconfig中禁用它

12
Networking Utilities  --->    [ ] TC        # 禁用

创建inittab,rcS和fstab文件

12345678910111213
cd _installmkdir -p dev etc home lib/modules lib64 mnt proc root sys tmp vartouch etc/inittabmkdir -p etc/init.d/touch etc/init.d/rcStouch etc/fstabchmod 755 etc/inittabchmod 755 etc/init.d/rcS

inittab语法:

1
<id>:<runlevels>:<action>:<process>
  • id : 该条目在 inittab 中的唯一标识,通常对应终端设备名
  • runlevels : 忽略
  • action : 何时执行,有以下选项 sysinit, respawn, askfirst, wait, once,restart, ctrlaltdel, and shutdown
  • process : 应用程序或脚本

etc/inittab写入以下内容

1234
::sysinit:/etc/init.d/rcS::respawn:-/bin/sh::askfirst:-/bin/sh::ctrlaltdel:/bin/umount -a -r

etc/init.d/rcS写入如下内容:

12345678
/bin/mount -amkdir -p /dev/ptsmount -t devpts devpts /dev/ptsmount -t configfs none /sys/kernel/configif [ -e /proc/sys/kernel/hotplug ]; then    echo /sbin/mdev > /proc/sys/kernel/hotplugfimdev -s

etc/fstab写入如下内容:

123456
#device mount-point type option dump fsckproc  /proc proc  defaults 0 0tmpfs /tmp tmpfs defaults 0 0none  /tmp  ramfs defaults 0 0sysfs /sys  sysfs defaults 0 0mdev  /dev  ramfs defaults 0 0

添加设备文件

123
cd devsudo mknod console c 5 1sudo mknod null c 1 3

添加库文件

这一步是可选的

1234
cd _installcp /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 lib/cp /usr/aarch64-linux-gnu/lib/libc.so.6 lib/cp /usr/aarch64-linux-gnu/lib/libm.so.6 lib/

打包

123
cd busybox-1.37.0/_installfind . | cpio -o -H newc | gzip -c > ../initramfs.cpio.gzcp ../initramfs.cpio.gz ~/tftp

Linux 内核编译

123456789101112131415
sudo apt-get install gcc-aarch64-linux-gnusudo apt install libssl-devwget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.238.tar.xztar xvf linux-5.10.238.tar.xzcd linux-5.10.238make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- cleanmake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfigmake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig# 这一步是开发内核模块需要的,可选make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules_preparemake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image -j$(nproc)cp arch/arm64/boot/Image ~/tftp

Emacs + clangd 阅读Linux源码

在Linux源码根路径下添加.clangd

123
CompileFlags:  Add: -Wno-unknown-warning-option  Remove: [-m*, -f*]

生成compile_command.json(需要python3)

1
./scripts/clang-tools/gen_compile_commands.py

emacs 配置参考

Emacs + dts-lsp 阅读设备树

使用的是dts-lsp

1
$ npm i -g devicetree-language-server

在内核根目录下创建.dir-locals.el,内容如下

12345678910111213
((dts-mode  . ((eglot-workspace-configuration      . ((devicetree          (cwd . "/home/zhaohang/repository/linux/rk3568_linux_5.10/kernel")                    (defaultIncludePaths . ["include"])          (defaultBindingType . "DevicetreeOrg")          (defaultDeviceOrgBindingsMetaSchema . ["/home/zhaohang/repository/dt-schema/dtschema/meta-schemas"])          (defaultDeviceOrgTreeBindings . [                                           ;; "/home/zhaohang/repository/dt-schema/dtschema/schemas"                                           "/home/zhaohang/repository/linux/rk3568_linux_5.10/kernel/Documentation/devicetree/bindings"                                           ])          (defaultShowFormattingErrorAsDiagnostics . :json-false)          ))))))

其中dt-schema来自:

emacs中eglot配置如下:

1234567891011121314151617181920212223242526272829303132333435363738394041
(use-package dts-mode  :ensure t  :defer t  );; lsp语言服务器配置(use-package eglot  :ensure t  :defer 1  :config  (setq eglot-server-programs        '(((c-mode-hook c++-mode-hook c++-ts-mode c-ts-mode)                                                       . ("clangd"                                                          "--enable-config"                                                          "--background-index"                                                          ;; "--background-index-priority=low"                                                          "--clang-tidy"                                                          "--completion-style=detailed"                                                          "--header-insertion=never"                                                          "--pretty"                                                          ))          ((dts-mode)                                  . ("devicetree-language-server" "--stdio"))          ((rust-mode rust-ts-mode)                    . ("rust-analyzer" :initializationOptions                                                          (:cargo (:buildScripts (:enable t))                                                                  :procMacro (:enable t))))          ((python-mode python-ts-mode)                . ("pyright-langserver" "--stdio"))          ))  ;; 关闭lsp自动格式化  (setq eglot-ignored-server-capabilities '(:documentOnTypeFormattingProvider))  );;自动打开eglot(dolist (hook '(c-mode-hook c-ts-mode-hook c++-mode-hook c++-ts-mode-hook                            dts-mode-hook                            rust-mode-hook rust-ts-mode-hook                            python-mode-hook python-ts-mode-hook			    ))  (add-hook hook 'eglot-ensure))

qemu运行

12345678910
qemu-system-aarch64 \  -cpu cortex-a57 \  -m 512M \  -machine type=virt \  -nographic \  -smp 2 \  -kernel ~/tftp/Image  \  -initrd ~/tftp/initramfs.cpio.gz   \  -append "rdinit=/linuxrc console=ttyAMA0" \  -device virtio-scsi-device

结果:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
zhaohang@ZhaoHang:~/kernel/my_arm64_programming$ qemu-system-aarch64 \  -cpu cortex-a57 \  -m 512M \  -machine type=virt \  -nographic \  -smp 2 \  -kernel ~/tftp/Image  \  -initrd ~/tftp/initramfs.cpio.gz   \  -append "rdinit=/linuxrc console=ttyAMA0" \  -device virtio-scsi-device[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd070][    0.000000] Linux version 5.10.238 (zhaohang@ZhaoHang) (aarch64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #2 SMP PREEMPT Mon Jun 23 13:01:18 CST 2025[    0.000000] random: crng init done[    0.000000] Machine model: linux,dummy-virt[    0.000000] efi: UEFI not found.[    0.000000] NUMA: No NUMA configuration found[    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000005fffffff][    0.000000] NUMA: NODE_DATA [mem 0x5fef4b00-0x5fef6fff][    0.000000] Zone ranges:[    0.000000]   DMA      [mem 0x0000000040000000-0x000000005fffffff][    0.000000]   DMA32    empty[    0.000000]   Normal   empty[    0.000000] Movable zone start for each node[    0.000000] Early memory node ranges[    0.000000]   node   0: [mem 0x0000000040000000-0x000000005fffffff][    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000005fffffff][    0.000000] cma: Reserved 32 MiB at 0x000000005c000000[    0.000000] psci: probing for conduit method from DT.[    0.000000] psci: PSCIv1.1 detected in firmware.[    0.000000] psci: Using standard PSCI v0.2 function IDs[    0.000000] psci: Trusted OS migration not required[    0.000000] psci: SMC Calling Convention v1.0[    0.000000] percpu: Embedded 23 pages/cpu s56664 r8192 d29352 u94208[    0.000000] Detected PIPT I-cache on CPU0[    0.000000] CPU features: detected: ARM erratum 832075[    0.000000] CPU features: detected: ARM erratum 834220[    0.000000] CPU features: detected: EL2 vector hardening[    0.000000] CPU features: kernel page table isolation forced ON by KASLR[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)[    0.000000] CPU features: detected: Spectre-v2[    0.000000] CPU features: detected: Spectre-v4[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923[    0.000000] CPU features: detected: Spectre-BHB[    0.000000] CPU features: detected: ARM erratum 1742098[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129024[    0.000000] Policy zone: DMA[    0.000000] Kernel command line: rdinit=/linuxrc console=ttyAMA0[    0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes, linear)[    0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off[    0.000000] Memory: 439372K/524288K available (14464K kernel code, 2810K rwdata, 7632K rodata, 5952K init, 512K bss, 52148K reserved, 32768K cma-reserved)[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1[    0.000000] rcu: Preemptible hierarchical RCU implementation.[    0.000000] rcu:     RCU event tracing is enabled.[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.[    0.000000]  Trampoline variant of Tasks RCU enabled.[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0[    0.000000] GICv2m: range[mem 0x08020000-0x08020fff], SPI[80:143][    0.000000] arch_timer: cp15 timer(s) running at 62.50MHz (virt).[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1cd42e208c, max_idle_ns: 881590405314 ns[    0.000135] sched_clock: 56 bits at 62MHz, resolution 16ns, wraps every 4398046511096ns[    0.005145] Console: colour dummy device 80x25[    0.006576] Calibrating delay loop (skipped), value calculated using timer frequency.. 125.00 BogoMIPS (lpj=250000)[    0.006668] pid_max: default: 32768 minimum: 301[    0.007333] LSM: Security Framework initializing[    0.008050] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)[    0.008075] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)[    0.025711] /cpus/cpu-map: empty cluster[    0.030337] rcu: Hierarchical SRCU implementation.[    0.032757] EFI services will not be available.[    0.033350] smp: Bringing up secondary CPUs ...[    0.036124] Detected PIPT I-cache on CPU1[    0.036589] CPU1: Booted secondary processor 0x0000000001 [0x411fd070][    0.038611] smp: Brought up 1 node, 2 CPUs[    0.038641] SMP: Total of 2 processors activated.[    0.038684] CPU features: detected: 32-bit EL0 Support[    0.038732] CPU features: detected: CRC32 instructions[    0.038761] CPU features: detected: 32-bit EL1 Support[    0.087011] CPU: All CPU(s) started at EL1[    0.087320] alternatives: patching kernel code[    0.100786] devtmpfs: initialized[    0.106839] KASLR enabled[    0.107566] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns[    0.107783] futex hash table entries: 512 (order: 3, 32768 bytes, linear)[    0.110482] pinctrl core: initialized pinctrl subsystem[    0.117149] DMI not present or invalid.[    0.123022] NET: Registered protocol family 16[    0.130687] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations[    0.130888] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations[    0.131032] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations[    0.131170] audit: initializing netlink subsys (disabled)[    0.132726] audit: type=2000 audit(0.124:1): state=initialized audit_enabled=0 res=1[    0.135229] thermal_sys: Registered thermal governor 'step_wise'[    0.135284] thermal_sys: Registered thermal governor 'power_allocator'[    0.135718] cpuidle: using governor menu[    0.136329] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.[    0.136815] ASID allocator initialised with 32768 entries[    0.139125] Serial: AMBA PL011 UART driver[    0.165966] 9000000.pl011: ttyAMA0 at MMIO 0x9000000 (irq = 47, base_baud = 0) is a PL011 rev1[    0.256055] printk: console [ttyAMA0] enabled[    0.275753] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages[    0.276425] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages[    0.278075] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages[    0.279114] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages[    0.287377] cryptd: max_cpu_qlen set to 1000[    0.295509] ACPI: Interpreter disabled.[    0.298412] iommu: Default domain type: Translated[    0.299715] vgaarb: loaded[    0.300806] SCSI subsystem initialized[    0.302702] usbcore: registered new interface driver usbfs[    0.303416] usbcore: registered new interface driver hub[    0.303948] usbcore: registered new device driver usb[    0.305361] pps_core: LinuxPPS API ver. 1 registered[    0.305774] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>[    0.306671] PTP clock support registered[    0.307422] EDAC MC: Ver: 3.0.0[    0.311302] FPGA manager framework[    0.312553] Advanced Linux Sound Architecture Driver Initialized.[    0.320481] clocksource: Switched to clocksource arch_sys_counter[    0.321721] VFS: Disk quotas dquot_6.6.0[    0.322248] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)[    0.325830] pnp: PnP ACPI: disabled[    0.352101] NET: Registered protocol family 2[    0.353501] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)[    0.357091] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)[    0.357844] TCP established hash table entries: 4096 (order: 3, 32768 bytes, linear)[    0.358536] TCP bind hash table entries: 4096 (order: 4, 65536 bytes, linear)[    0.359240] TCP: Hash tables configured (established 4096 bind 4096)[    0.360804] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)[    0.361461] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)[    0.362658] NET: Registered protocol family 1[    0.366482] RPC: Registered named UNIX socket transport module.[    0.366894] RPC: Registered udp transport module.[    0.367151] RPC: Registered tcp transport module.[    0.367596] RPC: Registered tcp NFSv4.1 backchannel transport module.[    0.368532] PCI: CLS 0 bytes, default 64[    0.371336] Unpacking initramfs...[    0.423234] Freeing initrd memory: 1156K[    0.425734] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available[    0.426386] kvm [1]: HYP mode not available[    0.438866] Initialise system trusted keyrings[    0.441323] workingset: timestamp_bits=42 max_order=17 bucket_order=0[    0.449648] squashfs: version 4.0 (2009/01/31) Phillip Lougher[    0.451781] NFS: Registering the id_resolver key type[    0.452635] Key type id_resolver registered[    0.452872] Key type id_legacy registered[    0.453347] nfs4filelayout_init: NFSv4 File Layout Driver Registering...[    0.453801] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...[    0.454953] 9p: Installing v9fs 9p2000 file system support[    0.485329] Key type asymmetric registered[    0.486010] Asymmetric key parser 'x509' registered[    0.486459] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)[    0.486881] io scheduler mq-deadline registered[    0.487275] io scheduler kyber registered[    0.498447] pl061_gpio 9030000.pl061: PL061 GPIO chip registered[    0.501854] pci-host-generic 4010000000.pcie: host bridge /pcie@10000000 ranges:[    0.502917] pci-host-generic 4010000000.pcie:       IO 0x003eff0000..0x003effffff -> 0x0000000000[    0.503846] pci-host-generic 4010000000.pcie:      MEM 0x0010000000..0x003efeffff -> 0x0010000000[    0.504662] pci-host-generic 4010000000.pcie:      MEM 0x8000000000..0xffffffffff -> 0x8000000000[    0.505854] pci-host-generic 4010000000.pcie: ECAM at [mem 0x4010000000-0x401fffffff] for [bus 00-ff][    0.507028] pci-host-generic 4010000000.pcie: PCI host bridge to bus 0000:00[    0.507648] pci_bus 0000:00: root bus resource [bus 00-ff][    0.508176] pci_bus 0000:00: root bus resource [io  0x0000-0xffff][    0.509569] pci_bus 0000:00: root bus resource [mem 0x10000000-0x3efeffff][    0.511529] pci_bus 0000:00: root bus resource [mem 0x8000000000-0xffffffffff][    0.513307] pci 0000:00:00.0: [1b36:0008] type 00 class 0x060000[    0.515919] pci 0000:00:01.0: [1af4:1000] type 00 class 0x020000[    0.517340] pci 0000:00:01.0: reg 0x10: [io  0x0000-0x001f][    0.517754] pci 0000:00:01.0: reg 0x14: [mem 0x00000000-0x00000fff][    0.518388] pci 0000:00:01.0: reg 0x20: [mem 0x00000000-0x00003fff 64bit pref][    0.518923] pci 0000:00:01.0: reg 0x30: [mem 0x00000000-0x0003ffff pref][    0.521212] pci 0000:00:01.0: BAR 6: assigned [mem 0x10000000-0x1003ffff pref][    0.522137] pci 0000:00:01.0: BAR 4: assigned [mem 0x8000000000-0x8000003fff 64bit pref][    0.523076] pci 0000:00:01.0: BAR 1: assigned [mem 0x10040000-0x10040fff][    0.523801] pci 0000:00:01.0: BAR 0: assigned [io  0x1000-0x101f][    0.528448] EINJ: ACPI disabled.[    0.542283] virtio-pci 0000:00:01.0: enabling device (0000 -> 0003)[    0.554485] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled[    0.558302] SuperH (H)SCI(F) driver initialized[    0.559486] msm_serial: driver initialized[    0.561993] cacheinfo: Unable to detect cache hierarchy for CPU 0[    0.575536] loop: module loaded[    0.577188] megasas: 07.714.04.00-rc1[    0.581247] physmap-flash 0.flash: physmap platform flash device: [mem 0x00000000-0x03ffffff][    0.583156] 0.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000[    0.584568] Intel/Sharp Extended Query Table at 0x0031[    0.585746] Using buffer write method[    0.586466] physmap-flash 0.flash: physmap platform flash device: [mem 0x04000000-0x07ffffff][    0.587833] 0.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000[    0.589950] Intel/Sharp Extended Query Table at 0x0031[    0.590679] Using buffer write method[    0.591154] Concatenating MTD devices:[    0.591566] (0): "0.flash"[    0.591870] (1): "0.flash"[    0.592172] into device "0.flash"[    0.639324] tun: Universal TUN/TAP device driver, 1.6[    0.648697] thunder_xcv, ver 1.0[    0.649091] thunder_bgx, ver 1.0[    0.649532] nicpf, ver 1.0[    0.651118] hclge is initializing[    0.651699] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version[    0.652969] hns3: Copyright (c) 2017 Huawei Corporation.[    0.654822] e1000: Intel(R) PRO/1000 Network Driver[    0.655566] e1000: Copyright (c) 1999-2006 Intel Corporation.[    0.656421] e1000e: Intel(R) PRO/1000 Network Driver[    0.657100] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.[    0.657828] igb: Intel(R) Gigabit Ethernet Network Driver[    0.658543] igb: Copyright (c) 2007-2014 Intel Corporation.[    0.659076] igbvf: Intel(R) Gigabit Virtual Function Network Driver[    0.659905] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.[    0.661636] sky2: driver version 1.30[    0.663482] VFIO - User Level meta-driver version: 0.3[    0.666363] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver[    0.666801] ehci-pci: EHCI PCI platform driver[    0.667200] ehci-platform: EHCI generic platform driver[    0.667555] ehci-orion: EHCI orion driver[    0.668162] ehci-exynos: EHCI Exynos driver[    0.669422] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver[    0.670008] ohci-pci: OHCI PCI platform driver[    0.670583] ohci-platform: OHCI generic platform driver[    0.671027] ohci-exynos: OHCI Exynos driver[    0.672066] usbcore: registered new interface driver usb-storage[    0.678548] rtc-pl031 9010000.pl031: registered as rtc0[    0.679438] rtc-pl031 9010000.pl031: setting system clock to 2025-06-23T05:12:11 UTC (1750655531)[    0.680812] i2c /dev entries driver[    0.687138] sdhci: Secure Digital Host Controller Interface driver[    0.687486] sdhci: Copyright(c) Pierre Ossman[    0.688175] Synopsys Designware Multimedia Card Interface Driver[    0.689770] sdhci-pltfm: SDHCI platform and OF driver helper[    0.691932] ledtrig-cpu: registered to indicate activity on CPUs[    0.694429] usbcore: registered new interface driver usbhid[    0.694654] usbhid: USB HID core driver[    0.700987] NET: Registered protocol family 17[    0.702090] 9pnet: Installing 9P2000 support[    0.702525] Key type dns_resolver registered[    0.703492] registered taskstats version 1[    0.703776] Loading compiled-in X.509 certificates[    0.710892] input: gpio-keys as /devices/platform/gpio-keys/input/input0[    0.714806] clk: Disabling unused clocks[    0.715339] ALSA device list:[    0.715654]   No soundcards found.[    0.718941] uart-pl011 9000000.pl011: no DMA platform data[    0.752373] Freeing unused kernel memory: 5952K[    0.753454] Run /linuxrc as init processPlease press Enter to activate this console.~ #~ # lsbin      etc      lib      mnt      root     sys      usrdev      home     linuxrc  proc     sbin     tmp      var

command + a, 然后按 x 可以退出qemu

评论加载中…