我有相当扎实的 Linux 经验,但在嵌入式/小型系统领域却很少,这让我感到困惑。
我同意帮助一位朋友使用一个很小的 x86 兼容 SBC 来处理一个项目。它应该是一个用于监控应用程序的数据记录器和显示器,使用一组传感器和 USB ADC。它需要非常快速的启动,因此我们正在尝试各种启动优化、禁用服务等。
他需要的最终结果是一台可以快速启动到运行级别 2 的机器(没有网络,仅控制台,跳过所有服务,但数据记录和显示所需的服务),或者通过 SSH 等和网络服务启动到运行级别 3包括 DHCP,以允许远程访问和脚本通过 SCP 将记录的数据复制到另一台主机。
不幸的是,由于这最终将成为一个嵌入式系统,我需要想出某种使用模拟硬件输入的方法 - 开关或按钮或其他东西 - 告诉引导加载程序/内核引导到运行级别 2 或 3。
有人听说过这个吗?除了修补 GRUB 或内核本身以轮询某种 IO(我猜是串行、并行或某种 GPIO)之外,还有什么建议/想法吗?
谢谢,杰森
答案1
我不知道确切的答案,但我猜这不太可能和/或很难做到。
所以我的建议是,为什么不总是启动到运行级别 2 并编写一个程序来检查串行端口(或任何你使用的端口)的切换条件,每 10 秒左右,这将使其更改为运行级别 3。这样,你就可以快速启动并能够更改运行级别而不需要太多的混乱。