Windows Fundamentals for Legacy PCs

The information on this page is incomplete and may not be completely accurate. I have since given up on getting dial-up to work, although reports that it can be done abound. However, I have not been able to find a simple procedure to patch an FLP install to get DUN working without a full blown (and undesirable) OS upgrade. Contributions are welcome.

See Wikipedia for more info on what this special edition of Windows XP is and what it’s supposed to be for, as well as its Vista-like installation method.

My interest in FLP is based in its usefulness for:

  1. Creating lean Windows VMs to run under Fusion
  2. Creating thin clients and custom installs for several purposes (including a base environment for my portable toolkit)
  3. The new generation of sub-notebooks with constrained storage space

It is, sadly, useless for real mobile use, since it lacks dial-up support (it only knows enough about modems to do TAPI) and hence any form of 3G connectivity.

Fixing the Cygwin null device

What follows are my notes on getting Cygwin to work properly on FLP, and fixing the infamous missing /dev/null device (without which you cannot get SSH to work, and which Cygwin developers have repeatedly resisted re-implementing in another fashion).

Pretty much all of it was culled from this forum post regarding Windows XP Embedded – I merely cleaned up the text a bit and confirmed it working for FLP, provided you have an Administrator account:

  1. Copy null.sys from another machine to the same location (c:\windows\system32\drivers\null.sys)
  2. Run regedit and navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\Root.
  3. Right-click on the Root folder and add the Administrator user with full control.
  4. Right-click on the Root folder again and create a new key under it called LEGACY_NULL
  5. Grab this text file and save it to your desktop
  6. Change the extension to .reg and double-click to merge with the Registry
  7. Reboot

Cygwin’s SSH should work properly now.

Another way to verify that it is correctly installed:

  1. Go to the Start menu, right-click on My Computer and select Manage
  2. Right-click on Device Manager and select Show hidden devices from the View menu
  3. Open the Non-Plug and Play Drivers section and go to the Null driver
  4. Double-click on that device – the status panel should read This device is working properly.

Resources:

Untested Procedure For Dial-Up Support

While investigating whether or not it would be possible to add dial-up support to an existing FLP install to provide HSDPA connectivity, I came across this forum post. It is apparently possible to inject the following files and registry entries from a standard XP install to get it to work, but I have not tested this approach.

Required Files

Filename Place in Folder
avmeter.dll C:\WINDOWS\system32
avtapi.dll C:\WINDOWS\system32
avwav.dll C:\WINDOWS\system32
communic.inf C:\WINDOWS\inf
csamsp.dll C:\WINDOWS\system32
hticons.dll C:\WINDOWS\system32
htrn_jis.dll C:\WINDOWS\system32
hypertrm.dll C:\WINDOWS\system32
hypertrm.exe C:\WINDOWS\system32
lights.exe C:\WINDOWS\system32
mdminst.dll C:\WINDOWS\system32
mdmsetup.inf C:\WINDOWS\inf
modem.sys C:\WINDOWS\system32\drivers
modemcsa.inf C:\WINDOWS\inf
modemcsa.sys C:\WINDOWS\system32\drivers
modemui.dll C:\WINDOWS\system32
rootmdm.sys C:\WINDOWS\system32\drivers
serwvdrv.dll C:\WINDOWS\system32
telephon.cpl C:\WINDOWS\system32
umdmxfrm.dll C:\WINDOWS\system32
unimdm.tsp C:\WINDOWS\system32
unimdmat.dll C:\WINDOWS\system32
uniplat.dll C:\WINDOWS\system32
usbser.sys C:\WINDOWS\system32\drivers
winchat.exe C:\WINDOWS\system32

Required Registry Entries

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Telephony\HandoffPriorities]
"RequestMakeCall"="DIALER.EXE"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Telephony\HandoffPriorities\MediaModes]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CoDeviceInstallers]
"{4D36E96D-E325-11CE-BFC1-08002BE10318}"=hex(7):4e,00,65,00,74,00,43,00,66,00,\
  67,00,78,00,2e,00,64,00,6c,00,6c,00,2c,00,4d,00,6f,00,64,00,65,00,6d,00,43,\
  00,6c,00,61,00,73,00,73,00,43,00,6f,00,49,00,6e,00,73,00,74,00,61,00,6c,00,\
  6c,00,65,00,72,00,00,00,73,00,65,00,74,00,75,00,70,00,5c,00,46,00,78,00,73,\
  00,4f,00,63,00,6d,00,2e,00,64,00,6c,00,6c,00,2c,00,46,00,61,00,78,00,4d,00,\
  6f,00,64,00,65,00,6d,00,43,00,6f,00,43,00,6c,00,61,00,73,00,73,00,49,00,6e,\
  00,73,00,74,00,61,00,6c,00,6c,00,65,00,72,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\System\Modem]
"EventMessageFile"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,\
  00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,\
  5c,00,49,00,6f,00,4c,00,6f,00,67,00,4d,00,73,00,67,00,2e,00,64,00,6c,00,6c,\
  00,3b,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,\
  25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,72,\
  00,69,00,76,00,65,00,72,00,73,00,5c,00,4d,00,6f,00,64,00,65,00,6d,00,2e,00,\
  73,00,79,00,73,00,00,00
"TypesSupported"=dword:00000007

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Modem]
"ErrorControl"=dword:00000000
"Group"="Extended base"
"Start"=dword:00000003
"Tag"=dword:00000004
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Modem\Parameters]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}]
"Class"="Modem"
"Default Service"="Modem"
"Icon"="0"
"Installer32"="mdminst.dll,ClassInstall32"
"TroubleShooter-0"="hcp://help/tshoot/tsmodem.htm"