Reducing OS Boot Times for In-Car Computer Applications, Part II

Part II breaks down the boot process into nine steps and analyzes the time cost involved in each.

In our last article, we discussed the motivation for wanting boot time reduction. As discussed, we are trying to create as "instantly on" an experience as we can for in-car computers. We're taking a holistic approach to the problem by looking at every place that the system delays during bootup and trying to list all our options for reducing the times in that area.

Car Stereo Boot Times

You may have noticed over the last several years that the delay has increased between when you start a car and when you hear the radio. When head units were simply analog FM and cassette adapters, music would start blaring out, at the current volume, the instant the car was started. These old stereo units had analog potentiometers for the volume control, analog tuners to get the FM signal and analog tapes that instantly started producing sound. Nowadays, a CD player/FM tuner is a mini-computer. The volume can be set to a non-blaring volume automatically between startups. The buttons and knobs now used rarely are potentiometers; they merely send plus/minus information to the tuner controls. To play a CD now requires spinning up the CD, and the firmware on these devices has to boot up, going through some sort of POST (power-on self-test). Sometimes the newest devices actually have to talk to the car's computer, adding additional delay.

There are other reasons for the increasing delay. When aftermarket amplifiers are installed in a car, you often have a staged system where the head unit turns on and sends 12 volts back to an amplifier, which then turns on, at which point you get sound. The amplifier has to charge up its capacitors and level out its power in order to produce high volume. Thus, you now have a cascading delay effect where the car turns on, then the head unit (radio) boots up, then it tells the amp to power on and then the amp boots up--thus, it takes several seconds before you hear anything. If the amp is wired to start up at the same time as the head unit, you may experience a loud pop as the amplifier pumps out transient voltages from the not-yet-powered head unit. They even sell devices that add several seconds of delay to a 12-volt line to solve these popping problems.

So while the BMW 7-series navigation unit is engineered to show a video splash within milliseconds, the norm for audio devices is to produce output after several seconds. Thus, it is reasonable to give this same leeway to an aftermarket in-car computer. However, fully booting an in-car PC can take almost a minute. The question is, how does one reduce that time?

In-Car PC Boot Time Overview

Booting many homebrew in-car PCs can take, literally, a minute. A lot of the delay results from the operating system booting or waking up from hibernation, but it's worth looking at the entire sequence to establish a baseline for the hardware we're using. For the purposes of our analysis, booting up a computer in a car consists of the following steps:

Car power stabilization: The 13.8V power line, which dips down to as low as 6V or gets cut off during engine cranking, must stabilize over 12V. This takes fractions of a second but it does take time. (Cost: ~ tens of milliseconds)

Power supply/regulator stabilization: The circuitry that powers the engine, be it a 120V inverter or a DC-DC power supply, and the associated power regulation circuitry that delivers clean 12V/5V to the computer must stabilize. Inverters can take several seconds to deliver 120V, while DC-DC boards are pretty quick. (Cost: ~ hundreds of milliseconds to seconds)

Power sequencer hits ATX-on button: This step can add time. Many motherboards now have a wake on power loss feature (technically a wake after power loss) that makes them instantly start up when power becomes available. However, many power sequencer/shutdown controllers, which make sure computers turn on and off with the car, tend to add delays to start-up. They usually give the power supply 2-3 seconds to fully stabilize its voltage at 12V; if this doesn't occur, the motherboard can hang on boot. (Cost: up to 3 seconds)

POST: The power-on self-test is the first part of the bios code. This can be reduced greatly but not eliminated by disabling memory checks, startup flash screens, floppy seeks and the like. Without getting a custom BIOS, however, this still takes time. In practice, it can be reduced on some motherboards to less than a second. (Cost: ~ 1 second)

BIOS: These are the rest of the BIOS functions that occur after the possibly necessary self-test. They include a variety of auto-configuration of plug-and-play settings, auto-detection of hard drives, power management and the dreaded DMI pool message that lingers on the screen for many seconds. This is the bulk of the pre-OS boot time. (Cost: ~ 1-10 seconds)

Bootstrap: This doesn't take long at all, but this step can vary based on the boot device. Because it could be hard drive or Flash, at the minimum you have the access time and transfer speed of the device, so it can take several tens to hundreds of milliseconds. If this is a two-staged process, as can be the case with boot loaders (that redirect from the beginning of the disk to some offset on the disk, if I understand correctly) that can add a bit more time. Although the latency of the disk or solid-state memory can change this bootstrap timing, the more important impact of changing the disk is in the boot times discussed below. (Cost: ~hundreds of milliseconds for bootstrap; tens of seconds to minutes for actual OS load)

Run boot loader: This step of the process is the first time we get to run code we may have written. In the Linux case, this would be GRUB or LILO. (Cost: less than a second)

Operating System and Drivers: This step is the long (potentially upwards of a minute) leg of our journey to a user prompt. The baseline we used when benchmarking this particular step is the venerable DOS, which boots in about the same time as the Linux boot loader. The worst case would be a full install of some operating system, un-tuned, with tons of unnecessary drivers, which could take another minute to boot. (Cost: Un-optimized, over 60 seconds. Somewhat optimized, as low as 15 seconds. Goal, less than five seconds).

Show user prompt: The OS eventually must finish booting and show the prompt, whether that is a GUI screen, a text prompt or a voice prompt for audio commands. At this point the system must be fully functional and able to accept any commands.

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Re: Reducing OS Boot Times for In-Car Computer Applications, Par

Anonymous's picture

How about with Hybrid vehicles. They have over 120 High Quality rechargable batteries, more than enough to restart the car instantly. They already are full of computers for other things, like controling the power supply itself. (In banks of 20).
In near future all cars will have more than enough power to boot up the sloppiest pc hardware and keep it running long after engine is shut off.

Re: Reducing OS Boot Times for In-Car Computer Applications, Par

Anonymous's picture

how about running the in-car computer on batteries?
When you shut down the computer, the OS would be put in standby mode. For extended period like 12 hours, just swap the memory on the hard drive (hibernate) then shut off totally (like you can set a battery drain threshold in linux and then use apm...). Then once the car startsup, you can recover almost immediately. The battery would be charged when the car is on.
The idea is the OS is always running and the power usage is minimum when no display and devices are powered and the cpu stepped to its lowest frequency.
My 2 cents.

Franck Rougier
promo at ptronsys dot com

Re: Reducing OS Boot Times for In-Car Computer Applications, Par

Anonymous's picture

Hi, sorry for my english!
- If you boot when You open the door (maybe with the remote too)?? You can gain some second.
My car turn the dome light and the main cockpit on, when I open the door.
- If You disjoin the main battery during engine cranking with an auxiliary power supply??
Like an auxiliary battery or something more complex like this:
a) A first switching unit that rise the voltage from 12 to something very high (120V? 1200V or more?).
b) A big high voltage capacitor (high voltage=high mAh).
c) A second switching unit for fall back to 12V (etc..)
This could supply the power for some second??
I don't really known if this works, but...

andrea.diodato@farma3.it

Re: Reducing OS Boot Times for In-Car Computer Applications, Par

Anonymous's picture

I was thinking of using the flashing of the tail lights to power up the computer. Most cars today have a remote to unlock the doors. The flashing lights would be more than enough to kick off the boot. IF you do it from the other side of the parking lot your system would be ready as soon as you sat down.

Re: Reducing OS Boot Times for In-Car Computer Applications, Par

Anonymous's picture

Andrea,

You're totally correct. Some of the power supplies raise the power so that it doesn't fall low enough during cranking. The real solution is a laptop battery circuit for the car computer itself, which I'm considering. These batteries only last a couple of years so I'm trying to avoid that.

Also, the door-opening idea is fantastic.

-damien

I've been thinking about usin

Levi Hall's picture

I've been thinking about using a UPS to handle the cranking spike

Re: Reducing OS Boot Times for In-Car Computer Applications, Par

Anonymous's picture

Batteries

Most batteries only last a few years, even the traditional lead acid car battery.

So you could put in to the car, adjacent to the standard battery an inexpensive battery (maybe also lead acid), say of the type used for push bike lights.

Grab a battery with an expected life equivilant to / a little longer than the car's main battery, and replacing it would form part of the normal car maintanence.

It however should only be required during the cranking of the car engine, so it would not require lots of capacity.

Alternatively, you could increase the second batteries capacity, using it for to increase the pc's duration for the downloading emails etc.

Also, to assist with battery durations.
You have a computer, a battery, fuel, and a generator (engine).

If your battery time is running low, start the engine, and use it to re-charge your battery.

Of course, you'd have to have faith in your engine's ability to start unattended, and keep an eye on the fuel levels.

Why not use a UPS to power th

Anonymous's picture

Why not use a UPS to power the PC? The ups can be charged by either a DC/AC inverter or (if it is 12V) by the car's main battery. Just use some high curent diodes so the car will charge the UPS and not the UPS charge the car. The UPS will turn the PC off if it's battery loses power and the car's batery will never be touched.

Re: Reducing OS Boot Times for In-Car Computer Applications, Par

Anonymous's picture

You could fit a deep-cycle battery, such as is used for caravan/RV power, and a split-charging relay. This would power the PC for about an hour without touching the "main" battery.

This is pretty much the setup that emergency service vehicles use for RT, warning lights and other electrical accessories.

Gordonjcp.

powering an in car pc diuring cranking

Kurt Catania's picture

Hi guys, i managed to keep my pc started diuring cranking by using a battery isolator(actually two diodes of 150Amps each) and two batteries, one in front 55Ah and one at the back of 100Ah, i start from the front (55ah) leaving the one at the back (100ah) untouched for the pc to boot from. thus i can leave my rear battery drain out with the pc (~200w) and the sound at full volume (~400w rms) and start the engine w/o problems from the fully charged front battery.
this should solve your problem of power. btw if you have an alarm you can use its central locking output to togle the atx button for on or off

Re: Reducing OS Boot Times for In-Car Computer Applications, Par

Anonymous's picture

Do you guys know how to install a car radio in a pc?

Chinese mini-PCs run Linux, target specialty apps

Anonymous's picture

A systems integrator in GuangDong province, China, is shipping an extensive line of Pentium-based miniPCs that run Linux. The SD-Omega MiniPC line comprises 44 variations, include passively cooled and quiet models targeting car PCs and HTPCs (home-theater PCs), car pcs, and DVR models.

More details from Linuxdevices.com, http://www.linuxdevices.com/news/NS3892602873.html

Additional details are available at the SD-Omega mini pc website,http://www.sd-omega.com

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState