记录:virt-manager配置Ubuntu arm虚拟机

virt-manager(Virtual Machine Manager)是一个图形用户界面应用程序,通过libvirt管理虚拟机(即作为libvirt的图形前端)

因为要在Linux arm环境做测试,记录下virt-manager配置arm虚拟机的过程

先在VMWare中安装一个Ubuntu 18 x86_64虚拟机

VMWare设置虚拟化:

启动x86_64 Ubuntu虚拟机,部分操作可能需要超级管理权限,设置下root密码:

sudo passwd root

 检测下当前环境是否支持虚拟化:

# 参考:https://linux.cn/article-9516-1.html
# 检查是否支持虚拟化
# 1.使用 egrep 命令查明你的CPU是否支持,输出要大于0
egrep -c 'vmx|svm' /proc/cpuinfo
# 2.使用 cpu-checker 工具检测
sudo apt install cpu-checker
kvm-ok

没问题后开始安装virt-manager相关的环境:

# 参考:https://blog.csdn.net/networken/article/details/136747410
sudo apt update -y
# qemu+kvm
sudo apt install -y qemu-kvm 
# libvirt
sudo apt install -y virt-manager libvirt-daemon-system libvirt-clients virtinst 
# bridge tool
sudo apt install -y bridge-utils

qemu-kvm - 为 KVM 管理程序提供硬件模拟的软件程序

virt-manager - 图形化的虚拟机管理工具,用于管理KVM、QEMU等虚拟机

libvirt-daemon-system - 将 libvirt 守护程序作为系统服务运行的配置文件

libvirt-clients - 用来管理虚拟化平台的软件

virtinst - 用来创建虚拟机的命令行工具

bridge-utils - 用来配置网络桥接的命令行工具

安装时如果遇到lvm2报错,执行:

# 参考:https://blog.csdn.net/watt1208/article/details/138967796
# 可能需要进入su执行
systemctl unmask lvm2-lvmetad.socket
systemctl restart lvm2-lvmetad.socket
systemctl unmask lvm2-lvmpolld.socket
systemctl restart lvm2-lvmpolld.socket
dpkg --configure lvm2

 默认只有管理权限才能访问kvm,普通用户添加访问权限:

sudo adduser <username> libvirt
sudo adduser <username> kvm

virt-manager装好后,去下载我们的Linux arm镜像,我用的Ubuntu-18.04.6-server-arm64.iso:

https://cdimage.ubuntu.com/ubuntu/releases/

解锁virt-manager的架构设置选项:

# 参考:https://www.cnblogs.com/ishmaelwanglin/p/17821825.html
sudo apt install -y qemu-system-arm  ovmf qemu-efi

终端命令或程序列表里打开virt-manager:

virt-manager

新建虚拟机:

参考:https://blog.csdn.net/luyixiaoqingge/article/details/136364652

点左上角开始安装后,一路默认安装

Disk设置选Yes:

因为配置较差,安装了几十分钟

这里选的SSH,又安装了几十分钟

装好后,关闭虚拟机,设置共享文件夹挂载路径:

重新开机后,设置 root 密码,在 root 权限下操作:

apt update -y
# 挂载前先安装 nfs-common 或者 nfs-utils
apt install -y nfs-common 
# 然后将之前设置的 shared 标记挂载到虚拟机指定目录
# 参考:https://blog.csdn.net/ww7109/article/details/133129777
mount -t 9p -o trans=virtio shared /demo

遇到文件或者文件夹权限问题(Permission denied),无脑chmod 777 加权限,外部内部都加上

有时挂载遇到报错(一般启动有ERROR信息就会遇到),重启下虚拟机

虚拟机是64位的,安装运行32位需要的库:

# 启用 32 位架构支持
dpkg --add-architecture armhf
apt update -y
# 安装此架构 C/C++ 标准库
apt install -y libc6:armhf libstdc++6:armhf
# 装完标准库后可能还不能运行带 so 动态库的程序,安装 multilib
# multilib 支持系统上同时编译和运行 32 位和 64 位程序
apt install -y gcc-multilib g++-multilib

用 ldd 查看 32 位程序提示 not a dynamic executable:

先找到 ldd 和 ld-linux 位置:

修改ldd的RTLDLISTL路径,或者复制一份ldd命名为ldd32,编辑ldd32文件把32位的ld-linux路径替换上去:

# cp /usr/bin/ldd /usr/bin/ldd32
# 原值 RTLDLIST=/lib/ld-linux-aarch64.so.1
RTLDLIST=/lib/ld-linux.so.3
# 或者修改原来的ldd,加引号,空格隔开
RTLDLIST="/lib/ld-linux-aarch64.so.1 /lib/ld-linux.so.3"

可以用vi编辑ldd文件,输入i进入编辑模式,编辑完ESC退出编辑,再输入:wq或者:wq!保存退出

执行ldd32:

挂载USB设备直接在virt-manager里设置,这里以一个USB硬盘为例:

会在设备列表里多一个设备信息:

在虚拟机里执行lsusb查看设备:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/64512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

艾体宝案例丨CircleCI 助力 ANA Systems 打造高效 CI/CD 模型

在现代软件开发领域&#xff0c;效率和可靠性是企业在竞争中取胜的关键。本文将深入探讨 ANA Systems 如何通过引入业界领先的 CI/CD 平台——CircleCI&#xff0c;克服传统开发流程的瓶颈&#xff0c;实现开发运营效率的全面提升。同时&#xff0c;本文还将详细解析 CircleCI …

Linux dd 命令详解:工作原理与实用指南(C/C++代码实现)

这段代码是一个模仿 Linux dd 命令的工具&#xff0c;它用于在不同文件之间复制数据。dd 是一个非常强大的命令行工具&#xff0c;可以用于数据备份、转换和复制。下面我将详细解释这段代码的原理、实现方式以及如何运行和测试。 Linux dd 命令的工作原理 dd 命令是 Unix 和 …

ChatGPT客户端安装教程(附下载链接)

用惯了各类AI的我们发现每天打开网页还挺不习惯和麻烦&#xff0c;突然发现客户端上架了&#xff0c;懂摸鱼的人都知道这里面的道行有多深&#xff0c;话不多说&#xff0c;开整&#xff01; 以下是ChatGPT客户端的详细安装教程&#xff0c;适用于Windows和Mac系统&#xff1a…

《C 语言携手 PaddlePaddle C++ API:开启深度学习开发新征程》

在深度学习领域&#xff0c;PaddlePaddle 作为一款强大的深度学习框架&#xff0c;为开发者提供了丰富的功能和高效的计算能力。而 C 语言&#xff0c;凭借其高效性和广泛的应用场景&#xff0c;与 PaddlePaddle 的 C API 相结合&#xff0c;能够为深度学习开发带来独特的优势。…

ARM CCA机密计算安全模型之固件启动

安全之安全(security)博客目录导读 目录 1、安全启动(Verified boot) 2、镜像格式和签名方案 3、防回滚 4、离线启动(Off-line boot) 5、CCA HES固件启动流程 6、CCA系统安全域启动过程 7、应用程序PE启动过程 8、稳健性 本节定义了将CCA固件引导至可证明状态的要…

Element@2.15.14-tree checkStrictly 状态实现父项联动子项,实现节点自定义编辑、新增、删除功能

背景&#xff1a;现在有一个新需求&#xff0c;需要借助树结构来实现词库的分类管理&#xff0c;树的节点是不同的分类&#xff0c;不同的分类可以有自己的词库&#xff0c;所以父子节点是互不影响的&#xff1b;同样为了选择的方便性&#xff0c;提出了新需求&#xff0c;选择…

【ALSA】snd_pcm_avail 接口

目录 简介使用场景注意事项函数签名代码示例 简介 snd_pcm_avail 是 ALSA&#xff08;Advanced Linux Sound Architecture&#xff09;库中的一个函数&#xff0c;用于获取 PCM&#xff08;Pulse Code Modulation&#xff09;设备环形缓冲区中可用的音频数据量。这个函数对于音…

计算机网络——期末复习(1)背诵

背诵 交换机与路由器&#xff1a;交换机连接同一子网&#xff0c;利用帧中的目的物理地址转发帧&#xff0c;工作在数据链路层&#xff1b;路由器连接不同子网&#xff0c;利用IP数据报中的目的IP地址转发IP数据报&#xff0c;工作在网络层。五层的任务&#xff1a;&#xff0…

概率论得学习和整理27:关于离散的数组 随机变量数组的均值,方差的求法3种公式,思考和细节。

目录 1 例子1&#xff1a;最典型的&#xff0c;最简单的数组的均值&#xff0c;方差的求法 2 例子1的问题&#xff1a;例子1只是1个特例&#xff0c;而不是普遍情况。 2.1 例子1各种默认假设&#xff0c;导致了求均值和方差的特殊性&#xff0c;特别简单。 2.2 我觉得 加权…

【HarmonyOS NEXT】Web 组件的基础用法以及 H5 侧与原生侧的双向数据通讯

关键词&#xff1a;鸿蒙、ArkTs、Web组件、通讯、数据 官方文档Web组件用法介绍&#xff1a;文档中心 Web 组件加载沙箱中页面可参考我的另一篇文章&#xff1a;【HarmonyOS NEXT】 如何将rawfile中文件复制到沙箱中_鸿蒙rawfile 复制到沙箱-CSDN博客 目录 如何在鸿蒙应用中加…

ASP.NET Core - 依赖注入 自动批量注入

依赖注入配置变形 随着业务的增长&#xff0c;我们项目工作中的类型、服务越来越多&#xff0c;而每一个服务的依赖注入关系都需要在入口文件通过Service.Add{}方法去进行注册&#xff0c;这将是非常麻烦的&#xff0c;入口文件需要频繁改动&#xff0c;而且代码组织管理也会变…

Spring Boot 3.X:Unable to connect to Redis错误记录

一.背景 最近在搭建一个新项目&#xff0c;本着有新用新的原则&#xff0c;项目选择到了jdk17SpringBoot3.4。但是在测试Redis连接的时候却遇到了以下问题&#xff1a; redis连不上了。于是我先去检查了配置文件的连接信息&#xff0c;发现没问题&#xff1b;再去检查配置类&am…

FFmpeg第一话:FFmpeg 简介与环境搭建

FFmpeg 探索之旅 一、FFmpeg 简介与环境搭建 二、FFmpeg 解码详解 第一话&#xff1a;FFmpeg 简介与环境搭建 FFmpeg 探索之旅一、前言二、FFmpeg 是什么&#xff1f;三、简单介绍其历史背景四、为什么用 C学习 FFmpeg&#xff1f;&#xff08;一&#xff09;高性能优势&#…

(vue)el-table在表头添加筛选功能

(vue)el-table在表头添加筛选功能 筛选前&#xff1a; 选择条件&#xff1a; 筛选后&#xff1a; 返回数据格式: 代码: <el-tableref"filterTable":data"projectData.list"height"540":header-cell-style"{border-bottom: 1px soli…

单片机:实现蜂鸣器数码管的显示(附带源码)

单片机实现蜂鸣器数码管显示 蜂鸣器和数码管在嵌入式系统中广泛应用。蜂鸣器可以发出声音警告或提示&#xff0c;而数码管则用于显示数字或字母。在本项目中&#xff0c;我们将通过8051单片机实现一个控制蜂鸣器和数码管显示的系统&#xff0c;结合使用蜂鸣器和数码管&#xf…

画图,matlab,

clear;close all;clc;tic;dirOutput dir(*.dat); % 罗列所有后缀-1.dat的文件列表&#xff0c;罗列BDDATA的数据 filenames string({dirOutput.name}); % 提取文件名%% 丢包统计 FILENAMES [""]; LOSS_YTJ [ ]; LOSS_RAD [ ]; LOSS_ETH [ ]…

流程引擎Activiti性能优化方案

流程引擎Activiti性能优化方案 Activiti工作流引擎架构概述 Activiti工作流引擎架构大致分为6层。从上到下依次为工作流引擎层、部署层、业务接口层、命令拦截层、命令层和行为层。 基于关系型数据库层面优化 MySQL建表语句优化 Activiti在MySQL中创建默认字符集为utf8&…

Vue3源码笔记阅读1——Ref响应式原理

本专栏主要用于记录自己的阅读源码的过程,希望能够加深自己学习印象,也欢迎读者可以帮忙完善。接下来每一篇都会从定义、运用两个层面来进行解析 定义 运用 例子:模板中访问ref(1) <template><div>{{str}}</div> </template> <script> impo…

神经网络基础-神经网络搭建和参数计算

文章目录 1.构建神经网络2. 神经网络的优缺点 1.构建神经网络 在 pytorch 中定义深度神经网络其实就是层堆叠的过程&#xff0c;继承自nn.Module&#xff0c;实现两个方法&#xff1a; __init__方法中定义网络中的层结构&#xff0c;主要是全连接层&#xff0c;并进行初始化。…

Dcoker Redis哨兵模式集群介绍与搭建 故障转移 分布式 Java客户端连接

介绍 Redis 哨兵模式&#xff08;Sentinel&#xff09;是 Redis 集群的高可用解决方案&#xff0c;它主要用于监控 Redis 主从复制架构中的主节点和从节点的状态&#xff0c;并提供故障转移和通知功能。通过 Redis 哨兵模式&#xff0c;可以保证 Redis 服务的高可用性和自动故…