Linux 操作系统启动时会有一个启动顺序。如何找到这个启动顺序?
具体来说:我有一台 AR.Drone,配备 1 GHz A8 CPU、1 GB RAM 和 Linux 操作系统。我想调整一些东西,但首先我必须弄清楚启动顺序。无人机配置由 *.sh 脚本完成,我有 telnet 访问权限。所以我可以改变很多东西。
您能帮我找到启动顺序吗?哪个脚本首先执行?
(没有 rc.local)
答案1
我正在等待我的第一架无人机到来——我刚刚赢了一架:)所以恐怕这不是我的个人知识。
然而,以下内容来自一个博客我发现:
AR Drone 的启动顺序
为了能够将自定义内核刷入 AR Drone,必须了解它的启动顺序:
- 复位后,程序计数器从 P6 内部 ROM 的开头开始。在此内部 ROM 中,存在某种预引导加载程序,用于评估外部引脚并选择相应的引导模式(例如通过 USB、NAND、IIC、UART 等引导)。根据所选模式,设置外围设备并尝试通过此外围设备引导。
- 通过 NAND 启动:预引导加载程序启动内存控制器,将引导加载程序从 NAND 复制到内部 RAM,并将程序计数器设置为内部 RAM 中的地址,这基本上启动了引导加载程序。
通过 USB 启动:预引导加载程序监听 USB 并等待“Hello P6”命令。如果收到,它会回复并等待映像(usb_bootloader.bin)。接收到的数据被复制到内部 RAM,程序计数器更改为内部 RAM 地址,从而启动引导加载程序。
根据启动的引导加载程序,要么“安装”UBI 分区并读取内核映像,要么引导加载程序等待直到内核映像通过 USB 发送。
- 如果 installer.plf(基本上是一个内核映像)通过 USB 启动,则该映像的“init”命令将通过 USB 等待实际固件(ardrone_update.plf)并将内容安装到 NAND。
答案2
启动需要一个内核和一个启动盘(或者 ROM/RAM/Flash 中的映像),这些可以通过引导加载程序提供,例如grub
接下来发生的事情取决于如何设置一切。
描述了“标准 Linux”的启动方式这里。
我认为你在这里提问可能会更成功:
https://devzone.parrot.com/
---
“本网站专门面向 Parrot ASTEROID 系列应用程序开发人员。
由于 Parrot ASTEROID 设备采用 Android 系统,本开发者专区指出了 Android 和 ASTEROID 平台之间的异同。
如需阅读开发和分发指南(教程和代码示例)、获取帮助以及讨论 ASTEROID 项目,请注册、登录并阅读 wiki 页面或使用论坛”