WakeUSB report - some partial success

Using applications, configuring, problems
Post Reply
Message
Author
kethd
Posts: 451
Joined: Thu 20 Oct 2005, 12:54
Location: Boston MA USA

WakeUSB report - some partial success

#1 Post by kethd »

WakeUSBkethd report

Some Progress towards the Promised Land of Bootable USB Puppy

There are three tools so far for trying to boot from USB on computers that need some help to do that: Boot2Pup, WakePup, and WakeUSB.

I spent 17nov05 exploring WakeUSB. (Many thanks to creator pakt; can we come visit you in rural Sweden?)

This is the main announcement, with the files to download:
http://www.murga.org/~puppy/viewtopic.php?t=3352
Posted: Tue Nov 01, 2005 3:47 pm
Post subject: WakeUSB - make old PC's boot Puppy from USB - please test :)

I carefully made two copies of the floppy disk. When I tested them in my target Dell Latitude PII-266, FreeDOS did not work properly -- CONFIG.SYS was not processing properly, so all the references in AUTOEXEC.BAT to M: failed. But then I discovered that another of the same computer did not seem to have that problem, so there just seems to be something weird about FreeDOS in that one Dell laptop.

The comments in AUTOEXEC.BAT confuse me -- it says that it is going to make a 128MB ramdisk, and then seems to set up a 192KB M: drive!?

FreeDOS offers some boot options that flash by too quickly. Press F8 to trace or F5 to bypass processing of CONFIG.SYS and AUTOEXEC.BAT. But to explore, you want to run CONFIG.SYS, which does all the basic USB device driver magic, and bypass AUTOEXEC.BAT, which is the whole script for trying to find and start up Puppy -- until you are ready for that. So just rename AUTOEXEC.BAT to AWAKEUSB.BAT. (You may want to experiment with manually running some of the early commands in AUTOEXEC.BAT that set up the M: drive, handy for experimenting.)

WAKEUSB IS AN INCREDIBLY WONDERFUL TOY TO PLAY WITH.
It is so wonderful-surprising that FreeDOS exists, with USB support that works this well.
FreeDOS kernel version 1.1.35w (Build 2035w-UNSTABLE, Nov 28 2004)
Kernel compatibility 7.10 - WATCOMC - FAT32 support
FreeCOM version 0.82pl XMS_Swap
***WAKEUSB v0.1e

But WakeUSB is not quite what I was hoping for, based on the name. I was hoping for something that would completely augment/replace a BIOS without the ability to boot from USB -- software on a floppy disk that would find all the potentially bootable connected USB devices, and let you choose which one you would like to try to boot, no matter what was on the USB device, just like if you had a more modern BIOS. It does seem in theory that such a thing should be possible.

But WakeUSB does something much more straightforward-normal. It starts FreeDOS, load USB device drivers, looks for USB devices containing Puppy, and starts up a special Linux loader that tries to start that USB Puppy running.

Being a step-by-step, plodding sort, my first experiment was to try to boot a USB floppy drive. This failed, because WakeUSB is not actually intended to do that -- a USB floppy is not at all what it is looking for. But it was an interesting learning experience. The USB driver finds the USB floppy -- and totally switches over to it as the A: drive, abandoning the internal floppy A: drive! In most cases, this causes a crash, with messages like:
Incorrect DOS version
Bad or missing Command Interpreter
But you can trick it into continuing by loading the USB floppy drive with a copy of the diskette that is in the internal floppy drive.

Many different USB devices were tested, in a number of different computers, to see if WakeUSB might make them usable with Puppy.

The results in two Dell Latitude CP M233XT computers was encouraging.
WAKEUSB v0.1e (64MB BIOS A08):
8086-7112 Controller - UHCI I/O=ECEO-ECFF
VID-PID #2/#5 notes
EA0-2168 Y/Y PQI 256MB I-Stick2
-/- 23in1 USB2.0 not detected (memory card reader)
7C4-A400 Y/- UCF-100 SimpleTech USB card reader
41E-412B Y/Y Muvo N200 1GB USB2.0 MP3+
EA0-6803 Y/Y Pen Drive 64MB
/- MS Mouse not detected
402-5621 YY/Y 2.5-in IDE USB2.0 Bridge + 5GB drive
5E3-0702 Y/Y 3.5-in IDE USB2.0 Bridge + 40GB drive
Encouraging results -- lots of things things are potentially working to run Puppy!
/Y/ means Yes, the driver mounts the device and allows access to the files in DOS.
/-/ means not detected
/YY/ means that it not only worked, but did not even need external power.
In the case of the UCF-100, it worked fine in computer #2, but in #5 it was detected but not mounted completely. When things do work, two somethings get mounted, the drive plus a logical something.

However, the other experiments were not very successful. CPi computer #1 would not start FreeDOS often enough to test.

Attempts to use a VIA USB2.0 (4 port) PCMCIA adapter resulted in
1106-3038 UHCI x2 I/O=DCEO-FCFF
ERROR = UHCI I/O port not assigned.

In a Compaq P-133 LTE5300 with no internal USB ports, the VIA USB2.0 (4 port) PCMCIA adapter resulted in
ERROR = UHCI/OHCI/EHCI USB host controller not found.

Many attempts to understand and correct the VIA PCMCIA errors in the CPi got various complicated results, but no adequate success. The best achievement was to get as far as
ERROR: Target USB device not found.

The secret sauce in all this is the USBASPI.SYS (Ver 2.20 Panasonic) driver, which is only documented by volunteer guessers/observers. MadmaxUSB has devoted years to compiling a list of command line switches -- see Forum 15568:
http://www.computing.net/dos/wwwboard/forum/15568.html
Date: March 22, 2005
Subject: USB driver for DOS = USBASPI.SYS

If anyone ever discovers what causes "UHCI I/O port not assigned" and how to fix it, please let the rest of us know.

In the meantime, the key question is, what PCMCIA USB2.0 adapters work the best with WakeUSB/USBASPI/FreeDOS/Linux/Puppy?

Sorry, I have not been able yet to get any of this completely working with Puppy -- Still Hoping and Trying!
So, I don't know the answer to the fascinating question: If Puppy will not mount a USB device, but WakeUSB will, what happens if you try to boot Puppy from that USB device?

User avatar
pakt
Posts: 1157
Joined: Sat 04 Jun 2005, 16:54
Location: Sweden

Re: WakeUSB report - some partial success

#2 Post by pakt »

kethd wrote:WakeUSBkethd report
Some Progress towards the Promised Land of Bootable USB Puppy
Many thanks, kethd. Exactly what I need to help improve WakePup/WakeUSB.
kethd wrote:There are three tools so far for trying to boot from USB on computers that need some help to do that: Boot2Pup, WakePup, and WakeUSB.
I've uploaded WakePup 1.1b, an update to WakePup 1.0. It includes a number of improvements. See details and announcement here: http://www.murga.org/~puppy/viewtopic.php?t=3875
kethd wrote:The comments in AUTOEXEC.BAT confuse me -- it says that it is going to make a 128MB ramdisk, and then seems to set up a 192KB M: drive!?
Sorry about that. Forgot to change the comment when I increased the ramdisk size.
kethd wrote: WAKEUSB IS AN INCREDIBLY WONDERFUL TOY TO PLAY WITH.
It is so wonderful-surprising that FreeDOS exists, with USB support that works this well.
Thanks. I used my WakePup as a starting point for WakeUSB. I wanted a version purely for booting from USB. It had to be able to boot USB flash drives programmed by Puppy's "Install Puppy USB drive" wizard, Option 2 (the one that writes a pupxxx file to the USB drive) with just the addition of PUPXUSB.

I also wanted it automatically find and use the "ramdisk_size" parameter from isolinux.cfg used by non-standard Puppies like ChubbyPuppy and PizzaPuppy so I could run these from USB drives.

Finally, I wanted it to have a built-in editor so I could change the boot options interactively, hence the need for a ramdisk to store temporary files. Unfortunately, that is also the weak point with WakeUSB: there are always some PC's that have problems with HIMEM, needed for the ramdisk driver.

I have gotten one such report on the forum, and I have encountered the problem myself on an old 233MHz PC with 96MB RAM: LINLD started "Uncompressing Linux..." and then "crc error ...System halted". No problem booting when I used WakePup instead...
kethd wrote: But WakeUSB is not quite what I was hoping for, based on the name. I was hoping for something that would completely augment/replace a BIOS without the ability to boot from USB -- software on a floppy disk that would find all the potentially bootable connected USB devices, and let you choose which one you would like to try to boot, no matter what was on the USB device, just like if you had a more modern BIOS. It does seem in theory that such a thing should be possible.
I agree that it should be possible in theory. Smart Boot Manager on floppy was supposed to be a solution, but it doesn't work because it doesn't have a USB driver. I've also tried a number of Linux floppies that are supposed to work with certain distros. Unfortunately, they take forever to boot so I gave up on that idea. I'll stick with the KISS concept...

That's why I persisted with WakePup/WakeUSB. I simply haven't found a better solution so far.
kethd wrote: Being a step-by-step, plodding sort, my first experiment was to try to boot a USB floppy drive. This failed, because WakeUSB is not actually intended to do that -- a USB floppy is not at all what it is looking for. But it was an interesting learning experience. The USB driver finds the USB floppy -- and totally switches over to it as the A: drive, abandoning the internal floppy A: drive! In most cases, this causes a crash, with messages like:
Incorrect DOS version
Bad or missing Command Interpreter
But you can trick it into continuing by loading the USB floppy drive with a copy of the diskette that is in the internal floppy drive.
Yes, had that experience myself. I came to the conclusion that it wasn't much use in using a USB floppy if I already had a built-in one ;)
kethd wrote:Many different USB devices were tested, in a number of different computers, to see if WakeUSB might make them usable with Puppy.

The results in two Dell Latitude CP M233XT computers was encouraging.
WAKEUSB v0.1e (64MB BIOS A08):
8086-7112 Controller - UHCI I/O=ECEO-ECFF
VID-PID #2/#5 notes
EA0-2168 Y/Y PQI 256MB I-Stick2
-/- 23in1 USB2.0 not detected (memory card reader)
7C4-A400 Y/- UCF-100 SimpleTech USB card reader
41E-412B Y/Y Muvo N200 1GB USB2.0 MP3+
EA0-6803 Y/Y Pen Drive 64MB
/- MS Mouse not detected
402-5621 YY/Y 2.5-in IDE USB2.0 Bridge + 5GB drive
5E3-0702 Y/Y 3.5-in IDE USB2.0 Bridge + 40GB drive
Encouraging results -- lots of things things are potentially working to run Puppy!
/Y/ means Yes, the driver mounts the device and allows access to the files in DOS.
/-/ means not detected
/YY/ means that it not only worked, but did not even need external power.
In the case of the UCF-100, it worked fine in computer #2, but in #5 it was detected but not mounted completely. When things do work, two somethings get mounted, the drive plus a logical something.
I have thought about compiling a list of USB devices that will work with WakePup/WakeUSB, but I think there may be too many combinations to consider. There are at least three USB controllers used in PC's: NEC, Intel and VIA. And some of these are USB1.1 only - which may or may not work, just not as fast.

You said that with the /Y/ and /YY/ devices "the driver mounts the device and allows access to the files in DOS". Did you succeed in booting Puppy from these devices?
kethd wrote:However, the other experiments were not very successful. CPi computer #1 would not start FreeDOS often enough to test.
Did the CPi that had problems have less RAM than the other one? Could be a HIMEM symptom in that case. You could try the new version of WakePup and see what happens. It doesn't use high memory or a ramdisk.
kethd wrote:Attempts to use a VIA USB2.0 (4 port) PCMCIA adapter resulted in
1106-3038 UHCI x2 I/O=DCEO-FCFF
ERROR = UHCI I/O port not assigned.

In a Compaq P-133 LTE5300 with no internal USB ports, the VIA USB2.0 (4 port) PCMCIA adapter resulted in
ERROR = UHCI/OHCI/EHCI USB host controller not found.

Many attempts to understand and correct the VIA PCMCIA errors in the CPi got various complicated results, but no adequate success. The best achievement was to get as far as
ERROR: Target USB device not found.
The USB driver is not very successful with hubs or USB adapters. I had limited success with a Belkin "USB2 Hi-Speed USB 2.0 Notebook Card" in a ThinkPad with only a USB1.1 port. I only got it to work (with a Puppy USB flash drive connected to it) after I attached an external 5V power adapter to the PCMCIA card. Puppy booted until it came to the point where *its* drivers couldn't detect the USB flash drive. There it stopped - WakePup could handle it, but not Puppy!!
kethd wrote:The secret sauce in all this is the USBASPI.SYS (Ver 2.20 Panasonic) driver, which is only documented by volunteer guessers/observers. MadmaxUSB has devoted years to compiling a list of command line switches -- see Forum 15568:
http://www.computing.net/dos/wwwboard/forum/15568.html
I agree. It's MadmaxUSB that inspired me in the first place. I really should mention his contribution in my (poor) documentation.
kethd wrote:If anyone ever discovers what causes "UHCI I/O port not assigned" and how to fix it, please let the rest of us know.

In the meantime, the key question is, what PCMCIA USB2.0 adapters work the best with WakeUSB/USBASPI/FreeDOS/Linux/Puppy?
Again, try with a 5V adapter if you haven't already done so...
kethd wrote:Sorry, I have not been able yet to get any of this completely working with Puppy -- Still Hoping and Trying!
So, I don't know the answer to the fascinating question: If Puppy will not mount a USB device, but WakeUSB will, what happens if you try to boot Puppy from that USB device?
Don't quite understand what you mean with this question. You have booted Puppy from a USB device haven't you?

Thanks again, kethd, for your detailed report. I really appreciate your feedback.

Please try WakePup 1.1b and let us know what results you get.

kethd
Posts: 451
Joined: Thu 20 Oct 2005, 12:54
Location: Boston MA USA

Thanks pakt!

#3 Post by kethd »

pakt,
Thanks so much for your detailed comments/replies -- I really appreciate all your work on WakeUSB!

Most of my computers do not have USB built-in. Even those that do, do not have a BIOS that will boot from USB. So, I really need what WakeUSB does! And, I really need to know the best ways to add USB to computers that do not have built-in -- such as PCMCIA USB ports, and PCI USB cards.

But, no, I have never run Puppy off USB, in any way. Basically, I have never run Puppy off anything but fresh raw LiveCD. (Many of my piles of old computers don't have CD drives, so I need to learn how to do Puppy other ways!) I have been working on/with Puppy for weeks, but because my main target systems are Dell laptops that need Framebuffer, and no Puppys are available for download with Framebuffer enabled, all of my work is just research/exploration to be able to prepare for someday maybe being able to actually really use Puppy. (Yes, I have really used it, as a specialized tool of various sorts, from a LiveCD -- but that is limited use!)

I have no explanation for why one of my CPi laptops works well with FreeDOS, and one does not. The computers are basically the same. But the one that works well is currently my main computer, so I am not free to experiment much at this time.

Great that you have a new version of WakeUSB, and that it does not need to use ramdisk. But I am thinking that the ramdisk is a valuable option, for the same reasons you put it in -- to be able to easily make changes in the boot script and try them. Maybe you should leave the code in, but just comment it out if not needed, to help out those of us that are just getting started messing with the innards? (I had not noticed that you included an editor -- I've been using a DOS editor I call Q (QEDIT?) for such things, for many years...)

(How does someone in rural Sweden have such good English?)

What is the VID-PID-Chipset (or whatever hardware identifiers are appropriate) of the Belkin PCMCIA USB card that worked the best for you?

I see that you are trying to support parallel port drives. I used to heavily use parallel port hard drives (IDE drives in an adapter shell). It will be fascinating to try to use that with WakeUSB. Might actually be useful, for very old computers with no CD or anything -- except for the little matter of adequate RAM to load everything in. Might be too slow to actually execute off the parallel port...

pakt, there should be a WakeUSB page in the Wiki, and you should own it. I invite you to make one; if I get to it before you do, I'll try to transfer ownership to you, if/when you'd like to have it.

I do think we need one organized place (the Wiki?) for accumulating lists of reported particular hardware that works or does not with particular versions of WakeUSB.

User avatar
pakt
Posts: 1157
Joined: Sat 04 Jun 2005, 16:54
Location: Sweden

Re: Thanks pakt!

#4 Post by pakt »

kethd wrote:Great that you have a new version of WakeUSB, and that it does not need to use ramdisk.
kethd, please don't confuse WakeUSB with WakePup - I know the names are similar, but they're not the same.

WakeUSB is a special version of WakePup that only works with USB devices. That's the one using himem and a ramdisk for the built-in editor. I wasn't thinking of updating it, mainly because I haven't figured out how to eliminate the need for writing temp files somewhere in order to get the editor to work. :(

It is WakePup that I have updated. It includes support for USB but only through a static menu of boot options.
kethd wrote:I've been using a DOS editor I call Q (QEDIT?) for such things, for many years...
Yes, I'm familiar with QEdit. It was my favorite for many years. I still have it on my PC somewhere...
kethd wrote:How does someone in rural Sweden have such good English?
Probably the many years I spent in the States ;)
kethd wrote:What is the VID-PID-Chipset (or whatever hardware identifiers are appropriate) of the Belkin PCMCIA USB card that worked the best for you?
The Belkin card is a NEC PCI to USB EHCI - EHCI 1033:00e0 and OHCI 1033:0035. That card worked with WakePup 1.1c, Puppy 1.0.6 and a SanDisk Cruzer Mini 128M flash drive. It booted Puppy up to a point where Puppy seemed to turn off the flash drive (the LED went out). It then complained "disktype: Can't open /dev/sda1: No such device or address".
(/dev/sda1 is the USB drive)

I also tried with a Zonet "ZUN2200 USB 2.0 CardBus 32-bit PC Card". That card is a "VIA Rev 5 or later USB UHCI" - EHCI 1106:3104 and UHCI 1106:3038. That card did NOT work with WakePup. It hung where the USBASPI driver shows "... Scanning USB Devices ..." on the screen.
kethd wrote: pakt, there should be a WakeUSB page in the Wiki, and you should own it. I invite you to make one; if I get to it before you do, I'll try to transfer ownership to you, if/when you'd like to have it.

I do think we need one organized place (the Wiki?) for accumulating lists of reported particular hardware that works or does not with particular versions of WakeUSB.
It is a good idea and if you're up to it, you're welcome to start one. I'm not sure if I am up to organizing such a page but I'll be happy to contribute what I can.

Good luck with your efforts and please let us know on the forum when you succeed in booting Puppy from a USB drive :)

kethd
Posts: 451
Joined: Thu 20 Oct 2005, 12:54
Location: Boston MA USA

#5 Post by kethd »

Yes, I was confusing WakePup and WakeUSB -- thanks for pointing that out, and thanks for the explanations -- I guess I'll have to try them both out, to really understand...

User avatar
pakt
Posts: 1157
Joined: Sat 04 Jun 2005, 16:54
Location: Sweden

#6 Post by pakt »

kethd, I found two pages on the wiki that have some relevance to which USB devices work with Puppy. Unfortunately, they are a bit vague. For example, there is no mention of which syslinux version that was used when attempting to boot the USB device. From my own experience, the syslinux version was crucial to whether a device would boot or not.

Here are the links to the two pages:
http://puppylinux.org/wikka/USBWorking
http://puppylinux.org/wikka/USBNotWorking

Post Reply