我需要让我的 Keychron K8 蓝牙键盘正常工作以写入我的启动时 LUKS 磁盘解密密码。
目前,我只能使用笔记本电脑键盘,因为蓝牙堆栈尚未启用。
我找到了(但还没有尝试)启用该模块的方法初始化内存文件系统时间,但我不确定它与 Systemd 蓝牙服务有何关系。
有同样问题的人有解决方案吗?
谢谢你,
伊戈尔
答案1
尝试:
更新 initramfs:更新您的 initramfs 映像以包含必要的蓝牙组件。您可以使用以下命令执行此操作:
sudo update-initramfs -u
编辑内核命令行:编辑内核命令行以包含以下选项:
rd.luks.options=luks,keyscript=/usr/share/initramfs-tools/scripts/local-top/btdecryption
创建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
使脚本可执行:使用以下命令使“btdecryption”脚本可执行:
sudo chmod +x /usr/share/initramfs-tools/scripts/local-top/btdecryption
再次更新 initramfs:再次更新您的 initramfs 映像以包含新脚本:
sudo update-initramfs -u