> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 先决条件与主机设置

在构建或修改 Qualcomm<sup>®</sup> Linux 内核之前,请先设置好你的主机计算机。
以下要求同时适用于基于 Yocto 的构建工作流程和独立构建工作流程。

## 主机计算机要求

**表:最低主机要求**

| 要求     | 数值                                 |
| ------ | ---------------------------------- |
| 架构     | x86\_64                            |
| CPU    | 四核(3.4 GHz 的 Intel i7-2600 或同等配置)  |
| 内存     | 16 GB                              |
| 可用磁盘空间 | 300 GB(Yocto 构建建议 swap 分区 > 32 GB) |
| 操作系统   | Ubuntu 22.04 LTS                   |

<Note>
  支持在虚拟机上构建,但速度会明显较慢。有关 VM 设置说明,请参阅 [Qualcomm Linux 虚拟机设置指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-80021-41/)。
</Note>

## 所需工具

**表:所需工具版本**

| 工具       | 最低版本    |
| -------- | ------- |
| Git      | 1.8.3.1 |
| Python   | 3.10.2  |
| GCC      | 10.1    |
| GNU Make | 4.0     |
| Kas      | 4.8     |

### 安装主机软件包

运行以下命令安装所需软件包和 `kas` 构建工具:

```bash theme={null}
sudo apt update
sudo apt install build-essential chrpath cpio debianutils diffstat \
    file gawk gcc git iputils-ping libacl1 locales python3 \
    python3-git python3-jinja2 python3-pexpect python3-pip \
    python3-subunit socat texinfo unzip wget xz-utils zstd

sudo apt install pipx
pipx ensurepath
```

重启 shell(或运行 `source ~/.bashrc`)以使 `pipx` 二进制文件位于 PATH 中,然后安装 `kas`:

```bash theme={null}
# kas 4.8 or later is required
pipx install kas
```

也可选择下载 `kas-container` 脚本,以便在任何 Linux 发行版上于 Docker 容器内运行构建:

```bash theme={null}
wget -qO kas-container \
    https://raw.githubusercontent.com/siemens/kas/refs/tags/5.1/kas-container
chmod +x kas-container
```

### 配置区域设置(locale)

```bash theme={null}
sudo locale-gen en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
```

### 配置 git

```bash theme={null}
git config --global user.email <your-email>
git config --global user.name "Your Name"

# Recommended settings to handle large repositories
git config --global http.postBuffer 1048576000
git config --global http.maxRequestBuffer 1048576000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
```

## 独立内核开发的先决条件

独立构建工作流程使用 `kmake-image` Docker 容器提供交叉编译工具链、`systemd ukify` 和镜像打包脚本。
在运行独立构建之前,必须在主机上安装 Docker。

### 安装 Docker CE

```bash theme={null}
sudo apt update
sudo apt install ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
    | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
    | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
```

### 将你的用户添加到 docker 组

```bash theme={null}
sudo usermod -aG docker $USER
newgrp docker
```

### 验证安装

```bash theme={null}
docker run --rm hello-world
```

<Note>
  `kmake-image` 容器构建和 shell 别名设置在
  [不使用 Yocto 构建内核](./build-kernel-standalone)中介绍。
</Note>

## 仓库访问

Qualcomm Linux 内核和 `meta-qcom` 层公开托管在 GitHub 上,无需特殊凭据:

* 内核源码:[https://github.com/qualcomm-linux/kernel](https://github.com/qualcomm-linux/kernel)
* meta-qcom 层:[https://github.com/qualcomm-linux/meta-qcom](https://github.com/qualcomm-linux/meta-qcom)
