Windows XP Embedded General Chat (June 12, 2007)
Chat Topic: Windows XP Embedded General Chat
Date: Tuesday, June 12, 2007
Please note: Portions of this transcript have been edited for clarity
Shayna [MS] (Moderator):
Welcome to today’s live chat with the Embedded Windows team at Microsoft. Today we’re happy to discuss any questions or comments you may have regarding Windows XP Embedded products. Thank you for joining us.
Shayna [MS] (Moderator):
Just a reminder that to post a question for our experts please remember to check the 'Ask the Experts' checkbox. We are pleased to welcome our Experts for today’s chat. I will have them introduce themselves now.
Introductions
Briand [MS] (Expert):
I'm a Program Manager for our Technology Adoption Programs for WEPOS and Windows Embedded.
KedarB[MS] (Expert):
Hi, I am Kedar Borhade an SDET with Windows Embedded Team
jimmedd_MSFT (Expert):
Hi, I'm Jim Medding. I'm a SW development engineer with the Windows Embedded test team.
Shayna [MS] (Moderator):
Hello, I'm Shayna Begun. I'm a Program Manager running our customer and partner pre-release programs.
Oren_MSFT (Expert):
Hi, I'm Oren Winter and I'm a software development manager with the Embedded Windows team.
milong [MS] (Expert):
Hi, I'm Milong Sabandith, a developer on the Windows Embedded Team.
cuong { MSFT } (Expert):
Hello, I'm Cuong Pham and I'm a Program Manager on the Windows Embedded team.
Nick [MS] (Expert):
Hi - I'm Nick - a software developer in the Windows Embedded test team.
wanghong yuan[msft] (Expert):
HI, I am wanghong yuan, a software dev in Windows embedded
Steffen [MS] (Expert):
Hi, I'm Steffen Schreier and I'm a PM on the Embedded Windows team
Luca [MS] (Expert):
Hi, I’m Luca Amapane and I am a PM in the Windows Embedded team.
Gina Bentley [MS] (Expert):
Hi I'm Gina Bentley, the Program Manager for Servicing and Support for Embedded Windows and our Vertical Industry products.
Weijuan Shi [MS] (Moderator):
Hi, I'am Weijuan Shi, Program Manager of the Customer Strike Team in the EW team.
Thomasy_MSFT (Expert):
Hi, this is Thomas Yong, a program manager in XPe team
Wonhee [MS] (Expert):
Hi, I am Wonhee Lee, a developer in XPe team
Start of Chat
Shayna [MS] (Moderator):
Let’s begin the chat!
Oren_MSFT (Expert):
Q: Is there a other tool then SDI2HD to extract a SDI file? I don'T really like the idea to work in MS-DOS to do this operation.
A: Unfortunately there isn't. We will definitely take that into account in our next releases.
Oren_MSFT (Expert):
Q: XPe use a restart method of sending 0xFE to the keyboard controller. Why can't it also set the bit in I/O port 0x92? Some embedded systems do not support keyboards.
A: Hi there. What exactly is the scenario? Are you trying to listen to a reboot event? If so - this should be identical to doing it on Windows XP.
Oren_MSFT (Expert):
Q: My target device is truly headless... no video port, no keyboard port. It can only be accesses by Remote Desktop. When I try to do a restart, the OS shuts down but does not restart. From what I can tell this is because my device does not support keyboard.
A: Have you tried hooking up a keyboard and then it worked? How do you perform the restart?
SeanL (MVP): is this an XPe image that you built or someone built for you? Is it possible to add XPEPM.EXE?
hintergp: I built the image. How will XPEPM.EXE help? Does it use a different method to restart?
SeanL (MVP): "XPEPM - restart or -reboot" - It is in the Power Management Application component.
hintergp: Ok, XPEPM.EXE is a restart tool. I already have "shutdown -r -t 0" which causes XPe to use the keyboard to restart. Will XPEPM work differently?
SeanL (MVP): I don't know the code behind XPEPM, but it is very quick to respond to the commands compared to a normal shutdown and restart.
Oren_MSFT (Expert):
Q: I can not hook up a keyboard. My truly headless device does not even have a keyboard port.
A: First - what make/model your motherboard is? Second - How do you invoke the reboot?
Oren_MSFT (Expert):
Q: The motherboard is a custom SBC based on the 440BX chipset. I can ONLY access the system by logging in with Remote Desktop. I start a command window and run "shutdown -r -t 0".
A: Nick has some experience with these. Nick?
Nick [MS] (Expert):
Q: The motherboard is a custom SBC based on the 440BX chipset. I can ONLY access the system by logging in with Remote Desktop. I start a command window and run "shutdown -r -t 0".
A: Here's a question for your question as well as some thoughts on the topic.
Question: What HAL is in your configuration? Standard PC?
Question: You say this is a Custom SBC. Did you actually make this or did a company make this? (which I could look up some online documentation)
Thought: Some older motherboards use to not be able to be addressed by the Windows Kernel while the OS is trying to shutdown or reboot. There is an uncommon screen which can be seen sometimes during shutdown/reboot which would state (roughly - this isn't a quote) "Computer now safe to shut off". If this is happening to you then that would explain why the device just hangs.
Thought: If you can get Console Redirection output (VIA the COM port - assuming you have one) then you might be able to get a visualization of what's going on that way.
Thought: Instead of using "shutdown -r -t 0" you could try "shutdown -s -t 0" (which would attempt to shutdown the machine) or you could also try adding the "-f" argument on either of those items
Nick [MS] (Expert):
Q: I select the ACPI component, not the Standard PC component. Shutdown -s works fine - unit powers off. The SBC is manufactured by my company - no online schematics. I have kernel debug output from the serial port. Have not gotten console redirect to work
A: Are you sure that the ACPI component is appropriate for that device? Is there any possible way to boot XP Professional on the device so that you can remote into it, open up the Device Manager (devmgmt.msc), and validate the kernel that it's using? I also ask in this manner because if you *COULD* get XP Pro to boot on the device then you could also get a PMQ (Hardware Information file created by TAP.EXE) for the device - which you could then import into Target Designer. (and you would then have the "correct" devices in your image)
Just for further information - there is also the "Advanced Configuration Power Interface (ACPI) PC" HAL component as well. It's similar to the "ACPI Uniprocessor PC" HAL - but not the same.
Thomasy_MSFT (Expert):
Q: The Windows Media Player 11 component brings in many other components that I don't otherwise need (Internet Connection Wizard, MDAC, etc) -- If my application only needs to play WMF through Direct Show is there a smaller footprint component that will work?
A: Unfortunately due to other integrated services such as URGE, ICW and MDAC are pulled in. However, WMP11 does have separate components such as Windows Media Format Runtime 11 itself that you can use to write your own player app on (i.e. replacing the Windows Media Player 11 component itself), that way you can access to Direct Show.
alexgim_MSFT (Expert):
Q: The Windows Media Player 11 component brings in many other components that I don't otherwise need (Internet Connection Wizard, MDAC, etc) -- If my application only needs to play WMF through Direct Show is there a smaller footprint component that will work?
A: WMP11 indeed has heavier footprint than the previous release, mostly because of Error Reporting, which is unconditionally brought in by the WMF Runtime. If you find a way to stub that component out (an approach that we can not unfortunately support), that will save you about 10MB. It was the lowest hanging fruit after our investigation.
Thomasy_MSFT (Expert):
Q: Thank you, but the "Windows Media Format Runtime 11" seems to have nearly the same footprint as WMP and seems to bring in those extra components (specifically ICW and MDAC)
A: If your application does not really need integrated services and/or internet connection, you should be able to disable those dependencies manually. At this point due to the original WMP11 architecture we cannot easily separate such functions
Thomasy_MSFT (Expert):
Q: Now that Feature Pack 2008 is completed, can you give us any insight into what the XPe team is focusing on?
A: We are working on initial planning of an embedded OS based on Windows Vista and maybe further enhancement to XPe, but no firm plan or commitment yet
cuong { MSFT } (Expert):
Q: Are there any plans to cut a single-disk release of XPe with SP2, FP2007, and the Rollup package, rather than having a series of disks and installs that must be done to recover a database?
A: Hi Desi, we're considering just that, cutting a single-disk release, for a future release.
Thomasy_MSFT (Expert):
Q: Re "disable those dependencies manually" -- Can you give a brief explanation of how to do that? Selecting "disable" simply re-adds them the next time I need to do a "check dependencies"
A: You will have to disable 'auto' dependency check under the option so that it won't be brought in automatically. I'd suggest disabling 'auto' option at the last step after you have auto check dependencies for other components and right before the build
Thomasy_MSFT (Expert):
Q: Re: "auto dependency check" -- Thanks, that helps. If I don't have that turned on, how can I bring in a new component with *its* dependencies but not auto-rescan the components that are already included (thus avoiding re-adding manually disabled ones)
A: Unfortunately to automatically bring in dependencies you need to turn on 'auto' option. That's why I suggested to turn this off at the last step after you have satisfied all other dependecies
Thomasy_MSFT (Expert):
Q: Is there any tool (graphical or command line) that given an SLX file will show the network of interdependencies of the included components?
A: We do not have specific tools that will do that. However, you can use XPECMD tool (released with FP2007 last Nov) to look up forward and reverse dependencies of a particular component. The commands in XPECMD are DEPTREE (for forward) and DEPTRACE (for reverse)
alexgim_MSFT (Expert):
Q: Is there any tool (graphical or command line) that given an SLX file will show the network of interdependencies of the included components?
A: There is no publicly released tool, but there has been steady interest in such a tool, and we have a prototype that may evolve into a released product.
SeanL (MVP): There is a WSH script that comes with XPe and a 3rd party tool called Component Hunter http://www.sjjmicro.com/XPES_Tools_R2.html. It captures the whole database, and you can see dependencies and who is dependent on a component. It also allows you to trace through the relationships, but you have some manual tracking to do here.
alexgim_MSFT (Expert):
Q: I have a question for the audience: who among you have tried their hand at programming the [unpublished, unsupported] CMI API? That's the same API that xpecmd.wsf works against.
SeanL (MVP): alexgim, good question to ask in the XPe newsgroup.
Thomasy_MSFT (Expert):
Q: Now that we have released Update Rollup 1.0 which includes IE7, WMP11, RDP 6.0, .NET 3.0, and UMDF, as well as enhancement to FBWF and USB BOOT, have you used these new features and any feedback?
jimmedd_MSFT (Expert):
Q: Given the size and structure of the repository directory and database, are there any "best practices" for keeping those under revision control?
A: Unfortunately, there's not much to say in terms of using a Configuration Control tool. I would suggest that you use an off-the-shelf backup tool and make sure you keep both the database files and repositories "tied together" in the same backup. The other thing I would suggest is to keep the pre-deployed XPe images on the same backup.
Weijuan Shi [MS] (Moderator):
Q: Have you checked XPe Wiki Site: http://channel9.msdn.com/wiki/default.aspx/Channel9.WindowsXPEmbedded we recently announced? How do you like it?
Weijuan Shi [MS] (Moderator):
Q: I think a Wiki is a great idea. Hopefully it will serve as a good reference, example posting area, and FAQ set.
A: Thanks GStark. That's exactly what we like to see happen. We hope everyone in the community can contribute this and that, now and then.
Weijuan Shi [MS] (Moderator):
Q: The URL that you posted is not quite correct. The correct URL is: http://channel9.msdn.com/wiki/default.aspx/Channel9.WindowsXPEmbedded
A: Really? The one I posted seemed working fine for me.
Weijuan Shi [MS] (Moderator):
Q: For the Wiki, are we able to subscribe to it or we only can log in the global channel9 web site?
A: Sorry, I actually don't know if one can subscribe. I always log in if I need to edit. I'll look into it.
Thomasy_MSFT (Expert):
Q: Is WPF in XPe yet?
A: WPF is part of .NET Framework 3.0, which is released as a Setup Component in Update Rollup 1.0 for XPe recently
Weijuan Shi [MS] (Moderator):
Q: I am curious, how much of your time is spent on writing code, how much is building the image with our tools?
Bruno_l: Shi, mostly building image. Other people here code the app.
Desi: 90% coding, 10% image here.
cuong { MSFT } (Expert):
Q: It seems like changing the restart method in XP/XPe to also use the I/O port address would be a really easy and small and safe change. Any chance of getting that in vNext?
A: Hi hintergp, that's awesome feedback! We'll certainly take your suggestion into consideration.
alexgim_MSFT (Expert):
Q: Slightly different topic: I have a watchdog timer that requires me to "Tickle" the INT15 0C3h periodically. How would you start writing this code? Anyone know of a general purpose Windows Driver that might work?
A: This sounds like something someone has already done before. You should look online for a bit. You may have to write a device driver to intercept the system's realtime clock and run the code that "tickles". If you don't need the timer to be very precise, you may be able to do it in user mode, using SetTimer/WM_TIMER - but then you have the issue of issuing a software interrupt from user-mode - back in the DOS days, that was done with the in86 function - look that up and you'll find whether there's an NT way to do int86.
Thomasy_MSFT (Expert):
Q: Slightly different topic: I have a watchdog timer that requires me to "Tickle" the INT15 0C3h periodically. How would you start writing this code? Anyone know of a general purpose Windows Driver that might work?
A: There is no gp Win Driver for this. You may use win32 api to get timer event based on an interval
GStark: Desi you might want to check out: http://www.codeproject.com/useritems/kport.asp. I'm not sure if this helps. I know it works for writing to the WDT in a Winbond Super I/O chipset. What kind of WDT are you using?
Desi: That might be it. The Super I/O chipset. It's an Ampro Littleboard 700
Shayna [MS] (Moderator):
Thank you for joining us today for our chat with the Windows XP Embedded team.
A special thank you to the product group members for hosting today. If you have further questions, we’d certainly welcome you to post in the XP Embedded forum: http://forums.microsoft.com/EmbeddedWindows/default.aspx?SiteID=47 or the 'microsoft.public.windowsxp.embedded' newsgroup.
We hope to see you again for a future chat!
Top of page