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