This patch should fix the issue by wrapping the grep and subsequent $? test with set +e and set -e.
It also adds a check for VT in screensaver setup, which has also sense only in the console. -- Jindrich Makovicka
--- console-screen.sh.orig 2009-12-19 20:27:00.000000000 +0100 +++ console-screen.sh 2010-01-07 11:24:54.182001990 +0100 @@ -63,6 +63,20 @@ fi +# Detect the console type +VT="no" +CONSOLE_TYPE=`fgconsole 2>/dev/null` || CONSOLE_TYPE="unknown" +if [ ! $CONSOLE_TYPE = "serial" ] ; then + set +e + readlink /proc/self/fd/0 | grep -q -e /dev/vc -e '/dev/tty[^p]' -e /dev/console + if [ $? -eq 0 ] ; then + VT="yes" + fi + set -e +fi + + + reset_vga_palette () { if [ -f /proc/fb ]; then @@ -77,20 +91,10 @@ # be sure the main program is installed [ -x "${SETFONT}" ] || return 0 - VT="no" - # If we can't access the console, quit - CONSOLE_TYPE=`fgconsole 2>/dev/null` || return 0 - - if [ ! $CONSOLE_TYPE = "serial" ] ; then - readlink /proc/self/fd/0 | grep -q -e /dev/vc -e '/dev/tty[^p]' -e /dev/console - if [ $? -eq 0 ] ; then - VT="yes" - reset_vga_palette - fi - fi - [ $VT = "no" ] && return 0 + reset_vga_palette + # start vcstime if [ "${DO_VCSTIME}" = "yes" -a -x ${VCSTIME} ] ; then [ "$VERBOSE" != "no" ] && log_action_begin_msg "Starting clock on text console" @@ -181,6 +185,9 @@ } setup_screensaver() { + + [ $VT = "no" ] && return 0 + # screensaver stuff setterm_args="" if [ "$BLANK_TIME" ]; then