Подсветка клавиатуры на Toshiba U940

Всем привет

Столкнулся с “загадкой”

События в хронологическом порядке:
Купил Toshiba U940
установил openSUSE 12.3
не работал тачпад и Fн+ кнопки
долго пытался разобраться, с тачпадом - в результате он сам собой заработал (после очередного беспорядочного тыкания по кнопке Fn+ON/OFF Touchpad во время загрузки ОС, перед загрузкой и после загрузки. Вообщем как он заработал, я так и не понял)
начал искать решение для переназначения Fn клавиш
Пока искал - натыкался, что в Ubuntu на работает подсветка клавиатуры.
Очень радовался за свою openSUSE
Вчера поставил обновления и доп софт (много всего разного - тут не перечислить)
запустил инсталл и ушел на работу
по словам жены - все прошло успешно
сегодня подсветка клавы не работает
полазил по нету - нашел, что помогает отключение ACPI при загрузке - для меня это не выход.
Попробовал переинсталить систему - не помогло.

Аппаратных проблем нет - до загрузки системы подсветка работает, как только нажимаю в boot меню загружать openSUSE 12.3 после пары секунд подсветка выключается.

Как так может быть, что после первого инстала подсветка работала, а теперь нет?

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

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

P.S.
Вот тут нашел
https://forums.computers.toshiba-europe.com/forums/thread.jspa?threadID=69982

Hi there

I just tried 2 Fedora versions on the U940 and the result is this:

  • Fedora 18 out of the “box” (means no updates applied): no keyboard backlight.
  • Fedora 19 pre-alpha : keyboard backligh works fine!

Fedora 18 has Kernel 3.6 something when downloaded from Fedora. However the current kernel after updating is 3.8.4 so it might be that the currentl F18-kernel will support the backlight feature.

BR Tom

Ну так попробуйте установить ядро посвежее.

Я-то может и поставлю, но почему работало, а потом перестало?
т.е. может работать и с нынешним ядром, вопрос как этим управлять?

Поставил с ядром из
Index of /repositories/Kernel:/stable/standard

Не помогло

На live cd с 12.3 тоже не работает подсветка?

Подсветка жыключается, как только начинает грузиться initrd ramdisk (или как там его?)

Вот тут
[ubuntu] Toshiba A665 Laptop – Illuminated Backlit Keyboard - Page 11](http://ubuntuforums.org/showthread.php?t=1533744&page=11)

Убунтоводы нашли, что если установить Винду, а потом заинсталить Линух, то подсветка начинает работать и в Линухе
Это обьясняет, почему изначально она у меня работала.

Но это не обьясняет, как это работает.
Тут есть такой момент:
Кроме подсветки не работают все Fn+ кнопки, кроме +/-Звук. Комбинация Fn+Z должна вкл/выкл подсветку, но т.к. это не работает…
Я вот ща думаю, что если заставить работать Fn+ функции и в частности отвечающую за управление подсветкой клавиатуры Fn+Z то вопрос решиться.
Но этот вопрос в сети тоже не особо освещен.

Есть идеи?

Править таблицу ACPI (на хабре была статья), обновлять биос… но все выше перечисленное на свой страх и риск.

На хабре описывается процесс правки для видеокарты. Место, где править он нашел по нумеру устройства на шине PCI.
Как найти диоды подсветки я пока не придумал.

К тому-же - работало-же! Ведь работало, и без правки, без танцев с бубном. Сначала работало, а потом перестало.
Опять-же - на форуме тошибы народ отписался, что с в Fedora 19 с ядром 3.9 работает, а вот у меня с ядром 3.9.7 - нет.

Fn+Z - комбинация, которая включает/выключает подсветку - работает на этапе меню GRUB, а как только начинает грузиться система - отключается.

Нашел вот что:
/sys/class/leds/toshiba::illumination

в ней:

-rw-r--r-- 1 root root 4096 Jun 27 17:53 brightness
lrwxrwxrwx 1 root root    0 Jun 27 17:53 device -> ../../../TOS1900:00
-r--r--r-- 1 root root 4096 Jun 27 17:53 max_brightness
drwxr-xr-x 2 root root    0 Jun 27 17:53 power
lrwxrwxrwx 1 root root    0 Jun 27 17:51 subsystem -> ../../../../../../class/leds
-rw-r--r-- 1 root root 4096 Jun 27 17:53 trigger
-rw-r--r-- 1 root root 4096 Jun 27 17:50 uevent

в brightness стоит 0
в max_brightness стоит 1

cat trigger
[none] cpu0 cpu1 cpu2 cpu3 ACAD-online rfkill0 phy0rx phy0tx phy0assoc phy0radio BAT1-charging-or-full BAT1-charging BAT1-full BAT1-charging-blink-full-solid rfkill1

uevent - пустой

Если переходим в device, то перекидывает на:
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination

далее:
lsmod | grep toshiba

toshiba_acpi           13232  0 
sparse_keymap           2856  1 toshiba_acpi
rfkill                 10027  5 bluetooth,cfg80211,toshiba_acpi
wmi                     8083  1 toshiba_acpi
toshiba_bluetooth       2065  0 

и еще:

find | grep TOS1900

./sys/bus/acpi/devices/TOS1900:00
./sys/bus/acpi/drivers/Toshiba ACPI driver/TOS1900:00
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/hid
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/brightness
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/control
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/async
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/runtime_enabled
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/runtime_active_kids
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/runtime_active_time
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/autosuspend_delay_ms
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/runtime_status
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/runtime_usage
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/runtime_suspended_time
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/max_brightness
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/device
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/subsystem
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/trigger
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/uevent
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/path
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/power
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/power/control
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/power/async
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/power/runtime_enabled
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/power/runtime_active_kids
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/power/runtime_active_time
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/power/autosuspend_delay_ms
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/power/runtime_status
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/power/runtime_usage
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/power/runtime_suspended_time
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/modalias
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/driver
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/subsystem
./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/uevent

и пройдясь по содержимому:
cat ./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/runtime_enabled
disabled

cat ./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/runtime_status
unsupported

cat ./sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS1900:00/leds/toshiba::illumination/power/runtime_usage
0

исходя из всего изложенного - это есть, но не включено.

Кто может посказать, что со всем этим делать? Моих знаний пока не хватает.

А теперь САМОЕ загадочное, по крайней мере для меня:

Скачал Fedora 19 beta KDE Live
Закинул на USB
Загрузился - подсветка работает
Вырубил комп кнопкой питания
Включил и згрузился в заинсталенную на компе openSUSE - РАБОТАЕТ!

Кто знает, как это можно обьяснить?


К тому-же - работало-же! Ведь работало, и без правки, без танцев с бубном. Сначала работало, а потом перестало.
Опять-же - на форуме тошибы народ отписался, что с в Fedora 19 с ядром 3.9 работает, а вот у меня с ядром 3.9.7 - нет.

Fn+Z - комбинация, которая включает/выключает подсветку - работает на этапе меню GRUB, а как только начинает грузиться система - отключается.

Нашел вот что:
/sys/class/leds/toshiba/brightness
в brightness стоит 0
в max_brightness стоит 1

Попробуйте
#echo 1 > /sys/class/leds/toshiba/brightness
подсветка должна включиться

исходя из всего изложенного - это есть, но не включено.

Кто может посказать, что со всем этим делать? Моих знаний пока не хватает.[/QUOTE]

Шаг номер один. Проверте какие модули ядра трудятся на этом фронте и их параметры. (lsmod, modinfo)
У меня на sony vaio яркость экрана пытались регулировать сразу четыре i915,sony-laptop,acer-wmi,video
И только один из них (i915) реально это делал. acer-wmi вообще мешал работе bluetooth.

У Вас скорее всего ситуация аналогичная.
Выгрузим ненужный модуль например:
modprobe -r acer-wmi
Если результат положительный, занесём в чёрный список загружаемых модулей.

в файл /etc/modprobe.d/50-blaclist.conf допишем строчку blacklist acer-wmi

Шаг номер два.
Смотрим параметры родного драйвера Toshiba, кстати драйвера лежат в папке
/lib/modules/имя ядра/kernel/drivers/platform/x86/
В вашем случае:

modinfo toshiba_acpi

filename: /lib/modules/3.6.0-1-desktop/kernel/drivers/platform/x86/toshiba_acpi.ko
license: GPL
description: Toshiba Laptop ACPI Extras Driver
author: John Belmonte
srcversion: E25A601EDF9A03900D073AA
alias: acpi*:TOS1900:*
alias: acpi*:TOS6208:*
alias: acpi*:TOS6200:*
depends: wmi,rfkill,sparse-keymap
intree: Y

Работает в связке с rfkill
Смотрим что эта утилита может

rfkill list

rfkill help

Драйвер поддерживает три модели 1900,6208,6200
У Вас новенькая!
Смотрим в исходник драйвера в одноимённой папке исходников ядра и сравниваем интефейсы с которыми
он работает с интерфейсами которые предоставляет BIOS. Некоторые будут отличаться.
Утилиты acpidump,iasl из пакета acpica…

Это в теории.
На практике, моих сил хватило найти то, что ядро определило, но система по какой то причине
не желает или не умеет это использовать и написать скрипт который посылает в нужный файл нужное
значение.

Некоторые интерфейсы предоставляемые BIOS запоминают своё состояние на аппаратном уровне, т.е.
микросхема помнит последнее значение, которое ей сказала операционная система.
У Вас это подсветка клавиатуры у меня бережливый режим заряда аккамулятора 80%. Если выставить
из Windows то под Linux батарея только до 80% будет заряжаться.

Некоторые наоборот при старте включаются и системе приходиться их отключать, если профиль пользователя не предполагает их работу.
Например wi-fi .