Linux 系统中怎么为嵌入式精简系统裁剪无用的开机启动项

夜婷大大_3456

夜婷大大_3456

2026-10-07

120人浏览

原创

嵌入式linux开机启动优化需从u-boot→内核参数→init进程→用户空间服务逐层精简:u-boot禁用倒计时与日志、裁剪设备扫描;内核启用quiet/loglevel=1、禁用调试;用户空间直启应用或用busybox init;根文件系统同步清理冗余二进制与配置。

linux 系统中怎么为嵌入式精简系统裁剪无用的开机启动项

嵌入式 Linux 系统中精简开机启动项,核心不是“禁用几个服务”,而是从启动链路源头开始逐层收缩:U-Boot → 内核参数 → init 进程 → 用户空间服务。每一环的冗余都会拖慢启动、增加内存占用,甚至引入安全隐患。

U-Boot 层:砍掉等待与打印干扰

很多启动延迟其实发生在系统还没进内核之前。U-Boot 默认的倒计时、串口日志、设备扫描,加起来轻松吃掉 200–500ms:

  • 设 CONFIG_BOOTDELAY=0,彻底取消按键等待;
  • 启用 CONFIG_SILENT_CONSOLE=y,屏蔽所有控制台输出(省下至少 200ms);
  • 删掉不必要的设备枚举:如禁用 USB、未连接的 SPI 子设备、ECC 校验等(需确认硬件无依赖);
  • 启动命令中去掉 rootwait,改用 rootdelay=1 或直接指定稳定设备节点(如 /dev/mmcblk0p2)。

内核启动参数:静默 + 精准加载

内核启动阶段大量 printk 输出不仅慢,还可能阻塞串口缓冲或干扰自动测试。关键参数要精简明确:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 加上 quiet 和 loglevel=1,大幅减少控制台刷屏;
  • 去掉 rdinit 或 init 以外的冗余 init 参数,避免多层初始化跳转;
  • 若使用 initramfs,确保它只含驱动模块和最小根文件系统,不带 shell、调试工具、syslog 等;
  • 禁用内核调试功能(如 CONFIG_DEBUG_KERNEL=n、CONFIG_PRINTK=n),生产环境无需运行时调试信息。

用户空间:绕过通用 init,直奔主程序

传统 systemd 或 sysvinit 会加载数十个服务、解析上百个配置文件,对嵌入式完全不必要。推荐两种轻量路径:

  • 用 BusyBox init + 自定义 inittab:只保留 ::sysinit:/etc/init.d/rcS 和 ::respawn:/bin/sh(或直接替换为你的主程序);
  • 内核直接启动应用:在 menuconfig 中设 CONFIG_INIT_ENV_ARG_LIMIT=0,然后通过 init=/usr/bin/myapp 启动,跳过所有 init 脚本;
  • 若必须用 systemd,禁用全部默认 target(multi-user.target 等),仅启用 minimal.target 并手动 enable 必需服务(如网络、看门狗);
  • 删除 /etc/systemd/system/*.wants 目录下所有软链接,防止隐式依赖拉起无关服务。

根文件系统:同步清理服务文件与二进制

光禁用服务不够,残留的二进制、配置、unit 文件仍占 Flash、影响启动解析速度:

  • 用 rsync --exclude 构建 rootfs,精准过滤 /usr/bin/strace、/usr/sbin/bluetoothd、/etc/systemd/system/*debug* 等;
  • 删掉所有未被 inittab 或 systemd unit 显式引用的可执行文件(特别是 shell 工具如 vi、bash,换成 ash 或直接不用);
  • 清空 /etc/init.d/ 下非必需脚本,保留仅有的 rcS 和设备初始化逻辑;
  • 检查 /lib/systemd/system/multi-user.target.wants/,只留网络、时间同步等真正需要的服务链接。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3890

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3333

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2473

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5990

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5622

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3313

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2805

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3019

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习