Tiny.exe/Autoexec.bat USB Drive - booting off floppy problem

Booting, installing, newbie
Post Reply
Message
Author
John Doe

Tiny.exe/Autoexec.bat USB Drive - booting off floppy problem

#1 Post by John Doe »

I'm using the version of Tiny.exe that comes with the boot2pup image. It's version 0.8

I'm getting the error:

"Command Line Too Long, Truncated"

This later causes:
"Cannot Mount Home Device : Cannot Save Personal Files"

(I modified autoexe.bat where tiny.exe is called to get it to boot right of my USB stick [see thread below for explaination])

So I switched to Tiny.exe version 1.2, thinking the latest would work better. Now the USB drivers don't load.

For anyone that's made it this far, this is a continuation of the thread here:
http://www.murga.org/%7Epuppy/viewtopic.php?t=581

Note that in the second to last post in the thread, BungaDunga mentions this also. We are both headed down the same road I think.

Bruce B

#2 Post by Bruce B »

I think you are using FreeDOS. I don't know how many characters it supports in the command line arguments.

I think MS-DOS supports 64 to 66 characters length is all.

How long is your command?

John Doe

#3 Post by John Doe »

Bruce B wrote:I think you are using FreeDOS.
Correct.
Bruce B wrote:How long is your command?
Looks like 87 (not counting the executable name or the space)
tiny.exe C:\vmlinuz C:\image.gz root=/dev/ram0 PROOTFS=umsdos PSLEEP=25 PFILE=pup100-none-262144

With 1.0 - 1.2 gujin I don't get the command line arguments error (using same DOS and autoexec).

Although they each has other issues:

1.2
Loading USB base driver modules...
FAILED TO LOAD USB BASE DRIVER MODULE

1.1
Loading USB base driver modules...
FAILED TO LOAD USB BASE DRIVER MODULE

1.0 (*note, I do have a root= option in my argument)
Please append a correct "root=" boot option
Kernel Panic: VFS: Unable to mount root fs on 00:00

Using 0.9 I get the same command line arguments error as 0.8

Thanks for the info. I'm bound and determine to get this working.

Bruce B

#4 Post by Bruce B »

You count the entire string from start to finish. May I suggest using GRUB for DOS on your floppy? You must make a bootable MS-DOS disk.

With an MS machine and clean formatted floppy type:
  • sys c:\ a:
or to format and make disk bootable:
  • format a: /s /u
check this link for the grub for dos:

http://www.murga.org/%7Epuppy/viewtopic.php?t=449

you will need to modify the menu.lst file included in the package

good luck!

John Doe

#5 Post by John Doe »

Sorry, it doesn't seem to work with USB.

I only have hd0 and fd0 listed as available devices. No light on the USB flash drive either.

I was all set to be the guy that got the USB entries for the menu also, what a bummer.

Are there any other options available? I was going to try "wakepup" but that just calls tiny.exe also and I figure I'd have the same trouble.

etienne

#6 Post by etienne »

Using FreeDOS is OK, having a longer command line than bare DOS,
so that command line length is no more a problem.
Gujin-1.0 tiny.exe was far from perfection, but since v1.1 you should
have support for long command line and v1.2 can load uncompressed
initrd (i.e. initramfs) on latest 2.6 kernels.

I assume that your error with the kernel is when Linux starts, and not
when you are trying to load the USB drivers from FreeDOS, even before
calling tiny.exe in the autoexec.bat.

I think you have to search a solution in the Linux kernel configuration,
because everything seems loaded correctly (the kernel has correctly
started), you can maybe check that the initrd is correctly recognised
by appending the "debug" on the command line and follow messages
on screen.

The big difference in between starting from a bootable CDROM
containning those vmlinuz and image.gz and starting from USB drive
is that the USB stack is active by the disk emulation and that may
create a problem somewhere in Linux USB drivers.
Check USB parameters and maybe EDD (extended BIOS disk)
parameter too.

You may want to check if those vmlinuz and image.gz are correct
by writing them either on a CDROM or on a current E2FS/E3FS or
FAT partition in the /boot directory to boot them using the complete
Gujin loader - for instance installed on a floppy. You then have to
rename them, something like vmlinuz-test and initrd-test.

Etienne.

User avatar
everettattebury
Posts: 14
Joined: Sun 08 May 2005, 13:13
Location: Sarasota, Florida

#7 Post by everettattebury »

John Doe wrote:
Bruce B wrote:I think you are using FreeDOS.
Correct.
Bruce B wrote:How long is your command?
Looks like 87 (not counting the executable name or the space)
tiny.exe C:\vmlinuz C:\image.gz root=/dev/ram0 PROOTFS=umsdos PSLEEP=25 PFILE=pup100-none-262144

With 1.0 - 1.2 gujin I don't get the command line arguments error (using same DOS and autoexec).
Ok, it's been years since I wrote batch files, but maybe you could set some DOS environment variables to be your parameters to tiny.exe, then use those environment variable names in the tiny.exe command line? Maybe this could get you around the command line length limitation?
Running Puppy 1.0.2 from 1gb Sandisk Cruzer Mini.

Bruce B

#8 Post by Bruce B »

Ok, it's been years since I wrote batch files, but maybe you could set some DOS environment variables to be your parameters to tiny.exe, then use those environment variable names in the tiny.exe command line? Maybe this could get you around the command line length limitation?
You can't fool dos with a varible, it counts the 'expanded' command line.

There is a workaround for these limits. Use the 4DOS shell, which is now free. It supports FreeDOS, MS-DOS and DR DOS. 4DOS supports 128 byte command strings.

But the shell is a lot to load from a floppy, somewhere around a 1/4 MB, and needs a memory manager like himem.sys.

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

Re: Tiny.exe/Autoexec.bat USB Drive - booting off floppy pro

#9 Post by pakt »

John Doe wrote:I'm using the version of Tiny.exe that comes with the boot2pup image. It's version 0.8. I'm getting the error:

"Command Line Too Long, Truncated"
John Doe wrote:I was going to try "wakepup" but that just calls tiny.exe also and I figure I'd have the same trouble.
I'm the guy that did the WAKEPUP boot disk, and your right: what I've done is to completely re-write the BOOT2PUP config.sys & autoexec.bat files to include drivers and support for more hardware before actually calling TINY.EXE and the same parameters that Barry used.

However, I think that I can help you anyway with the truncated command line. Somewhere in the Wiki (it doesn't seem to be searchable, and I can't seem to find the reference again :( ) someone, I think it was Lobster, explained about an improved TINY.EXE called LINLD.COM which overcomes the limited command line by using a separate file to hold the parameters.

This is something that I just discovered a couple of days ago and I've been testing it myself for, possibly, making a more flexible WAKEPUP boot floppy. It has worked flawlessly for me so far. As I can't find the original reference, I'll give you an example of its use:

LINLD.COM image=e:\vmlinuz initrd=e:\image.gz cl=@puppy.lin

with puppy.lin, a plain text file, containing (for example):

root=/dev/ram0
ramdisk_size=16384
PSLEEP=25
PHOME=hda1
PFILE=pup100-none-262144
PKEYS=us

Like I said, this might be a new approach for making a more flexible Puppy boot disk. This could be done by using a menu to choose the boot parameters that you want. I'm still thinking about it... I'm open to any ideas that you or anyone else has. ;)

Anyway, I hope this helps. :)

EDIT: :oops: Just found the 'search' button in Wiki - it's at the bottom of the page. The reference to LINLD.COM is here - last entry on the page.

John Doe

Thanks to everyone for the help so far. I'm getting close.

#10 Post by John Doe »

"Command Line Too Long, Truncated" is now fixed with LINLD.COM

Unfortunately, "Cannot Mount Home Device : Cannot Save Personal Files" persists.

My params look like this:

root=/dev/ram0
ramdisk_size=16384
PSLEEP=20
PHOME=sda1
PFILE=pup100-none-262144
PKEYS=us
PROOTFS=umsdos

I get "Failed to mount /dev/sda1 /mnt/home/pup100 on /mnt/pupxxx" during the boot.

I did have to delete the junk pup100 file that was made by the truncated command line. I had this little 2.6k file (guess where it got snipped :wink: ) but the new correctly sized file doesn't get found :cry: .

I can't find this by searching. Anyone know what to do?

Bruce B

#11 Post by Bruce B »

What's with the PROOTFS=umsdos ?

Exactly how is the device formatted? E.g, FAT32, FAT16, ?

John Doe

I must be getting close :-/

#12 Post by John Doe »

Bruce B wrote:What's with the PROOTFS=umsdos ?
I'm not sure. I just tried it without it and get:

usb_control/bulk_msg:timeout

Then it continues on and I get the same problem.
Bruce B wrote:Exactly how is the device formatted? E.g, FAT32, FAT16, ?
Currently:
Fat16, 512Byte Sectors, 4KB Clusters

Should it be something else?
(I hope this is the case anyway. I'm getting so close)

John Doe

Addition notes for people searching later

#13 Post by John Doe »

I also get this error, after the "bulk" error:

"The superblock could not be read or does not describe a correct ext2 filesystem."

These are both after it tries to mount /root

John Doe

Mark this one solved.

#14 Post by John Doe »

IT WORKS!!! I'M A USER!!

Thanks for the help everyone.

262144 was too big for my card so I changed it to 131072 and it loads right and saves my settings and data when I shut down.

Bruce B

#15 Post by Bruce B »

Congratulations!

I think I would have used PROOTFS=vfat (who knows? an earlier experience with Puppy not writing to umsdos)

Perhaps you can run probepart and probedisk on the command line see how Puppy sees things.

Post Reply