AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 470210
Accepted
perror
perror
Asked: 2018-09-21 00:08:36 +0800 CST2018-09-21 00:08:36 +0800 CST 2018-09-21 00:08:36 +0800 CST

使用 QEMU 构建和运行 ARM 系统映像?

  • 772

我正在尝试为基于 Debian 的 ARM(或什至)设置一个可以与 QEMU 一起运行的完整armhf系统armel映像aarch64。不幸的是,我在网上找到的所有示例都是通过传递内核来启动映像的(initrd如果它需要一些模块,则可能是)。

但是,我真的很想启动系统qemu-system-amd64,只需提供磁盘映像和 CD-ROM 映像(开始安装)。

-machine我可以理解and没有默认值-cpu,但我在网上找不到任何关于如何执行以下操作的线索:

#> wget \
   http://cdimage.debian.org/.../armhf/iso-cd/debian-testing-armhf-netinst.iso
...
#> qemu-img create -f qcow2 debian-armhf.qcow 20G
...
#> qemu-system-arm -machine vexpress-a9 -cpu cortex-a9     \
                   -hda debian-armhf.qcow                  \
                   -cdrom debian-testing-amd64-netinst.iso \
                   -boot d
...
#> qemu-system-arm -machine vexpress-a9 -cpu cortex-a9     \
                   -hda debian-armhf.qcow                  \
                   -net nic -net user,hostfwd=tcp::2222-:22
...

所以,我真的很想知道这样的事情是否可能......如果是的话,怎么办?如果没有,为什么?

debian virtual-machine
  • 1 1 个回答
  • 11831 Views

1 个回答

  • Voted
  1. Best Answer
    Brian Redbeard
    2018-09-26T17:01:03+08:002018-09-26T17:01:03+08:00

    这是一个很好的问题,我不久前选择深入研究自己,只是对我来说它使用的是 MIPS/MIP64。

    有几个问题使这项工作具有挑战性。

    启动 Linux 主机时,内核需要了解它正在使用的硬件。对于某些架构(如 amd64),固件的发现由 BIOS 通过“高级配置和电源接口”(ACPI)处理。在其他情况下,这由可扩展固件接口 ( EFI ) 甚至 ATAGS 作为非常古老的解决方案来处理。在大多数现代嵌入式系统中,ATAGS 的使用已被一种称为“设备树 blob”( DTB ) 的机制所取代。一系列乐于助人的用户在解释差异方面做得比我做得更好。

    所有这些的目的是帮助向内核提示硬件配置,并且通常与引导加载程序协同工作。在您的情况下,在 ARM 小端 ( armel)、ARM 硬浮点 ( armhf) 和 ARM 64 位 ( aarch64) 之间进行选择是一个关键的第一个决定,因为它会对编译包、内核等的选择产生影响,因为一切都需要符合模拟的“指令集架构”(ISA)。

    我知道您想要空白磁盘和 CD 映像的简单性,但这最终就是为什么没有这种形式的“安装程序”用于像 Raspberry Pi* 这样的系统。当您下载 Raspbian 映像时,它包括一组结构化的分区,其中包括引导加载程序 (das uBoot)、相应硬件的设备树 blob,以及配置了包存储库的一组基本包。

    这涉及到另一个有趣的琐事......你有没有看过 ISO 映像在你“安装”Linux 时做了什么?

    让我以基于 Anaconda 的安装程序(Fedora、RHEL、CentOS 等)为例。

    当您开始安装时,它会启动一个最小的实时系统,该系统会自动开始运行 python 实用程序Anaconda。Anaconda 然后提示用户回答一系列问题,以特定领域的语言填充配置文件,然后创建一个 chroot 并在该 chroot 内执行一组软件包安装。

    这......在某种程度上,它就像使用那个 Raspbian 图像。

    那么这是什么意思?

    好吧,首先我会推荐一些答案,具体取决于您要如何进行?

    如果模拟 RPi 就足够了,我建议: Using QEMU to emulate a Raspberry Pi

    如果您想模拟更像是基于“云”的系统,George Hawkins 维护了一个Gist 并提供了一些很好的说明。

    如果您真的想从头开始,Debian 用户 Aurel32 多年来一直维护着一组可以启动的基础镜像,并且在他们的博客上写了一篇关于类似过程的精彩文章。

    • 7

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve