]> git.pld-linux.org Git - packages/fbset.git/blame - fbset.init
- look from /sys next
[packages/fbset.git] / fbset.init
CommitLineData
aff35f5c 1#!/bin/sh
3864f278 2# $Id$
aff35f5c 3#
3864f278 4# fbset: Sets up fbcon video modes.
aff35f5c 5#
6#
efa5a496 7# chkconfig: 2345 69 31
aa141c72 8# description: fbset is a utility with which fbcons video modes can be read \
aff35f5c 9# and changed
3864f278 10#
11# config: /etc/sysconfig/fbset
aff35f5c 12
aff35f5c 13# Get service config
3864f278 14if [ -f /etc/sysconfig/fbset ]; then
15 . /etc/sysconfig/fbset
16fi
aff35f5c 17
014fd80c 18if [ -z "${FBMODULE}" ]; then
9bc1b40a
ER
19 case "$1" in
20 start|stop|restart|force-reload)
21 exit 0
22 ;;
23 esac
014fd80c
ER
24fi
25
26# Source function library
27. /etc/rc.d/init.d/functions
109b85b6 28
4a590e27
PG
29# Setting default depth
30if [ -n "${DEPTH}" ]; then
31 DEPTH_options="-depth ${DEPTH}"
32fi
b3c5d50d 33
109b85b6 34if [ -z "${FBDEV_NUM}" ]; then
35 FBDEV_NUM=0
36fi
37
4d31033b 38start() {
3864f278 39 # Check if service is already running?
40 if [ ! -f /var/lock/subsys/fbset ]; then
6292f718 41
3864f278 42 # Check if we have framebuffer in kernel.
6ca62a08 43 local load_fbmodule=1
3864f278 44 if [ -f /proc/fb ]; then
45 # /proc files show as files with size=0, this is a workaround.
6ca62a08
ER
46 grep -q '.' /proc/fb && load_fbmodule=0
47 fi
48
49 if [ "$load_fbmodule" = "1" ]; then
50 modprobe $FBMODULE
3864f278 51 fi
aff35f5c 52
3864f278 53 if [ -n "${FBMODE_default}" ]; then
54 show "Setting default video mode"
aff35f5c 55 busy
6292f718 56
6ca62a08 57 local cons tty devpath
1624c7d1 58 # check if devfs
3864f278 59 if [ -d /dev/vc ]; then
61e2d117 60 if [ -z "$FBTERMINALS" ]; then
0d5ebf02 61 FBTERMINALS=$(ls /dev/vc/)
61e2d117 62 fi
1624c7d1
ER
63 FBDEV=/dev/fb/$FBDEV_NUM
64 devpath=/dev/vc/
3864f278 65 else
18762b3e 66 if [ -z "$FBTERMINALS" -a -d /dev/.udev ]; then
1624c7d1
ER
67 FBTERMINALS=$(ls /dev/vcsa* | awk '{print substr($0, length("/dev/vcsa") + 1)}')
68 fi
18762b3e
ER
69 if [ -z "$FBTERMINALS" -a -d /sys/class/vc ]; then
70 FBTERMINALS=$(ls -d /sys/class/vc/vcsa* | awk '{print substr($0, length("/sys/class/vc/vcsa") + 1)}')
71 fi
61e2d117 72 if [ -z "$FBTERMINALS" ]; then
0d5ebf02 73 FBTERMINALS=$(awk -F: '/^[0-9]*:/{print $1}' /etc/inittab)
61e2d117 74 fi
1624c7d1
ER
75 FBDEV=/dev/fb$FBDEV_NUM
76 devpath=/dev/tty
3864f278 77 fi
109b85b6 78
e0c2904e 79 # save old tty number
0d5ebf02
ER
80 tty=$(/usr/bin/tty)
81 tty=${tty#$devpath}
e0c2904e 82
61e2d117 83 for cons in $FBTERMINALS; do
a85ed31e 84 /usr/bin/con2fb $FBDEV $cons
64d64bd0
JK
85 /usr/bin/switchto $cons
86 /usr/bin/fbset -fb \
6ca62a08 87 $FBDEV $DEPTH_options $FBMODE_default \
64d64bd0 88 0<>/dev/tty$cons >&0 2>&0
109b85b6 89 done
e0c2904e
JB
90 [ $tty = "/dev/console" ] && tty=1
91 /usr/bin/switchto $tty
aff35f5c 92 ok
93 fi
3864f278 94 touch /var/lock/subsys/fbset
95 else
6292f718 96 msg_already_running fbset
3864f278 97 fi
4d31033b
ER
98}
99
100stop() {
6292f718 101 if [ -f /var/lock/subsys/fbset ]; then
4a590e27
PG
102 rm -f /var/lock/subsys/fbset
103 else
104 msg_not_running fbset
105 fi
4d31033b
ER
106}
107
108# See how we were called.
109case "$1" in
110 start)
111 start
112 ;;
113 stop)
114 stop
aff35f5c 115 ;;
116 status)
117 # Check if we have framebuffer in kernel.
6ca62a08
ER
118 if [ -f /proc/fb ] && grep -q . /proc/fb; then
119 nls "Frame buffer present."
120 exit 0
aff35f5c 121 fi
187f4d9d
ER
122
123 nls "Frame buffer not present."
124 exit 3
aff35f5c 125 ;;
f1e8c394 126 restart|force-reload)
4d31033b
ER
127 stop
128 start
aff35f5c 129 ;;
130 *)
f1e8c394 131 msg_usage "$0 {start|stop|restart|force-reload|status}"
132 exit 3
aff35f5c 133esac
134
135exit 0
This page took 0.078798 seconds and 4 git commands to generate.