MSP Boot Process

From University of Washington - Ubicomp Research Page
Revision as of 22:13, 13 August 2007 by Karl Koscher (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Here's a brief overview of the MSP boot process:

  1. On power-up, blob, the bootloader, does some initial hardware configuration (GPIO port directions, clock speeds, etc.)
  2. After a short timeout, blob copies the kernel from flash into RAM and executes it.
  3. The kernel decompresses itself, and begins to bring itself up.
  4. All drivers built into the kernel are initialized.
  5. The root filesystem is mounted.
  6. The kernel launches /sbin/init.
  7. Init executes the script pointed to by /etc/inittab, which is /etc/init.d/rcS
  8. /etc/init.d/rcS executes every script in /etc/init.d starting with a capital S, in numerical order.
  9. S05core remounts the root filesystem as read/write, sets the hostname, clears out stale temporary files, and loads the modules specified by /etc/modules.
  10. S10networking brings up all of the available network interfaces.
  11. S12sshd starts the SSH server.
  12. S30bluetooth starts the Bluetooth daemons.
  13. S50mountmmc mounts the SD card, if one is inserted
  14. S80msp starts central.loop and proccontrol.loop in the msp directory on the SD card.
  15. central.loop starts /msp/central and restarts it if it should ever fail.
  16. proccontrol.loop starts /msp/proccontrol and restarts it if it should ever fail.
  17. proccontrol reads a list of processes to control from /msp/process.ini and starts them all. This usually includes msb-server, logger, etc.
  18. The logging process starts.
  19. The boot process is complete.