Every system has its own set of requirements to meet at boot time.
The platform is shipped with many boot-time optimizations already implemented, but it is
designed so that you can optimize system startup so that it best meets your goals.
By implementing some simple techniques at various points in the boot sequence, you can
make the OS and applications load, initialize, and launch more quickly
or in a specific sequence.
In the QNX CAR platform, the boot sequence has been optimized using several
different techniques. These optimizations focus on the following goals:
- Early splash screen and camera
- The system loads the image filesystem (IFS) and begins executing the build
script as soon as possible. The build script then launches the Screen Graphics
Subsystem and the graphical app as early as possible.
To accomplish these tasks, we have optimized the initial program loader (IPL) to
reduce the IFS size and have reordered the sequence in which services are launched in the
boot script.
- Early audio
- This optimization uses the same techniques as early splash screen and camera,
except that audio is started as early as possible in the boot sequence.
- Early HMI display
-
To display the HMI as early as possible, the system uses the same techniques
as the first two optimizations while reducing the HMI's dependencies to
what is strictly necessary.
This work has led to the development of the Boot Manager, a service
that manages HMI dependencies and instructs the
System Launch and Monitor (SLM)
service to launch processes based on the state of the system and the HMI
requirements. The Boot Manager allows the HMI to come up before all the apps
are instantiated.
- Early playing of last audio
-
This optimization is based on a new multimedia service
(mm-player)
that saves its state at shutdown and restores it at power-up.
To meet the goal of quickly resuming audio playback
at the same track and position when the system was shut down,
the mm-player service and its dependencies are carefully
placed in the SLM configuration file so that they are run at the earliest
point possible.
For more information on optimization techniques and on the system's boot sequence,
see the Boot Optimization Guide.