Как гарантировать, как подсветка клавиатуры всегда включена (в Max) при загрузке?

Копирование sys-devel / binutils не устранило вашу проблему, потому что это всего лишь ebuild, который определяет процесс сборки и установки для binutils . Это не работает, потому что вам нужен этот пакет для создания чего-либо, как вы уже поняли. Вместо этого вам нужно скопировать файлы, которые являются частью этого пакета. Это следующие файлы и каталоги:

/etc/env.d/binutils/x86_64-pc-linux-gnu-2.25.1
/usr/lib64/binutils/x86_64-pc-linux-gnu/*
/usr/share/binutils-data/x86_64-pc-linux-gnu/*
/usr/x86_64-pc-linux-gnu/binutils-bin/*

Скопируйте (рекурсивно) эти файлы / каталоги из архива стадии 3 в вашу действующую систему. После этого запустите env-update и либо выйдите из системы, либо снова войдите, либо source / etc / profile , чтобы загрузить обновленную среду. Убедитесь, что все работает, и первое, что вы должны сделать после этого, - это emerge binutils , чтобы правильно собрать этот пакет и записать его в свой файл мира.

Если после этого вы все еще не можете установить что-либо, возможно, вам придется повторить процесс с другими пакетами. В худшем случае вы можете скопировать иерархию / usr и / bin из сборки этапа 3, и если вы это сделаете, я бы рекомендовал продолжить с emerge --sync и emerge -e world для восстановления всего. Удачи.

0
30.10.2018, 18:39
2 ответа

Неважно, что максимальное значение, скорее всего, должно быть постоянным, я не знаю почему и как, но при предыдущей загрузке у меня было максимальное значение 3. Теперь у меня 2. Я смущен и озадачен одновременно.

Не хочу искать причину, типа настройки биоса, давайте просто прочитаем максимальное значение при загрузке и установим его. Неважно, если днем ​​я случайно не выключил подсветку.

Я придумал прямой подход, используя:

sudo crontab -e

И чтение и установка максимального значения одной командой:

@reboot /bin/cat /sys/class/leds/dell\:\:kbd_backlight/max_brightness > /sys/class/leds/dell\:\:kbd_backlight/brightness
1
28.01.2020, 04:10

Я сделал что-то более податливое (, т.е. настраиваемое ):Я создал сценарий инициализации, который автоматически запускается во время загрузки, за исключением случаев, когда уровень запуска установлен либо 0(, либо система переходит в режим остановки/отключения питания )или6(система переходит в режим перезагрузки/перезапуска ).

При запуске этот скрипт проверяет, находится ли местное время между 17:00:00и 07:59:59:, если да, то включает подсветку клавиатуры; если это не так, он отключает такую ​​подсветку.

Ниже приведены необходимые шаги для создания такого сценария.


ШАГ 1 -СОЗДАНИЕ ИНИЦИАЛЬНОГО СЦЕНАРИЯ

Открытие окна эмуляции терминала оболочки (, например. нажмите CtrlAltT ), а затем с помощью графического текстового редактора, такого как Gedit или Mousepad, создайте сценарий инициализации. Я использую Gedit, поэтому команда, которую я выполнил в терминале, была следующей:

sudo gedit /etc/init.d/keyboard-backlight-brightness

Скопируйте исходный код -ниже и вставьте его в окно текстового редактора:

#!/bin/bash

### BEGIN INIT INFO
# Provides:          keyboard-backlight-brightness
# Required-Start:
# Required-Stop:
# Default-Start:     1 2 3 4 5
# Default-Stop:      0 6
# Short-Description: Sets keyboard backlight brightness at boot time
# Description:       Script that sets the keyboard's LED (backlight) brightness at boot time
### END INIT INFO

case "$1" in
    start)
       # If the current runlevel is one of those in 'Default-Start', then
       # sets keyboard backlight to 24 (from a set of 0, 12, 24, 36,..., 255) if local time
       # is between 17:00:00 and 07:59:59, otherwise set it to 0 (e.g. 'off').
       if [[ `date +%-H` > 16 || `date +%-H` < 8 ]]
       then
            echo -n "Setting keyboard backlight brightness to 24..."
            echo 24 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
       else
            echo -n "Setting keyboard backlight brightness to 0..."
            echo 0 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
       fi
    ;;

    stop)
       # If the current runlevel is one of those in 'Default-Stop', then
       # sets keyboard backlight to 0 (i.e. 'off').
       echo -n "Setting keyboard backlight brightness to 0..."
       echo 0 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
    ;;

    reload|restart)
       $0 stop
       $0 start
    ;;

    *)
       echo "Usage: keyboard-backlight-brightness start|stop|restart|reload"
       exit 1
esac

exit 0

В случае моего компьютера (13-дюймового среднего -Apple Macbook Pro 2009 года )файл клавиатуры brightnessнаходится по адресу /sys/class/leds/smc\:\:kbd_backlight/brightness,но я изменил коды в этом ответе, чтобы вместо этого все они отображали ваш файл /sys/class/leds/dell\:\:kbd_backlight/brightness.

Вы можете изменить этот24(уровень интенсивности яркости )на любое значение между 1и 255, а также установить другой диапазон местного времени. Например. чтобы включить подсветку между 18 :00 :00 и 05 :59 :59, используйте этот код:

if [[ `date +%-H` > 17 || `date +%-H` < 6 ]]

Если вы определенно хотите, чтобы подсветка клавиатуры оставалась включенной и работала на полную мощность, независимо от времени дня (или ночи ), вы можете использовать этот код вместо:

#!/bin/bash

### BEGIN INIT INFO
# Provides:          keyboard-backlight-brightness
# Required-Start:
# Required-Stop:
# Default-Start:     1 2 3 4 5
# Default-Stop:      0 6
# Short-Description: Sets keyboard backlight brightness at boot time
# Description:       Script that sets the keyboard's LED (backlight) brightness at boot time
### END INIT INFO

case "$1" in
    start)
       # If the current runlevel is one of those in 'Default-Start', then
       # sets keyboard backlight to 255 (from a set of 0, 12, 24, 36,..., 255).
       echo -n "Setting keyboard backlight brightness to 255..."
       echo 255 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
    ;;

    stop)
       # If the current runlevel is one of those in 'Default-Stop', then
       # sets keyboard backlight to 0 (i.e. 'off').
       echo -n "Setting keyboard backlight brightness to 0..."
       echo 0 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
    ;;

    reload|restart)
       $0 stop
       $0 start
    ;;

    *)
       echo "Usage: keyboard-backlight-brightness start|stop|restart|reload"
       exit 1
esac

exit 0

После внесения необходимых изменений в код сохраните файл и выйдите из текстового редактора.

ШАГ 2 -НАСТРОЙКА РАЗРЕШЕНИЙ ДЛЯ СЦЕНАРИЯ ИНИЦИАЛИЗАЦИИ

Вам просто нужно выполнить:

sudo chmod 755 /etc/init.d/keyboard-backlight-brightness

...и сценарий инициализации предоставитrwx(доступ для чтения, записи и выполнения )для пользователя root иrx(доступ для чтения и выполнения )для всех остальных.

ШАГ 3 -СОЗДАНИЕ ССЫЛОК ИНИЦИАЛЬНОГО СЦЕНАРИЯ НА СООТВЕТСТВУЮЩИЕ УРОВНИ ВЫПОЛНЕНИЯ SYSTEM V

Вам просто нужно выполнить:

sudo update-rc.d keyboard-backlight-brightness defaults

...и сценарий инициализации будет связан с соответствующими уровнями запуска, где он должен выполняться во время загрузки.

ШАГ 4 -ЗАПУСК СЦЕНАРИЯ ИНИЦИАЛИЗАЦИИ

Просто беги:

sudo service keyboard-backlight-brightness start

...и служба будет запущена.


Если вы решили сохранить в коде параметр диапазона местного времени, то если к моменту запуска скрипта ваше местное время окажется в диапазоне, указанном в скрипте, подсветка клавиатуры загорится, в противном случае подсветка будет выключена.

Вы можете перезагрузить систему,просто чтобы убедиться, что скрипт действительно запускается (и работает )во время загрузки:

sudo telinit 6

или

sudo shutdown -r now

или

sudo reboot

или

sudo init 6

ЕСЛИ СЦЕНАРИЙ ИНИЦИАЛИЗАЦИИ НЕ РАБОТАЕТ ИЛИ ПРОСТО НЕ РАБОТАЕТ

Это случилось со мной после того, как я обновил свой дистрибутив Linux :, он заменил initна systemd. В таком случае вам необходимо:

  1. Остановить сценарий инициализации:

    sudo service keyboard-backlight-brightness stop
    
  2. Затем удалите скрипт из системы инициализации:

    sudo update-rc.d -f keyboard-backlight-brightness remove
    
  3. Затем удалите файл сценария инициализации:

    sudo rm -f /etc/init.d/keyboard-backlight-brightness
    

Выполнив 3 описанных выше шага, давайте создадим скрипт и службу systemd.


ШАГ 1 -СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ВЛОЖЕННОГО СЦЕНАРИЯ SH

На терминале запустите:

sudo gedit /usr/bin/keyboard-backlight-brightness.sh

...а затем вставьте приведенный ниже код в новый файл (обратите внимание, что это не скрипт bash , а вместо этого должен быть скриптом sh ):

#!/bin/sh
# Sets keyboard backlight brightness to 24 (from a set of
# 0, 12, 24, 36,..., 255) if local time is between
# 17:00:00 and 07:59:59, otherwise sets it to 0 (e.g. 'off').

if [ $(date +%-H) -gt 16 -o $(date +%-H) -lt 8 ]
then
    echo -n "Setting keyboard backlight brightness to 24..."
    echo 24 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
else
    echo -n "Setting keyboard backlight brightness to 0..."
    echo 0 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness
fi

exit 0

В качестве альтернативы, если вам действительно нужна непрерывная полная -подсветка клавиатуры, используйте вместо этого код:

#!/bin/sh
# Sets keyboard backlight brightness to 255 (i.e. 100%).

echo -n "Setting keyboard backlight brightness to 255..."
echo 255 | tee /sys/class/leds/dell\:\:kbd_backlight/brightness

exit 0

Когда вы закончите вставлять код, сохраните файл и выйдите из текстового редактора, а затем измените разрешения для такого файла:

sudo chmod 755 /usr/bin/keyboard-backlight-brightness.sh

Теперь, когда вы создали скрипт sh keyboard-backlight-brightness.shвнутри /usr/bin, пришло время вложить его в скрипт службы systemd, который, однако, должен быть создан первым.

ШАГ 2 -СОЗДАЙТЕ СЦЕНАРИЙ SYSTEMD, А ЗАТЕМ ВКЛАДИТЕ В НЕГО СЦЕНАРИЙ SH

На терминале запустите:

sudo gedit /etc/systemd/system/keyboard-backlight-brightness.service

...а затем вставьте этот код в новый файл:

[Unit]
Description=Sets keyboard backlight brightness at boot time

[Service]
ExecStart=/usr/bin/keyboard-backlight-brightness.sh

[Install]
WantedBy=multi-user.target graphical.target rescue.target

(обратите внимание, что сценарий keyboard-backlight-brightness.shвложен через параметр ExecStart. Также,параметры в WantedByзаставляют сценарий systemd всегда выполняться -, за исключением случаев, когда система либо перезагружается, либо выключает компьютер)

Когда вы закончите вставлять код, сохраните файл и выйдите из текстового редактора, а затем измените разрешения для такого файла:

sudo chmod 755 /etc/systemd/system/keyboard-backlight-brightness.service

ШАГ 3 -ПЕРЕЗАГРУЗИТЕ КОНФИГУРАЦИЮ SYSTEMD И ЗАТЕМ ВКЛЮЧИТЕ НОВЫЙ СЕРВИСНЫЙ СЦЕНАРИЙ SYSTEMD

В терминале выполните приведенную ниже команду, чтобы включить новый сценарий службы systemd в среду systemd:

sudo systemctl daemon-reload

...и затем выполните приведенную ниже команду, чтобы такая новая служба keyboard-backlight-brightness.serviceзагружалась во время загрузки:

sudo systemctl enable keyboard-backlight-brightness.service

ШАГ 4 -ЗАПУСК СЦЕНАРИЯ СЛУЖБЫ SYSTEMD

Просто беги:

sudo systemctl start keyboard-backlight-brightness.service

...и служба будет запущена.


Если вы решили сохранить в коде параметр диапазона локального времени, то, если к моменту запуска скрипта службы systemd ваше местное время окажется в диапазоне, указанном в скрипте, подсветка клавиатуры загорится, иначе такая подсветка будет отключена.

Вы можете перезагрузить систему, чтобы убедиться, что скрипт действительно запускается (и работает )во время загрузки:

sudo telinit 6

или

sudo shutdown -r now

или

sudo reboot

или

sudo init 6
0
22.12.2020, 05:27

Теги

Похожие вопросы