350 likes | 613 Views
Implications of Migrating from WES2009 to WES7 in Embedded Applications. Kushal Koolwal Operating Systems R&D Engineer, VersaLogic Corp. kushalk@versalogic.com. Introduction to WES7 Methodology Differences Example: Adding ISA-based Serial Ports Implications Conclusion. Agenda. 2.
E N D
Implications of Migrating from WES2009 to WES7in Embedded Applications Kushal Koolwal Operating Systems R&D Engineer, VersaLogic Corp. kushalk@versalogic.com
Introduction to WES7 Methodology Differences Example: Adding ISA-based Serial Ports Implications Conclusion Agenda 2
Introduction to WES7 • What is WES7? • Latest in Windows Embedded Family • Based on Windows 7 / Vista technologies • Predecessors of WES7 • WES2009 • XP Embedded • Both based on Windows XP technologies 3
Methodology • Target Platform • Intel Montevina-based embedded board • Intel® Core™2 Duo (64-bit) • I/O: USB 2.0, PS/2, PCIe, PCI, Mini PCIe, ISA, etc. • Configuring and Building Images • WES2009 • WES7 • What are the differences between the two? • Derived Implications 4
1.0 Installation Requirements 2.0 File System Support 3.0 HAL Independence 4.0 ACPI Support 5.0 Toolkit Driver Support 6.0 Image Building Model FBA vs. Configuration Passes Differences 5
7.0 Image Deployment Sysprep Image Other Deployment Methods 8.0Log Files 9.0Localization 10.0Image Management WIM, ImageX and DISM 11.0Application Development Dependency Analysis Differences(continued) 6
Differences3.0 HAL Independence WES7 • No HALs. Just one HAL - Requires APIC and ACPI v2.0+ • Common Image for different architectures • P4 – Single Core • Core™2 • Intel Atom • Separate image for 32-bit and 64-bit architectures • No support for non-ACPI HALs àUpgrade hardware WES2009 • Supports ACPI and non-ACPI HALs • ACPI Uni/Multi-processor PC • Advanced Configuration and Power Interface (ACPI) PC • MPS Uni/Multi-processor PC • Standard PC 9
Pop Quiz Question: Based on what we just learned about ACPI and APIC support, let’s say for example, why does a x86-based embedded board that does have ACPI and APIC, but still does not support WES7 (though it does support WES2009/XPe)? Answer: ACPI < 2.0 11
Differences5.0 Toolkit: Driver Support • eCore Package (built-in) • Boot critical and bus enumerator drivers • 100 drivers • Must have OS to boot • In-Box Drivers (built-in) • Out-of-Box Drivers (3rd party) • Imported drivers from .cab files • INF-based drivers (.inf, .sys, .dll) 13
Differences5.0 Toolkit:Driver Support (continued) • $OEM$ Folders (3rd party) • MSI-based drivers • Use “/quiet” option 14
WES2009 WES7
Pop Quiz Question: Do you see any major problems with WES7’s image building process as compared to WES2009/XPe? Answer: Online Build Method - Target boards with low resources (CPU, RAM) will take a very long time to build and deploy image. 17
Differences6.0 Image Building Model: FBA vs. Configuration Passes 18
Differences7.0 Image Deployment WES2009 • Build Image using Target Designer • Make target storage device (hard drive, CompactFlash, etc.) bootable • Attach the storage device on development computer • Copy build directory (C:\Windows Embedded Images) to root of storage device • Attach to target system and boot • FBA runs 19
Differences7.0Image Deployment (continued) WES7 • Create Answer File using ICE • In ICE do Tools àCreate Media à Create IBW Image from Answer File • Option 1: Make a bootable USB Flash Drive (UFD) • Use diskpart.exe. No longer need udfprep.exe. NTLDR vs. BOOTMGR • Copy the contents from Step 2 on the NTFS formatted UFD • Option 2: Make a bootable CD-ROM • Using contents from Step 2, oscdimg.exe create an ISO file • Burn the ISO on a CD/DVD-ROM • Boot from prepared UFD or CD-ROM on target device with storage media attached 20
Pop Quiz Question: What if your target device does not have a USB port or DVD-ROM drive? How do you install WES7? Answer: Use network share! 21
Differences7.0Image Deployment: Sysprep Image * Do not forget to delete the sysprep directory after final deployment 22
Pop Quiz Question: What if your target device does not have any kind of display port i.e. it is a headless system? How do you install WES7? • Answer (maybe*): • AutoUnattend.xml • Offline building • * Lacks headless VGA driver 23
Differences7.0Image Deployment: Other Deployment Methods * Running OS directly for CD/DVD 24
Differences8.0 Log Files • WES2009 Log files • C:\Windows\setupapi • C:\Windows\FBA\FBALOG.txt • WES7 Log files 25
Differences10.0Image Management: WIM, ImageX and DISM • WIM Format • “Hardware-agnostic” file-based format • Can store multiple images in one single WIM file • Only stores the differences between multiple images • Refer to a particular image by indexing • ImageX • Capture WES7 image in WIM format • Imagex /capture C: Z:\WESImages\myimage.wim “Drive C” /verify • Supports WIM format • Imagex /mount Z:\WESImages\myimage.wim 1 C:\WESMountPoint • Deploy from WIM format • Imagex /apply Z:\WESImages\myimage.wim 1 C:\ ; bcdboot C:\windows /s C: • DISM • Primarily a powerful CLI servicing tool • Install/un-install drivers, packages, languages in offline and online mode • Enable/Disable Windows settings
Differences11.0 Application Development • Requirements to include in WES7 image • Same as Windows 7 • Tools like Visual Studio 2008, etc. • Static Dependencies (linked at compile time) • Dynamic Dependencies (Runtime DLLs called) • WES2009 • Chronic problem since XP Embedded days • 3rd party tools - Process Monitor and Dependency Walker • Manually map the required binaries to the components in Target Designer • Time consuming and frustrating process • Lot of noise and unneeded binaries are found during analysis
Differences11.0Application Development: Dependency Analysis • WES7 • Built-in tool – SDA (Static Dependency Analyzer) • .exe, .dll, .cab files • Dynamic Dependency • Process Monitor àPackage Mapper àAnswer File àBuild Image • Automatically mapping of binaries to feature sets. Almost no noise. • Compatible Application Template Website – Microsoft Initiative • Ready-to-use templates like Adobe Flash, Silverlight, Windows Live, etc. • In ICE: File Import àImport Template • Add template to your Answer File. • Community driven - Contribute your own templates
ExampleAdding ISA-based Serial Ports • Windows does not detect automatically • Even if set in BIOS • Download Active Registry Monitor • How about? devcon /r install C:\windows\inf\msports.inf *PNP0500 • Diff registry changes between non-COM port installed system and COM port installed system – AddCOM3.reg • Pay attention to forced IRQ and base Addr. setting • Download psexec.exe from sysinternal tools package • Used to execute/install registry • Create batch file – AddSerial.bat • psexec /accepteula –s reg import C:\AddCOM3.reg • Add RunSynchronousCommand in Answer File • AddSerial.bat 31
Implications • Upgrade to Windows 7 for development station and upgrade target hardware • Watch out for FAT32 support in your target application • Start maintaining a single image for multiple systems • Devices without ACPI are no longer supported • eCore package - critical to booting • Image building always happens on the target device • Image deployed using UFD and CD-ROMs. No need to move target media. 32
Implications(continued) • Various detailed log files at different locations depending on the phase • Streamlined localization process • Add drivers, feature sets, etc. offline and online using DISM, ImageX and WIM • Improved dependency checking – SDA, Package Mapper and template website • Ease of adding drivers and other files to your image using ICE 33
Conclusion • High degree of customization and flexibility • Best of both worlds: Windows 7 + Embedded OS • Reduces time to market – OEMs focus on core competency • Lacks some features – Custom components, headless device support, easy offline building, etc. • Learning curve, but lots of benefits 34
Thank You 35