Faça retroiluminação do teclado num Samsung

5

Eu recentemente tenho um Samsung NP900X3N e estou tentando fazer o backlight funcionar (com o Linux Mint 18.1 e o Kernel 4.10 no UEFI). Eu li muito sobre isso e estou ciente de que existem muitas páginas sobre esse tópico, mas elas são todas antigas (3 + anos) e eu não poderia fazer nenhuma delas funcionar para mim (talvez porque essa versão do laptop é relativamente novo).

Algumas coisas que tentei são:

  • Eu fiz o download e instalei o pacote samsung-tools , mas a execução me dá um erro após cerca de 2 minutos sem saída.
  • Eu tentei encontrar um arquivo samsung::kbd_backlight/brightness de acordo com esta resposta simples , mas aparentemente há none (só consegui encontrar um phy0-led/brightness , que não sei o que faz, mas já está definido como 1).
  • Tentei seguir este guia de uma forma muito abordagem manual, mas para ser honesto eu não fui capaz de ir longe demais (provavelmente por falta de conhecimento da minha parte, mas eu devo ter uma abordagem menos complicada)
  • Checando o código de verificação da chave, verificando o log do kernel como sugerido por esta resposta .

Este último é o que chegou mais próximo e o que eu gostaria de prosseguir. Ao pressionar fn+f9 (alternar a luz de fundo do teclado), recebo o código de verificação e02c atribuído a essa chave. Então eu fiz

sudo setkeycodes e02c 230

como sugerido por a resposta . Então, quando pressiono essa tecla, recebo uma notificação que mostra um símbolo de luz no teclado, que acredito ser um bom sinal, mas nada acontece.

Como a questão afirma o valor do código de tecla 230 é para aumentar o kbdlight, mas meu laptop não tem isso: ele só tem a tecla kbdlight alternada. Então, acho que esse pode ser o problema, mas não consigo encontrar um código de tecla de "alternância" (que pode ser devido à minha incapacidade de entender /usr/include/linux/input.h totalmente).

Eu tentei usar xmodmap -pke | less para encontrar a "luz de fundo do teclado alternado", que está listada como código de tecla 236, mas aparentemente os números nessa lista realmente não funcionam.

Alguma sugestão?

EDITAR

Saída de ll /sys/class/backlight/ :

lrwxrwxrwx  1 root root 0 Apr 28 07:16 intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/

Já tentei alterar o valor em /sys/class/backlight/brightness , mas isso controla apenas o brilho da tela.

Saída de ll /sys/class/leds/ :

lrwxrwxrwx  1 root root 0 Apr 28 07:19 input3::capslock -> ../../devices/platform/i8042/serio0/input/input3/input3::capslock/
lrwxrwxrwx  1 root root 0 Apr 28 07:19 input3::numlock -> ../../devices/platform/i8042/serio0/input/input3/input3::numlock/
lrwxrwxrwx  1 root root 0 Apr 28 07:19 input3::scrolllock -> ../../devices/platform/i8042/serio0/input/input3/input3::scrolllock/
lrwxrwxrwx  1 root root 0 Apr 28 07:19 phy0-led -> ../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/leds/phy0-led/

O capslock é o que diz (testei). O numlock não parece fazer nada, desde que eu mudei o valor de 0 para o máximo e nada aconteceu (o meu teclado não tem um numlock. O scrolllock também não parece fazer nada. Eu também não sei qual phy0-led . Já está definido como 1 e colocar 0 não parece fazer nada.

EDIT2

Fazer modprobe samsung-laptop me dá o seguinte erro

modprobe: ERROR: could not insert 'samsung_laptop': No such device

que parece ser um bug antigo .

    
por TomCho 28.04.2017 / 06:26

1 resposta

1

Existem duas partes para controlar a luz de fundo com teclas especiais do teclado:

  • entenda os eventos que são produzidos quando as teclas são pressionadas
  • realmente altera a intensidade da luz de fundo

E você precisa de um programa, por exemplo, um gerenciador de janelas, que reaja aos eventos e mude a intensidade.

Você está bem na primeira parte, você recebe um evento, e nós podemos resolver as traduções necessárias mais tarde. Quanto à segunda parte, você precisa de algum driver que saiba como controlar a intensidade da luz de fundo e, em seguida, alguma interface para esse driver.

Muitas vezes, elas são encontradas na hierarquia /sys , por isso tente

ll /sys/class/backlight
ll /sys/class/led

e edite sua pergunta com a saída. Esses diretórios devem conter links para outros diretórios com um arquivo denominado brightness e um arquivo denominado max_brightness . Se você não conseguir descobrir o nome, veja o conteúdo de max_brightness e, como root, tente escrever números entre 0 e o valor máximo para cada um desses arquivos, como

echo 0 > /sys/class/led/phy0-led/brightness

e veja se você consegue identificar o que ele controla.

Editar :

Ok, parece que não há controles para a luz de fundo do teclado e você precisa de um driver específico. phy0-led é muito provavelmente um conector de LED de WLAN, que pode ou não estar realmente conectado a qualquer coisa. Você pode verificar com lspci e procurar o dispositivo em 00:1c.0 .

Os controles samsung::kbd_backlight são fornecidos pelo asus-wmi driver para portáteis ASUS usando a interface WMI. O é algo semelhante para a Samsung, nomeadamente samsung -laptop , ele fornece leds/samsung::kbd_backlight e também há uma interface debugfs para acesso mais direto.

Não faço ideia se isso funcionará no seu modelo. Experimente

modprobe samsung-laptop

como root, informe com lsmod se ele está carregado, veja dmesg para ver se houve algum problema ou outras mensagens e veja se algo aparece.

    
por 28.04.2017 / 08:35