通过硬件(模拟)输入、开关等在启动时设置运行级别?

通过硬件(模拟)输入、开关等在启动时设置运行级别?

我有相当扎实的 Linux 经验,但在嵌入式/小型系统领域却很少,这让我感到困惑。

我同意帮助一位朋友使用一个很小的 ​​x86 兼容 SBC 来处理一个项目。它应该是一个用于监控应用程序的数据记录器和显示器,使用一组传感器和 USB ADC。它需要非常快速的启动,因此我们正在尝试各种启动优化、禁用服务等。

他需要的最终结果是一台可以快速启动到运行级别 2 的机器(没有网络,仅控制台,跳过所有服务,但数据记录和显示所需的服务),或者通过 SSH 等和网络服务启动到运行级别 3包括 DHCP,以允许远程访问和脚本通过 SCP 将记录的数据复制到另一台主机。

不幸的是,由于这最终将成为一个嵌入式系统,我需要想出某种使用模拟硬件输入的方法 - 开关或按钮或其他东西 - 告诉引导加载程序/内核引导到运行级别 2 或 3。

有人听说过这个吗?除了修补 GRUB 或内核本身以轮询某种 IO(我猜是串行、并行或某种 GPIO)之外,还有什么建议/想法吗?

谢谢,杰森

答案1

我不知道确切的答案,但我猜这不太可能和/或很难做到。

所以我的建议是,为什么不总是启动到运行级别 2 并编写一个程序来检查串行端口(或任何你使用的端口)的切换条件,每 10 秒左右,这将使其更改为运行级别 3。这样,你就可以快速启动并能够更改运行级别而不需要太多的混乱。

相关内容