
Recentemente comprei um Samsung NP900X3N e estou tentando fazer a luz de fundo funcionar (com Linux Mint 18.1 e Kernel 4.10 em UEFI). Eu li muito sobre isso e sei que existem muitas páginas sobre esse assunto, mas são todas antigas (3+ anos) e não consegui fazer nenhuma delas funcionar para mim (talvez porque esta versão do laptop é relativamente novo).
Algumas coisas que tentei são:
- Baixei e instalei o
samsung-tools
pacote, mas executá-lo gera um erro após cerca de 2 minutos sem saída. - Eu tentei encontrar um
samsung::kbd_backlight/brightness
arquivo de acordo comesta resposta simples, mas aparentemente não há nenhum (só consegui encontrar umphy0-led/brightness
, que não sei o que faz, mas já está definido como 1). - Eu tentei seguireste guiaem uma abordagem muito manual, mas para ser sincero não consegui ir muito longe (provavelmente por falta de conhecimento da minha parte, mas deve haver uma abordagem menos complicada)
- Verificando o código de varredura da chave verificando o log do kernel conforme sugerido poresta resposta.
Este último é o que mais se aproximou e que 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 tecla. Então eu fiz
sudo setkeycodes e02c 230
como sugerido pora resposta. Então, quando pressiono essa tecla, recebo uma notificação que mostra um símbolo de luz no teclado, o que acredito ser um bom sinal, mas nada acontece.
Como a pergunta afirma, o valor do código-chave 230 é para aumentar o kbdlight, mas meu laptop não tem isso: ele só possui a tecla de alternância kbdlight. Então, acho que esse pode ser o problema, mas não consigo encontrar um código-chave para "alternar" (o que pode ser devido à minha incapacidade de entender /usr/include/linux/input.h
completamente).
Tentei usar xmodmap -pke | less
para encontrar a "alternância da luz de fundo do teclado", listada como código-chave 236, mas aparentemente os números dessa 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á havia tentado 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 (eu testei). O numlock parece não fazer nada, pois mudei o valor de 0 para o máximo e nada aconteceu (meu teclado não tem numlock. O scrolllock também parece não fazer nada. Também não sei what phy0-led
. Já está definido como 1 e colocar 0 não parece fazer nada.
EDITAR2
Fazer modprobe samsung-laptop
me dá o seguinte erro
modprobe: ERROR: could not insert 'samsung_laptop': No such device
o que parece ser umbug antigo.
Responder1
Existem duas partes para poder controlar a luz de fundo com teclas especiais do teclado:
- entender os eventos que são produzidos quando as teclas são pressionadas
- realmente alterar a intensidade da luz de fundo
E você precisa de um programa, por exemplo um gerenciador de janelas, que reaja aos eventos e depois mude a intensidade.
Você está bem na primeira parte, você recebe um evento e 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, de alguma interface para esse driver.
Muitas vezes estes são encontrados na /sys
hierarquia, então 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 consegue descobrir o que é pelo nome, observe o conteúdo de e max_brightness
, 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 WLAN LED, que pode ou não estar conectado a alguma coisa. Você pode verificar lspci
e procurar o dispositivo em 00:1c.0
.
Os samsung::kbd_backlight
controles são fornecidos peloasus-wmidriver para laptops ASUS usando a interface WMI. Oéalgo semelhante para Samsung, ou sejalaptop samsung, fornece leds/samsung::kbd_backlight
e também há uma debugfs
interface para acesso mais direto.
Não faço ideia se isso funcionará no seu modelo. Tentar
modprobe samsung-laptop
como root, verifique lsmod
se está carregado, verifique dmesg
se houve algum problema ou outras mensagens e veja se algo aparece.