android – 在“重新启动系统命令”之后,引导程序如何接收命令?

前端之家收集整理的这篇文章主要介绍了android – 在“重新启动系统命令”之后,引导程序如何接收命令?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
看着 android source for the reboot command我们发现如下:
__reboot(LINUX_REBOOT_MAGIC1,LINUX_REBOOT_MAGIC2,\
         LINUX_REBOOT_CMD_RESTART2,argv[optind]);

哪个是标准的Linux系统调用以使用特定命令重新启动系统,请参阅Unix System Call Reboot.

在Android中,此命令用于告知引导程序以恢复模式启动内核,或者在引导加载程序中进入快速引导模式.

我的问题是:引导程序如何接收命令?这个功能是否在U-Boot中实现? (我无法通过Google或U-Boot源找到它.)

此外,它似乎不是Android特有的,而是Linux执行“使用命令重新启动”的方式.有关在Linux中如何“正常”处理/使用的任何信息?

解决方法

当使用LINUX_REBOOT_CMD_RESTART2重新启动系统时,提供的命令字符串将传递给注册到register_reboot_notifer()的所有通知程序,最后传递给machine_restart() – 实际执行系统重新启动的体系结构特定功能.

大多数架构完全忽略了传递的命令 – 对于没有的命令,请参见SPARC. SPARC implementation of machine_restart()将提供的字符串传递给PROM的引导命令.

ARM implementation of machine_restart()最终将提供的命令传递给在每个ARM平台上单独实现的arch_reset() – 从我可以看到,至少在上游内核中,大多数(不是全部)这些实现忽略了传递的命令.这可能不是您要找的机器人.

猜你在找的Android相关文章