在 LUKS 解密之前启用蓝牙键盘 - Ubuntu 20.04

在 LUKS 解密之前启用蓝牙键盘 - Ubuntu 20.04

我需要让我的 Keychron K8 蓝牙键盘正常工作以写入我的启动时 LUKS 磁盘解密密码。

目前,我只能使用笔记本电脑键盘,因为蓝牙堆栈尚未启用。

我找到了(但还没有尝试)启用该模块的方法初始化内存文件系统时间,但我不确定它与 Systemd 蓝牙服务有何关系。

有同样问题的人有解决方案吗?

谢谢你,
伊戈尔

答案1

尝试:

  1. 更新 initramfs:更新您的 initramfs 映像以包含必要的蓝牙组件。您可以使用以下命令执行此操作:

    sudo update-initramfs -u

  2. 编辑内核命令行:编辑内核命令行以包含以下选项:

    rd.luks.options=luks,keyscript=/usr/share/initramfs-tools/scripts/local-top/btdecryption

  3. 创建btdecryption脚本:在“/usr/share/initramfs-tools/scripts/local-top”目录下创建一个名为“btdecryption”的新文件,并添加以下内容:

# Wait for Bluetooth keyboard to connect
echo "Waiting for keyboard to connect..."
until hcitool con | grep -q "Keyboard Address"; do
    sleep 1
done
echo "Keyboard connected."

# Get password from keyboard
echo "Enter password:"
password=""
while [ ${#password} -lt 1 ]; do
    read -s -n 1 char
    if [ "$char" == "" ]; then
        echo ""
        break
    fi
    password="$password$char"
    echo -n "*"
done

# Pass password to LUKS
echo $password
  1. 使脚本可执行:使用以下命令使“btdecryption”脚本可执行:

    sudo chmod +x /usr/share/initramfs-tools/scripts/local-top/btdecryption

  2. 再次更新 initramfs:再次更新您的 initramfs 映像以包含新脚本:

    sudo update-initramfs -u

相关内容