Копирование 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
для восстановления всего. Удачи.
Неважно, что максимальное значение, скорее всего, должно быть постоянным, я не знаю почему и как, но при предыдущей загрузке у меня было максимальное значение 3. Теперь у меня 2. Я смущен и озадачен одновременно.
Не хочу искать причину, типа настройки биоса, давайте просто прочитаем максимальное значение при загрузке и установим его. Неважно, если днем я случайно не выключил подсветку.
Я придумал прямой подход, используя:
sudo crontab -e
И чтение и установка максимального значения одной командой:
@reboot /bin/cat /sys/class/leds/dell\:\:kbd_backlight/max_brightness > /sys/class/leds/dell\:\:kbd_backlight/brightness
Я сделал что-то более податливое (, т.е. настраиваемое ):Я создал сценарий инициализации, который автоматически запускается во время загрузки, за исключением случаев, когда уровень запуска установлен либо 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
. В таком случае вам необходимо:
Остановить сценарий инициализации:
sudo service keyboard-backlight-brightness stop
Затем удалите скрипт из системы инициализации:
sudo update-rc.d -f keyboard-backlight-brightness remove
Затем удалите файл сценария инициализации:
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