D.12. /etc/rc.d/init.d/console
# / Bin / sh
#################################################################### ######################
# Începeți consola
#
# / Bin / sh
#################################################################### ######################
# Începeți consola
#
# Descriere: Setează harta tastelor și fontul ecranului
#
# Autori: Gerard Beekmans - [e-mail protejat]
# Alexander E. Patrakov
# DJ Lucas - [e-mail protejat]
# Actualizare: Bruce Dubbs - [e-mail protejat]
#
# Versiune: LFS 7.0
#
#################################################################### ######################
### ÎNCEPE INFO INFO
# Oferă: consolă
# Necesar-Start:
# Ar trebui să pornească: $local_fs
# Necesar-Oprire:
# Ar trebui să se oprească:
# Pornire implicită: S
# Oprire implicită:
# Scurtă descriere: configurează o consolă localizată.
# Descriere: configurează fonturile și setările de limbă pentru cele ale utilizatorului
# local așa cum este definit de /etc/sysconfig/console.
# X-LFS-Furnizat-de: LFS
### END INIT INFO
. /lib/lsb/init-functions
# Vorbitorii nativi de engleză probabil că nu au deloc /etc/sysconfig/console [ -r /etc/sysconfig/console ] && . /etc/sysconfig/console
este adevarat()
{
[ "$1" = "1" ] || [ "$1" = "da" ] || [ "$1" = "adevărat" ]
}
eșuat=0
cazul „${1}” la început)
# Vezi dacă trebuie să facem ceva
dacă [ -z "${KEYMAP}" ] && [ -z "${KEYMAP_CORRECTIONS}" ] && [ -z "${FONT}" ] && [ -z "${LEGACY_CHARSET}" ] &&
! is_true "${UNICODE}"; apoi iesi 0
fi
# Nu ar trebui să existe eșecuri false sub această linie! log_info_msg „Se configurează consola Linux...”
# Aflați dacă este folosită o consolă framebuffer
[ -d /sys/class/graphics/fb0 ] && use_fb=1 || use_fb=0
# Descoperiți comanda pentru a seta consola în
# modul dorit
is_true „${UNICODE}” &&
MODE_COMMAND="echo -en '\033%G' && kbd_mode -u" || MODE_COMMAND="echo -en '\033%@\033(K' && kbd_mode -a"
# Pe consolele framebuffer, fontul trebuie setat pentru fiecare vt în
# Modul UTF-8. Acest lucru nu doare nici în modul non-UTF-8.
! is_true „${use_fb}” || [ -z „${FONT}” ] || MODE_COMMAND="${MODE_COMMAND} && setfont ${FONT}"
# Aplicați comanda la toate consolele menționate în
# /etc/inittab. Important: în modul UTF-8 acest lucru ar trebui
# se întâmplă înainte de setfont, altfel va apărea o eroare a nucleului
# apare și harta Unicode a fontului nu va fi
# folosit.
forTTY în `grep '^[^#].*respawn:/sbin/agetty' /etc/inittab | grep -o '\btty[[:cifră:]]*\b'`
do
openvt -f -w -c ${TTY#tty} -- \
/bin/sh -c „${MODE_COMMAND}” || a eșuat=1
făcut
# Setați fontul (dacă nu este deja setat mai sus) și harta tastelor
[ "${use_fb}" == "1" ] || [ -z „${FONT}” ] || setfont $FONT || a eșuat=1
[ -z „${KEYMAP}” ] ||
taste de încărcare ${KEYMAP} >/dev/null 2>&1 || a eșuat=1
[ -z „${KEYMAP_CORRECTIONS}” ] ||
loadkeys ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 || a eșuat=1
# Convertiți harta tastelor din $LEGACY_CHARSET în UTF-8 [ -z "$LEGACY_CHARSET" ] ||
dumpkeys -c „$LEGACY_CHARSET” | loadkeys -u >/dev/null 2>&1 || a eșuat=1
# Dacă oricare dintre comenzile de mai sus a eșuat, capcana de la
# top ar seta $failed la 1 ( exit $failed ) evaluate_retval
ieșire $failed
;;
*)
ESAC
echo „Utilizare: ${0} {start}” ieșirea 1
;;
# Încheiați consola