# 内核裁剪与嵌入式 Gentoo

URL: https://caijiao.org/gentoo/embedded
Source: docs/gentoo/embedded.md
Description: 本章介绍 Gentoo 系统在嵌入式环境下的内核裁剪与优化方法，包括定制内核选项和减少系统开销。

在掌握交叉编译与多架构支持后，下一步是 **学习 Gentoo 内核裁剪与嵌入式系统优化**，构建轻量、高效的嵌入式环境。

## 一、嵌入式 Gentoo 概述

- 针对资源有限的硬件（如树莓派、ARM 开发板）  
- 系统最小化，减少不必要服务和库  
- 支持定制内核与模块，优化启动速度和内存占用

## 二、内核裁剪策略

1. **选择轻量内核选项**  

- 仅编译必要驱动（文件系统、网络、USB）  
- 将可选模块编译为模块，而非内置

2. **禁用不必要特性**  

- 调试信息、性能计数器、未使用的硬件支持  
- 减少内核体积，加快启动

3. **使用菜单配置**：

```bash
cd /usr/src/linux
make menuconfig
````

- 保存裁剪后的 `.config` 供不同嵌入式平台使用

## 三、系统最小化

1. 精简基础系统：

- 仅安装核心软件包（如 `sys-apps/coreutils`、`sys-libs/glibc`）
- 避免安装图形环境和不必要服务

2. 使用自定义 Stage3 镜像构建：

```bash
emerge --root=/mnt/embedded-root @world
```

- 为嵌入式目标创建独立系统根目录

## 四、优化启动与性能

1. **禁用开机服务**：

```bash
rc-update del <service> default
```

2. **优化 I/O 调度器和内存管理**：

```bash
echo noop > /sys/block/sda/queue/scheduler
sysctl vm.swappiness=10
```

3. **使用轻量文件系统**：

- EXT4、F2FS 或 SquashFS
- 减少磁盘占用和启动时间

## 五、建议操作

- 先在虚拟机或开发板测试裁剪内核
- 保留原始配置备份，以便回退
- 针对目标硬件裁剪内核和系统，避免冗余
