本周综述
- 配置Linux工具环境
- 配置vscode及Clion的gdb环境
- 初步阅读代码
配置Linux工具环境
主要尝试和完成了两件和QEMU没有关系的事情:
- 在Ubuntu中使用TIM
- 加速github仓库拉取速度
在Ubuntu中使用TIM
为了团队的实时沟通,在Ubuntu使用TIM是有必要的。
参考链接: www.lulinux.com/archives/13…
如果Ubuntu系统是英文环境,会出现中文显示不出来的情况,参照此处的Issue,在/opt/deepinwine/tools/run.sh中将WINE_CMD所在行修改为:
WINE_CMD="LC_ALL=zh_CN.UTF-8 deepin-wine"
加速Github仓库拉取速度
参考链接:myriad-dreamin.github.io/qemu-book/#…
但在electron-ssr正常的情况下,访问速度不理想,故又尝试了使用Gitee作为中转的方式。
配置vscode及Clion的gdb环境
了解gdb命令行调试指令
由于之前没有使用gdb调试命令进行调试的经验,此处做初步了解和尝试。
参考链接:blog.csdn.net/liigo/artic…
配置vscode环境
参考链接: myriad-dreamin.github.io/qemu-book/#…
其中,launch.json文件配置如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "QEMU x86_64 Linux",
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x86_64",
"program": "${workspaceRoot}/x86_64-softmmu/qemu-system-x86_64",
"args": [
"-m",
"1024",
// "-enable-kvm",
"-drive",
"if=virtio,file=test.qcow2,cache=none",
"-vnc :1"
],
"stopAtEntry": true,
"cwd": "${workspaceRoot}",
"externalConsole": true
}
]
}
由于vscode调试过程中难以使用sudo权限,故此处暂时不设置-enable-kvm
但是调试运行的过程中发现,由于某种不知名的原因,导致处理-vnc :1指令时由于错误退出gdb,尝试解决无果,经由组员建议改为使用Clion。
配置Clion环境
参考链接:myriad-dreamin.github.io/qemu-book/#…
其中,我自己的参数等配置如下:

需要注意的是,如果需要使用kvm,则需要使用root账户即用sudo命令打开Clion,否则会提示Permission Denied
实测enable kvm之后速度大幅增加。
初步阅读代码
- 代码整体架构参考链接:lists.gnu.org/archive/htm…
- 初览模块参考链接:myriad-dreamin.github.io/qemu-book/#…
组内的同学整理出了开始运行调用的函数及出现的位置,组内分工之后,接下来几周需要关注QEMU中hw/core部分的代码。而/hw/文件夹包含了所有模拟虚拟机中虚拟硬件的代码。
首先在debug模式下观察并分析了main_loop函数其中的函数调用,以了解整体架构,同组同学已经分析,不再赘述。
接下来要从void machine_run_board_init(MachineState *machine)和void soundhw_init(void)这两个函数开始深入分析hw相关部分在main函数中起到的作用。