M1Mac 使用 qemu 配置 archlinux 虚拟机的完整c++开发环境与踩坑指南

这篇具有很好参考价值的文章主要介绍了M1Mac 使用 qemu 配置 archlinux 虚拟机的完整c++开发环境与踩坑指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


categories: [Tips] tags: Linux MacOS

写在前面

之前写了关于 qemu 安装 archlinux 的文章, 但是还有一些内容没得到解决, 比如很多时候 ssh 连接不成功, 这时候用图形界面(默认选项)的优势就体现出来了, 并且如果需要传输文件或者需要使用对外的端口, 仅转发一个22端口是不够的, 最后就是 gdb 调试的整套环境的配置, 这些问题都要解决.

因为服务器太贵了, 也不想续费, 还是本地老老实实跑qemu虚拟机吧…

qemu 的配置-完善版

之前的配置

#!/usr/bin/env bash

diskfile="$HOME/Documents/archlinux-x86_64-cc.qcow2"

# if [ $# -ne 1 ]; then
# 	echo "USAGE: $0 disk"
# 	echo " e.g.: $0 Archlinux.qcow2"
# 	exit 1
# fi

if [ ! -f $1 ]; then
	echo "could not open $1 : no such file"
	exit 1
fi

nohup qemu-system-x86_64 \
	-m 2G \
	-smp cores=3,threads=1,sockets=1,maxcpus=3 \
	-display none \
	-nographic \
	-drive file=${diskfile},if=virtio,cache=none \
	-nic user,hostfwd=tcp::60024-:8000,hostfwd=tcp::60022-:22 \
	-accel tcg \
	-cpu qemu64 \
	-machine q35 \
	-monitor tcp:127.0.0.1:60023,server,nowait &

# -D $HOME/Documents/archlinux-vm.log \

一些改动:

  • 去掉了日志记录(注释掉了, 放在 28 行), 因为一般来说不会记录日志, 目前还没遇到异常退出的情况
  • 用绝对路径导入虚拟机, 便于配置 alias
  • 如果遇到 ssh 连接不上的情况, 可以注释掉 19,20 行, 注意反斜杠的转义影响, 这样就会开启图形化终端了.
  • 端口转发, 下面 会讲

端口转发

这里比较恶心, 一开始我天真的以为多加入一行端口转发规则即可, 结果怎么也不行, 甚至 ssh 连接都出问题了. 后来发现应该是对指定网卡(nic)上做端口转发, 这在nc进入 monitor 之后使用info usernet 查看就明白了.

所以要加多个端口的转发规则, 只需要使用, 分隔的hostfwd键值对即可.

ssh相关

如果 ssh 连接失败, 可以先等一会, 虽然虚拟机开启来了, 但是 ssh 服务要等一段时间… 耐心等待即可, 推荐用:

ssh-copy-id -i ~/.ssh/id_rsa.pub -f arch@127.0.0.1

之后连接就不需要输入密码了.

测试

gdb 相关环境配置

事实上直接 pacman -Sy 即可, 这里列出需要安装的一些包:

sudo pacman -Sy clang gdb gcc git make cmake vim

性能

跟原生的 x86_64 肯定没法比, 这里给出阿里云的轻量应用服务器跑 sysbench 的对比:

核数都设置了一样的, 性能是阿里云的三分之一左右, 但是想到测试机器是 Mac 的第一款 M1 8+256Air, 感觉已经很不错了…

阿里云服务器

 ==> sysbench cpu --cpu-max-prime=20000000 --threads=2 run
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Prime numbers limit: 20000000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:     0.05

General statistics:
    total time:                          42.3594s
    total number of events:              2

Latency (ms):
         min:                                40657.72
         avg:                                41508.45
         max:                                42359.17
         95th percentile:                    42134.07
         sum:                                83016.89

Threads fairness:
    events (avg/stddev):           1.0000/0.00
    execution time (avg/stddev):   41.5084/0.85

archlinux 虚拟机(通过 qemu 在 arm Mac 上模拟)

===============================================================
#!/usr/bin/env bash

qemu-system-x86_64 \
    -m 2G \
    -smp cores=2,threads=2,sockets=1,maxcpus=4 \
    -nographic \
    -drive file=Arch-Linux-x86_64-basic.qcow2,if=virtio,cache=none \
    -nic user,hostfwd=tcp::60022-:22 \
    -accel tcg \
    -monitor tcp:127.0.0.1:60023,server,nowait
====================================================================



[arch@archlinux ~]$ sysbench cpu --cpu-max-prime=20000000 --threads=4 run
sysbench 1.0.20 (using system LuaJIT 2.0.5)

Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Prime numbers limit: 20000000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:     0.03

General statistics:
    total time:                          138.9636s
    total number of events:              4

Latency (ms):
         min:                               138146.60
         avg:                               138423.84
         max:                               138962.00
         95th percentile:                   100000.00
         sum:                               553695.34

Threads fairness:
    events (avg/stddev):           1.0000/0.00
    execution time (avg/stddev):   138.4238/0.32

改动核数对性能影响不大, 可能多核模拟导致的吧…文章来源地址https://www.toymoban.com/news/detail-742225.html

到了这里,关于M1Mac 使用 qemu 配置 archlinux 虚拟机的完整c++开发环境与踩坑指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mac(M1)上安装Ubuntu虚拟机

    VMware Fusion https://www.vmware.com/products/fusion/fusion-evaluation.html ubuntu-desktop-arm64.iso https://cdimage.ubuntu.com/jammy/daily-live/current/ Mac版本的VMware叫 VMware Fusion,需用从这里 https://www.vmware.com/products/fusion/fusion-evaluation.html下载: M1的Mac只能安装ARM版本的虚拟机,需要从 https://cdimage.ubuntu.com/

    2024年02月11日
    浏览(41)
  • qemu虚拟机配置网络

    qemu虚机的网络介绍及原理可参考前人文章:Linux 内核调试 七:qemu网络配置_lqonlylove的博客-CSDN博客 这里只简单梳理下操作流程,以便快速实现网络互通。 1.宿主机创建 tap0 [root@localhost ~]# ifconfig [root@localhost ~]# ip tuntap add dev tap0 mode tap [root@localhost ~]# ip link set dev tap0 up [root@lo

    2024年02月14日
    浏览(43)
  • mac【M1】安装虚拟机vmwarefusion+win11

    https://www.vmware.com/products/fusion/fusion-evaluation.html https://next.itellyou.cn/Original/# 在设置国家地区界面,按下Fn+shift+F10,进入cmd界面,输入并回车: oobebypassnro 在进去windows11时,以管理员身份运行PowerShell,输入并回车: Set-ExecutionPolicy RemoteSigned 选择a,回车。 1.在菜单栏,点击安装

    2023年04月17日
    浏览(106)
  • mac pro M1(ARM)安装:ubuntu虚拟机(四)

    前面几期我们分别讲解了如何在mac m1环境下安装linux、window虚拟机,而很多应用场景中需要用到ubuntu虚拟机,所以这次我们来单独讲讲如何在mac m1环境下安装ubuntu虚拟机 本次演示我们选择通过VMware来安装虚拟机,VMware Fusion我们选择arm架构版本的。下载后双击安装即可 下载地

    2024年01月22日
    浏览(46)
  • Mac M1/M2安装Windows 11 虚拟机【超详细】

    作为Mac用户,有时候使用Windows会更加方便,这个时候就要考虑装双系统或者是虚拟机了(也可以直接换😊) 但是网上常用的Parallels Desktop的使用价格比较昂贵,在此不多叙述,感兴趣的可以自行寻找安装教程,本篇博客主要面向使用VMware Fusion 来安装windows虚拟机的用户。 在

    2024年02月19日
    浏览(83)
  • 【bad CPU type in executable】 MAC M1无法使用 x86_64 架构应用,通过配置自动使用

    今天在使用protoc时发现会出现以下报错, bad CPU type in executable: protoc 首先可以看一下一下文章 https://support.apple.com/en-us/HT211861 https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment 可以通过安装rosetta来自动解析运行x86_64架构应用。 通常可以通过点击应用,

    2024年02月13日
    浏览(59)
  • M1 Mac如何安装CentOS7虚拟机(图文详细解说)

    目录 Linux镜像下载网址: 一、虚拟机安装  1、下载相应的文件   2、打开VMware Fusion pro进行安装 3、 输入许可证密钥​编辑 4、 将CentOS-7拖入“从光盘或映像中安装”中 5、点击继续​编辑 6、选择其他--其他64位ARM--继续   7、进行自定设置​编辑  8、这里更改名为“Centos7”

    2024年02月14日
    浏览(60)
  • Parallels Desktop 19 mac 虚拟机软件 兼容M1 M2

    Parallels Desktop 19 for Mac 是一款适用于 macOS 的虚拟机软件。无需重启即可在 Mac 上运行 Windows、Linux 等系统,具有速度快、操作简单且功能强大的优点。包括 30 余种实用工具,可简化 Mac 和 Windows 上的日常任务。 软件下载:Parallels Desktop 19 mac 虚拟机软件 兼容M1 M2 新!从链接克隆

    2024年01月24日
    浏览(65)
  • mac pro M1(ARM)安装:ubuntu桌面版虚拟机(五)

    之前写了在mac m1中安装ubuntu虚拟机,但因为一直有同学问ubuntu桌面版如何安装,尽管个人不太推荐linux系统安装桌面版,但是应大家的需求,还是单独出一期ubuntu桌面版安装教程。以供参考 ubuntu桌面版的安装有两种方式,一种是直接下载桌面版镜像,然后安装桌面版,一种是

    2024年02月02日
    浏览(57)
  • M1 Mac如何安装CentOS7虚拟机(附安装包下载链接)

    目录 Linux镜像下载网址: 一、虚拟机安装  1、下载相应的文件   2、打开VMware Fusion pro进行安装 3、 输入许可证密钥​编辑 4、 将CentOS-7拖入“从光盘或映像中安装”中 5、点击继续​编辑 6、选择其他--其他64位ARM--继续   7、进行自定设置​编辑  8、这里更改名为“Centos7”

    2024年02月08日
    浏览(201)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包