D.12. /etc/rc.d/init.d/console
#! / bin / sh
################################################ ######################
# ເລີ່ມຕົ້ນ console
#
#! / bin / sh
################################################ ######################
# ເລີ່ມຕົ້ນ console
#
# ລາຍລະອຽດ : ຕັ້ງ keymap ແລະຕົວອັກສອນຫນ້າຈໍ
#
# ຜູ້ຂຽນ : Gerard Beekmans - [email protected]
# Alexander E. Patrakov
# DJ Lucas - [email protected]
# ອັບເດດ: Bruce Dubbs - [email protected]
#
# ລຸ້ນ : LFS 7.0
#
################################################ ######################
### ເຂົ້າຮ່ວມຂໍ້ມູນ
# ສະຫນອງ: console
# ການເລີ່ມຕົ້ນທີ່ຕ້ອງການ:
# ຄວນເລີ່ມຕົ້ນ: $local_fs
# ຕ້ອງຢຸດ:
# ຄວນຢຸດ:
# Default-Start: S
# ການຢຸດເລີ່ມຕົ້ນ:
# ຄໍາອະທິບາຍສັ້ນ: ຕັ້ງຄ່າ console ທ້ອງຖິ່ນ.
# ຄໍາອະທິບາຍ: ຕັ້ງຄ່າຕົວອັກສອນແລະການຕັ້ງຄ່າພາສາສໍາລັບຜູ້ໃຊ້
# local ຕາມທີ່ກຳນົດໂດຍ /etc/sysconfig/console.
# X-LFS-Provided-By: LFS
### ສິ້ນສຸດຂໍ້ມູນພາຍໃນ
. /lib/lsb/init-functions
# ຜູ້ເວົ້າພາສາອັງກິດພື້ນເມືອງອາດຈະບໍ່ມີ /etc/sysconfig/console ເລີຍ [ -r /etc/sysconfig/console ] && . /etc/sysconfig/console
is_true()
{
[ "$1" = "1" ] || [ "$1" = "ແມ່ນ" ] || [ "$1" = "ຈິງ" ]
}
ລົ້ມເຫລວ=0
ກໍລະນີ "${1}" ໃນການເລີ່ມຕົ້ນ)
#ເບິ່ງວ່າເຮົາຕ້ອງເຮັດຫຍັງ
ຖ້າ [ -z "${KEYMAP}" ] && [ -z "${KEYMAP_CORRECTIONS}" ] && [ -z "${FONT}" ] && [ -z "${LEGACY_CHARSET}" ] &&
! is_true "${UNICODE}"; ຈາກນັ້ນອອກ 0
fi
# ບໍ່ຄວນມີຂໍ້ບົກພ່ອງທີ່ຫຼອກລວງຂ້າງລຸ່ມນີ້! log_info_msg "ຕັ້ງຄ່າ Linux console..."
# ຄິດອອກວ່າ console framebuffer ຖືກນໍາໃຊ້
[ -d /sys/class/graphics/fb0 ] && use_fb=1 || ໃຊ້_fb=0
# ຄິດອອກຄໍາສັ່ງເພື່ອກໍານົດ console ເຂົ້າໄປໃນ
# ໂໝດທີ່ຕ້ອງການ
is_true "${UNICODE}" &&
MODE_COMMAND="echo -en '\033%G' && kbd_mode -u" || MODE_COMMAND="echo -en '\033%@\033(K' && kbd_mode -a"
# ໃນ consoles framebuffer, ຕົວອັກສອນຕ້ອງຖືກຕັ້ງຄ່າສໍາລັບແຕ່ລະ vt ໃນ
# ໂໝດ UTF-8. ນີ້ບໍ່ເຈັບປວດໃນໂຫມດທີ່ບໍ່ແມ່ນ UTF-8.
! is_true "${use_fb}" || [ -z "${FONT}" ] || MODE_COMMAND="${MODE_COMMAND} && ຕັ້ງຟອນ ${FONT}"
# ໃຊ້ຄໍາສັ່ງນັ້ນກັບທຸກ consoles ທີ່ໄດ້ກ່າວມາ
# /etc/inittab. ສິ່ງສໍາຄັນ: ໃນໂຫມດ UTF-8 ນີ້ຄວນ
# ເກີດຂຶ້ນກ່ອນ setfont, ຖ້າບໍ່ດັ່ງນັ້ນ kernel bug ຈະ
# ສະແດງໃຫ້ເຫັນແລະແຜນທີ່ unicode ຂອງຕົວອັກສອນຈະບໍ່ເປັນ
# ໃຊ້ແລ້ວ.
forTTY ໃນ `grep '^[^#].*respawn:/sbin/agetty' /etc/inittab | grep -o '\btty[[:digit:]]*\b'`
do
openvt -f -w -c ${TTY#tty} -- \
/bin/sh -c "${MODE_COMMAND}" || ລົ້ມເຫລວ=1
ເຮັດ
# ຕັ້ງຄ່າຕົວອັກສອນ (ຖ້າບໍ່ໄດ້ຕັ້ງໄວ້ຂ້າງເທິງ) ແລະແຜນທີ່ຫຼັກ
[ "${use_fb}" == "1" ] || [ -z "${FONT}" ] || setfont $FONT || ລົ້ມເຫລວ=1
[ -z "${KEYMAP}" ] ||
ປຸ່ມໂຫຼດ ${KEYMAP} >/dev/null 2>&1 || ລົ້ມເຫລວ=1
[ -z "${KEYMAP_CORRECTIONS}" ] ||
ລະຫັດໂຫລດ ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 || ລົ້ມເຫລວ=1
# ປ່ຽນແຜນທີ່ຫຼັກຈາກ $LEGACY_CHARSET ເປັນ UTF-8 [ -z "$LEGACY_CHARSET" ] ||
dumpkeys -c "$LEGACY_CHARSET" | loadkeys -u >/dev/null 2>&1 || ລົ້ມເຫລວ=1
# ຖ້າຄໍາສັ່ງໃດໆຂ້າງເທິງລົ້ມເຫລວ, ກັບດັກຢູ່ທີ່
# ທາງເທິງຈະຕັ້ງ $failed ເປັນ 1 (ອອກ $failed ) evaluate_retval
ອອກ $ ລົ້ມເຫລວ
;;
*)
ວ່າ C
echo "ການນຳໃຊ້: ${0} {start}" ອອກຈາກ 1
;;
# End console