Nachdem ich gestern die Nacht damit verbracht habe meine Bootzeit zu optimiere will ich die Ernte der Fruechte mal veroeffentlichen.
Nett wie ich bin
WARNUNG : Alles auf eigene Gefahr und NIX loeschen , sondern vorher sichern. Das ALLES ist nur fuer Leute die WISSEN was sie tun
Ergebnis hier mit Activy (Celereon 733) 25 - 35 Sec. je nach Schmerzgrenze (kann man noch weiter druecken);)
ab Druck auf FB . aber 25 Sec. brauch ich schon , sonst seh ich meine Bootaniomation net
1. Kernel optimieren.
Nur was man braucht und so wenig als Modul wies geht.
2. Grub 0.94x (hier) (viel schneller als Lilo):
timeout 1
default 0
fallback 1
hiddenmenu
#splashimage=(hd0,2)/grub/splash.xpm.gz
# For booting GNU/Linux
title VIDEO DISK RECORDER
root (hd0,2)
kernel (hd0,2)/kernel-2.6.5-rc3-love2 root=/dev/hda7 splash=off
# For booting GNU/Linux (genkernel Benutzer)
title VIDEO DISK RECORDER mit initrd
root (hd0,2)
kernel (hd0,2)/kernel-2.6.5-rc3-love2 root=/dev/ram0 init=/linuxrc real_root=/dev/hda7 splash=off
initrd (hd0,2)/initrd-2.6.5-rc3-love2
Alles anzeigen
3. Initscripts :
Zum Bootlevel folgendes hinzufuegen:
checkroot
hostname
1_dvb_load (oder linuxtv was weiss ich)
localmount
clock
lircd
syslog-ng (oder anderen logger)
urandom
Zum Defaultlevel folgendes hinzufuegen:
2_vdr (oder vdr. Bei mir muss ein logger vorher laufen und vdr in default , sonst semmelt es ab ?()
atd , hdparm , local , net.lo , rmnologin , vdradmind , acpid
domainname , keymaps , net.eth0 , rc.irexec , sshd , vixie-cron und was
man sonst noch alles braucht.
Wenn man jetzt startet dann wird rumgemeckert ueber
checkfs und modules "couldnt found..blah)
Dazu /sbin/rc so anpassen (hier Zeile 143):
CRITICAL_SERVICES="checkroot hostname 1_dvb_load localmount"
Alle initscripts aus /etc/init.d auslagern , welche man nicht braucht.
/etc/fstab anpassen und alle grossen Partition , welche man erstmal nicht
sofort braucht auf "noauto" und in /etc/conf.d/local.start mounten
(z.B.: mount /video && mount /vdr_daten)
/etc/modules.autoload/Kernel-xx nichts reinschreiben sondern irgendwo
laden (z.B. wird bei mir lirc_serial mit "insmod.sh load" der DVB Treiber geladen (etc/init.d/modules gibts ehh net mehr ;)).
VDR laeuft hier im Daemonmode ist ja wohl klar
So, nun sollte das System ziemlich fix booten und die Schmerzgrenze
erreicht sein.
Vorteilhaft ware noch eine kleine Parallelinstallation bzw. Boot-CD
fuer Systemchecks, wobei eine Parallelinstallation den Vorteil hat , dass
man mit Hilfe von cronjobs einiges machen kann
(Autostart und Servicevorgang etc.)
Hier ein paar Auszuege aus den initscripts (Abhaengigkeiten) :
checkroot :
hostname :
1_dvb_load :
#!/sbin/runscript
depend() {
need hostname
before localmount
}
start() {
ebegin "Load DVB-driver"
cd /DVB/DVB/build-2.6 && ./insmod.sh load &&
# Bootanimation cd /etc/vdr/scripte && ./run2.sh > /dev/null
eend $?
}
stop() {
ebegin "Unload DVB-driver"
cd /DVB/DVB/build-2.6 && ./insmod.sh unload
eend $?
}
Alles anzeigen
localmount:
clock:
1_lircd:
syslog-ng:
depend() {
# make networking dependency conditional on configuration
sed 's/#.*//' /etc/syslog-ng/syslog-ng.conf | \
grep -Eq '(source|destination).*(tcp|udp)' && need net
need clock
provide logger
}
urandom:
1_vdr (meins mit Ramdisk und blah blah , wers benutzt muss es selber anpassen:
#!/sbin/runscript
opts="${opts} fullrestart"
export DVDCSS_METHOD=key
depend() {
need logger
}
start() {
ebegin "Starting $(vdr -V)"
#
#
## ERZEUGE VERZEICHNISSE IN shrinkable Ramdisk
if [ ! -d /dev/shm ]; then
eerror -e "ERROR /dev/shm dont exists . ABORT VDR"
eend 1
fi
if [ ! -d /dev/shm/vdr ]; then
mkdir /dev/shm/vdr
fi
if [ ! -d /dev/shm/vdr/epg ]; then
mkdir /dev/shm/vdr/epg
fi
if [ ! -d /dev/shm/vdr/lib ]; then
mkdir /dev/shm/vdr/lib
fi
if [ ! -d /dev/shm/vdr/logos ]; then
mkdir /dev/shm/vdr/logos
fi
if [ ! -d /dev/shm/vdr/plugins ]; then
mkdir /dev/shm/vdr/plugins
fi
if [ ! -d /dev/shm/vdr/plugins/DVD-VCD ]; then
mkdir /dev/shm/vdr/plugins/DVD-VCD
fi
if [ ! -d /dev/shm/vdr/plugins/freecell ]; then
mkdir /dev/shm/vdr/plugins/freecell
fi
if [ ! -d /dev/shm/vdr/schemes ]; then
mkdir /dev/shm/vdr/schemes
fi
if [ ! -d /dev/shm/vdr/scripte ]; then
mkdir /dev/shm/vdr/scripte
fi
if [ ! -d /dev/shm/vdr/vdrconvert ]; then
mkdir /dev/shm/vdr/vdrconvert
fi
if [ ! -d /dev/shm/vdr/vdrconvert/log ]; then
mkdir /dev/shm/vdr/vdrconvert/log
fi
if [ ! -d /dev/shm/vdr/vdrconvert/fonts ]; then
mkdir /dev/shm/vdr/vdrconvert/fonts
fi
if [ ! -d /dev/shm/vdr/vdrconvert/fonts/truetype ]; then
mkdir /dev/shm/vdr/vdrconvert/fonts/truetype
fi
if [ ! -d /dev/shm/vdr/vdrconvert/postscript ]; then
mkdir /dev/shm/vdr/vdrconvert/postscript
fi
## KOPIERE DATEIEN IN Ramdisk
cp /var/vdr/epg.data /dev/shm/vdr/epg/ &&
cp /usr/lib/vdr/* /dev/shm/vdr/lib/ &&
cp /etc/vdr/*.* /dev/shm/vdr/ &&
cp /etc/vdr/logos/* /dev/shm/vdr/logos/ &&
cp /etc/vdr/plugins/*.* /dev/shm/vdr/plugins/ &&
cp /etc/vdr/plugins/DVD-VCD/* /dev/shm/vdr/plugins/DVD-VCD/ &&
cp /etc/vdr/plugins/freecell/* /dev/shm/vdr/plugins/freecell/ &&
cp /etc/vdr/schemes/* /dev/shm/vdr/schemes/ &&
cp /etc/vdr/scripte/* /dev/shm/vdr/scripte/ &&
cp /etc/vdr/vdrconvert/*.* /dev/shm/vdr/vdrconvert/ &&
cp /etc/vdr/vdrconvert/fonts/truetype/*.* /dev/shm/vdr/vdrconvert/fonts/truetype/ &&
cp /etc/vdr/vdrconvert/postscript/*.* /dev/shm/vdr/vdrconvert/postscript/ &&
su - root -c "/usr/bin/vdr $*\
--daemon \
--config=/dev/shm/vdr \
--lib=/dev/shm/vdr/lib \
--epgfile=/dev/shm/vdr/epg/epg.data \
--terminal=/dev/tty6 \
--video=/video \
--log=0 \
--port=2001 \
--watchdog=0 \
--shutdown=/usr/bin/vdrshutdown.sh \
-Ppilot \
-Pconsole \
-Pcalendar \
-Ptvonscreen \
-Ptimeline\
-P'dvd -C /dev/cdroms/cdrom0'\
-P'mp3 -m /usr/bin/mount.sh -B /var/cddb'\
-P'mplayer -m /usr/bin/mount.sh -M /usr/bin/mplayer.sh'\
-Pimage \
-P'vcd -v /dev/cdroms/cdrom0'\
-Posdpip \
-Pgames \
-Pfreecell \
-Pstreamdev-server \
-Pvdrc \
-Ptrayopen"
eend $? "Failed to start vdr."
}
stop() {
ebegin "Stopping $(vdr -V)"
## KOPIERE DATEIEN VON Ramdisk
cp /dev/shm/vdr/epg/epg.data /var/vdr/ &&
cp /dev/shm/vdr/*.* /etc/vdr/ &&
cp /dev/shm/vdr/plugins/*.* /etc/vdr/plugins/ &&
cp /dev/shm/vdr/vdrconvert/*.* /etc/vdr/vdrconvert/ &&
start-stop-daemon --stop --quiet --retry 15 --exec /usr/bin/vdr
eend $? "Failed to stop vdr."
}
fullrestart() {
ebegin "Fully restarting $(vdr -V) and DVB drivers"
/etc/init.d/vdr stop
/etc/init.d/vdr zap
/bin/pidof /usr/bin/vdr && /bin/killall -9 vdr
cd /DVB/DVB/build-2.6 && ./insmod.sh unload
sleep 1
cd /DVB/DVB/build-2.6 && ./insmod.sh load
/etc/init.d/vdr start
eend $?
}
Alles anzeigen
Irgendwas vergessen ??????????
Bye