Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proofread sources/syzkaller/linux/setup_linux-host_qemu-vm_arm-kernel.md #160

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions sources/syzkaller/linux/setup_linux-host_qemu-vm_arm-kernel.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,31 @@
---
status: translated
status: proofread
title: "Setup: Debian host, QEMU vm, arm kernel"
author: Syzkaller Community
collector: jxlpzqc
collected_date: 20240314
translator: apowerfulmei
translated_date: 20240317
proofreader: QGrain
proofread_date: 20240814
link: https://github.com/google/syzkaller/blob/master/docs/linux/setup_linux-host_qemu-vm_arm-kernel.md
---

# 设置: Debian主机,QEMU虚拟机,arm内核

# GCC

获取最新的 `arm-linux-gnueabihf-gcc`工具。最新的Debian发行版中提供的版本为 7.2.0 ,这对于本文的工作来说已经足够。你也可以点击[这里](https://www.linaro.org/downloads)来下载Linaro编译器。
获取最新的 `arm-linux-gnueabihf-gcc` 工具。最新的 Debian 发行版中提供的版本为 7.2.0,这对于本文的工作来说已经足够。你也可以点击[这里](https://www.linaro.org/downloads)来下载Linaro编译器。

# 内核

以下指导内容已在 `v4.16.1` 上进行测试。请首先检查补丁["arm: port KCOV to arm"](https://groups.google.com/d/msg/syzkaller/zLThPHplyIc/9ncfpRvVCAAJ)是否已经应用或回溯过随后使用如下命令创建内核配置:
以下指令已在 `v4.16.1` 上进行测试。请首先检查补丁["arm: port KCOV to arm"](https://groups.google.com/d/msg/syzkaller/zLThPHplyIc/9ncfpRvVCAAJ)是否已经应用或回溯过随后使用如下命令创建内核配置:

```shell
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- vexpress_defconfig
```

将顶部的如下配置进行激活
接着优先启用以下配置

```
CONFIG_KCOV=y
Expand All @@ -37,17 +39,17 @@ CONFIG_PID_NS=y
CONFIG_NET_NS=y
```

也可以查看一般的内核配置[建议](/docs/linux/kernel_configs.md)。
也可以查看一些通用的内核配置[建议](/docs/linux/kernel_configs.md)。

随后用以下命令构建内核
随后使用以下命令构建内核

```
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
```

# 映像

我们可以使用 buildroot 来创建磁盘映像。你可以点击[此处](https://buildroot.uclibc.org/download.html)来获取buildroot。以下指导已在 buildroot `c665c7c9cd6646b135cdd9aa7036809f7771ab80` 上进行测试。首先运行:
我们使用 buildroot 来创建磁盘映像。你可以点击[此处](https://buildroot.uclibc.org/download.html)来获取 buildroot。以下指令已在 buildroot `c665c7c9cd6646b135cdd9aa7036809f7771ab80` 上进行测试。首先运行:

```
make qemu_arm_vexpress_defconfig
Expand All @@ -66,7 +68,7 @@ make menuconfig
exact size - 1g
```

将如下选项取消
取消选择如下选项

```
Kernel
Expand Down Expand Up @@ -99,23 +101,23 @@ PermitEmptyPasswords yes
qemu-system-arm -m 512 -smp 2 -net nic -net user,host=10.0.2.10,hostfwd=tcp::10022-:22 -display none -serial stdio -machine vexpress-a15 -dtb /linux/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dtb -sd /buildroot/output/images/rootfs.ext2 -snapshot -kernel /linux/arch/arm/boot/zImage -append "earlyprintk=serial console=ttyAMA0 root=/dev/mmcblk0"
```

此时内核开始启动。等待登录提示信息,随后在另一个控制台中运行:
上述命令将会启动内核。等待登录提示信息,随后在另一个控制台中运行:

```
ssh -p 10022 root@localhost
```

ssh命令应该能够运行成功
ssh 命令应该能够成功登录

# syzkaller

按照[这里](/docs/linux/setup.md#go-and-syzkaller)描述的步骤构建syzkaller,将目标架构设置为 `arm` :
按照[这里](/docs/linux/setup.md#go-and-syzkaller)描述的步骤构建 syzkaller,将目标架构设置为 `arm` :

```
make TARGETOS=linux TARGETARCH=arm
```

可以按照如下内容创建管理器配置文件 `arm.cfg`(根据需要更改路径):
按照如下示例创建管理器配置文件 `arm.cfg`(根据需要更改路径):

```
{
Expand Down