diskless XPE by a PXE boot - HowTo?

R

Rudolf Thilo

Hi,

with the Windows XP Embedded trial kit we already arranged a very thin
XPE version.

Now we would like to make that one to boot by PXE into a RAM disk of a
diskless workstation.

- is that possible?
- How does it work?


We got that far that we can PXE boot (a NTLDR NTDECT.COM BOOT.INI
floppy presenting the OS select screen)


I believe we will need a totally different BOOT OS that then finally
requests from the DHCP option 60 specified TFTP server the XPE disk
image to load it into RAM disk??


Thanks for any suggestions or links to further documentation.


Regards, Rudi.

--
wanted config of the workstation this XPE is disignated to run, we do
have a vendor offering such a PC in industrial grade quality:

2 Gig RAM, 400 MHz CPU (it's sufficent and doesn't need a fan)
No local drives at all (HDD,CD,Floppy)
intel pro 100 or other PXE compliant NIC
power supply without fan as well


By that we would have a platform for our special Win32 control software
to run on a hardware without *any* parts spinning and where no parts
are moving no bearings can fail...

very attractive prospect ;-))
 
G

Greg Chu The Small

if you check into the XPE doc, it says very clearly how to set it up.
I use that all the time. You just install xpe remote boot server, then
create a sdi file for your image, and it will boot from the romote boot
server, your image need to have ramdisk component.

or you can search on this site about ramdisk.

Greg
 
K

KM

Rudolf,

I don't know any another links for XPe Remote Boot feature except these:
http://msdn.microsoft.com/library/en-us/remboot/html/xpconRemoteBootOverview.asp
http://groups.google.com/groups?hl=...a=group=microsoft.public.windowsxp.embedded.*

I am not sure I understand what you meant by "totally different BOOT OS".
Also, "floppy presenting the OS select screen" is a bit confusing (do you use a DOS PXE client on a floppy disk?)

If you give us here more info on what issues you are experiencing, we may be able to help you.
 
J

Jack Furr

Rudolf,

I just spent the last 2 days working on this. The first thing I had to
figure out (and I figured it out the hard way) is the 'ORDER' in which
LAN boot works. The diskless station will make a request for a "Boot
Program" before it makes the request for the much larger .SDI image.
I kept getting an error that the program wouldn't fit into memory. I
was trying to load the complete image (100MB).

I also had a problem where the BIOS on my device was not PXE
compatible. Instead it was some version of Novel LAN Boot. I had to
get Advantech to send me a PXE version of BIOS.

Basic Steps:
* Create a final .SDI image with Target Designer
* Copy it to a secondary hard drive that will be connected to device
* Move the secondary hard drive to the device and boot from it
* Install any final software and make changes to Windows (i.e.
display...)
* Place hard drive into another computer as a secondary hard drive
again.
* Followed steps 1 and 2 (ONLY) from
http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpesp1/html/ram_sdi.asp
* Placed the resulting .SDI image on boot server (machine running
Remote Boot)
* In Remote Boot, set the "Boot Program" as startrom.n12 (no f12 key
needed to boot by LAN)
* set the IP of the Boot Server (In my case it's the same as the
machines ip)
* Set the image file as the .SDI file listed above
* Boot device.

NOTE:
I'm using a Netopia router as the DHCP device and a Windows 2000
desktop as the tftp/Remote Boot server. This allows me to use my
desktop Windows 2000 machine instead of a Windows 2000 Server.

NOTE:
startrom.com will present the user on the XPe device with an option to
press F12 to boot by LAN. That's why I suggest you use startrom.n12
(i.e. no F12 needed?).

I also found it helpful to install a Windows version of Ethereal on
the Boot Server to view the tcp request for diagnosing purposes only.

- Jack -
 
K

KM

How-to looks great!
Just a couple of small corrections...
Basic Steps:
* Create a final .SDI image with Target Designer

No need to create an SDI file here. Just xcopy the build to the secondary hard drive you mentioned and run it through FBA on target
device. Then capture the image with the steps you outlined below.
* Copy it to a secondary hard drive that will be connected to device
* Move the secondary hard drive to the device and boot from it
* Install any final software and make changes to Windows (i.e.
display...)
* Place hard drive into another computer as a secondary hard drive
again.
* Followed steps 1 and 2 (ONLY) from
http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpesp1/html/ram_sdi.asp
* Placed the resulting .SDI image on boot server (machine running
Remote Boot)
* In Remote Boot, set the "Boot Program" as startrom.n12 (no f12 key
needed to boot by LAN)
* set the IP of the Boot Server (In my case it's the same as the
machines ip)
* Set the image file as the .SDI file listed above
* Boot device.

NOTE:
I'm using a Netopia router as the DHCP device and a Windows 2000
desktop as the tftp/Remote Boot server. This allows me to use my
desktop Windows 2000 machine instead of a Windows 2000 Server.

Make sure to set "Use DHCP Port (67)" option in RBM if RBS and DHCP reside on separate machines.
NOTE:
startrom.com will present the user on the XPe device with an option to
press F12 to boot by LAN. That's why I suggest you use startrom.n12
(i.e. no F12 needed?).

I also found it helpful to install a Windows version of Ethereal on
the Boot Server to view the tcp request for diagnosing purposes only.

- Jack -

KM
 
J

Jack Furr

Rudolf,

I just spent the last 2 days working on this. The first thing I had to
figure out (and I figured it out the hard way) is the 'ORDER' in which
LAN boot works. The diskless station will make a request for a "Boot
Program" before it makes the request for the much larger .SDI image.
I kept getting an error that the program wouldn't fit into memory. I
was trying to load the complete image (100MB).

I also had a problem where the BIOS on my device was not PXE
compatible. Instead it was some version of Novel LAN Boot. I had to
get Advantech to send me a PXE version of BIOS.

Basic Steps:
* Create a final .SDI image with Target Designer
* Copy it to a secondary hard drive that will be connected to device
* Move the secondary hard drive to the device and boot from it
* Install any final software and make changes to Windows (i.e.
display...)
* Place hard drive into another computer as a secondary hard drive
again.
* Followed steps 1 and 2 (ONLY) from
http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpesp1/html/ram_sdi.asp
* Placed the resulting .SDI image on boot server (machine running
Remote Boot)
* In Remote Boot, set the "Boot Program" as startrom.n12 (no f12 key
needed to boot by LAN)
* set the IP of the Boot Server (In my case it's the same as the
machines ip)
* Set the image file as the .SDI file listed above
* Boot device.

NOTE:
I'm using a Netopia router as the DHCP device and a Windows 2000
desktop as the tftp/Remote Boot server. This allows me to use my
desktop Windows 2000 machine instead of a Windows 2000 Server.

NOTE:
startrom.com will present the user on the XPe device with an option to
press F12 to boot by LAN. That's why I suggest you use startrom.n12
(i.e. no F12 needed?).

I also found it helpful to install a Windows version of Ethereal on
the Boot Server to view the tcp request for diagnosing purposes only.

- Jack -
 
D

Dave Roberts

Has anyone had diskless XPe booting from a linux PC?

I can get it workng OK using Microsoft DHCP on a Win2K server & Remote
Boot Manager on XP Pro. But when I try using dhcpd & atftpd from a
linux PC I get as far as receiving an IP address, starting TFTP
download & then I get the message "TFTP download failed" on the target
PC.

Any help is gratefully received.

Thanks in advance.

Dave.
 
K

KM

Dave,

I haven't tried to use tftp and dhcp from a linux machine.
Although I recall one guys here (John F. Davis) was struggling for similar
and posting some dhcp scripts. You may wan to search archive.

Also, use Netmon or Ethereal tool to watch on the network traffic and see
what exactly is getting downloaded through TFTP on the client.

KM
 
R

Rudolf Thilo

Thanks for all the replies to all of you!

Well, I did NOT work it out jet:

I can use http://perso.wanadoo.fr/philippe.jounin/tftpd32.html
to bring down _some_ *.pxe with the 3com imgedit. If I create this one
from a XP formatted floppy with boot.ini ntldr ntdetect.com, I *do* get
the boot menu for the OS listed in the boot.ini file.

I fail with this, and at least I cannot find in the documentation how
to solve that issue:

Well, I fail desperately to create a PXE boot image, I think this is
required for such an image:

1 - smaller than 500kB (PXE takes 100-something, 640kB base memory)

2 - that one needs to start the STARTROM.COM to have a RAM disk

3 - then it needs to request the MYWINXPE.SDI file upto 500 Meg's
onto the RAM disk and undpack this one into the XPE I arranged

4 - then this mini-OS needs to call the XPE on that RAMDISK


#1 would be no problem, *IF* I would know how to create a floppy boot
disk that can do step #2, and then contact the same machine the DHCPD
is running on to 3# request a certain SDI file, unpack to the RAM disk
and #4 start the XPE this RAMDISK will hold after step 3.

Any further help very appreciated.

And thanks for the reply postings!



Rudi.
 
K

KM

Rudolf,

I failed to see you points below.
Are you trying to create a custom Remote Boot scenario?

If not, then why do you care about StartRom?
All you will need to do is to have a PXE compatible client running on your target device (NIC ROM, BIOS, floppy client like MBA,
etc.). At boot time the PXE code does the DHCP discover, IP handshake with a dhcp server and gets necessary dhcp options (tftp boot
server name, image file name, etc.) from a PXE server (RBS in this case). RBS sends down to the target device a boot program
(startrom.com, reboot.com or etc.). The boot program leveraging PXE SDK API and session parameters downloads SDI file and jumps to
appropriate blob (PART) execution.
 
D

Dave Roberts

Thanks for that KM.

I think the problem might be that the target can't find NTLDR.
I wonder if the path to NTLDR is included in startrom.com?

I've put NTLDR in /tftpboot, also made a copy of the original MS path
off /tftpboot but it still doesn't work.

Maybe it just can't be done.

Ah well...I'll find something else to play with while I'm supposed to
be working!

Does anyone know of a driver for a Semtech UR7HCTS2 touchscreen
controller that will work with XFree86 4.4.0?


Cheers.
 
K

KM

Dave,
I think the problem might be that the target can't find NTLDR.
I wonder if the path to NTLDR is included in startrom.com?

I guess startrom only knows "ntldr" file name. It downloads the loader from TFTP server. On the server there should be ntldr under
"\Program Files\Windows Embedded\Remote Boot Service\Downloads\" directory (or whatever is specified in the
[HKLM_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TFTPD\Parameters]"Directory" reg value).
I am talking about MS TFTP, of course.
I've put NTLDR in /tftpboot, also made a copy of the original MS path
off /tftpboot but it still doesn't work.

Yup, that is the right step.
Maybe it just can't be done.

TFTP code (unsecure) should be independent from the PXE server (RBS). I still think it is doable what you want to accomplish.
Again, try Netmon or Ethereal to see the traffic (if you are on an isonet that should show you pretty clear picture of what's gooing
on).
Ah well...I'll find something else to play with while I'm supposed to be working!
Does anyone know of a driver for a Semtech UR7HCTS2 touchscreen controller that will work with XFree86 4.4.0?

Check out www.xpefiles.com for componentized touchscreen drivers that are not in the XPe Repository.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top