Status dos Componentes
| Símbolo | Significado |
|---|---|
| ✅ | Sem problemas ou defeitos que não afetem o uso |
| ⚠️ | Problemas menores que afetam o uso |
| ❌ | Problemas graves ou completamente inutilizável |
Leitor de Impressões Digitais ✅
Após aplicar um patch na biblioteca libfprint, o leitor funciona corretamente. Para adicionar impressões digitais e configurar regras PAM, consulte a documentação do libfprint.
Um pacote AUR está disponível: libfprint-crfpmoc-git.
Câmera IPU6 ✅
A câmera pode ser detectada com o comando a seguir. Se aparecer na lista, geralmente está funcional.
$ detectar_cams 2>/dev/null
Câmeras disponíveis:
1: 'sensor_ov556' (\_SB_.PCI0.I2C1.CAM1)
Embora a libcamera possa acessá-la, programas que dependem do V4L2 tradicional podem falhar, pois o IPU6 não fornece um dispositivo /dev/video0 convencional. Em vez disso, expõe múltiplos nós iuntilizáveis.
$ v4l2-ctl --list-devices
ipu6 (PCI:0000:00:06.0):
/dev/video0
/dev/video1
/dev/video2
... outros dispositivos V4L2 listados
Para resolver, instale o pacote pipewire-libcamera. Isso permite o uso da câmera via PipeWire.
$ pw-cli ls Device | grep "device.api" -A2
device.api = "alsa"
device.description = "Controlador de Áudio HD Alder Lake PCH-P"
device.name = "alsa_card.pci-0000_00_1f.3-platform-rt5682_custom"
--
device.api = "v4l2"
device.description = "ipu6"
device.name = "v4l2_device.pci-0000_00_06.0"
--
device.api = "v4l2"
device.description = "ipu6"
device.name = "v4l2_device.pci-0000_00_06.0.2"
... outros dispositivos V4L2
O PipeWire inclui a ferramenta pw-v4l2 para compatibilidade com V4L2. Use-a para criar um dispositivo virtual funcional.
$ pw-v4l2 v4l2-ctl --list-devices
ipu6 (PCI:0000:00:06.0):
/dev/media0
ov556 (platform:PipeWire-222):
/dev/video0
Para evitar chamar pw-v4l2 explicitamente, defina uma variável de ambiente.
$ LD_PRELOAD=/usr/lib/pipewire-0.3/v4l2/libpw-v4l2.so v4l2-ctl --list-devices
ipu6 (PCI:0000:00:06.0):
/dev/media0
ov556 (platform:PipeWire-222):
/dev/video0
Dica Útil
Para ocultar os dispositivos V4L2 indesejados do PipeWire, crie o arquivo de configuração abaixo.
~/.config/wireplumber/wireplumber.conf.d/99-desativar-v4l2.conf
wireplumber.profiles = {
main = {
monitor.v4l2 = disabled # Desativa completamente o monitor V4L2
}
}
Reinicie os serviços após a alteração.
$ systemctl --user restart pipewire.service wireplumber.service
$ pw-cli ls Device
id 50, type PipeWire:Interface:Device/3
object.serial = "50"
factory.id = "18"
client.id = "45"
device.api = "alsa"
device.description = "Controlador de Áudio HD Alder Lake PCH-P"
device.name = "alsa_card.pci-0000_00_1f.3-platform-rt5682_custom"
device.nick = "codec-rt5682"
media.class = "Audio/Device"
id 70, type PipeWire:Interface:Device/3
object.serial = "70"
factory.id = "18"
client.id = "45"
device.api = "libcamera"
device.description = "Dispositivo desconhecido"
device.name = "libcamera_device.1"
media.class = "Video/Device"
Problemas Potenciais
Ao visualizar com ffplay, a cor parece normal. No entanto, ao usar a libcamera diretamente, pode haver distorção de cores. Isso ocorre mesmo com a cadeia de processamento libcamera → PipeWire → v4l2. É um defeito menor que não impacta significativamente a experiência.
Áudio ⚠️
Siga as instruções do projeto chromebook-linux-audio para configuração, mas existem ressalvas.
Problemas Potenciais
Após pausar a reprodução, o PipeWire entra em modo de suspensão após 5 segundos para economizar energia. Durante esse processo, um estalo audível pode ocorrer devido a um problema não identificado.
Para mitigar, configure o tempo de suspensão para que o estalo ocorra imediatamente após a pausa.
~/.config/wireplumber/wireplumber.conf.d/99-alsa-suspensao.conf
monitor.alsa.rules = [
{
matches = [
{
## Corresponde a todos os sinks.
node.name = "~alsa_output.*"
}
]
actions = {
update-props = {
## 0 desativa a suspensão
session.suspend-timeout-seconds = 0.1
}
}
}
]
Tela de Privacidade HP ❌
O kernel Linux suporta a camada baixa desse recurso, como visto no módulo drivers/platform/chrome/chromeos_privacy_screen.c.
$ ls /sys/module/chromeos_privacy_screen/
coresize drivers/ holders/ initsize initstate notes/ refcnt sections/ srcversion taint uevent
$ ls /sys/class/drm/privacy_screen-GOOG0015:00/
device@ hw_state power/ subsystem@ sw_state uevent
$ journalctl -b -k | grep -i "GOOG0015"
Mar 04 14:25:39 cachyos kernel: Found 'privacy_screen-GOOG0015:00' privacy-screen provider
Mar 04 14:25:40 cachyos kernel: chromeos_privacy_screen_driver GOOG0015:00: registered privacy-screen 'privacy_screen-GOOG0015:00'
Atualmente, não há método conhecido para ativar ou controlar a tela de privacidade no Linux. A tecla dedicada também não é funcional e não pode ser remapeaad.
Teclas de Função do ChromeOS ❌
Os botões e switches do EC podem ser verificados com ferramentas como ectool.
$ sudo ectool mkbpget buttons
MKBP buttons state: 0x0000 (supported: 0x0007)
Power: OFF
Volume up: OFF
Volume down: OFF
$ sudo ectool mkbpget switchs
MKBP switches state: 0x0001 (supported: 0x0003)
Lid open: ON
Tablet mode: OFF
O driver do kernel drivers/input/keyboard/cros_ec_keyb.c suporta essas teclas, mas os eventos não chegam ao sistema de input.
$ evtest /dev/input/event6
Input driver version is 1.0.1
Input device ID: bus 0x6 vendor 0x0 product 0x0 version 0x1
Input device name: "cros_ec_buttons"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 114 (KEY_VOLUMEDOWN)
Event code 115 (KEY_VOLUMEUP)
Event code 116 (KEY_POWER)
Event type 5 (EV_SW)
Event code 0 (SW_LID) state 0
Event code 1 (SW_TABLET_MODE) state 0
O log do EC mostra que as teclas são pressionadas, mas a interrupção não é acionada no AP. A contagem de interrupções permanece estática.
$ cat /proc/interrupts | grep chromeos-ec
102: 20 IR-IO-APIC 102-fasteoi chromeos-ec
As teclas funcionam no Windows, sugerindo um problema no kernel Linux.
Combinações de Teclas Individuais ❌
Algumas combinações específicas, como meta-ctrl-5 e meta-ctrl-6, não são registradas. Outras, como meta-ctrl-4, funcionam. O problema persiste no Windows, indicando uma limitação de hardware.
Hibernação e Suspensão (S3, S0ix) ⚠️
A suspensão do sistema, com ou sem tampa fechada, é completamente inutilizável. Soluções existentes são instáveis.
Recarregar módulos do kernel frequentemente causa pânico. O comando ectool hostsleepstate freeze pode funcionar, mas apresenta risco de reinicialização. Discussões detalhadas estão disponíveis no chrultrabook forum e GitHub.
Atulaização de 10 de Março
Novas informações sobre o problema podem ser encontradas no tema cros_ec_timeout.
Touchpad Falha ⚠️
O touchpad de pressão total pode falhar intermitentemente, geralmente após tentativas de suspensão. A causa exata é desconhecida.
Solução Temporária
Parar o serviço keyd antes de recarregar o driver evita travamentos.
systemctl stop keyd.service
modprobe -r hid_multitouch
modprobe hid_multitouch
Perda de Retroiluminação do Teclado ⚠️
A retroiluminação pode desaparecer aleatoriamente. Reiniciar o sistema ou o EC pode resolver.
$ ectool reboot_ec cold at-shutdown
O fenômeno é raro e difícil de reproduzir, exigindo mais investigação.