From: ms Date: Thu, 6 Jul 2006 13:33:16 +0000 (+0000) Subject: Hinzugefügt: X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=commitdiff_plain;h=f8ae001e18c53467b370b9ec3f420ca8c21b62c5;ds=sidebyside Hinzugefügt: * Nodes für Framebuffer. Geändert: * Bootvorgang für Laufbalken bearbeitet. * Installer sollte Bootsplash in initrd installieren. * Neue Boot-Bilder. git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@199 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- diff --git a/config/bootsplash/config/bootsplash-1024x768.cfg b/config/bootsplash/config/bootsplash-1024x768.cfg deleted file mode 100644 index 4a30a3e48..000000000 --- a/config/bootsplash/config/bootsplash-1024x768.cfg +++ /dev/null @@ -1,48 +0,0 @@ -# This is the configuration file for the 1024x768 bootsplash picture. -# -# This file is necessary to specify the coordinates of the text box on -# the splash screen. -# -# Comments are welcome by stepan@suse.de - -# config file version -version=3 - -# should the picture be displayed? -state=1 - -# fgcolor is the text forground color. -# bgcolor is the text background (i.e. transparent) color. -fgcolor=7 -bgcolor=0 - -# (tx, ty) are the (x, y) coordinates of the text window in pixels. -# tw/th is the width/height of the text window in pixels. -tx=0 -ty=0 -tw=1024 -th=768 - -# name of the picture file (full path recommended) -jpeg=/etc/bootsplash/themes/Linux/images/bootsplash-1024x768.jpg -silentjpeg=/etc/bootsplash/themes/Linux/images/silent-1024x768.jpg - -progress_enable=1 - -# background -box silent noover 204 666 820 686 #515151 -box silent inter 204 666 204 686 #b77200 #f2b700 #b77200 #f2b700 -box silent 204 666 820 686 #b77200 #f2b700 #b77200 #f2b700 -#box silent inter 204 666 204 686 #f2b700 #b77200 #b77200 #f2b700 -#box silent 204 666 820 686 #f2b700 #b77200 #b77200 #f2b700 - - -# black border -box silent 204 665 820 665 #b5b5b5 -box silent 204 687 820 687 #b5b5b5 -box silent 203 665 203 687 #b5b5b5 -box silent 820 665 820 687 #b5b5b5 - - -overpaintok=1 - diff --git a/config/bootsplash/images/bootsplash-1024x768.jpg b/config/bootsplash/images/bootsplash-1024x768.jpg deleted file mode 100644 index b091da17a..000000000 Binary files a/config/bootsplash/images/bootsplash-1024x768.jpg and /dev/null differ diff --git a/config/bootsplash/images/silent-1024x768.jpg b/config/bootsplash/images/silent-1024x768.jpg deleted file mode 100644 index 9fe7cf7c7..000000000 Binary files a/config/bootsplash/images/silent-1024x768.jpg and /dev/null differ diff --git a/config/bootsplash/ipfire1/config/bootsplash-1024x768.cfg b/config/bootsplash/ipfire1/config/bootsplash-1024x768.cfg deleted file mode 100644 index 136594758..000000000 --- a/config/bootsplash/ipfire1/config/bootsplash-1024x768.cfg +++ /dev/null @@ -1,41 +0,0 @@ -# This is a bootsplash configuration file for -# theme PCLinuxOS LightedGrass, resolution 1024x768. -# -# See www.bootsplash.org for more information. -# Created by Chris Piek - -# config file version -version=3 - -# should the picture be displayed? -state=1 - -# fgcolor is the text forground color. -# bgcolor is the text background (i.e. transparent) color. -fgcolor=7 -bgcolor=0 - -# (tx, ty) are the (x, y) coordinates of the text window in pixels. -# tw/th is the width/height of the text window in pixels. -tx=5 -ty=55 -tw=1019 -th=658 - -# name of the picture file (full path recommended) -jpeg=/etc/bootsplash/themes/ipfire1/images/bootsplash-1024x768.jpg -silentjpeg=/etc/bootsplash/themes/ipfire1/images/silent-1024x768.jpg - -progress_enable=1 - -# background -#box silent noover 367 377 656 351 #000000 -box silent inter 367 378 367 350 #ffffff #ffffff #000000 #000000 -box silent 367 378 656 350 #ffffff #ffffff #000000 #000000 -# black border -box silent 367 377 656 377 #ffffff -box silent 367 351 656 351 #ffffff -box silent 367 377 367 351 #ffffff -box silent 656 377 656 351 #ffffff - -overpaintok=1 diff --git a/config/bootsplash/ipfire1/images/bootsplash-1024x768.jpg b/config/bootsplash/ipfire1/images/bootsplash-1024x768.jpg deleted file mode 100644 index e5cab4248..000000000 Binary files a/config/bootsplash/ipfire1/images/bootsplash-1024x768.jpg and /dev/null differ diff --git a/config/bootsplash/ipfire1/images/silent-1024x768.jpg b/config/bootsplash/ipfire1/images/silent-1024x768.jpg deleted file mode 100644 index 3d15f356a..000000000 Binary files a/config/bootsplash/ipfire1/images/silent-1024x768.jpg and /dev/null differ diff --git a/config/bootsplash/ipfire2/config/bootsplash-1024x768.cfg b/config/bootsplash/ipfire2/config/bootsplash-1024x768.cfg index 329e29c29..3be2d9c6b 100644 --- a/config/bootsplash/ipfire2/config/bootsplash-1024x768.cfg +++ b/config/bootsplash/ipfire2/config/bootsplash-1024x768.cfg @@ -18,14 +18,14 @@ bgcolor=0 # (tx, ty) are the (x, y) coordinates of the text window in pixels. # tw/th is the width/height of the text window in pixels. -tx=0 -ty=0 -tw=1024 -th=768 +tx=5 +ty=110 +tw=1014 +th=658 # name of the picture file (full path recommended) -jpeg=/etc/bootsplash/themes/ipfire2/images/bootsplash-1024x768.jpg -silentjpeg=/etc/bootsplash/themes/ipfire2/images/silent-1024x768.jpg +jpeg=/etc/bootsplash/themes/current/images/bootsplash-1024x768.jpg +silentjpeg=/etc/bootsplash/themes/current/images/silent-1024x768.jpg progress_enable=1 diff --git a/config/bootsplash/ipfire2/images/bootsplash-1024x768.jpg b/config/bootsplash/ipfire2/images/bootsplash-1024x768.jpg index b091da17a..7fc980047 100644 Binary files a/config/bootsplash/ipfire2/images/bootsplash-1024x768.jpg and b/config/bootsplash/ipfire2/images/bootsplash-1024x768.jpg differ diff --git a/config/bootsplash/ipfire2/images/silent-1024x768.jpg b/config/bootsplash/ipfire2/images/silent-1024x768.jpg index 9fe7cf7c7..306421201 100644 Binary files a/config/bootsplash/ipfire2/images/silent-1024x768.jpg and b/config/bootsplash/ipfire2/images/silent-1024x768.jpg differ diff --git a/config/grub/grub.conf b/config/grub/grub.conf index 2b9b4b89f..1bd1cc0c3 100644 --- a/config/grub/grub.conf +++ b/config/grub/grub.conf @@ -5,17 +5,21 @@ background = ffffff splashimage (hd0,0)/grub/ipfire.xpm.gz title IPFire root (hd0,0) - kernel /vmlinuz root=ROOT panic=10 acpi=off vga=0x317 splash=silent ro + kernel /vmlinuz root=ROOT panic=10 acpi=off vga=791 splash=silent ro + initrd /initrd.splash savedefault title IPFire SMP root (hd0,0) - kernel /vmlinuz-smp root=ROOT panic=10 acpi=off vga=0x317 splash=silent ro + kernel /vmlinuz-smp root=ROOT panic=10 acpi=off vga=791 splash=silent ro + initrd /initrd.splash savedefault title IPFire (ACPI enabled) root (hd0,0) - kernel /vmlinuz root=ROOT panic=10 vga=0x317 splash=silent ro + kernel /vmlinuz root=ROOT panic=10 vga=791 splash=silent ro + initrd /initrd.splash savedefault title IPFire SMP (ACPI HT enabled) root (hd0,0) - kernel /vmlinuz-smp root=ROOT panic=10 acpi=ht vga=0x317 splash=silent ro + kernel /vmlinuz-smp root=ROOT panic=10 acpi=ht vga=791 splash=silent ro + initrd /initrd.splash savedefault diff --git a/config/grub/scsigrub.conf b/config/grub/scsigrub.conf index 5f3c90841..7aed9b688 100644 --- a/config/grub/scsigrub.conf +++ b/config/grub/scsigrub.conf @@ -5,21 +5,21 @@ background = ffffff splashimage (hd0,0)/grub/ipfire.xpm.gz title IPFire root (hd0,0) - kernel /vmlinuz root=ROOT panic=10 init=/linuxrc acpi=off vga=0x317 rw - initrd /ipcoprd.img + kernel /vmlinuz root=ROOT panic=10 init=/linuxrc acpi=off vga=719 splash=silent rw + initrd /ipfirerd.img savedefault title IPFire SMP root (hd0,0) - kernel /vmlinuz-smp root=ROOT panic=10 init=/linuxrc acpi=off vga=0x317 rw - initrd /ipcoprd-smp.img + kernel /vmlinuz-smp root=ROOT panic=10 init=/linuxrc acpi=off vga=719 rw + initrd /ipfirerd-smp.img savedefault title IPFire (ACPI enabled) root (hd0,0) - kernel /vmlinuz root=ROOT panic=10 init=/linuxrc rw - initrd /ipcoprd.img + kernel /vmlinuz root=ROOT panic=10 init=/linuxrc vga=719 splash=silent rw + initrd /ipfirerd.img savedefault title IPFire SMP (ACPI HT enabled) root (hd0,0) - kernel /vmlinuz-smp root=ROOT panic=10 init=/linuxrc acpi=ht rw - initrd /ipcoprd-smp.img + kernel /vmlinuz-smp root=ROOT panic=10 init=/linuxrc acpi=ht vga=719 splash=silent rw + initrd /ipfirerd-smp.img savedefault diff --git a/config/kernel/install-message b/config/kernel/install-message index efce1bbc2..0541951d2 100644 --- a/config/kernel/install-message +++ b/config/kernel/install-message @@ -1,21 +1,21 @@ Willkommen bei IPFire - GNU GPL version 2. - ACHTUNG! Dieser Installationsprozess löscht alle + ACHTUNG! Dieser Installationsprozess loescht alle vorhandenen Partitionen auf der Festplatte. - -------------------------------------------------- - ---- ALLE EXISTIERENDEN DATEN WERDEN GELÖSCHT ---- - ---- ALL YOUR EXISTING DATA WILL BE DESTROYED ---- - -------------------------------------------------- + --------------------------------------------------- + ---- ALLE EXISTIERENDEN DATEN WERDEN GELOESCHT ---- + ---- ALL YOUR EXISTING DATA WILL BE DESTROYED ---- + --------------------------------------------------- - Drücken Sie ENTER um die IPFire-Installation + Druecken Sie ENTER um die IPFire-Installation zu starten. Gibt es Probleme, so versuchen Sie diese Optionen... nopcmcia um die PCMCIA-Detektierung zu deaktivieren. - nousb um die USB-Unterstützung auszuschalten. + nousb um die USB-Unterstuetzung auszuschalten. nousborpcmcia schaltet USB & PCMCIA aus. dma schaltet IDE-DMA ein (SiS chipset workaround) diff --git a/lfs/bootsplash b/lfs/bootsplash index cebf93ceb..fedaa847d 100644 --- a/lfs/bootsplash +++ b/lfs/bootsplash @@ -74,7 +74,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < /usr/src/src/patches/bootsplash-3.2_makefile.patch cd $(DIR_APP)/Utilities && make - cd $(DIR_APP)/Utilities && cp -f splash fbresolution fbmngplay /sbin + cd $(DIR_APP)/Utilities && cp -f splash fbresolution fbmngplay fbtruetype /sbin cd $(DIR_APP)/Scripts && cp -f bootanim /sbin cd $(DIR_APP)/Scripts && chmod +x /sbin/bootanim -mkdir -p /boot/splash diff --git a/lfs/makedev b/lfs/makedev index afb86f82e..061309dc9 100644 --- a/lfs/makedev +++ b/lfs/makedev @@ -121,4 +121,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # necessary, but it must be present if it appears in /etc/mtab cd /dev && ln -sf fd0 floppy + # Nodes for Framebuffer + for i in 0 1 2 3 4 5 6 7; do + mknod /dev/fb$i c 29 $[$i * 32] + done + @$(POSTBUILD) diff --git a/src/boot.d/01-unmountinitrd b/src/boot.d/01-unmountinitrd new file mode 100644 index 000000000..d0c0ed272 --- /dev/null +++ b/src/boot.d/01-unmountinitrd @@ -0,0 +1,6 @@ +#!/bin/sh +# Unmount the initrd, if necessary +if grep -q /initrd /proc/mounts && ! grep -q /initrd/loopfs /proc/mounts ; then + umount /initrd >/dev/null 2>&1 + blockdev --flushbufs /dev/ram0 >/dev/null 2>&1 +fi diff --git a/src/boot.d/02-sethostname b/src/boot.d/02-sethostname new file mode 100644 index 000000000..0907a7c92 --- /dev/null +++ b/src/boot.d/02-sethostname @@ -0,0 +1,7 @@ +#!/bin/sh +echo "Setting hostname" +if [ -z "$DOMAINNAME" ]; then + hostname $HOSTNAME +else + hostname ${HOSTNAME}.${DOMAINNAME} +fi diff --git a/src/boot.d/03-loadkeymap b/src/boot.d/03-loadkeymap new file mode 100644 index 000000000..292fba548 --- /dev/null +++ b/src/boot.d/03-loadkeymap @@ -0,0 +1,4 @@ +#!/bin/sh +if [ "$KEYMAP" != "" ]; then + loadkeys $KEYMAP +fi diff --git a/src/boot.d/04-initpowermanagement b/src/boot.d/04-initpowermanagement new file mode 100644 index 000000000..99414deac --- /dev/null +++ b/src/boot.d/04-initpowermanagement @@ -0,0 +1,11 @@ +#!/bin/sh +# Initializing Power Management ACPI first, then APM. +# APM won't load if ACPI is initialized anyway. +echo "Initializing Power Management" +modprobe ac > /dev/null 2>&1 +modprobe battery > /dev/null 2>&1 +modprobe button > /dev/null 2>&1 +modprobe fan > /dev/null 2>&1 +modprobe processor > /dev/null 2>&1 +modprobe thermal > /dev/null 2>&1 +modprobe apm > /dev/null 2>&1 diff --git a/src/boot.d/05-initusb b/src/boot.d/05-initusb new file mode 100644 index 000000000..c9bf082bc --- /dev/null +++ b/src/boot.d/05-initusb @@ -0,0 +1,22 @@ +#!/bin/sh +# Initialize USB controllers +echo "Initializing USB controllers" +aliases=`/sbin/modprobe -c | awk '/^alias usb-controller/ { print $3 }'` +if [ -n "$aliases" -a "$aliases" != "off" ] ; then + modprobe usbcore + mount -n -t usbdevfs usbdevfs /proc/bus/usb + for alias in $aliases ; do + [ "$alias" != "off" ] && modprobe $alias + done + + echo "Initializing USB storage devices" + modprobe usb-storage + modprobe sd_mod + + echo "Initializing USB keyboard" + modprobe hid + modprobe keybdev + + echo "Initializing USB modems" + modprobe acm +fi diff --git a/src/boot.d/06-mountrootfs b/src/boot.d/06-mountrootfs new file mode 100644 index 000000000..a8abb4224 --- /dev/null +++ b/src/boot.d/06-mountrootfs @@ -0,0 +1,29 @@ +#!/bin/sh +STRING="Checking root filesystem" + +fsck -R -T -a -C / +RC=$? + +if [ "$RC" = "0" ]; then + echo "$STRING: Success" +elif [ "$RC" = "1" ]; then + echo "$STRING: Passed" +fi + +# A return of 2 or higher means there were serious problems. +if [ $RC -gt 1 ]; then + echo "$STRING: Failed" + echo "*** An error occurred during the file system check." + echo "*** Dropping you to a shell; the system will reboot" + echo "*** when you leave the shell." + export PS1="(Repair filesystem) \# # " + sulogin + echo "Unmounting filesystems" + umount -a + mount -n -o remount,ro / + echo "Automatic reboot in progress." + reboot -f +fi + +echo "Mounting root read/write" +mount -n -o remount,rw / diff --git a/src/boot.d/07-mountotherfs b/src/boot.d/07-mountotherfs new file mode 100644 index 000000000..4065546ed --- /dev/null +++ b/src/boot.d/07-mountotherfs @@ -0,0 +1,34 @@ +#!/bin/sh +STRING="Checking other filesystems" +fsck -R -T -a -C -A +RC=$? + +if [ "$RC" = "0" ]; then + echo "$STRING: Success" +elif [ "$RC" = "1" ]; then + echo "$STRING: Passed" +fi + +# A return of 2 or higher means there were serious problems. +if [ $RC -gt 1 ]; then + echo "$STRING: Failed" + echo "*** An error occurred during the file system check." + echo "*** Dropping you to a shell; the system will reboot" + echo "*** when you leave the shell." + export PS1="(Repair filesystem) \# # " + sulogin + echo "Unmounting filesystems" + umount -n -a + mount -n -o remount,ro / + echo "Automatic reboot in progress." + reboot -f +fi + +echo "Mounting other filesystems" +mount -a -n + +if [ -e /swapfile ]; then + echo "Turning on swap" + chmod 600 /swapfile + swapon /swapfile +fi diff --git a/src/boot.d/08-updatesystem.map b/src/boot.d/08-updatesystem.map new file mode 100644 index 000000000..0b6f4333e --- /dev/null +++ b/src/boot.d/08-updatesystem.map @@ -0,0 +1,9 @@ +#!/bin/sh +echo "Updating System.map file location" +if [ -L /boot/System.map -a -r /boot/System.map-`uname -r` -a \ + ! /boot/System.map -ef /boot/System.map-`uname -r` ]; then + ln -s -f System.map-`uname -r` /boot/System.map +fi +if [ ! -e /boot/System.map -a -r /boot/System.map-`uname -r` ]; then + ln -s -f System.map-`uname -r` /boot/System.map +fi diff --git a/src/boot.d/09-updatefstab b/src/boot.d/09-updatefstab new file mode 100644 index 000000000..5b9111abc --- /dev/null +++ b/src/boot.d/09-updatefstab @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Updating /etc/fstab to reflect removable devices" +/usr/sbin/updfstab diff --git a/src/boot.d/10-setkernelsettings b/src/boot.d/10-setkernelsettings new file mode 100644 index 000000000..0d1780e26 --- /dev/null +++ b/src/boot.d/10-setkernelsettings @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Setting kernel settings" +/sbin/sysctl -e -p /etc/sysctl.conf >/dev/null diff --git a/src/boot.d/11-startflash b/src/boot.d/11-startflash new file mode 100644 index 000000000..2db3cb75e --- /dev/null +++ b/src/boot.d/11-startflash @@ -0,0 +1,7 @@ +#!/bin/sh +if [ -e /etc/FLASH ]; then + if [ -e /etc/rc.d/rc.flash.up ]; then + echo "Decompressing Flash" + . /etc/rc.d/rc.flash.up + fi +fi diff --git a/src/boot.d/12-setconsole b/src/boot.d/12-setconsole new file mode 100644 index 000000000..2215aaa0f --- /dev/null +++ b/src/boot.d/12-setconsole @@ -0,0 +1,32 @@ +#!/bin/sh +echo "Setting locale" +LANG=en_US.utf8 +export LANG + +echo "Setting consolefonts" +eval $(/usr/local/bin/readhash /var/ipfire/main/settings) +for i in 2 3 4 5 6; do + > /dev/tty$i +done +if [ "$LANGUAGE" = "el" ]; then + /usr/bin/unicode_start iso07u-16 +elif [ "$LANGUAGE" = "pt" -o "$LANGUAGE" = "bz" ]; then + /usr/bin/unicode_start lat1-16 +elif [ "$LANGUAGE" = "cs" -o "$LANGUAGE" = "hu" -o "$LANGUAGE" = "pl" -o "$LANGUAGE" = "sk" ]; then + /usr/bin/unicode_start lat2-16 +elif [ "$LANGUAGE" = "tr" ]; then + /usr/bin/unicode_start lat5-16 +elif [ "$LANGUAGE" = "vi" ]; then + /usr/bin/unicode_start viscii10-8x16 +else + /usr/bin/unicode_start lat0-16 +fi + + +#/sbin/splash -n -s -u 0 /boot/splash/config/bootsplash-1024x768.cfg +/sbin/splash -n -s -u 1 /boot/splash/config/bootsplash-1024x768.cfg +/sbin/splash -n -s -u 2 /boot/splash/config/bootsplash-1024x768.cfg +/sbin/splash -n -s -u 3 /boot/splash/config/bootsplash-1024x768.cfg +/sbin/splash -n -s -u 4 /boot/splash/config/bootsplash-1024x768.cfg +/sbin/splash -n -s -u 5 /boot/splash/config/bootsplash-1024x768.cfg +/sbin/splash -n -s -u 11 /boot/splash/config/bootsplash-1024x768.cfg diff --git a/src/boot.d/13-depmod b/src/boot.d/13-depmod new file mode 100644 index 000000000..7098185ca --- /dev/null +++ b/src/boot.d/13-depmod @@ -0,0 +1,6 @@ +#!/bin/sh +echo "Update modules dependencies when necessary" +if [ -e /var/run/need-depmod-`uname -r` ]; then + /sbin/depmod -a + /bin/rm -f /var/run/need-depmod-`uname -r` +fi diff --git a/src/boot.d/14-clearoldfiles b/src/boot.d/14-clearoldfiles new file mode 100644 index 000000000..c5e84aa78 --- /dev/null +++ b/src/boot.d/14-clearoldfiles @@ -0,0 +1,7 @@ +#!/bin/sh +echo "Clearing old files" +rm -f /var/run/{*.pid,*.sem,*.tdb} +rm -f /var/run/dhcpcd-*.pid +rm -f /var/lock/{LCK..tty*,rc.updatered.lock} +rm -f /var/ipfire/dhcpc/{*.pid,*.cache,*.info} +rm -f /var/ipfire/red/{active,eciadsl-synch-done} diff --git a/src/boot.d/15-setclock b/src/boot.d/15-setclock new file mode 100644 index 000000000..32b49249d --- /dev/null +++ b/src/boot.d/15-setclock @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Setting the clock" +/sbin/hwclock --hctosys diff --git a/src/boot.d/16-cleanwtmputmp b/src/boot.d/16-cleanwtmputmp new file mode 100644 index 000000000..b89a82eb6 --- /dev/null +++ b/src/boot.d/16-cleanwtmputmp @@ -0,0 +1,6 @@ +#!/bin/sh +# Cleaning up wtmp/utmp files +>/var/run/utmp +touch /var/log/wtmp +chgrp utmp /var/run/utmp /var/log/wtmp +chmod 0664 /var/run/utmp /var/log/wtmp diff --git a/src/boot.d/17-runisapnp b/src/boot.d/17-runisapnp new file mode 100644 index 000000000..21f169846 --- /dev/null +++ b/src/boot.d/17-runisapnp @@ -0,0 +1,5 @@ +#!/bin/sh +if [ -x /usr/sbin/isapnp -a -f /var/ipfire/isapnp/isapnp.conf -a ! -f /proc/isapnp ]; then + echo "Running isapnp" + /usr/sbin/isapnp /var/ipfire/isapnp/isapnp.conf 2>/dev/null +fi diff --git a/src/boot.d/18-sshcerts b/src/boot.d/18-sshcerts new file mode 100644 index 000000000..85106481a --- /dev/null +++ b/src/boot.d/18-sshcerts @@ -0,0 +1,13 @@ +#!/bin/sh +if [ ! -e /etc/ssh/ssh_host_key ]; then + echo "Generating SSH RSA1 key. This may take several minutes." + /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N "" +fi +if [ ! -e /etc/ssh/ssh_host_rsa_key ]; then + echo "Generating SSH RSA key. This may take several minutes." + /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" +fi +if [ ! -e /etc/ssh/ssh_host_dsa_key ]; then + echo "Generating SSH DSA key. This may take several minutes." + /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N "" +fi diff --git a/src/boot.d/19-httpcerts b/src/boot.d/19-httpcerts new file mode 100644 index 000000000..7b3181d1c --- /dev/null +++ b/src/boot.d/19-httpcerts @@ -0,0 +1,7 @@ +#!/bin/sh +# https certificate +if [ -f /etc/httpd/server.key -a -f /etc/httpd/server.crt -a -f /etc/httpd/server.csr ]; then + /usr/local/bin/httpscert read +else + /usr/local/bin/httpscert new +fi diff --git a/src/boot.d/20-rotatelogs b/src/boot.d/20-rotatelogs new file mode 100644 index 000000000..116a672b5 --- /dev/null +++ b/src/boot.d/20-rotatelogs @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Rotating logs" +/usr/sbin/logrotate /etc/logrotate.conf diff --git a/src/boot.d/21-startsyslogd b/src/boot.d/21-startsyslogd new file mode 100644 index 000000000..fc79c3aec --- /dev/null +++ b/src/boot.d/21-startsyslogd @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Starting syslogd" +/usr/sbin/syslogd -m 0 diff --git a/src/boot.d/22-startklogd b/src/boot.d/22-startklogd new file mode 100644 index 000000000..0aab61c3b --- /dev/null +++ b/src/boot.d/22-startklogd @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Starting klogd" +/usr/sbin/klogd -u klogd -j /var/empty diff --git a/src/boot.d/23-startnetwork b/src/boot.d/23-startnetwork new file mode 100644 index 000000000..dcee7cd4f --- /dev/null +++ b/src/boot.d/23-startnetwork @@ -0,0 +1,4 @@ +#!/bin/sh +echo "Running /etc/rc.d/rc.network" +. /etc/rc.d/rc.network +echo 7200 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established diff --git a/src/boot.d/24-dumpbootmsg b/src/boot.d/24-dumpbootmsg new file mode 100644 index 000000000..e3905fb9b --- /dev/null +++ b/src/boot.d/24-dumpbootmsg @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Dumping boot messages" +dmesg > /var/log/dmesg diff --git a/src/boot.d/25-hddshutdown b/src/boot.d/25-hddshutdown new file mode 100644 index 000000000..e9f7cdd68 --- /dev/null +++ b/src/boot.d/25-hddshutdown @@ -0,0 +1,21 @@ +#!/bin/sh +if [ -e /var/log/rrd/disk.rrd ]; then echo "Adjusting graphs to compensate for boot"; \ + /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk.rrd","-t","readsect:writesect","N:U:U");'; fi +if [ -e /var/log/rrd/disk-hda.rrd ]; then \ + /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hda.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi +if [ -e /var/log/rrd/disk-hdb.rrd ]; then \ + /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdb.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi +if [ -e /var/log/rrd/disk-hdc.rrd ]; then \ + /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdc.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi +if [ -e /var/log/rrd/disk-hdd.rrd ]; then \ + /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdd.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi +if [ -e /var/log/rrd/disk-hde.rrd ]; then \ + /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hde.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi +if [ -e /var/log/rrd/disk-hdf.rrd ]; then \ + /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdf.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi +if [ -e /var/log/rrd/disk-hdg.rrd ]; then \ + /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdg.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi +if [ -e /var/log/rrd/disk-hdh.rrd ]; then \ + /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdh.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi +rm -rf /tmp/hddshutdown-* +/usr/local/bin/hddshutdown diff --git a/src/boot.d/30-startcron b/src/boot.d/30-startcron new file mode 100644 index 000000000..7e35fd221 --- /dev/null +++ b/src/boot.d/30-startcron @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Starting crond" +/usr/sbin/fcron diff --git a/src/boot.d/31-startsnort b/src/boot.d/31-startsnort new file mode 100644 index 000000000..de7f04151 --- /dev/null +++ b/src/boot.d/31-startsnort @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Starting Snort (if enabled)" +/usr/local/bin/restartsnort red blue orange green diff --git a/src/boot.d/32-starthttpd b/src/boot.d/32-starthttpd new file mode 100644 index 000000000..759052946 --- /dev/null +++ b/src/boot.d/32-starthttpd @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Starting httpd" +/usr/sbin/httpd diff --git a/src/boot.d/33-startdhcp b/src/boot.d/33-startdhcp new file mode 100644 index 000000000..302417681 --- /dev/null +++ b/src/boot.d/33-startdhcp @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Starting dhcpd (if enabled)" +/usr/local/bin/restartdhcp diff --git a/src/boot.d/34-startssh b/src/boot.d/34-startssh new file mode 100644 index 000000000..3f5643795 --- /dev/null +++ b/src/boot.d/34-startssh @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Starting sshd (if enabled)" +/usr/local/bin/restartssh diff --git a/src/boot.d/35-startntp b/src/boot.d/35-startntp new file mode 100644 index 000000000..0d5824fa2 --- /dev/null +++ b/src/boot.d/35-startntp @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Starting ntpd (if enabled)" +/usr/local/bin/restartntpd diff --git a/src/boot.d/36-startsquid b/src/boot.d/36-startsquid new file mode 100644 index 000000000..9c9c23518 --- /dev/null +++ b/src/boot.d/36-startsquid @@ -0,0 +1,5 @@ +#!/bin/sh +if [ -e "/var/ipfire/proxy/squid.conf" ]; then + echo "Starting squid (if enabled)" + /usr/local/bin/restartsquid +fi diff --git a/src/boot.d/40-startopenvpn b/src/boot.d/40-startopenvpn new file mode 100644 index 000000000..8c8ebd34a --- /dev/null +++ b/src/boot.d/40-startopenvpn @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Starting openvpn (if enabled)" +/usr/local/bin/openvpnctrl --start-daemon-only >& /dev/null diff --git a/src/boot.d/99-rclocal b/src/boot.d/99-rclocal new file mode 100644 index 000000000..83140925c --- /dev/null +++ b/src/boot.d/99-rclocal @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Running rc.local" +. /etc/rc.d/rc.local diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index 565ad1f04..2b34d6221 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -897,13 +897,13 @@ RESTORE: driver = strtok(line, "."); fprintf(flog, "Detected SCSI driver %s\n",driver); if (strlen(driver) > 1) { - fprintf(flog, "Fixing up ipcoprd.img\n"); + fprintf(flog, "Fixing up ipfirerd.img\n"); mysystem("/bin/chroot /harddisk /sbin/modprobe loop"); mkdir("/harddisk/initrd", S_IRWXU|S_IRWXG|S_IRWXO); - snprintf(commandstring, STRING_SIZE, "/bin/chroot /harddisk /sbin/mkinitrd --with=scsi_mod --with=%s --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipcoprd.img %s", driver, KERNEL_VERSION); + snprintf(commandstring, STRING_SIZE, "/bin/chroot /harddisk /sbin/mkinitrd --with=scsi_mod --with=%s --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipfirerd.img %s", driver, KERNEL_VERSION); runcommandwithstatus(commandstring, ctr[TR_BUILDING_INITRD]); #ifdef __i386__ - snprintf(commandstring, STRING_SIZE, "/bin/chroot /harddisk /sbin/mkinitrd --with=scsi_mod --with=%s --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipcoprd-smp.img %s-smp", driver, KERNEL_VERSION); + snprintf(commandstring, STRING_SIZE, "/bin/chroot /harddisk /sbin/mkinitrd --with=scsi_mod --with=%s --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipfirerd-smp.img %s-smp", driver, KERNEL_VERSION); runcommandwithstatus(commandstring, ctr[TR_BUILDING_INITRD]); mysystem("/bin/chroot /harddisk /bin/mv /boot/grub/scsigrub.conf /boot/grub/grub.conf"); #endif @@ -918,10 +918,10 @@ RESTORE: if (pcmcia_disk) { fprintf(flog, "Detected SCSI driver PCMCIA\n"); - fprintf(flog, "Fixing up ipcoprd.img\n"); + fprintf(flog, "Fixing up ipfirerd.img\n"); mysystem("/bin/chroot /harddisk /sbin/modprobe loop"); mkdir("/harddisk/initrd", S_IRWXU|S_IRWXG|S_IRWXO); - snprintf(commandstring, STRING_SIZE, "/bin/chroot /harddisk /sbin/pcinitrd -r %s /boot/ipcoprd.img", KERNEL_VERSION); + snprintf(commandstring, STRING_SIZE, "/bin/chroot /harddisk /sbin/pcinitrd -r %s /boot/ipfirerd.img", KERNEL_VERSION); mysystem(commandstring); #ifdef __i386__ mysystem("/bin/chroot /harddisk /bin/mv /boot/grub/scsigrub.conf /boot/grub/grub.conf"); @@ -952,6 +952,11 @@ RESTORE: errorbox(ctr[TR_UNABLE_TO_INSTALL_GRUB]); goto EXIT; } + /* Set Bootsplash */ + if ((handle = fopen("/scsidriver", "r"))) + mysystem("/bin/chroot /harddisk /sbin/splash -s -f /boot/splash/config/bootsplash-1024x768.cgf >> /boot/ipfirerd.img"); + else + mysystem("/bin/chroot /harddisk /sbin/splash -s -f /boot/splash/config/bootsplash-1024x768.cgf > /boot/initrd.splash"); mysystem("/bin/chroot /harddisk /bin/umount -n /proc"); #endif #ifdef __alpha__ diff --git a/src/rc.d/rc.sysinit b/src/rc.d/rc.sysinit index 28b7c2c84..77660504a 100644 --- a/src/rc.d/rc.sysinit +++ b/src/rc.d/rc.sysinit @@ -1,6 +1,6 @@ #!/bin/sh # -# $Id: rc.sysinit,v 1.18.2.36 2005/12/01 20:13:08 eoberlander Exp $ +# rc.sysinit by the IPFire Team # eval $(/usr/local/bin/readhash /var/ipfire/main/settings) @@ -10,273 +10,29 @@ umask 022 PATH=/bin:/sbin:/usr/bin:/usr/sbin export PATH +PROGRESS=0 +NUMBEROFSCRIPTS=`ls -l /etc/boot.d | grep ^- | wc -l` +progressbar() +{ + if [ $# != 1 ] + then + echo "Usage: progressbar {progress}" + exit 1 + fi + echo "show $(( 65534 * $1 / $NUMBEROFSCRIPTS ))" > /proc/splash +} + echo "Mounting /proc filesystem" mount -n -t proc /proc /proc -# Unmount the initrd, if necessary -if grep -q /initrd /proc/mounts && ! grep -q /initrd/loopfs /proc/mounts ; then - umount /initrd >/dev/null 2>&1 - blockdev --flushbufs /dev/ram0 >/dev/null 2>&1 -fi - -echo "Setting hostname" -if [ -z "$DOMAINNAME" ]; then - hostname $HOSTNAME -else - hostname ${HOSTNAME}.${DOMAINNAME} -fi - -if [ "$KEYMAP" != "" ]; then - loadkeys $KEYMAP -fi - -# Initializing Power Management ACPI first, then APM. -# APM won't load if ACPI is initialized anyway. -echo "Initializing Power Management" -modprobe ac > /dev/null 2>&1 -modprobe battery > /dev/null 2>&1 -modprobe button > /dev/null 2>&1 -modprobe fan > /dev/null 2>&1 -modprobe processor > /dev/null 2>&1 -modprobe thermal > /dev/null 2>&1 -modprobe apm > /dev/null 2>&1 - -# Initialize USB controllers -echo "Initializing USB controllers" -aliases=`/sbin/modprobe -c | awk '/^alias usb-controller/ { print $3 }'` -if [ -n "$aliases" -a "$aliases" != "off" ] ; then - modprobe usbcore - mount -n -t usbdevfs usbdevfs /proc/bus/usb - for alias in $aliases ; do - [ "$alias" != "off" ] && modprobe $alias - done - - echo "Initializing USB storage devices" - modprobe usb-storage - modprobe sd_mod - - echo "Initializing USB keyboard" - modprobe hid - modprobe keybdev - - echo "Initializing USB modems" - modprobe acm -fi - -STRING="Checking root filesystem" - -fsck -R -T -a -C / -RC=$? - -if [ "$RC" = "0" ]; then - echo "$STRING: Success" -elif [ "$RC" = "1" ]; then - echo "$STRING: Passed" -fi - -# A return of 2 or higher means there were serious problems. -if [ $RC -gt 1 ]; then - echo "$STRING: Failed" - echo "*** An error occurred during the file system check." - echo "*** Dropping you to a shell; the system will reboot" - echo "*** when you leave the shell." - export PS1="(Repair filesystem) \# # " - sulogin - echo "Unmounting filesystems" - umount -a - mount -n -o remount,ro / - echo "Automatic reboot in progress." - reboot -f -fi - -echo "Mounting root read/write" -mount -n -o remount,rw / - -STRING="Checking other filesystems" -fsck -R -T -a -C -A -RC=$? - -if [ "$RC" = "0" ]; then - echo "$STRING: Success" -elif [ "$RC" = "1" ]; then - echo "$STRING: Passed" -fi - -# A return of 2 or higher means there were serious problems. -if [ $RC -gt 1 ]; then - echo "$STRING: Failed" - echo "*** An error occurred during the file system check." - echo "*** Dropping you to a shell; the system will reboot" - echo "*** when you leave the shell." - export PS1="(Repair filesystem) \# # " - sulogin - echo "Unmounting filesystems" - umount -n -a - mount -n -o remount,ro / - echo "Automatic reboot in progress." - reboot -f -fi - -echo "Mounting other filesystems" -mount -a -n - -if [ -e /swapfile ]; then - echo "Turning on swap" - chmod 600 /swapfile - swapon /swapfile -fi - -echo "Updating System.map file location" -if [ -L /boot/System.map -a -r /boot/System.map-`uname -r` -a \ - ! /boot/System.map -ef /boot/System.map-`uname -r` ]; then - ln -s -f System.map-`uname -r` /boot/System.map -fi -if [ ! -e /boot/System.map -a -r /boot/System.map-`uname -r` ]; then - ln -s -f System.map-`uname -r` /boot/System.map -fi - -echo "Updating /etc/fstab to reflect removable devices" -/usr/sbin/updfstab - -echo "Setting kernel settings" -/sbin/sysctl -e -p /etc/sysctl.conf >/dev/null +progressbar 0 -if [ -e /etc/FLASH ]; then - if [ -e /etc/rc.d/rc.flash.up ]; then - echo "Decompressing Flash" - . /etc/rc.d/rc.flash.up - fi -fi - -echo "Setting locale" -LANG=en_US.utf8 -export LANG - -echo "Setting consolefonts" -eval $(/usr/local/bin/readhash /var/ipfire/main/settings) -for i in 2 3 4 5 6; do - > /dev/tty$i +list=`find /etc/boot.d -type f -maxdepth 1 | sort` +for script in $list; do + . $script + let PROGRESS=$PROGRESS+1 + progressbar $PROGRESS done -if [ "$LANGUAGE" = "el" ]; then - /usr/bin/unicode_start iso07u-16 -elif [ "$LANGUAGE" = "pt" -o "$LANGUAGE" = "bz" ]; then - /usr/bin/unicode_start lat1-16 -elif [ "$LANGUAGE" = "cs" -o "$LANGUAGE" = "hu" -o "$LANGUAGE" = "pl" -o "$LANGUAGE" = "sk" ]; then - /usr/bin/unicode_start lat2-16 -elif [ "$LANGUAGE" = "tr" ]; then - /usr/bin/unicode_start lat5-16 -elif [ "$LANGUAGE" = "vi" ]; then - /usr/bin/unicode_start viscii10-8x16 -else - /usr/bin/unicode_start lat0-16 -fi - -echo "Update modules dependencies when necessary" -if [ -e /var/run/need-depmod-`uname -r` ]; then - /sbin/depmod -a - /bin/rm -f /var/run/need-depmod-`uname -r` -fi - -echo "Clearing old files" -rm -f /var/run/{*.pid,*.sem,*.tdb} -rm -f /var/run/dhcpcd-*.pid -rm -f /var/lock/{LCK..tty*,rc.updatered.lock} -rm -f /var/ipfire/dhcpc/{*.pid,*.cache,*.info} -rm -f /var/ipfire/red/{active,eciadsl-synch-done} - -echo "Setting the clock" -/sbin/hwclock --hctosys - -# Cleaning up wtmp/utmp files ->/var/run/utmp -touch /var/log/wtmp -chgrp utmp /var/run/utmp /var/log/wtmp -chmod 0664 /var/run/utmp /var/log/wtmp - -if [ -x /usr/sbin/isapnp -a -f /var/ipfire/isapnp/isapnp.conf -a ! -f /proc/isapnp ]; then - echo "Running isapnp" - /usr/sbin/isapnp /var/ipfire/isapnp/isapnp.conf 2>/dev/null -fi - -if [ ! -e /etc/ssh/ssh_host_key ]; then - echo "Generating SSH RSA1 key. This may take several minutes." - /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N "" -fi -if [ ! -e /etc/ssh/ssh_host_rsa_key ]; then - echo "Generating SSH RSA key. This may take several minutes." - /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" -fi -if [ ! -e /etc/ssh/ssh_host_dsa_key ]; then - echo "Generating SSH DSA key. This may take several minutes." - /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N "" -fi - -# https certificate -if [ -f /etc/httpd/server.key -a -f /etc/httpd/server.crt -a -f /etc/httpd/server.csr ]; then - /usr/local/bin/httpscert read -else - /usr/local/bin/httpscert new -fi - -echo "Rotating logs" -/usr/sbin/logrotate /etc/logrotate.conf - -echo "Starting syslogd" -/usr/sbin/syslogd -m 0 -echo "Starting klogd" -/usr/sbin/klogd -u klogd -j /var/empty - -echo "Running /etc/rc.d/rc.network" -. /etc/rc.d/rc.network - -echo "Dumping boot messages" -dmesg > /var/log/dmesg - -echo 7200 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established - -if [ -e /var/log/rrd/disk.rrd ]; then echo "Adjusting graphs to compensate for boot"; \ - /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk.rrd","-t","readsect:writesect","N:U:U");'; fi -if [ -e /var/log/rrd/disk-hda.rrd ]; then \ - /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hda.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi -if [ -e /var/log/rrd/disk-hdb.rrd ]; then \ - /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdb.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi -if [ -e /var/log/rrd/disk-hdc.rrd ]; then \ - /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdc.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi -if [ -e /var/log/rrd/disk-hdd.rrd ]; then \ - /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdd.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi -if [ -e /var/log/rrd/disk-hde.rrd ]; then \ - /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hde.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi -if [ -e /var/log/rrd/disk-hdf.rrd ]; then \ - /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdf.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi -if [ -e /var/log/rrd/disk-hdg.rrd ]; then \ - /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdg.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi -if [ -e /var/log/rrd/disk-hdh.rrd ]; then \ - /usr/bin/perl -e 'use RRDs;RRDs::update("/var/log/rrd/disk-hdh.rrd","-t","readsect:writesect:sleeping","N:U:U:U");'; fi -rm -rf /tmp/hddshutdown-* -/usr/local/bin/hddshutdown - -echo "Starting crond" -/usr/sbin/fcron -echo "Starting Snort (if enabled)" -/usr/local/bin/restartsnort red blue orange green -echo "Starting httpd" -/usr/sbin/httpd -echo "Starting dhcpd (if enabled)" -/usr/local/bin/restartdhcp -echo "Starting sshd (if enabled)" -/usr/local/bin/restartssh -echo "Starting ntpd (if enabled)" -/usr/local/bin/restartntpd -echo "Starting openvpn (if enabled)" -/usr/local/bin/openvpnctrl --start-daemon-only >& /dev/null - -if [ -e "/var/ipfire/proxy/squid.conf" ]; then - echo "Starting squid (if enabled)" - /usr/local/bin/restartsquid -fi - -echo "Running rc.local" -. /etc/rc.d/rc.local logger -t ipfire "IPFire started." @@ -285,3 +41,4 @@ logger -t ipfire "IPFire started." /usr/bin/beep -l 75 -f 1000 /usr/bin/beep -l 75 -f 2000 /usr/bin/beep -l 75 -f 3000 +