Windows Embedded & Optimizing Windows for Car PCs<br />MP3Car Meet: August 22, 2009<br />
Overview<br />Intro<br />Windows Embedded<br />Using Windows EmbeddedFeatures on XP/Vista/Win7<br />Tips & Techniques for ...
Intro<br />Silvio Fioritosilvio.fiorito@granturing.comhttp://blog.granturing.com<br />MP3Car forum member since May 2004<b...
Windows Embedded - 	Background<br />Formerly called XP Embedded<br />Released 2001<br />Based on XP but with additional em...
Windows Embedded - 	Architecture<br />Component Database<br />Runs in most SQL 2005+ databases<br />Can be local or remote...
Windows Embedded – 	Developing Images<br />Identify target hardware using theTarget Analyzer Probe (TAP)<br />Best to use ...
Windows Embedded – 	Developing Images<br />If you have an installer tryunpacking and analyzing installsteps<br />Orca - ht...
Windows Embedded –	Custom Components<br />Reusable components with all binaries, settings, and dependencies…just drop into...
Windows Embedded –	Target Designer<br />
Windows Embedded –	Deployment<br />Build output is a base XP OS, just files<br />xcopy build to target device and boot up<...
Windows Embedded – 	Pros & Cons<br />Ultimate control over your image<br />From miniscule OS for specialized devices…<br /...
Windows Embedded -	Alternatives<br />nLite (for XP): modifies XP installation by removing components from install<br />XP ...
Optimizing Windows<br />UI Hacks for an OEM look<br />Boot.ini: /noguiboot<br />Custom boot logo<br />C:Windowsoot.bmp 8-...
Optimizing Windows<br />Enhanced Write Filter (EWF): filters writes to configured volumes<br />In memory or on hidden part...
Flash Devices for CarPCs<br /><ul><li>Why flash?
Small, low power/heat
Shock resistant
No spin up time (instantaneous resume from standby)
Upcoming SlideShare
Loading in …5
×

Windows Embedded & Optimizing Windows For Car PCs By Silvio Fiorito

4,257 views

Published on

Presentation on using Windows Embedded to optimize Windows for the Car PC from the mp3Car 1st annual AFK Fest.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,257
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Windows Embedded & Optimizing Windows For Car PCs By Silvio Fiorito

  1. 1. Windows Embedded & Optimizing Windows for Car PCs<br />MP3Car Meet: August 22, 2009<br />
  2. 2. Overview<br />Intro<br />Windows Embedded<br />Using Windows EmbeddedFeatures on XP/Vista/Win7<br />Tips & Techniques for Testing & Deploying Images<br />Questions<br />
  3. 3. Intro<br />Silvio Fioritosilvio.fiorito@granturing.comhttp://blog.granturing.com<br />MP3Car forum member since May 2004<br />Interests mainly in Windows Embedded, flash/USB booting, OS optimization, & software development<br />Posted EWF, HORM, & MinLogon guides in December 2004<br />Worked with MP3Car on custom Windows Embedded Project<br />Chapter in Car PC Hacks on “Embedding Windows”<br />
  4. 4. Windows Embedded - Background<br />Formerly called XP Embedded<br />Released 2001<br />Based on XP but with additional embedded features<br />Currently based on XP SP3<br />“Componentized” version of XP<br />Over 12,000 components<br />Embedded team worked alongside other Microsoft OS & services teams<br />Includes “macro” components (i.e. Internet Explorer) as well as low level components such as drivers<br />Each component has dependencies, defines registry entries, files, settings, etc.<br />Private portal for customers to get component updates, security patches, etc.<br />Available through embedded distributors, MSDNAA, & MSDN Embedded<br />Not yet part of BizSpark, or for hobbyists….I’ve tried!<br />
  5. 5. Windows Embedded - Architecture<br />Component Database<br />Runs in most SQL 2005+ databases<br />Can be local or remote<br />Component Database Manager<br />Import new components<br />Component Designer<br />Create new components<br />Target Designer<br />Create images<br />Component Repositories<br />File share which holds the actual binaries<br />Local or remote, but alwaysreferenced by share name<br />Target Device<br />Can be a virtual machine, same dev machine,or typically other physical hardware<br />
  6. 6. Windows Embedded – Developing Images<br />Identify target hardware using theTarget Analyzer Probe (TAP)<br />Best to use a WinPE disc<br />Enumerates the base hardwaredevices:<br />CPU<br />Chipset<br />Audio Devices<br />USB, etc.<br />Create a custom component forhardware<br />Have multiple components fordifferent hardware platforms<br />Identify software dependencies<br />What are you planning to run onthe image<br />OS or 3rd-party<br />Beware of 3rd party apps with nodocumentation<br />Think about DLLs, COM objects,WMI, networking<br />
  7. 7. Windows Embedded – Developing Images<br />If you have an installer tryunpacking and analyzing installsteps<br />Orca - http://msdn.microsoft.com/en-us/library/aa370557%28VS.85%29.aspx<br />Windows Installer XML (WiX) -http://sourceforge.net/projects/wix/<br />Find file system changes, registrysettings, etc.<br />Installer is not always enough,what about runtime dependencies<br />Process Monitor - http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx<br />Not always full-proof, it’s an iterative process<br />If all else fails, have setup tool run during device’s first boot process<br />Not “clean”, increases first boot time, potentially more dependencies for install program, leaves temp files<br />
  8. 8. Windows Embedded – Custom Components<br />Reusable components with all binaries, settings, and dependencies…just drop into image<br />Loaded into component database, shared with other developers<br />Can be versioned, auto upgrade images<br />Common steps:<br />Bundle files<br />Define registry settings<br />Define dependencies to other embedded components<br />Create settings to be defined at build time<br />Good way to make easy images<br />Think about any activation or licensing issues for your components<br />
  9. 9. Windows Embedded – Target Designer<br />
  10. 10. Windows Embedded – Deployment<br />Build output is a base XP OS, just files<br />xcopy build to target device and boot up<br />First Boot Agent (FBA)<br />Configures hardware devices, loads drivers, executes custom actions<br />FBReseal: sysprep for Embedded<br />Capture image then redeploy to SAME hardware devices<br />Runs through a minimal FBA again<br />
  11. 11. Windows Embedded – Pros & Cons<br />Ultimate control over your image<br />From miniscule OS for specialized devices…<br />… to full blown XP with embedded enabling features (EWF, HORM, FBWF, etc.)<br />Highly reliable, high-performance OS when done right<br />However….<br />Development time can be much higher<br />Lots of dev and testing time for custom components, especially for 3rd-party<br />$995 for tools, $90/device<br />What’s the future of Windows Embedded?<br />Skipped Vista, next version based on Windows 7<br />Hopefully better dev tools, and easier experiencing customizing images<br />
  12. 12. Windows Embedded - Alternatives<br />nLite (for XP): modifies XP installation by removing components from install<br />XP installation uses commands to set registry settings, place files, etc.<br />Can be almost as effective as Windows Embedded, but takes just as much testing time<br />Need to run through a full install every time you update<br />vLite (for Vista): modifies installation image<br />Important difference between XP and Vista installations<br />Vista uses installer images (think OS image)<br />Much easier deployment, can support multiple architectures<br />Great products for hobbyists, free and large community<br />Not for commercial products, potential licensing issues<br />
  13. 13. Optimizing Windows<br />UI Hacks for an OEM look<br />Boot.ini: /noguiboot<br />Custom boot logo<br />C:Windowsoot.bmp 8-bit 640x480 BMP<br />AND set it as the desktop background!<br />Hide startup and shutdown statusmessages<br />Hide balloon tips<br />Hide desktop icons and taskbar<br />Replace Explorer with custom shell<br />Performance & Reliability<br />Auto restart on BSOD!!!<br />Don’t write full memory dump<br />Disable unnecessary services(i.e. print spooler…)<br />On Vista & Win7:<br />delay load services<br />hybrid sleep<br />Image from Gizmodo http://gizmodo.com/5322825/hey-look-another-blue-screen-of-death<br />
  14. 14. Optimizing Windows<br />Enhanced Write Filter (EWF): filters writes to configured volumes<br />In memory or on hidden partition<br />Necessary for certain flash drives (USB or CF)<br />Useful for flash devices with slow write speeds<br />Easy to setup, need to carefully consider what volumes you protect (i.e. don’t write protect your media drive!)<br />File Based Write Filter (FBWF): filters writes to specific paths<br />Again, useful for certain types of flash devices<br />Alternative to EWF, protect all files except your front end config, or media folders<br />Hibernate Once, Resume Many (HORM): works in concert with EWF, create a static hibernation state<br />Set your image up and hibernate<br />From then on, just turn your CarPC off, when you restart it will resume from hibernation<br />Even if you get a BSOD or total power failure, XP won’t know the difference<br />Hybrid sleep on Vista + Win7<br />MinLogon: bypasses XP logon process and runs OS as local system account<br />Extremely fast boot up process<br />Can introduce compatibility issues<br />
  15. 15. Flash Devices for CarPCs<br /><ul><li>Why flash?
  16. 16. Small, low power/heat
  17. 17. Shock resistant
  18. 18. No spin up time (instantaneous resume from standby)
  19. 19. Typically, very fast boot up times
  20. 20. Compact Flash
  21. 21. At the time, smallest fastest flash devices available
  22. 22. Required “embedded” CF drives which supported fixed-mode to act like regular HDDs
  23. 23. Consumer drives are all removable, no ACPI standby or hibernate
  24. 24. Embedded USB flash devices
  25. 25. M-Systems uDOC (later bought by SanDisk)
  26. 26. Amazingly fast and small, sat on internal USB header
  27. 27. Required motherboard with Hi-Speed USB Booting
  28. 28. Offered custom component for Windows Embedded
  29. 29. Required EWF
  30. 30. Worked on XP….
  31. 31. USB Booting hacks
  32. 32. Spearheaded by Dietmar from 911cd.net forums
  33. 33. Tutorials on http://www.winusb.de
  34. 34. Registry hacks to change boot order of USB drivers
  35. 35. Can be problem when any USB drivers are updated
  36. 36. SSDs are the best bang for the buck
  37. 37. No hacks needed
  38. 38. Great price/performance
  39. 39. No EWF required
  40. 40. Win7 has SSD optimizations built-in</li></li></ul><li>Virtual Hard Drives<br />New to Windows 7<br />File-based hard drive that you can boot from, same as Virtual PC and Hyper-V<br />Requires Windows 7 bootmgrand custom BCD entries<br />To install to a VHD:<br />Insert Win7 install disk, type “Shift-F10” to get command prompt<br />Use DISKPART to create vdisk and attach<br />Then install to new VHD HDD<br />OR<br />Use VHD from your VM (Virtual PC or Hyper-V)<br />Copy to your CarPC<br />Boot with WinPE and manually edit boot entries using bcdedit<br />Small performance impact to HDD access, no hibernation support, otherwise works just as a normal install<br />Think of it: service your CarPC software in a VM, copy VHD to your WinPE USB disk, attach to your CarPC and boot up, copy a single file to the CarPC HDD to update!<br />
  41. 41. Questions<br />Links:<br />http://blog.granturing.com<br />http://blogs.msdn.com/mikehall/<br />http://blogs.msdn.com/embedded/<br />http://www.mp3car.com/vbulletin/operating-system-optimization/<br />http://km-dev.blogspot.com/<br />Hacks:<br />VHD: http://technet.microsoft.com/en-us/library/dd440865%28WS.10%29.aspx<br />Utilities: http://www.mediasignage.com/html/digital_screen1.html<br />Registry docs on TechNet: http://technet.microsoft.com/en-us/library/cc778196%28WS.10%29.aspx<br />
  42. 42. Some Tips for Easy Deploying & Testing<br />Get yourself a WinPE disk!<br />Windows Automated Installation Kit: http://technet.microsoft.com/en-us/library/dd349343%28WS.10%29.aspx<br />USB, CD, or HDD<br />Can be used for all Windows OSes<br />ImageX: file-based disk images<br />Used for Vista & Win7 installs<br />Works for XP as well<br />Capture image, deploy to any other disk<br />Use network share or place on large enough USB WinPE drive<br />Typically used along with Sysprep<br />Use virtualization!!<br />Especially useful for Vista & Win7: no hacks to transfer from hardware architectures<br />Use differencing disks to test out new settings<br />Keep master image and update, test, as needed<br />Put it all together:<br />Build your CarPC image in a VM<br />Install front end, software, drivers, etc.<br />Be careful with chipset drivers though…<br />Test your image<br />Capture with WinPE and ImageX<br />Apply image to physical hardware<br />Validate<br />

×