You are not logged in.

#1 2004-10-04 15:51:57

Net@Worm
Member
From: Moscow, Russia
Registered: 2004-05-02
Posts: 214

initscripts-bootsplash

Initscripts-bootsplash-0.7-1 package is broken. It contains old rc.sysinit script(0.6), and becouse of it, after installling this package arch wont start. There is rc.sysinit 0.7, that i modifed for bootsplash:

#!/bin/sh
#
# /etc/rc.sysinit
#

. /etc/rc.conf
. /etc/rc.d/functions

echo " "
printhl "Arch Linux v0.7 $C_OTHER(${C_H2}Wombat$C_OTHER)n"
printhl "${C_H2}http://www.archlinux.org"
printhl "Copyright 2002-2004 Judd Vinet"
printhl "Distributed under the GNU General Public License (GPL)"
printsep

# start up our mini logger until syslog takes over
/sbin/minilogd

# get ready for bootsplash
mount -n -t proc none /proc
[ "`grep sysfs /proc/filesystems`" ] && mount -n -t sysfs none /sys
if grep -qs silent /proc/splash; then
    BOOTSPLASH_NUMBER=$((`echo ${DAEMONS[@]} | sed 's/![^ t]*//g' | wc -w` + 
        `cat /etc/rc.{sysinit,multi,local} | grep -c -e status -e stat_busy`))
    BOOTSPLASH_DELTA=$((60000 / $BOOTSPLASH_NUMBER))
    BOOTSPLASH_PROGRESS=$((65535 - $BOOTSPLASH_NUMBER * $BOOTSPLASH_DELTA))
    [ -w /proc/splash ] && echo "show $BOOTSPLASH_PROGRESS" > /proc/splash
fi

# anything more serious than KERN_WARNING goes to the console
/bin/dmesg -n 3

if [ -e /dev/.devfsd -a -x /sbin/devfsd ]; then
    # Looks like devfs is running, use it
    status "Starting DevFS Daemon" /sbin/devfsd /dev
elif [ -x /etc/start_udev -a -d /sys/block ]; then
    # We have a start_udev script and /sys appears to be mounted, use UDev
    status "Starting UDev Daemon" /etc/start_udev
else
    # Static /dev, our last resort
    status "Using static /dev filesystem" /bin/true
fi

if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
    if [ -f /etc/lvmtab -a -x /sbin/vgchange ]; then
        # Kernel 2.4.x, LVM1 groups
        stat_busy "Activating LVM1 groups"
        /sbin/vgchange -a y
        stat_done
    elif [ -x /sbin/lvm -a -d /sys/block ]; then
        # Kernel 2.6.x, LVM2 groups
        stat_busy "Activating LVM2 groups"
        /sbin/lvm vgchange --ignorelockingfailure -a y
        stat_done
    fi
fi

status "Activating Swap" /sbin/swapon -a

status "Mounting Root Read-only" /bin/mount -n -o remount,ro /

if [ -x /sbin/fsck ]; then
    stat_busy "Checking Filesystems"
    /sbin/fsck -A -T -C -a
    if [ $? -gt 1 ]; then
        stat_fail
        echo
        echo "*****************  FILESYSTEM CHECK FAILED  ****************"
        echo "*                                                          *"
        echo "*  Please repair manually and reboot. Note that the root   *"
        echo "*  file system is currently mounted read-only. To remount  *"
        echo "*  it read-write type: mount -n -o remount,rw /            *"
        echo "*  When you exit the maintenance shell the system will     *"
        echo "*  reboot automatically.                                   *"
        echo "*                                                          *"
        echo "************************************************************"
        echo
        /sbin/sulogin -p
        echo "Automatic reboot in progress..."
        /bin/umount -a
        /bin/mount -n -o remount,ro /
        /sbin/reboot -f
        exit 0
    fi
    stat_done
fi

stat_busy "Mounting Local Filesystems"
/bin/mount -n -o remount,rw /
/bin/rm -f /etc/mtab*
# make sure / gets written to /etc/mtab
/bin/mount -o remount,rw /
# re-mount /proc and /sys so they can be written to /etc/mtab
umount /proc && mount -t proc none /proc
[ "`grep sysfs /proc/filesystems`" ] && umount /sys && mount -t sysfs none /sys
# now mount all the local filesystems
/bin/mount -a -t nonfs,nosmbfs,noncpfs,nosysfs
stat_done

stat_busy "Configuring System Clock"
if [ "$HARDWARECLOCK" = "UTC" ]; then
    /sbin/hwclock --utc --hctosys
else
    /sbin/hwclock --localtime --hctosys
fi
if [ ! -f /var/lib/hwclock/adjtime ]; then
    echo "0.0 0 0.0" > /var/lib/hwclock/adjtime
fi
if [ "$TIMEZONE" != "" ]; then
    /bin/ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
fi
stat_done

stat_busy "Removing Leftover Files"
/bin/rm -f /etc/nologin &> /dev/null
/bin/rm -f /etc/shutdownpid &> /dev/null
/bin/rm -f /var/locks/* &> /dev/null
/bin/rm -f /var/run/*.pid &> /dev/null
/bin/rm -f /var/run/daemons/* &>/dev/null
/bin/rm -rf /tmp/* /tmp/.* &> /dev/null
: > /var/run/utmp
stat_done

status "Updating Shared Library Links" /sbin/ldconfig

if [ "$HOSTNAME" != "" ]; then
    status "Setting Hostname: $HOSTNAME" /bin/hostname $HOSTNAME
fi

kernel_version=`uname -r`
if [ -e "/lib/modules/$kernel_version/modules.dep" ]; then
    new_mods=`/usr/bin/find /lib/modules/$kernel_version -type f -newer /lib/modules/$kernel_version/modules.dep`
    if [ ! -z "$new_mods" ]; then
        status "Updating Module Dependencies" /sbin/depmod -a
    fi
else
    status "Updating Module Dependencies" /sbin/depmod -a
fi

if [ -f /var/run/random-seed ]; then
    stat_busy "Initializing Random Seed"
    /bin/cat /var/run/random-seed >/dev/urandom
    stat_done
fi

if [ "$KEYMAP" != "" ]; then
    status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q $KEYMAP
fi

if [ "$CONSOLEFONT" != "" ]; then
    stat_busy "Loading Console Font: $CONSOLEFONT" 
    for i in `seq 1 12`; do 
        /usr/bin/setfont $CONSOLEFONT -C /dev/vc/${i}; 
    done
    stat_done
fi

# Load modules from the MODULES array defined in rc.conf
stat_busy "Loading Modules"
for mod in "${MODULES[@]}"; do
    if [[ `echo $mod | grep '^[^!]' | wc -l` -eq 1 ]]; then
        /sbin/modprobe $mod
    fi
done
stat_done

# Screen blanks after 15 minutes idle time
/usr/bin/setterm -blank 15

# set things up for bootsplash in rc.multi
if [ "$BOOTSPLASH_NUMBER" -a "$BOOTSPLASH_PROGRESS" ]; then
    let "BOOTSPLASH_NUMBER -= `grep -c -e status -e stat_busy /etc/rc.sysinit`"
    BOOTSPLASH_DELTA=$(((65535 - $BOOTSPLASH_PROGRESS) / $BOOTSPLASH_NUMBER))
    BOTTSPLASH_PROGRESS=$((65535 - $BOOTSPLASH_NUMBER * $BOOTSPLASH_DELTA))
    [ -w /proc/splash ] && echo "show $BOOTSPLASH_PROGRESS" > /proc/splash
    echo "export BOOTSPLASH_PROGRESS=$BOOTSPLASH_PROGRESS" > /tmp/bootsplash_env 
    echo "export BOOTSPLASH_DELTA=$BOOTSPLASH_DELTA" >> /tmp/bootsplash_env
fi

# End of file

This may be wrong, but it works.
Pls make new initscripts-bootsplash package.

Offline

#2 2004-10-04 16:25:16

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: initscripts-bootsplash

file a bug report - suggest that the package contain a patch for the rc.sysinit script instead of a script - this way SOME changes wont break it...

Offline

#3 2004-10-04 20:29:12

Abaddon
Member
From: Poland
Registered: 2004-05-03
Posts: 249

Re: initscripts-bootsplash

Maybe you could make a fbsplash scripts? (I think it will not be difficult for you to work out how does it should be done...)

fbsplash is next generation of bootsplash, bootsplash is obsolete.

http://bbs.archlinux.org/viewtopic.php?t=6661


Gnome - The weakest link!
Linux, *not* GNU/Linux!

Offline

Board footer

Powered by FluxBB