在使用fnos(0.9.21)的过程中发现系统开机时间较长,开始认为是系统在初始化加载一些系统核心服务的进程,后来感觉时间过长,正常来说系统安装在ssd固态,不应该出现这么长的加载时间(大约2~3分钟),把机器外接显示器查看开机启动过程,在启动中出现一些faid的调用失败

,其中有部分apci表固件层与linux内核交互的接口问题导致Linux内核解析失败,这些失败大部分家用主板、嵌入式板卡都会有这个问题,一般不会影响系统核心功能,并且家用及工控主板遇到的acpi warning在linux下极常见。。但failed加载失败时会 影响系统正常的加载进度,系统会等待尝试不断请求连接,确认服务失败后才会强制执行后续加载,这无疑增加了不必要的等待时间。
针对出现的failed失败通过命令输出:systemctl status trim_miniscreen.service,显示如下错误

脚本 /usr/trim/bin/start_miniscreen.sh 执行失败,应该是因为系统没有相应的硬件(小屏设备)systemd检测到重复失败后停止了自动重试。
同样的trim_wayland服务如果加载失败也会影响系统正常的启动时间,这两个服务都是飞牛系统为触摸屏、小屏 یا定制面板准备的系统服务。如果你的硬件本身没有这些设备,这些服务会启动失败(服务会启动等待某些硬件,不存在则失败),这种失败一般不会有实际影响,但systemd等待它们会拖慢启动速度。
所以可以禁用这些服务的启动加载
sudo systemctl disable trim_wayland.service
sudo systemctl disable trim_miniscreen.service
另外关于服务:networkmanager-wait-online这个服务的作用是“阻塞系统后续服务加载,直到网络真正连上”,以确保之后依赖网络的服务能正常运行,这个不是系统必须要加载的服务。可以禁用,如果发现系统有使用异常可以重新开启。
安全起见可以尝试命令来检查是否有重要服务依赖它
systemctl show network-online.target -p Requires
看输出结果,如果输出结果中只有一些不关键的服务,或者输出为空/只有一些基础系统目标,那么禁用它就是安全的。比如:

说明没有任何核心系统服务明确声明必须在网络完全在线(network-online.target
)之后才能启动
或通过systemctl list-dependencies --reverse network-online.target查看一下哪些服务想在它之后运行。比如:

里面有些系统级的服务像nfs这些,但依赖于 network-online.target和 没有网络就完全无法工作是两回事,这些依赖网络的服务可能会在日志中留下几条第一次启动失败的记录,但一旦网络在几秒后自动就绪,它们的功能会立刻恢复正常,几乎不会感知到任何异常。文件共享、网络访问等功能都不会受到影响。所以也可以放心禁用掉,确实感到网络或实际使用中有 影响可以尝试enable恢复服务。
sudo systemctl disable NetworkManager-wait-online.service
通过以上禁用个别服务换来的是快速的系统开机过程,减少了漫长的等待过程。目前开机速度明显提升(大约1分钟内就能完成正常加载)
鉴于手动关闭系统服务在后期更新固件后可能这些服务的默认初始状态会恢复的到enable,可以手工编写一个禁用服务的脚本,在更新服务后手动执行一下脚本即可。
# 创建一个检查脚本
sudo nano /root/check_services_after_upgrade.sh
# 脚本内容:
#!/bin/bash
echo "检查并重新禁用不需要的服务..."
# 要禁用的服务列表
SERVICES=(
"trim_miniscreen.service"
"trim_wayland.service"
"NetworkManager-wait-online.service"
)
for service in "${SERVICES[@]}"; do
if systemctl is-enabled "$service" >/dev/null 2>&1; then
echo "发现 $service 已重新启用,正在禁用..."
systemctl disable "$service"
echo "已禁用 $service"
else
echo "$service 状态正常(已禁用或不存在)"
fi
done
echo "检查完成!"
# 给脚本执行权限
sudo chmod +x /root/check_services_after_upgrade.sh