网站建设招标方案,上海互联网营销策划公司,seo网站搭建是什么,建设银行大学华东学院网站3.5 启动QEMU ARM64虚拟机
3.5.1 启动QEMU ARM64虚拟机
这条命令启动了一个基于 ARM 架构的虚拟机#xff0c;配置了 4 GB 内存、4 个 CPU 核心、一个 VirtIO 硬盘和一个 VirtIO 网络设备#xff0c;并指定了启动内核和根文件系统。通过 -nographic 和端口转发#xff0c;可…3.5 启动QEMU ARM64虚拟机3.5.1 启动QEMU ARM64虚拟机这条命令启动了一个基于 ARM 架构的虚拟机配置了 4 GB 内存、4 个 CPU 核心、一个 VirtIO 硬盘和一个 VirtIO 网络设备并指定了启动内核和根文件系统。通过-nographic和端口转发可以在终端中直接操作虚拟机并通过 SSH 访问虚拟机。qemu-system-aarch64\-m4096\-cpu cortex-a72\-M virt,gic-version3\-smp4\-kernel linux-build/arch/arm64/boot/Image.gz\-appendnoinitrd sched_debug consolettyAMA0 root/dev/vda rootfstypeext4 rw crashkernel256M loglevel8 nokaslr\-driveifnone,formatraw,filerootfs/linuxroot.img,idhd0\-device virtio-blk-device,drivehd0\-netdev user,ideth0,hostfwdtcp::56789-:22 -device virtio-net-device,netdeveth0\-nographic正常情况下你会见到如下登录界面。Ubuntu22.04.5 LTS xeno-demo ttyAMA0 xeno-demo login:以下是对该qemu-system-aarch64命令的逐行解释1.qemu-system-aarch64这是 QEMU 的命令用于启动一个基于 ARM 架构64 位的虚拟机。aarch64表示使用 ARMv8-A 64 位架构。2.-m 4096指定虚拟机的内存大小为 4096 MB即 4 GB。-m参数控制分配给虚拟机的 RAM 大小。3.-cpu cortex-a72指定虚拟机使用的 CPU 模型为 Cortex-A72。Cortex-A72 是 ARM 的一款高性能处理器核心。4.-M virt,gic-version3指定虚拟机的机器类型为virt这是 QEMU 提供的一种通用的虚拟化平台用于模拟 ARM 系统。gic-version3表示使用 Generic Interrupt Controller (GIC) 版本 3这是一种中断控制器标准用于管理 ARM 系统中的中断。5.-smp 4指定虚拟机的 CPU 核心数量为 4。-smp参数用于设置虚拟机的对称多处理SMP配置这里表示虚拟机有 4 个虚拟 CPU 核心。6.-kernel linux-build/arch/arm64/boot/Image.gz指定虚拟机启动时使用的内核镜像文件路径。Image.gz是一个压缩的 Linux 内核镜像位于linux-build/arch/arm64/boot/目录下。7.-append noinitrd sched_debug consolettyAMA0 root/dev/vda rootfstypeext4 rw crashkernel256M loglevel8 nokaslr向内核传递启动参数noinitrd: 不使用 initrd初始 RAM 磁盘。sched_debug: 启用调度器调试信息。consolettyAMA0: 将控制台输出重定向到ttyAMA0虚拟串口。root/dev/vda: 指定根文件系统所在的设备为/dev/vda。rootfstypeext4: 指定根文件系统的类型为 ext4。rw: 以读写模式挂载根文件系统。crashkernel256M: 预留 256 MB 内存用于崩溃转储kdump。loglevel8: 设置内核日志级别为 8最高级别显示所有日志信息。nokaslr: 禁用内核地址空间布局随机化KASLR主要用于调试。8.-drive ifnone,formatraw,filerootfs/linuxroot.img,idhd0定义一个块设备硬盘ifnone: 表示不直接连接到任何接口而是通过后续的-device参数进行绑定。formatraw: 指定磁盘镜像格式为原始格式raw。filerootfs/linuxroot.img: 指定磁盘镜像文件路径。idhd0: 为该驱动器分配一个标识符hd0用于后续引用。9.-device virtio-blk-device,drivehd0将前面定义的块设备hd0连接到虚拟机并使用 VirtIO 半虚拟化驱动程序。VirtIO 是一种高效的 I/O 虚拟化技术能够显著提高性能。10.-netdev user,ideth0,hostfwdtcp::56789-:22定义一个用户模式网络设备ideth0: 为该网络设备分配标识符eth0。hostfwdtcp::56789-:22: 设置端口转发规则将主机的 56789 端口映射到虚拟机的 22 端口即SSH服务端口。这允许通过主机访问虚拟机的 SSH 服务ssh -p 56789 localhost。11.-device virtio-net-device,netdeveth0将前面定义的网络设备eth0连接到虚拟机并使用 VirtIO 网络驱动程序。12.-nographic禁用图形界面输出并将虚拟机的串口输出直接显示在终端上。3.5.2 检查Cobalt内核为了测试 Xenomai Cobalt内核是否正常启动检查内核启动日志中的消息rootxeno-demo:~# dmesg | grep -i xenomai[0.502146][Xenomai]scheduling class idle registered.[0.502310][Xenomai]scheduling class rt registered.[0.502880]IRQ pipeline: high-priority Xenomai stage added.[0.511492][Xenomai]Cobalt v3.2.4上述命令通过dmesg查看内核启动日志并使用grep筛选出与 Xenomai 相关的消息用于验证 Cobalt 内核是否正常启动。日志中显示了 Xenomai 的关键初始化信息例如调度类idle 和 rt的注册以及 Cobalt 版本号v3.2.4。这些消息表明 Xenomai 实时子系统已成功加载并运行。如果未出现相关日志或存在错误信息则可能意味着内核模块未正确加载或配置存在问题需进一步排查安装和引导过程。Xenomai Cobalt 内核正常启动后会在/proc/xenomai目录下生成多个文件用于提供运行时信息和调试支持。rootxeno-demo:~# cat /proc/xenomai/version3.2.4 rootxeno-demo:~# cat /proc/xenomai/sched/statCPU PID MSW CSW XSC PF STAT %CPU NAME00000000018000100.0[ROOT/0]10000000018000100.0[ROOT/1]20000000018000100.0[ROOT/2]30000000018000100.0[ROOT/3]/proc/xenomai/version显示当前 Xenomai 的版本号如3.2.4用于确认安装的版本是否正确。而/proc/xenomai/sched/stat提供了实时调度器的统计信息包括每个 CPU 核心的任务模式切换次数MSW、上下文切换次数CSW、异常切换次数XSC、PF缺页异常以及STAT任务状态等。这些数据有助于监控系统实时性能和排查潜在问题是调试和优化实时应用的重要工具。为什么这里CPU的占用率是100%这里 ROOT/x 是内核 idle 线程在没有 Xenomai 实时线程运行的情况下idle线程会占完整个CPU这里的100%不代表整个系统都被跑满旨在说明在没有用户态实时线程时CPU都消耗在内核idle线程。等到有其他线程运行时CPU会分配过去也会看到非PID0、非ROOT/x的线程在运行。Xenomai Cobalt 内核的启动参数可以通过/sys/module/xenomai/parameters/目录查看这些参数在内核模块加载时被初始化用于配置 Xenomai 的运行行为。rootxeno-demo:~# ls /sys/module/xenomai/parameters/allowed_group state supported_cpus sysheap_size rootxeno-demo:~# cat /sys/module/xenomai/parameters/sysheap_size4096例如sysheap_size表示系统堆的大小以 KB 为单位这里显示为4096KB即 4 MB用于分配实时任务的内存资源。其他参数如allowed_group控制访问权限supported_cpus定义支持的 CPU 掩码state显示模块状态。这些参数为管理员提供了灵活的配置选项便于优化和调试实时系统性能。3.5.3 检查Xenomai用户层库和工具执行 Xenomai 的latency工具可以验证其实时性能和相关库是否正确安装。latency是 Xenomai 提供的一个基准测试工具用于测量系统的实时延迟特性。运行该工具时它会定期触发定时器中断并记录系统响应的最大、最小和平均延迟。通过观察输出结果可以判断 Xenomai 内核和用户空间库是否正常工作。如果工具能够成功运行并输出延迟数据说明 Xenomai 环境已正确配置。因为当前是在QMEU ARM64虚拟机下运行具体的延迟数值可以忽略。在真实的硬件下测试得到的延迟数值才有参考价值。rootxeno-demo:~# latencySampling period:1000usTest mode: periodic user-mode taskAll resultsinmicroseconds warming up... RTT|00:00:01(periodic user-mode task,1000us period, priority99)RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst RTD|132.110|495.434|1184.420|2|0|132.110|1184.420RTD|133.921|503.454|1131.748|7|0|132.110|1184.420RTD|70.308|538.631|1391.883|16|0|70.308|1391.883RTD|167.898|494.612|1416.772|21|0|70.308|1416.772RTD|122.023|498.749|1110.043|28|0|70.308|1416.772RTD|73.017|483.336|1479.383|32|0|70.308|1479.383