Lines 1033-1038
run_emergency_shell() {
Link Here
|
1033 |
} |
1033 |
} |
1034 |
|
1034 |
|
1035 |
run_shell() { |
1035 |
run_shell() { |
|
|
1036 |
splashCmd 'verbose' >/dev/null & |
1037 |
|
1036 |
if ! is_userinteraction_allowed |
1038 |
if ! is_userinteraction_allowed |
1037 |
then |
1039 |
then |
1038 |
bad_msg "gk.userinteraction.disabled is set; Spawning a shell is disabled!" |
1040 |
bad_msg "gk.userinteraction.disabled is set; Spawning a shell is disabled!" |
Lines 1197-1203
bad_msg() {
Link Here
|
1197 |
|
1199 |
|
1198 |
if [ "$2" != '1' ] |
1200 |
if [ "$2" != '1' ] |
1199 |
then |
1201 |
then |
1200 |
splash 'verbose' >/dev/null & |
1202 |
splashCmd 'verbose' >/dev/null & |
1201 |
printf "%b\n" "${BAD}!!${NORMAL}${BOLD} ${msg_string} ${NORMAL}" |
1203 |
printf "%b\n" "${BAD}!!${NORMAL}${BOLD} ${msg_string} ${NORMAL}" |
1202 |
fi |
1204 |
fi |
1203 |
} |
1205 |
} |
Lines 1238-1250
crypt_filter() {
Link Here
|
1238 |
if [ "${CRYPT_SILENT}" = '1' ] |
1240 |
if [ "${CRYPT_SILENT}" = '1' ] |
1239 |
then |
1241 |
then |
1240 |
eval run ${1} >/dev/null 2>&1 |
1242 |
eval run ${1} >/dev/null 2>&1 |
|
|
1243 |
elif [ "${PLYMOUTH}" = '1' ] && plymouth_running |
1244 |
then |
1245 |
run plymouth ask-for-password --prompt "Enter LUKS passphrase" \ |
1246 |
--number-of-tries=3 --command="${2}" |
1247 |
res=$? |
1248 |
return ${res} |
1241 |
else |
1249 |
else |
1242 |
splash 'verbose' >/dev/null & |
1250 |
splashCmd 'verbose' >/dev/null & |
1243 |
eval run ${1} |
1251 |
eval run ${1} |
1244 |
res=$? |
1252 |
res=$? |
1245 |
if [ ${res} -eq 0 ] |
1253 |
if [ ${res} -eq 0 ] |
1246 |
then |
1254 |
then |
1247 |
splash set_msg 'Disk unlocked.' |
1255 |
splashCmd set_msg 'Disk unlocked.' |
1248 |
fi |
1256 |
fi |
1249 |
return ${res} |
1257 |
return ${res} |
1250 |
fi |
1258 |
fi |
Lines 1315-1320
prompt_user() {
Link Here
|
1315 |
fi |
1323 |
fi |
1316 |
[ -n "${3}" ] && local explnt=" or : ${3}" || local explnt="." |
1324 |
[ -n "${3}" ] && local explnt=" or : ${3}" || local explnt="." |
1317 |
|
1325 |
|
|
|
1326 |
splashCmd 'verbose' >/dev/null & |
1318 |
bad_msg "Could not find the ${2} in ${oldvalue}${explnt}" |
1327 |
bad_msg "Could not find the ${2} in ${oldvalue}${explnt}" |
1319 |
|
1328 |
|
1320 |
if [ -f "${GK_USERINTERACTION_DISABLED_STATEFILE}" ] |
1329 |
if [ -f "${GK_USERINTERACTION_DISABLED_STATEFILE}" ] |
Lines 1397-1402
prompt_user() {
Link Here
|
1397 |
eval ${1}'='${oldvalue} |
1406 |
eval ${1}'='${oldvalue} |
1398 |
;; |
1407 |
;; |
1399 |
esac |
1408 |
esac |
|
|
1409 |
|
1410 |
splashCmd 'quiet' >/dev/null & |
1400 |
} |
1411 |
} |
1401 |
|
1412 |
|
1402 |
cmdline_hwopts() { |
1413 |
cmdline_hwopts() { |
Lines 1476-1482
chooseKeymap() {
Link Here
|
1476 |
good_msg "Loading keymaps" |
1487 |
good_msg "Loading keymaps" |
1477 |
if [ -z "${keymap}" ] |
1488 |
if [ -z "${keymap}" ] |
1478 |
then |
1489 |
then |
1479 |
splash 'verbose' >/dev/null & |
1490 |
splashCmd 'verbose' >/dev/null & |
1480 |
run cat /lib/keymaps/keymapList |
1491 |
run cat /lib/keymaps/keymapList |
1481 |
read -t 10 -p '<< Load keymap (Enter for default): ' keymap |
1492 |
read -t 10 -p '<< Load keymap (Enter for default): ' keymap |
1482 |
case ${keymap} in |
1493 |
case ${keymap} in |
Lines 1534-1545
chooseKeymap() {
Link Here
|
1534 |
|
1545 |
|
1535 |
run mkdir -p /etc/sysconfig |
1546 |
run mkdir -p /etc/sysconfig |
1536 |
echo "XKEYBOARD=${keymap}" > /etc/sysconfig/keyboard |
1547 |
echo "XKEYBOARD=${keymap}" > /etc/sysconfig/keyboard |
1537 |
splash set_msg "Set keymap to '${keymap}'" |
1548 |
splashCmd set_msg "Set keymap to '${keymap}'" |
1538 |
elif [ -z "${keymap}" ] |
1549 |
elif [ -z "${keymap}" ] |
1539 |
then |
1550 |
then |
1540 |
good_msg |
1551 |
good_msg |
1541 |
good_msg "Keeping default keymap" |
1552 |
good_msg "Keeping default keymap" |
1542 |
splash set_msg "Keeping default keymap" |
1553 |
splashCmd set_msg "Keeping default keymap" |
1543 |
else |
1554 |
else |
1544 |
bad_msg "Sorry, but keymap '${keymap}' is invalid!" |
1555 |
bad_msg "Sorry, but keymap '${keymap}' is invalid!" |
1545 |
unset keymap |
1556 |
unset keymap |
Lines 1562-1567
splash() {
Link Here
|
1562 |
return 0 |
1573 |
return 0 |
1563 |
} |
1574 |
} |
1564 |
|
1575 |
|
|
|
1576 |
splashCmd() { |
1577 |
case "${1}" in |
1578 |
init) |
1579 |
if [ "${FBSPLASH}" = '1' ] |
1580 |
then |
1581 |
splash 'init' |
1582 |
elif [ "${PLYMOUTH}" = '1' ] |
1583 |
then |
1584 |
plymouthInit |
1585 |
fi |
1586 |
;; |
1587 |
|
1588 |
verbose) |
1589 |
if [ "${FBSPLASH}" = '1' ] |
1590 |
then |
1591 |
splash 'verbose' |
1592 |
elif [ "${PLYMOUTH}" = '1' ] |
1593 |
then |
1594 |
plymouth_running && run plymouth --hide-splash |
1595 |
fi |
1596 |
;; |
1597 |
|
1598 |
set_msg) |
1599 |
if [ "${FBSPLASH}" = '1' ] |
1600 |
then |
1601 |
splash 'set_msg' "${2}" |
1602 |
elif [ "${PLYMOUTH}" = '1' ] |
1603 |
then |
1604 |
plymouth_running && run plymouth --update="${2}" |
1605 |
fi |
1606 |
;; |
1607 |
|
1608 |
quiet) |
1609 |
plymouth_running && run plymouth --show-splash |
1610 |
;; |
1611 |
|
1612 |
hasroot) |
1613 |
plymouth_running && run plymouth --newroot="${2}" |
1614 |
;; |
1615 |
esac |
1616 |
} |
1617 |
|
1618 |
plymouth_running() { |
1619 |
[ -n "${PLYMOUTH_FAIL}" ] && return 1 |
1620 |
run plymouth --ping 2>/dev/null |
1621 |
return $? |
1622 |
} |
1623 |
|
1624 |
plymouthInit() { |
1625 |
good_msg "Starting Plymouth..." |
1626 |
run mkdir -p -m 0755 /run/plymouth || return 1 |
1627 |
|
1628 |
# Make sure that udev is done loading tty and drm |
1629 |
run udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1 |
1630 |
run udevadm trigger --action=add --subsystem-match=graphics \ |
1631 |
--subsystem-match=drm --subsystem-match=tty >/dev/null 2>&1 |
1632 |
udevsettle |
1633 |
|
1634 |
run plymouthd --mode=boot --attach-to-session \ |
1635 |
--pid-file=/run/plymouth/pid || { PLYMOUTH_FAIL=1; return 1; } |
1636 |
|
1637 |
plymouth_running && run plymouth --show-splash |
1638 |
good_msg "Plymouth initialized" |
1639 |
} |
1640 |
|
1565 |
start_volumes() { |
1641 |
start_volumes() { |
1566 |
# Here, we check for /dev/device-mapper, and if it exists, we setup a |
1642 |
# Here, we check for /dev/device-mapper, and if it exists, we setup a |
1567 |
# a symlink, which should hopefully fix bug #142775 and bug #147015 |
1643 |
# a symlink, which should hopefully fix bug #142775 and bug #147015 |
Lines 1837-1842
openLUKS() {
Link Here
|
1837 |
while true |
1913 |
while true |
1838 |
do |
1914 |
do |
1839 |
local gpg_cmd="" |
1915 |
local gpg_cmd="" |
|
|
1916 |
local ply_cmd="" |
1840 |
if [ -e "${OPENED_LOCKFILE}" ] |
1917 |
if [ -e "${OPENED_LOCKFILE}" ] |
1841 |
then |
1918 |
then |
1842 |
good_msg "The LUKS device ${LUKS_DEVICE} meanwhile was opened by someone else." |
1919 |
good_msg "The LUKS device ${LUKS_DEVICE} meanwhile was opened by someone else." |
Lines 1957-1971
openLUKS() {
Link Here
|
1957 |
[ -e /dev/tty ] && run mv /dev/tty /dev/tty.org |
2034 |
[ -e /dev/tty ] && run mv /dev/tty /dev/tty.org |
1958 |
run mknod /dev/tty c 5 1 |
2035 |
run mknod /dev/tty c 5 1 |
1959 |
cryptsetup_options="${cryptsetup_options} -d -" |
2036 |
cryptsetup_options="${cryptsetup_options} -d -" |
1960 |
gpg_cmd="gpg --logger-file /dev/null --quiet --decrypt ${mntkey}${LUKS_KEY} |" |
2037 |
gpg_cmd="gpg --logger-file /dev/null --quiet --decrypt ${mntkey}${LUKS_KEY} | " |
|
|
2038 |
ply_cmd="gpg --logger-file /dev/null --quiet --passphrase-fd 0 --batch --no-tty --decrypt ${mntkey}${LUKS_KEY} | " |
1961 |
fi |
2039 |
fi |
1962 |
else |
2040 |
else |
1963 |
cryptsetup_options="${cryptsetup_options} -d ${mntkey}${LUKS_KEY}" |
2041 |
cryptsetup_options="${cryptsetup_options} -d ${mntkey}${LUKS_KEY}" |
1964 |
fi |
2042 |
fi |
1965 |
fi |
2043 |
fi |
1966 |
# At this point, keyfile or not, we're ready! |
2044 |
# At this point, keyfile or not, we're ready! |
1967 |
crypt_filter "${gpg_cmd}cryptsetup ${cryptsetup_options} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}" |
2045 |
if [ "${PLYMOUTH}" = '1' ] |
|
|
2046 |
then |
2047 |
ply_cmd="${ply_cmd}cryptsetup ${cryptsetup_options} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}" |
2048 |
local ply_cmd_file="$(mktemp -t "ply_cmd.XXXXXX")" |
2049 |
printf '#!/bin/sh\n%s\n' "${ply_cmd}" > "${ply_cmd_file}" |
2050 |
run chmod 500 "${ply_cmd_file}" |
2051 |
fi |
2052 |
crypt_filter "${gpg_cmd}cryptsetup ${cryptsetup_options} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}" "${ply_cmd_file}" |
1968 |
crypt_filter_ret=$? |
2053 |
crypt_filter_ret=$? |
|
|
2054 |
if [ "${PLYMOUTH}" = '1' ] |
2055 |
then |
2056 |
run rm -f "${ply_cmd_file}" |
2057 |
fi |
1969 |
|
2058 |
|
1970 |
[ -e /dev/tty.org ] \ |
2059 |
[ -e /dev/tty.org ] \ |
1971 |
&& run rm -f /dev/tty \ |
2060 |
&& run rm -f /dev/tty \ |