]> git.ipfire.org Git - thirdparty/dracut.git/blob - modules.d/10i18n/console_init.sh
Use eurlatgr as default console font
[thirdparty/dracut.git] / modules.d / 10i18n / console_init.sh
1 #!/bin/sh
2
3 [ -n "$DRACUT_SYSTEMD" ] && exit 0
4
5 if [ -x $systemdutildir/systemd-vconsole-setup ]; then
6 $systemdutildir/systemd-vconsole-setup "$@"
7 fi
8
9 [ -e /etc/vconsole.conf ] && . /etc/vconsole.conf
10
11 DEFAULT_FONT=eurlatgr
12 DEFAULT_KEYMAP=/etc/sysconfig/console/default.kmap
13
14 set_keyboard() {
15 local param
16
17 [ "${UNICODE}" = 1 ] && param=-u || param=-a
18 kbd_mode ${param}
19 }
20
21 set_terminal() {
22 local dev=$1
23
24 if [ "${UNICODE}" = 1 ]; then
25 printf '\033%%G' >&7
26 stty -F ${dev} iutf8
27 else
28 printf '\033%%@' >&7
29 stty -F ${dev} -iutf8
30 fi
31 }
32
33 set_keymap() {
34 local utf_switch
35
36 if [ -z "${KEYMAP}" ]; then
37 [ -f "${DEFAULT_KEYMAP}" ] && KEYMAP=${DEFAULT_KEYMAP}
38 fi
39
40 [ -n "${KEYMAP}" ] || return 1
41
42 [ "${UNICODE}" = 1 ] && utf_switch=-u
43
44 loadkeys -q ${utf_switch} ${KEYMAP} ${EXT_KEYMAPS}
45 }
46
47 set_font() {
48 local dev=$1; local trans=''; local uni=''
49
50 [ -z "${FONT}" ] && FONT=${DEFAULT_FONT}
51 [ -n "${FONT_MAP}" ] && trans="-m ${FONT_MAP}"
52 [ -n "${FONT_UNIMAP}" ] && uni="-u ${FONT_UNIMAP}"
53
54 setfont ${FONT} -C ${dev} ${trans} ${uni}
55 }
56
57 dev_close() {
58 exec 6>&-
59 exec 7>&-
60 }
61
62 dev_open() {
63 local dev=$1
64
65 exec 6<${dev} && \
66 exec 7>>${dev}
67 }
68
69 dev=/dev/${1#/dev/}
70 devname=${dev#/dev/}
71
72 [ -c "${dev}" ] || {
73 echo "Usage: $0 device" >&2
74 exit 1
75 }
76
77 dev_open ${dev}
78
79 for fd in 6 7; do
80 if ! [ -t ${fd} ]; then
81 echo "ERROR: File descriptor not opened: ${fd}" >&2
82 dev_close
83 exit 1
84 fi
85 done
86
87 set_keyboard
88 set_terminal ${dev}
89 set_font ${dev}
90 set_keymap
91
92 dev_close
93