关于qemu的二三事(4)————qemu源码的下载与编译,以及fdt

本文介绍了如何从qemu的GitHub主页或官网下载源码,并详细讲解了编译过程,包括mkdir、configure和make等步骤。同时,文章探讨了编译时遇到的libfdt问题,通过configure脚本的--help参数找到解决方案。此外,文章还解释了Flattened Device Tree(FDT)的作用,它是描述系统硬件配置的数据结构,用于操作系统识别和注册设备。

 

本来这篇文章打算从qemu的源码入手,简要分析一下qemu的执行过程的,但是巧妇难为无米之炊呀,分析qemu源码你得先有源码啊,所以这篇文章就是来解决这个问题的,下一篇文章会通过简要分析一下qemu的源码来理解一下qemu的大致执行流程。


首先来说下,从哪儿下载源码。

我是在qemu的github主页 复制链接,git clone的,你也可以到qemu的官网  去找下载链接,这个可能速度回快点吧,我不太确定。


其次,编译源码。

简单来说,一般的开源软件都会提供README之类的文档告诉你怎么玩的,qemu也不例外。

README里面说的很简单,进入qemu源码目录,然后:

  mkdir build
  cd build
  ../configure
  make
我是这么做的,为了方便自己的debug,创建了一个bin/debug/native/的文件夹,然后:

[root@localhost native]# ../../../configure

ERROR: DTC (libfdt) version >= 1.4.0 not present. Your options:
         (1) Preferred: Install the DTC (libfdt) devel package
         (2) Fetch the DTC submodule, using:
             git submodule update --init d
使用 QEMU 搭建 riscv64 环境可按以下步骤进行: ### 安装 QEMU 在宿主机(如 ubuntu 20.04)上安装 qemu-system-riscv64qemu-system-riscv32,使用命令: ```bash sudo apt install qemu-system-misc ``` 查看环境版本: ```bash $ qemu-system-riscv32 --version $ qemu-system-riscv64 --version ``` 示例输出如下: ```plaintext QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.19) Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers ``` 此步骤参考了引用 [4]。 ### 安装 risc-v 工具链 在宿主机上安装 risc-v 工具链,使用命令: ```bash sudo apt install gcc-9-riscv64-linux-gnu gcc-9-riscv64-linux-gnu-base gcc-riscv64-linux-gnu ``` 查看环境版本: ```bash $ riscv64-linux-gnu-gcc --version ``` 示例输出如下: ```plaintext riscv64-linux-gnu-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ``` 此步骤同样参考了引用 [4]。 ### 准备编译依赖 根据自己机器实际情况进行安装编译所需的依赖包,使用命令: ```bash sudo apt-get install build-essential pkg-config libboost-all-dev autoconf libtool libssl-dev flex bison ninja-build libglib2.0-dev libpixman-1-dev libslirp-dev libncurses5-dev libncursesw5-dev ``` 此步骤参考了引用 [5]。 ### 构建 Linux 系统 RISC-V 基金会维护的入门手册 “RISC-V - Getting Started Guide” 中的 “Running 64- and 32-bit RISC-V Linux on QEMU” 章节,介绍了如何从源码开始自行构建一个包含 32 位和 64 位版本的 Linux 系统,并将其在 QEMU 上运行,可参考此手册进行操作 [^2]。 ### 修改配置文件(可选) 如果有需要,可修改 `include/configs/qemu-riscv.h` 中的默认环境变量,例如修改 `kernel_addr_r` 和 `fdt_addr_r` 为 `"fdt_addr_r=0x82200000"` `"kernel_addr_r=0x80200000"` [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值