гибридный-язык-blinklight, не работающий с thinkpad_acpi (T430)

. Граница и команда оболочки POSIX в то время как source команда C-Shell.

Некоторые производные Оболочки Bourne как bash, zsh и большинство реализаций ksh также имейте a source команда, которая обычно является псевдонимом для . хотя для ksh с различиями.

Для удара и zsh, . и source ведите себя то же, но их поведение затронуто тем, работают ли они в режиме POSIX или не ¹.

POSIX требует что . управляйте выходит из оболочки, если она не может открыть файл для чтения и требует, чтобы файл был найден посредством поиска каталогов в $PATH если обеспеченный путь не содержит a /.

zsh и удар . и source ведите себя, поскольку POSIX требует когда в режиме POSIX, и как pdksh's source если не это, они не выходят из сценария, если им не удается открыть файл для чтения (то же как command .) и поиск файл в $PATH и текущий каталог, если обеспеченный путь не содержит a /.

ksh's AT&T source не выходит из оболочки ни один, но не ищет файл в текущем каталоге.

В целом, в подобных Границе оболочках (хотя не Оболочка Bourne, которая не имеет a command встроенный), если Вы хотите последовательное поведение, Вы могли бы сделать

command . the-file-to-source || handle-error

И если the-file-to-source предназначен, чтобы быть в текущем каталоге, убедиться записать:

command . ./the-file-to-source || handle-error

В sh сценарии (где sh POSIX sh) необходимо смочь полагаться на вышеизложенное поведение POSIX.


¹ zsh и bash включите режим POSIX при вызове как sh. Для bash также когда это получает POSIXLY_CORRECT в его среде (даже когда названо как удар даже при том, что нет никакой названной команды POSIX bash), или когда это получает SHELLOPTS=posix, или при вызове bash --posix или bash -o posix или после a set -o posix. С zsh Вы используете emulate sh эмулировать sh. Эмуляции изменяют целый набор опций, которые изменяют поведение zsh. В этом случае опция POSIX_BUILTINS.

В ударе можно проверить если в режим POSIX или не с (неPOSIX), [ -o posix ] команда. В zsh Вы проверяете вывод emulate видеть, находитесь ли Вы в sh эмуляция, или [[ -o posixbuiltins ]] проверять, включена ли та конкретная опция. Можно также временно включить данный режим эмуляции с emulate -L (для эмуляции только в текущем локальном объеме).

3
18.10.2013, 22:02
3 ответа

К сожалению, нет никакой известной возможности управлять thinklight на том ноутбуке, кроме прочь. Можно попробовать его, когда thinklight идет echo 0 > /sys/class/leds/tpacpi\:\:thinklight/device/leds/tpacpi\:\:thinklight/brightness. Помещение 255 как значение для включения его больше не работает.

Возможно, это имеет некоторое отношение к новой подсветке, но я не уверен.

2
27.01.2020, 21:23

Плагин говорит, что ему нужна ibm-acpi, но это удерживается от использования насколько я могу сказать, и thinkpad_acpi загружается по умолчанию на моей машине:

Хотя имя модуля ядра изменилось, интерфейс пространства пользователя не имеет. Через думать-свет все еще управляют /proc/acpi/ibm/light. Быстрые 'строки' начинают работу pidgin-blinklight шоу, что путь находится все еще в двоичном файле.

Таким образом, мое образованное предположение - то, что это должно работать, как.

0
27.01.2020, 21:23

Я знаю, что этот вопрос древний, но для всех, кому интересно, следующее решение работает на моем T430s под Kubuntu 14.04:

https://www.reddit.com/r/thinkpad/comments/5f87sg/hint_blinking_the_thinklight_with_software_on_new/

На случай, если ссылка на reddit исчезнет: скомпилируйте это в исполняемый файл ec_access:

https://github.com/torvalds/linux/blob/master/tools/power/acpi/tools/ec/ec_access.c

Затем сделайте

./ec_access -w 0x3b -v 16

для включения, и

./ec_access -w 0x3b -v 14

для выключения.

1
27.01.2020, 21:23

Теги

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