diff options
author | Alex Wilson | 2019-08-25 19:51:16 +1000 |
---|---|---|
committer | Alex Wilson | 2019-08-25 19:51:16 +1000 |
commit | dd068d3a8334d769fa6466dce0210002fde02854 (patch) | |
tree | c2ca1bf16d7445383c820c989915a296fa9bd014 /zfs-pivy.hook | |
parent | 656a0fb2343157088851889ff80358ff10b69815 (diff) | |
download | aur-dd068d3a8334d769fa6466dce0210002fde02854.tar.gz |
Use mini-pcsc in initramfs for better reliability
Diffstat (limited to 'zfs-pivy.hook')
-rw-r--r-- | zfs-pivy.hook | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/zfs-pivy.hook b/zfs-pivy.hook index 39bc0a9a9391..dd5bd3506211 100644 --- a/zfs-pivy.hook +++ b/zfs-pivy.hook @@ -135,27 +135,28 @@ run_hook() { # Wait 15 seconds for ZFS devices to show up [ "${zfs_wait}" = "" ] && ZFS_WAIT="15" || ZFS_WAIT="${zfs_wait}" - # Start pcscd, in case we want it for pivy-zfs - msg ":: starting pcscd" - pcscd --force-reader-polling --foreground & - while [[ ! -f /run/pcscd/pcscd.pid ]]; do - sleep 0.2 - done - pcscd_pid=$(cat /run/pcscd/pcscd.pid) - kill_pcscd() { - if [[ -n "$pcscd_pid" ]]; then - kill $pcscd_pid - fi - pcscd_pid= - } - trap kill_pcscd EXIT - msg ":: waiting for smartcard devices..." - sleep 5 - udevadm trigger & - sleep 1 - pcscd --hotplug - pivy-tool list >/dev/null 2>/dev/null & - sleep 2 + if [[ -f /usr/bin/pcscd ]]; then + # Start pcscd, in case we want it for pivy-zfs + msg ":: starting pcscd" + pcscd --force-reader-polling --foreground & + while [[ ! -f /run/pcscd/pcscd.pid ]]; do + sleep 0.2 + done + pcscd_pid=$(cat /run/pcscd/pcscd.pid) + kill_pcscd() { + if [[ -n "$pcscd_pid" ]]; then + kill $pcscd_pid + fi + pcscd_pid= + } + msg ":: waiting for smartcard devices..." + sleep 5 + udevadm trigger & + sleep 1 + pcscd --hotplug + pivy-tool list >/dev/null 2>/dev/null & + sleep 2 + fi case ${root} in # root=zfs @@ -210,7 +211,9 @@ run_hook() { sleep 1 done kill $pid > /dev/null 2>&1 - kill_pcscd + if [[ -f /usr/bin/pcscd ]]; then + kill_pcscd + fi } run_latehook () { |