LINUX.ORG.RU

Подсветка ноутбука

 , ,


0

1

Добрый день, ЛОР.

Имею ноутбук Sony Vaio SVE1713W1R. Установлены Windows 8.1 и Fedora 25 с третьегномом. Большинство железа, включая звук и Wi-Fi, в федоре работает отлично. Исключением является подсветка клавиатуры: в винде работает, в федоре нет. Есть ли возможность как-то это вылечить?

Iron_Bug, ты как-то писала, что накатывала дрова для конкретного чипсета, и всё заработало. Я тогда сдуру не поинтересовался, относилось ли это именно к подсветке, и откуда вообще это берут?

Как принято узнавать чипсет для конкретной модели, тоже хотелось бы прояснить, с учётом того, что модель уже не производится (но пашет на ура и вообще очень хороша).

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

P.P.S. uname -a сообщает:

Linux localhost.localdomain 4.13.16-100.fc25.x86_64 #1 SMP Mon Nov 27 19:52:46 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
★★★★★

Рассказываю свой опыт, может наведет на какие-нибудь мысли. Имею относительно старенький ноут Samsung 9 серии. Тоже не работала подсветка в 26 федоре на ноуте. Опытным путем выяснил, что если в биосе выставить режим UEFI - то функциональные клавиши подсветки (и еще какие-то) не работают. При обычном Legacy варианте все работает как часы. Разбираться не стал, принял, как есть, тем более, что включение UEFI для меня не было принципиальным.

Возможно, что еще переустанавливал федору после смены режима с UEFI на Legacy, но это неточно.

whoami-neo ()

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

i-rinat ★★★★★ ()
Ответ на: комментарий от IMAM

Посветкой управляет EC, драйвер на него накатить нельзя.

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

i-rinat ★★★★★ ()

модуль sony-laptop загружен?
В сети довольно много статей вокруг подсветки клавиатуры, в том числе по багам в этом модуле и его параметрам kbd_backlight, kbd_backlight_timeout, мапятся в /sys/devices/platform/sony-laptop, что там?

bormant ★★★★★ ()
Ответ на: комментарий от bormant

О, вот это уже интереснее!

модуль sony-laptop загружен?

lsmod уверяет, что да. :)

и его параметрам kbd_backlight, kbd_backlight_timeout, мапятся в /sys/devices/platform/sony-laptop

Гм... Каталог /sys/devices/platform/sony-laptop в системе присутствует. Я правильно понял, что kbd_backlight, kbd_backlight_timeout должны быть там в виде файлов? Нету таких. :(

Таки впрямь обновлять ядро?

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

давайте глянем
grep -R sony-laptop /etc/modprobe.d

не поможет ли тривиально выставить
# echo option sony-laptop kbd_backlight=1 >> /etc/modprobe.d/sony-laptop.conf
и перезагрузить модуль (можно вместе с системой ;) )

bormant ★★★★★ ()
Ответ на: комментарий от greenman

Не работает.

Более того, в modinfo sony-laptop на своей системе я вычитал, что там уже не 2 варианта, а 3: kbd_backlight=0 выключает подсветку, kbd_backlight=1 означает автоматическое управление подсветкой, а kbd_backlight=2 держит её постоянно включённой. Поскольку у меня не было уверенности, что я правильно написал конфиги, я попробовал то же самое сделать руками:

rmmod sony-laptop
modprobe sony-laptop -v kbd_backlight=2

Модуль загружается и даже, вроде, принимает параметр (по крайней мере, если указать параметр с заведомо неверным именем, modprobe ругается, а здесь ругани нет). Но клавиатура по-прежнему тёмная.

В винде всё работает...

hobbit ★★★★★ ()
Ответ на: комментарий от bormant

dmesg на каждый запуск модуля пишет, что

[ 1757.589822] input: Sony Vaio Keys as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:01/SNY5001:00/input/input13
[ 1757.590059] input: Sony Vaio Jogdial as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:01/SNY5001:00/input/input14
[ 1757.601512] sony_laptop: SNC setup done.
hobbit ★★★★★ ()
Ответ на: комментарий от bormant

А если погрузить sony-laptop, добавив debug=1 в его options, разговорчивее не станет?

Выдаёт многабукоф:

[ 2704.040022] sony_laptop: __call_snc_method: [SN01]
[ 2704.042691] sony_laptop: __call_snc_method: [SN03:0x000000000000ff8d]
[ 2704.083122] sony_laptop: Sony Notebook Control Driver removed.
[ 2707.706892] sony_laptop: method: name: PWAK, args 0
[ 2707.706894] sony_laptop: method: name: WAKR, args 0
[ 2707.706895] sony_laptop: method: name: EAWK, args 1
[ 2707.706895] sony_laptop: method: name: GCIM, args 1
[ 2707.706896] sony_laptop: method: name: SN00, args 1
[ 2707.706897] sony_laptop: method: name: SN01, args 0
[ 2707.706898] sony_laptop: method: name: SN02, args 1
[ 2707.706899] sony_laptop: method: name: SN03, args 1
[ 2707.706899] sony_laptop: method: name: SN04, args 0
[ 2707.706900] sony_laptop: method: name: SN05, args 1
[ 2707.706901] sony_laptop: method: name: SN06, args 1
[ 2707.706902] sony_laptop: method: name: SN07, args 1
[ 2707.706903] sony_laptop: method: name: SNCF, args 2
[ 2707.706903] sony_laptop: method: name: SNCM, args 1
[ 2707.706904] sony_laptop: method: name: S100, args 1
[ 2707.706905] sony_laptop: method: name: S101, args 1
[ 2707.706906] sony_laptop: method: name: S148, args 1
[ 2707.706906] sony_laptop: method: name: S114, args 1
[ 2707.706907] sony_laptop: method: name: S11D, args 1
[ 2707.706908] sony_laptop: method: name: S122, args 1
[ 2707.706909] sony_laptop: method: name: S135, args 1
[ 2707.706909] sony_laptop: method: name: S13F, args 1
[ 2707.706910] sony_laptop: method: name: S15D, args 1
[ 2707.706911] sony_laptop: method: name: S13A, args 1
[ 2707.706912] sony_laptop: method: name: S149, args 1
[ 2707.706912] sony_laptop: method: name: S147, args 1
[ 2707.706913] sony_laptop: method: name: S153, args 1
[ 2707.706914] sony_laptop: method: name: S155, args 1
[ 2707.706915] sony_laptop: method: name: S156, args 1
[ 2707.706916] sony_laptop: method: name: S157, args 1
[ 2707.706916] sony_laptop: method: name: GBRT, args 0
[ 2707.706917] sony_laptop: method: name: SBRT, args 1
[ 2707.706959] input: Sony Vaio Keys as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:01/SNY5001:00/input/input23
[ 2707.707178] input: Sony Vaio Jogdial as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:01/SNY5001:00/input/input24
[ 2707.707384] sony_laptop: Doing SNC setup
hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

Продолжение:

[ 2707.707499] sony_laptop: __call_snc_method: [SN00:0x0000000000000020]
[ 2707.707500] sony_laptop: caching handle 0x0100 (offset: 0x00)
[ 2707.707587] sony_laptop: __call_snc_method: [SN00:0x0000000000000021]
[ 2707.707588] sony_laptop: caching handle 0x0101 (offset: 0x01)
[ 2707.707670] sony_laptop: __call_snc_method: [SN00:0x0000000000000022]
[ 2707.707671] sony_laptop: caching handle 0x0114 (offset: 0x02)
[ 2707.707750] sony_laptop: __call_snc_method: [SN00:0x0000000000000023]
[ 2707.707751] sony_laptop: caching handle 0x015d (offset: 0x03)
[ 2707.707831] sony_laptop: __call_snc_method: [SN00:0x0000000000000024]
[ 2707.707832] sony_laptop: caching handle 0x011d (offset: 0x04)
[ 2707.707911] sony_laptop: __call_snc_method: [SN00:0x0000000000000025]
[ 2707.707912] sony_laptop: caching handle 0x0122 (offset: 0x05)
[ 2707.708004] sony_laptop: __call_snc_method: [SN00:0x0000000000000026]
[ 2707.708005] sony_laptop: caching handle 0x0135 (offset: 0x06)
[ 2707.708087] sony_laptop: __call_snc_method: [SN00:0x0000000000000027]
[ 2707.708088] sony_laptop: caching handle 0x013a (offset: 0x07)
[ 2707.708168] sony_laptop: __call_snc_method: [SN00:0x0000000000000028]
[ 2707.708169] sony_laptop: caching handle 0x013f (offset: 0x08)
[ 2707.708248] sony_laptop: __call_snc_method: [SN00:0x0000000000000029]
[ 2707.708249] sony_laptop: caching handle 0x0147 (offset: 0x09)
[ 2707.708327] sony_laptop: __call_snc_method: [SN00:0x000000000000002a]
[ 2707.708328] sony_laptop: caching handle 0x0148 (offset: 0x0a)
[ 2707.708407] sony_laptop: __call_snc_method: [SN00:0x000000000000002b]
[ 2707.708408] sony_laptop: caching handle 0x0149 (offset: 0x0b)
[ 2707.708488] sony_laptop: __call_snc_method: [SN00:0x000000000000002c]
[ 2707.708489] sony_laptop: caching handle 0x0153 (offset: 0x0c)
[ 2707.708567] sony_laptop: __call_snc_method: [SN00:0x000000000000002d]
[ 2707.708568] sony_laptop: caching handle 0x0155 (offset: 0x0d)
[ 2707.708645] sony_laptop: __call_snc_method: [SN00:0x000000000000002e]
[ 2707.708647] sony_laptop: caching handle 0x0156 (offset: 0x0e)
[ 2707.708726] sony_laptop: __call_snc_method: [SN00:0x000000000000002f]
[ 2707.708727] sony_laptop: caching handle 0x0157 (offset: 0x0f)
[ 2707.708732] sony_laptop: setting up handle 0x0100
[ 2707.708733] sony_laptop: found handle 0x0100 (offset: 0x00)
[ 2707.711260] sony_laptop: __call_snc_method: [SN07:0x0000000000000000]
[ 2707.711262] sony_laptop: called SN07 with 0x0000 (result: 0x0000)
[ 2707.711263] sony_laptop: setting up handle 0x0101
[ 2707.711264] sony_laptop: found handle 0x0101 (offset: 0x01)
[ 2707.712775] sony_laptop: __call_snc_method: [SN07:0x0000000000000001]
[ 2707.712778] sony_laptop: called SN07 with 0x0001 (result: 0x0001)
[ 2707.712780] sony_laptop: setting up handle 0x0114
[ 2707.712781] sony_laptop: setting up handle 0x015d
[ 2707.712783] sony_laptop: found handle 0x015d (offset: 0x03)
[ 2707.713174] sony_laptop: __call_snc_method: [SN07:0x0000000000000003]
[ 2707.713175] sony_laptop: called SN07 with 0x0003 (result: 0x0001)
[ 2707.713179] sony_laptop: setting up handle 0x011d
[ 2707.713180] sony_laptop: setting up handle 0x0122
[ 2707.713181] sony_laptop: found handle 0x0122 (offset: 0x05)
[ 2707.713275] sony_laptop: __call_snc_method: [SN07:0x0000000000000005]
[ 2707.713276] sony_laptop: called SN07 with 0x0005 (result: 0x0003)
[ 2707.713277] sony_laptop: found handle 0x0122 (offset: 0x05)
[ 2707.713508] sony_laptop: __call_snc_method: [SN07:0x0000000000000105]
[ 2707.713509] sony_laptop: called SN07 with 0x0105 (result: 0x0100)
[ 2707.713513] sony_laptop: setting up handle 0x0135
[ 2707.713514] sony_laptop: found handle 0x0135 (offset: 0x06)
[ 2707.714097] sony_laptop: __call_snc_method: [SN06:0x0000000000000006]
[ 2707.714099] sony_laptop: Radio devices, found 0x00
[ 2707.714102] sony_laptop: found handle 0x0135 (offset: 0x06)
[ 2707.714509] sony_laptop: __call_snc_method: [SN07:0x0000000000000206]
[ 2707.714510] sony_laptop: called SN07 with 0x0206 (result: 0x0201)
[ 2707.714510] sony_laptop: found handle 0x0135 (offset: 0x06)
[ 2707.714939] sony_laptop: __call_snc_method: [SN07:0x0000000000000306]
[ 2707.714940] sony_laptop: called SN07 with 0x0306 (result: 0x0303)
[ 2707.715010] sony_laptop: found handle 0x0135 (offset: 0x06)
[ 2707.715603] sony_laptop: __call_snc_method: [SN07:0x0000000000070406]
[ 2707.715605] sony_laptop: called SN07 with 0x70406 (result: 0x70406)
[ 2707.715653] sony_laptop: Radio devices, found 0x10
[ 2707.715658] sony_laptop: found handle 0x0135 (offset: 0x06)
[ 2707.715928] sony_laptop: found handle 0x0135 (offset: 0x06)
[ 2707.716474] sony_laptop: __call_snc_method: [SN07:0x0000000000000206]
[ 2707.716475] sony_laptop: called SN07 with 0x0206 (result: 0x0201)
[ 2707.716476] sony_laptop: found handle 0x0135 (offset: 0x06)
[ 2707.717077] sony_laptop: __call_snc_method: [SN07:0x0000000000070406]
[ 2707.717078] sony_laptop: called SN07 with 0x70406 (result: 0x70406)
[ 2707.717396] sony_laptop: __call_snc_method: [SN07:0x0000000000000506]
[ 2707.717397] sony_laptop: called SN07 with 0x0506 (result: 0x0503)
[ 2707.717437] sony_laptop: found handle 0x0135 (offset: 0x06)
[ 2707.718183] sony_laptop: __call_snc_method: [SN07:0x0000000000070606]
[ 2707.718185] sony_laptop: called SN07 with 0x70606 (result: 0x70606)
[ 2707.718205] sony_laptop: Radio devices, found 0x7e
[ 2707.718206] sony_laptop: Radio devices, found 0x7f
[ 2707.718207] sony_laptop: setting up handle 0x013a
[ 2707.718208] sony_laptop: setting up handle 0x013f
[ 2707.718218] sony_laptop: setting up handle 0x0147
[ 2707.718219] sony_laptop: setting up handle 0x0148
[ 2707.718221] sony_laptop: setting up handle 0x0149
[ 2707.718225] sony_laptop: setting up handle 0x0153
[ 2707.718226] sony_laptop: found handle 0x0153 (offset: 0x0c)
[ 2707.718722] sony_laptop: __call_snc_method: [SN07:0x000000000000000c]
[ 2707.718723] sony_laptop: called SN07 with 0x000c (result: 0x000c)
[ 2707.718724] sony_laptop: no backlight keyboard found
[ 2707.718725] sony_laptop: setting up handle 0x0155
[ 2707.718726] sony_laptop: found handle 0x0155 (offset: 0x0d)
[ 2707.718774] sony_laptop: found handle 0x0135 (offset: 0x06)
[ 2707.718935] sony_laptop: __call_snc_method: [SN07:0x000000000000000d]
[ 2707.718937] sony_laptop: called SN07 with 0x000d (result: 0x0001)
[ 2707.718943] sony_laptop: setting up handle 0x0156
[ 2707.718944] sony_laptop: setting up handle 0x0157
[ 2707.719589] sony_laptop: __call_snc_method: [SN07:0x0000000000070606]
[ 2707.719591] sony_laptop: called SN07 with 0x70606 (result: 0x70606)
[ 2707.719592] sony_laptop: __call_snc_method: [SN00:0x0000000000000010]
[ 2707.720729] sony_laptop: __call_snc_method: [SN02:0x000000000000ff8d]
[ 2707.720738] sony_laptop: SNC setup done.
hobbit ★★★★★ ()
Ответ на: комментарий от bormant

Есть еще такая балалайка

Видел. Даже собрал из исходников. Но там не только дата несвежа, похоже, но и имена параметров. При запуске ругается:

open_file: can't open /sys/devices/platform/sony-laptop/battery_charge_limiter: No such file or directory

«Файла» такого у меня действительно нет, зато есть battery_care_limiter в том же каталоге. Ну и по поводу подсветки там в исходниках опять-таки

static char const*const SONY_KBD_BL = "/sys/devices/platform/sony-laptop/kbd_backlight";

Т.е. вряд ли что-то сильно более интересное, чем то, что можно передать в modprobe.

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit
[ 2707.718225] sony_laptop: setting up handle 0x0153
[ 2707.718226] sony_laptop: found handle 0x0153 (offset: 0x0c)
[ 2707.718722] sony_laptop: __call_snc_method: [SN07:0x000000000000000c]
[ 2707.718723] sony_laptop: called SN07 with 0x000c (result: 0x000c)
[ 2707.718724] sony_laptop: no backlight keyboard found


А других совпадений по method name и кодом в sony-laptop.c в функциях с *_kbd_backlight_* нет. Да и этот 153 какой-то странный, probe_base, ctl_base нулевые:

static int sony_nc_kbd_backlight_setup(struct platform_device *pd,
		unsigned int handle)
{
...
	/* verify the kbd backlight presence, some of these handles are not used
	 * for keyboard backlight only
	 */
	switch (handle) {
	case 0x0153:
		probe_base = 0x0;
		ctl_base = 0x0;
		break;
...
	}

	ret = sony_call_snc_handle(handle, probe_base, &result);
	if (ret)
		return ret;

	if ((handle == 0x0137 && !(result & 0x02)) ||
			!(result & 0x01)) {
		dprintk("no backlight keyboard found\n");
		return 0;
	}
...

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 2)

Я тогда сдуру не поинтересовался, относилось ли это именно к подсветке, и откуда вообще это берут?

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

да, там была одна проблема: не управлялся кулер проца. либо всегда включен, либо выключен. насколько я помню, чтобы он управлялся, надо было ставить что-то проприетарное, но я не хотела. поэтому ноут жужжал, как самолёт на взлёте.

подсветка у меня работала без проблем. но гном я не юзала.

Iron_Bug ★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от bormant

Понятно. Похоже, надо таки обновляться.

Кстати, я на kernel.org не вижу моего ядра с номером 4.3.16. К версии 4.3 уже все номера давно стали двузначными, и различаются только на уровне релиз-кандидатов. Третий номер - это какая-то специфичная нумерация от RedHat?

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

Именно.
Остается теребить багтрекер либо самому пытаться выяснить, как именно на этих моделях через acpi включается подсветка клавиатуры и править соответственно sony-laptop.
Отдельно от ядра драйвер пересобрать не проблема.

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 2)