#!/bin/sh # $Id$ # # fbset: Sets up fbcon video modes. # # # chkconfig: 2345 69 31 # description: fbset is a utility with which fbcons video modes can be read \ # and changed # # config: /etc/sysconfig/fbset # Get service config if [ -f /etc/sysconfig/fbset ]; then . /etc/sysconfig/fbset fi if [ -z "${FBMODULE}" ]; then case "$1" in start|stop|restart|force-reload) exit 0 ;; esac fi # Source function library . /etc/rc.d/init.d/functions # Setting default depth if [ -n "${DEPTH}" ]; then DEPTH_options="-depth ${DEPTH}" fi if [ -z "${FBDEV_NUM}" ]; then FBDEV_NUM=0 fi start() { # Check if service is already running? if [ ! -f /var/lock/subsys/fbset ]; then # Check if we have framebuffer in kernel. if [ -f /proc/fb ]; then # /proc files show as files with size=0, this is a workaround. cat /proc/fb | grep -q "." || _modprobe single $FBMODULE else # if not, then try to load specified kernel module _modprobe single $FBMODULE fi if [ -n "${FBMODE_default}" ]; then show "Setting default video mode" busy # check if devfs (workaround: -a option don't work at all) if [ -d /dev/vc ]; then if [ -z "$FBTERMINALS" ]; then FBTERMINALS=$(ls /dev/vc/) fi FBDEV=/dev/fb/${FBDEV_NUM} devpath="/dev/vc/" else if [ -z "$FBTERMINALS" ]; then FBTERMINALS=$(awk -F: '/^[0-9]*:/{print $1}' /etc/inittab) fi FBDEV=/dev/fb${FBDEV_NUM} devpath="/dev/tty" fi # save old tty number tty=$(/usr/bin/tty) tty=${tty#$devpath} for cons in $FBTERMINALS; do /usr/bin/con2fb $FBDEV $cons /usr/bin/switchto $cons /usr/bin/fbset -fb \ $FBDEV ${DEPTH_options} $FBMODE_default \ 0<>/dev/tty$cons >&0 2>&0 done [ $tty = "/dev/console" ] && tty=1 /usr/bin/switchto $tty ok fi touch /var/lock/subsys/fbset else msg_already_running fbset fi } stop() { if [ -f /var/lock/subsys/fbset ]; then rm -f /var/lock/subsys/fbset else msg_not_running fbset fi } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) # Check if we have framebuffer in kernel. if [ -f /proc/fb ]; then # /proc files show as files with size=0, this is a workaround. cat /proc/fb | grep -q "." && nls "Frame buffer present." && exit 0 fi nls "Frame buffer not present." exit 3 ;; restart|force-reload) stop start ;; *) msg_usage "$0 {start|stop|restart|force-reload|status}" exit 3 esac exit 0