Using Wake on LAN the user must wait for the SlimServer to startup after powering on the Squeezebox. Anything that can be done to minimize this delay is desirable.
Some startup time results with variety of interfaces (mostly CF cards). Measurement is time from cold start to availability of FreeNAS web interface:
| Bootloader | Interface | PNY Optima | Sandisk Extreme III | Transcend Indust 100x | Transcend Indust 45x | Kingston CF/96 | Lexar Plat II 80x | A-Data OEM | Kingston Data Traveler |
|---|---|---|---|---|---|---|---|---|---|
| BTX | IDE | 48.15 | 64.27 | 64.27 | |||||
| BTX | UDMA | 44.66 | 45.87 | ||||||
| BTX | SATA | 43.77 | 53.83 | 43.48 | |||||
| BTX | USB | 82.64 | |||||||
| Grub4DOS | SATA | 45.27 | |||||||
| SYSLINUX | IDE | 44.29 | |||||||
| SYSLINUX | SATA | 41.31 | 37.03 | 41.07 | 36.03 |
If you do not have an working FreeNAs environement you will need to create one. This can be accomplished using a virtual machine (e.g. VMWare, Qemu) or on a spare PC capable of booting from a CDROM.
You can download a pre-made FreeNAS VMWare appliance and run it using the no-cost VMWare Player
cd /mnt/remaster
sed -i .orig -e "s/^SHELL=.*/SHELL=\/bin\/sh/" workon.sh
Execute workon.sh, which will spawn a sub-shell used for making changes. When you exit the sub-shell the script will re-pack the image
sh workon.sh FreeNAS-i386-embedded-0.686b3.img
Documentation for the FreeBSD BTX loader is in the man pages: loader, loader.4th, loader.conf, and boot
sed -i .orig -e "s/^\(menu-start\)/\\ \1/" ../mnt1/boot/loader.rc
echo boot >> ../mnt1/boot/loader.rc
sed -i .orig -e "s/^\(bitmap_load=\"YES\"\)/\# \1/" \ -e "s/^\(splash_bmp_load=\"YES\"\)/\# \1/" ../mnt1/boot/loader.conf
cp -a ../mnt1/boot/loader.conf ../mnt1/boot/loader.conf.orig
echo hw.ata.ata_dma="0" >> ../mnt1/boot/loader.conf
cp -a ./etc/inc/config.inc ./etc/inc/config.inc.orig
if (FALSE === ereg("da[0-9]*", $disk)) continue;
// This enables embedded FreeNAS system to use config.xml on ATA disk // Skip mfs mounted filesystems. if (TRUE === ereg("md[0-9]*", $disk)) continue;
exit
| Filename | config.xml on MSDOS ATA? | DMA | Description |
|---|---|---|---|
| freenas.cf | yes | no | for non-DMA CF cards |
| freenas.cfd | yes | yes | normally use this image |
| freenas.img | no | yes | original FreeNAS distribution |
umount /cf && mount -w /cf
mv /cf/freenas.cfd /cf/freenas.cfd-`date +%Y%m%d%H%M%S` cp /mnt/remaster/freenas.cfd /cf/
syslinux -maf f:
DOS loads very quickly from a CF card and can be used to load both Linux and BSD. This was popular many years ago, but is now uncommon as few users have DOS installed on their PC. Nonetheless, this is a promising idea because there are DOS UDMA drivers that load quickly and yield much faster performance than INT13 (used by BTX, Grub4DOS, and maybe SYSLINUX as well)
Have tested both Loadlin and BSDBOOT, and neither works as of 2007-December. Loadlin relies on calling special hooks in the Linux kernel which MEMDISK does not support. In practice this means it will load MEMDISK and the entire FreeNAS image into memory (very quickly) but never actually execute MEMDISK.
BSDBOOT can be made to load the kernel, but it also fails to start. Not sure why-- it appears to load, but hangs afterward. Cannot even make it load the kernel alone, without MD image.
Both Loadlin and BSDBOOT appear to be legacy solutions, so it's unlikely that they will evolve to work with FreeNAS.
Windows does this fairly well, but FreeBSD has only limited support for the power savings modes that could be used to avoid (re)booting.
|
Browse Space |
Explore Confluence |
Your Account |
Add Content |
|
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.6.2 Build:#919 Nov 26, 2007) |