WebSetup and MakeImageDisk – Creating the CEPC Boot Floppy for CE 6.0


A few weeks ago I needed to get a new x86 based reference board up and running – the board came with integrated memory, IDE hard drive, and four USB ports (and the hard drive really wasn’t removable without a lot of effort) – thankfully the BIOS supported options to boot from a USB floppy drive (remember floppy discs? [or is it floppy disks?]) – so I could boot from a floppy, partition and format the hard drive, and then “sys” with the operating system of choice (MS-DOS with the loadcepc loader).

In the old days, when dinosaurs still roamed the earth, and floppy discs were all the rage, the Windows CE development tools shipped with a neat utility called WebSetup and some .144 files. The .144 files (LoadCEPC.144 for example) are a compressed image of a bootable floppy disc, the WebSetup utility reads the .144 files and writes the content out to the A:\ drive of your development machine – cool! – within a few of your earth minutes you have a bootable floppy disc that contains MS-DOS, the LoadCEPC bootloader etc…

Yep, this has worked very well for some time, now enter Windows Vista… Unfortunately the WebSetup tool doesn’t work on Windows Vista (and only ships up to CE 5.0) – so how do you go about setting up a new CEPC style device if you are running Windows Vista and CE 6.0 ? (notice the cunning use of the word “style”, it seems like marketing types can get away with calling a product anything they like if they add the work “style” in the product name – to make something sound home made you call it “home style”, see how that works, these marketing types amazingly clever!).

I have two development machines in my office, one running Windows XP (and I still have a copy of CE 5.0 installed over there), so I could use WebSetup from Windows XP – the other machine is running Windows Vista and CE 6.0 – interestingly, a search of the \wince600 or \program files\microsoft platform builder folders doesn’t turn up the WebSetup application – for CE 6.0 an all new utility shipped called MakeImageDisk (so I guess it really is Disk with a ‘k’). The utility can be found here – C:\Program Files\Microsoft Platform Builder\6.00\cepb\utilities – along with a CepcBoot.144 file.

So now we’re back in business, I can create a CEPC boot floppy from the comfort of my Windows Vista desktop, all I need to get this working is a USB floppy drive (check!), and a floppy disk (hmmm…).

Which leads to a question for you.

CEPC “style” devices are basically just PC’s – they run on an x86 processor, have a BIOS etc… – most modern BIOS’s support booting from external USB devices (CD-ROM, USB Stick, USB Floppy), but also support PXE boot – since floppy disks are rapidly going the way of the Dodo I’m thinking we should move to a new method of booting CEPC devices, what would your preference be? – USB stick, PXE, Dodo ?

– Mike

Comments (10)

  1. rc says:

    USB stick should be the new method of booting CEPC.

    –rc

  2. obloch says:

    If you are talking about this dodo I know (http://fr.wikipedia.org/wiki/Dodo_%28bi%C3%A8re%29), then I’d vote for dodo!

    Otherwise, I would say both USB and PXE solutions are to be investigated: USB seems to be the easiest to implement and a really good replacement to the floppy dodo way, and PXE the more cross platform viable (no BIOS on ARM, MIPS, SH).

    -Olivier

  3. Don F. says:

    It’s already possible to boot a CEPC "style" device from a USB disk, using the same method people have been using to boot other OSes: http://www.bootdisk.com/pendrive.htm

    Once you get your system to boot from the USB device, you can use loadcepc, and even put the NK.BIN on the USB drive as well.

    I was forced to use this method on my device, having struck out trying to find a USB floppy drive at my local big box stores!

  4. John B. says:

    USB sticks!

    As a hardware manufacturer, we’ve been doing a lot of board bring up lately on both CE and XPe targets (er, Embedded Compact and Embedded Standard targets).  We frequently need to boot from USB sticks into various OS’s: DOS, CE, XPe, WinPE, to perform different tasks during the development cycle.  Right now we rely on a home-brew mix of various tools to make bootable USB sticks for each OS.  I’d kill for a single utility that that would allow me to format and partition a USB key, make it bootable with the OS of my choice, and then allow me to install an OS image.  XPe comes with some tools (like bootprep), but you have to boot to DOS and run FDISK and FORMAT on the USB drive first, then run bootprep.  

    If you happen to be working with XPe, the images are rather large, so copying the image over to the USB drive takes a number of minutes.  And only after you try and boot it and get the blue screen with the dreaded stop code 0x7B do you realize that you screwed up somewhere in the process, and then have to start all over again.  This is rather painful.

  5. jcoyne says:

    +1 for USB. although PXE is a nice thought… too much infrastructure involved though…

    GO USB! 🙂

  6. felipe gutierrez says:

    I also vote of course for USB support but I’d also like to add compact flash, SD, microSD and other major flash memory based technologies. Why should we bind hardware developers to a certain technology?

    When we say floppies have to go I think we also mean the archaic ways of fdisk and mkdisk should go too. And this isn’t a recent problem we should have done this ever since DOS became emulated, I mean if you’re gonna stop supporting something, then stop depending on it too. Why can’t we have these tools on our desktops ?

    sorry if this sounds like a rant, I was thinking more of a constructive criticism ^_^.

  7. I was facing this issue several months ago when trying booting CE6.0 on ITX like platform.

    I think that USB booting is absolutely required for a CEPC platform.

    To go one step ahead, I would require having a “Memory Flash” booting (such as Compact Flash booting).

    A big part of embedded PC has CF slot. The CF is seen as hard drive on such machine.

    The CEPC image is prepared on a host development PC. It would be quite interesting if we can make all the preparation of the booting  process from this host development PC.

    For example by connecting a classic memory card reader on the host development PC, I would like to be able to format the CF, make it bootable, and loading the CE image on this CF.  This way, you will just have to remove the CF from the CF reader and put it on your embedded PC to be able to boot it.

    Regards,

    Christophe

  8. BitCrazed says:

    USB ***AND*** PXE 🙂

    I would love to see my PC’s and CEPC’s boot into a menu selector that gave me a range of options of which environment to boot into:

    1) WinPE

    2) LoadCEPC

    3) Vista x86 Setup

    4) Vista x64 Setup

    5) MSDOS 6.2

    Please enter your selection: _

    But if, and only if, you’d provide a decent menu & deployment system to enable the above.

    USB is a min-bar scenario these days and MUST be supported. It’s pretty easy to do this by hand right now, but does involve jumping through a few hoops.

  9. Daniel Herrera says:

    I choose USB

    In the last month i pent a lot of time trying to setup a Windows CE device without a floppy disks reader, i even tried making the boot disk on a Virtual PC VHD drive and then copying that to a real Hard disk, but didn’t work. It Worked great on VPC, but i did something wrong in the "copy" process that made the process useless, I ended using FreeDOS plus Loadcepc.

    dahem0n

  10. Ian Laurin says:

    USB then CD

    USB is more trust worthy when thinking about updates and need for rewriting.  Not to mention not all machines have a CD drive and booting from an external one I would only do as a last alternative.

    However, I trust a CD more and boot is more important than any other operation.  For if it does not start it does not matter how good it runs.