
Мне нужно, чтобы моя клавиатура Bluetooth Keychron K8 работала, чтобы записать пароль дешифрования диска LUKS во время загрузки.
На данный момент я могу использовать только клавиатуру ноутбука, поскольку Bluetooth-стек еще не включен.
Я нашел (но пока не пробовал) способ включить модульinitramfsвремя, но я не уверен, как это связано с Systemd Bluetooth Service.
Есть ли у кого-нибудь решение такой же проблемы?
Спасибо,
Игорь.
решение1
Попробуйте с:
Обновление initramfs: Обновите образ initramfs, чтобы включить необходимые компоненты Bluetooth. Это можно сделать с помощью следующей команды:
sudo update-initramfs -u
Отредактируйте командную строку ядра: Отредактируйте командную строку ядра, включив в нее следующие параметры:
rd.luks.options=luks,keyscript=/usr/share/initramfs-tools/scripts/local-top/btdecryption
Создайте скрипт btdecryption: Создайте новый файл с именем «btdecryption» в каталоге «/usr/share/initramfs-tools/scripts/local-top» и добавьте следующее содержимое:
# 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