воскресенье, 23 августа 2020 г.

Отключение Bluetooth и WWAN при загрузке системы

На ноутбуке есть три беспроводных устройства (wifi, bluetooth и wwan) из которых постоянно используется только wifi. Чтобы не засорять эфир остальные устройства отключались вручную после загрузки. Хотя ноутбук перезагружается редко, но делать одно и тоже руками надоедает. Скрипт, который автоматически отключает bluetooth и wwan выглядит так (/usr/local/sbin/rfkill-boot-settings.sh)

#!/bin/sh

RFKILL_TYPE="bluetooth wwan"
RFKILL_BIN=/usr/sbin/rfkill

if [ ! -x "${RFKILL_BIN}" ]; then
    echo "Error: rfkill is not installed" >&2
    exit 1
fi

# shellcheck disable=SC2086
for RFKILL_ID in $(${RFKILL_BIN} list -n -o ID ${RFKILL_TYPE})
do
    # Some devices are nested and dissapear when parent device is blocked
    if ${RFKILL_BIN} list -n -o ID | grep -Eq '^\s+'${RFKILL_ID}'$'; then
        echo "Disabling ${RFKILL_ID}"
        ${RFKILL_BIN} block ${RFKILL_ID}
    else
        echo "Skipping ${RFKILL_ID}"
    fi
done

Автоматически запускать можно из /etc/rc.local или через systemd (/etc/systemd/system/rfkill-boot-settings.service)

[Unit]
Description="Apply initial rfkill setting during boot"
Requires=bluetooth.target
After=bluetooth.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/rfkill-boot-settings.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Остается включить загрузку юнита

sudo systemctl enable rfkill-boot-settings.service
sudo systemctl start rfkill-boot-settings.service

Если установлен Blueman, то нужно отключить автоматическую активацию bluetooth устройств. Для этого нужно зайти в настройки плагина PowerManager и отключить "Auto power-on".


 Теперь только Wifi остается активным после загрузки.

Комментариев нет:

Отправить комментарий