]> git.ipfire.org Git - thirdparty/dracut.git/blame - modules.d/10i18n/console_init.sh
Renamed all shell scripts to *.sh
[thirdparty/dracut.git] / modules.d / 10i18n / console_init.sh
CommitLineData
87122afc 1#!/bin/sh
cc02093d
HH
2# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
3# ex: ts=8 sw=4 sts=4 et filetype=sh
87122afc 4
ee6fa324 5[ -e /etc/vconsole.conf ] && . /etc/vconsole.conf
87122afc 6
161da365 7DEFAULT_FONT=LatArCyrHeb-16
87122afc
8DEFAULT_KEYMAP=/etc/sysconfig/console/default.kmap
9
87122afc
10set_keyboard() {
11 local param
12
13 [ "${UNICODE}" = 1 ] && param=-u || param=-a
14 kbd_mode ${param}
15}
16
17set_terminal() {
18 local dev=$1
19
20 if [ "${UNICODE}" = 1 ]; then
21 printf '\033%%G' >&7
22 stty -F ${dev} iutf8
23 else
24 printf '\033%%@' >&7
5259da10 25 stty -F ${dev} -iutf8
87122afc
26 fi
27}
28
29set_keymap() {
30 local utf_switch
31
32 if [ -z "${KEYMAP}" ]; then
33 [ -f "${DEFAULT_KEYMAP}" ] && KEYMAP=${DEFAULT_KEYMAP}
34 fi
35
36 [ -n "${KEYMAP}" ] || return 1
37
38 [ "${UNICODE}" = 1 ] && utf_switch=-u
39
1f03abef 40 loadkeys -q ${utf_switch} ${KEYMAP} ${EXT_KEYMAPS}
87122afc
41}
42
43set_font() {
44 local dev=$1; local trans=''; local uni=''
45
161da365
AB
46 [ -z "${FONT}" ] && FONT=${DEFAULT_FONT}
47 [ -n "${FONT_MAP}" ] && trans="-m ${FONT_MAP}"
48 [ -n "${FONT_UNIMAP}" ] && uni="-u ${FONT_UNIMAP}"
87122afc 49
161da365 50 setfont ${FONT} -C ${dev} ${trans} ${uni}
87122afc
51}
52
53dev_close() {
54 exec 6>&-
55 exec 7>&-
56}
57
58dev_open() {
59 local dev=$1
60
61 exec 6<${dev} && \
cc02093d 62 exec 7>>${dev}
87122afc
63}
64
87122afc 65dev=/dev/${1#/dev/}
a0342347 66devname=${dev#/dev/}
87122afc
67
68[ -c "${dev}" ] || {
69 echo "Usage: $0 device" >&2
70 exit 1
71}
72
6019e105 73dev_open ${dev}
c99014d5 74
6019e105
HH
75for fd in 6 7; do
76 if ! [ -t ${fd} ]; then
77 echo "ERROR: File descriptor not opened: ${fd}" >&2
78 dev_close
79 exit 1
80 fi
81done
c99014d5 82
6019e105
HH
83set_keyboard
84set_terminal ${dev}
85set_font ${dev}
86set_keymap
c99014d5 87
6019e105 88dev_close
87122afc 89