Boot faster DSL3.4
Forum: USB booting
Topic: Boot faster DSL3.4
started by: hvdmerwe
Posted by hvdmerwe on July 17 2007,07:04How can I get DSL 3.4 boot faster from USB stick?
I have a really simple MP3 kiosk app (written in wxLua and using xmms to play) and it takes ages (longer than XP) to boot on my AMD 3200 Athlon.
I use syslinux, USB2, initrd-version and it boot definitely faster on my 2Gig Dell Intel laptop, but still slow (over 1min).
Is it faster to use the initrd version - where the KNOPPIX image is loaded with minirt24.gz?
or should I stick with the old way (mounting the USB stick and loading KNOPPIX off it)?
Posted by curaga on July 17 2007,08:30pretty much no change in speed if you used that..
Start with tweaking the boot params in syslinux.cfg by disabling hardware checks for stuff you don't have, icons could be disabled if your mp3 app is fullscreen etc.. These should speed the boot a little
Posted by hvdmerwe on July 17 2007,09:31Thanks,
I have put all no"----" params in syslinux.cfg and have completely rewritten .xinitrc to only start xmms and my app.
The bottleneck at this point is the Autcoconfigure script (guess its in linuxrc?) and the KNOPPIX image being loaded into memory.
Why does it take so long (just under 1min) to load +-50Megs off the USB stick to memory?
Posted by curaga on July 17 2007,09:41You boot toram right?
Enable dma (option "dma" into syslinux.cfg...), it might even double the speed of copying to ram..
Did you include "noscsi"? The autoconfigure can only be sped up by noscsi and nosound..
If you are going to boot only this one machine, you could enable nosound too and modprobe the driver in bootlocal.sh...
edit: autoconfigure is a program, written by Klaus Knopper..
Posted by lucky13 on July 17 2007,10:13
Maybe this is TMI, but you asked.
Answer: Because USB is relatively slow. This PDF (for illustration purposes) has a chart showing throughput of USB 1.1, USB 2.0, Firewire 400, Firewire 800, and SATA. With USB 2.0, your maximum -- not minimum, not average, your MAXIMUM -- throughput is going to be 60 MB/s.
< http://www.powerlandcomputers.com/PDF%20Brochures/firewire-usb.pdf >
USB throughput is throttled by its client-server design, which uses your PC as the host controller. Here's another PDF for illustration purposes showing the architectural differences USB 2.0 and Firewire.
< http://www.qimaging.com/support/downloads/documents/FirewireUSB.pdf >
With all that in mind, there can be factors that can impede data transfer rates between your USB stick and your computer. Those factors include the stick you're using (not all flash memory is equal), how it's been used in the past (flash memory is not eternal; it has a limited number of write and erase cycles), and your system configuration (amount and type of RAM, etc.). It also helps if your USB bus is properly connected.
USB is still faster and more durable and convenient than floppies or ZIP disks.
Posted by hvdmerwe on July 17 2007,10:14Thanks, will try DMA (didnt know it will work for USB)
One other thing, why not just shove the whole rootfs in the initrc and have everything loaded from linuxrc?
Posted by curaga on July 17 2007,10:20Well, that's the initrd version, but not all wish everything loaded to ram..
Posted by hvdmerwe on July 17 2007,11:35Oh, yes, right, sorry
DMA doesnt do much?
What component does the actual initrd loading? Kernel?
Posted by curaga on July 17 2007,13:52Bootloader (probably syslinux)
I wasn't sure if dma would have any effect on usb, but it's good to have..
If you add these boot codes: "base norestore" it won't check for extensions and you get another second off..
Posted by ^thehatsrule^ on July 17 2007,14:45If you really want to boot faster, you could change the initrd system -- some have used alternative ones noted for their speed.
Did you use nousb? USB probing take a while... and I find it's quicker to manually load what you want after boot, if you know what hardware you have - I know you're booting off an usb stick, but because you're using the bootloader will load everything onto memory first. Also, similarily, it won't matter if you boot with dma or not.
Posted by hvdmerwe on July 18 2007,07:13I have started looking into modding initrd, but I cant really see the benefit (most stuff can be disabled via kernel params).
using "nousb" and loading usb later might help, will try that. I have the data for my kiosk on a second USB stick.
Thanks for the help - I have a better understanding of the whole process now.
My conclusion is that the bootloading is the bottleneck - loading the image into memory from USB is taking up most of the time.
So I need to get a faster bootloader (any suggestions welcome) or/and make the image smaller.
Posted by curaga on July 18 2007,07:54Well, delete everything you don't need to make it smaller..
Firefox takes a lot of space for example..
Posted by ^thehatsrule^ on July 18 2007,13:37It would replace the current initrd system with an optimized one... it's different from passing cheatcodes.
You could also try booting with the regular non-initrd version with dma enabled and see if how your systems performs with that.
Posted by hvdmerwe on July 19 2007,07:58What do I need in linuxrc (in initrc24.gz) to just startup X and xmms (and my app)?
There are a lot of checks and balances in the file (that I dont need) - any documentation on it, something more detailed than the following?
Mount /proc, /dev/pts, /sys
Some housekeeping (setting PATH etc)
Swap out paths with /KNOPPIX (/sbin)
Creates and mounts ramdisk for /home and /var
More housekeeping (links /KNOPPIX/dev,etc to /dev,etc etc)
Exit to let init take over (I will replace this with starting X etc)
Posted by curaga on July 19 2007,08:58It is pretty compact, you need at least all the "housekeeping", mounting and module stuff. To squeeze some seconds off the boot, disable checks for hardware which you now use no-- codes for altogether. As it takes a split second to check for a no-- boot parameter..
I would not recommend starting X from linuxrc, real init does some "housekeeping" too..
Next place to edit is /etc/init.d/knoppix-autoconfig and dsl-config in the same directory.
Posted by ^thehatsrule^ on July 19 2007,17:14Sorry for the confusion... when I meant replacing the current "initrd system", I meant the actual init system (i.e. the 2.78-knoppix used in DSL) and not the scripts (although optimizing that could be beneficial as well).
Posted by hvdmerwe on July 20 2007,07:22Where do I find the "original" initrd? I have downloaded the syslinux version and there is only two boot files and KNOPPIX in it.
Posted by roberts on July 20 2007,07:32The syslinux version has them in boot.img.
Recall syslinux needs a boot floppy image to boot from.
I have not followed this too closely, but, if you were experiencing slow usb boot times with the initrd version, it would likely be your bios and boot loader using usb 1.1. Not sure if a newer syslinux version will help or not. Google "syslinux usb2" and you will see what I mean.
On the otherhand, Juanito, has had success with faster times using extlinux boot loader. That might be another area to explore. Do a google on "extlinux usb2"
Posted by Juanito on July 20 2007,07:57
If anyone wants to try extlinux, it is in the syslinux-mssys extension in "testing"
Posted by hvdmerwe on July 23 2007,12:33extlinux didnt make a dent in boot time with DSL3.4
where do I get DSL4? (is it beta?)
Posted by lucky13 on July 23 2007,12:49
Not yet, it's been out for just under a week as alpha. I haven't experienced any bad behavior from it yet if it matters.