Falha na biometria do thinkpad com linux

Olá,
Tenho um Lenovo ThinkPad T470 configurado em ambiente de Dual Boot (Windows e Linux Ubuntu) e estou enfrentando uma falha de hardware no leitor biométrico. O componente parou de funcionar e entrou em um loop de erros críticos que não são reversíveis por software.
Abaixo detalho as especificações do componente e todos os testes de diagnóstico avançado que já executei, para otimizar a análise de vocês direto na bancada.
Identificação do Hardware
Equipamento: Lenovo ThinkPad T470
Componente: Leitor Biométrico (Fingerprint Sub-board)
Fabricante/Modelo: Synaptics / Validity Sensors, Inc. - Modelo VFS7552
ID do Barramento USB: 138a:0097
Ambiente de Uso: Dual Boot (Windows e Linux)
Descrição do Problema
O leitor biométrico encontra-se inoperante devido a um travamento persistente na memória Flash interna (NVRAM) do chip. Por conta do uso em Dual Boot, o chip reteve as chaves de criptografia e o estado de bloqueio originados pelo Windows Hello. Atualmente, o hardware está preso em um loop: ele apresenta falha de comunicação na porta USB, acusa corrupção ao tentar ler a própria memória e não responde a nenhum comando de formatação de fábrica.
Procedimentos de Software e Firmware Já Executados (Sem Sucesso):
Para evitar retrabalho no diagnóstico, informo que já esgotei todas as tentativas de desobstrução lógica:
Reset via BIOS/UEFI: Foi executado o comando de Clear Fingerprint Encryption / Reset Fingerprint Data diretamente na aba de segurança da BIOS.
Engenharia Reversa (Injeção de Firmware): Utilizei as stacks python3-validity e open-fprintd no Linux para enviar o payload do firmware original (6_07f_lenovo_mis_qm.xpfwext) direto para o chip, na tentativa de forçar um Factory Reset de baixo nível.
Comportamento de Timeout (Erro 110): Ao rodar o script de reset de fábrica, o barramento USB corta a comunicação e devolve um erro de esgotamento de tempo (USBTimeoutError: [Errno 110] Operation timed out). O chip reinicia abruptamente e desconecta da placa-mãe.
Ciclos de Energia: Realizei procedimentos de Cold Boot (desligamento total e corte físico de energia) e ciclos de suspensão ACPI para destravar a porta USB.
O Erro Crítico (Exceção 0406): Após forçar a reativação da porta USB, o hardware volta a ser reconhecido fisicamente (lsusb). Porém, quando o driver tenta ler o estado do chip, sofre um colapso imediato e retorna a exceção fatal: Exception: Failed: 0406.
Conclusão e Solicitação:
O código de erro 0406 neste sensor (VFS7552) indica uma falha direta na leitura/gravação da memória Flash interna do componente (get_flash_info()). O chip recebe energia inicial da placa-mãe, mas a sua memória está “brickada” (irrecuperável via software).

Pelo que pesquisei aqui esse sensor específico tem um microcontrolador interno e uma memória flash NVRAM própria onde ele armazena o firmware e os templates biométricos criptografados. O grande problema do modelo 0097 no ecossistema Lenovo é o gerenciamento de estado entre o Windows Hello (que usa TLS/criptografia pareada com o TPM) e os drivers de engenharia reversa no Linux.

Ou seja meu nobre, O que aconteceu no seu chip foi uma corrupção de hardware na partição de dados da Flash interna. Nada relacionado a software ou configuração deve funcionar, como você mesmo percebeu. Obrigado Microsoft!

Como esse leitor fica em uma sub-placa (sub-board) separada do resto do palmrest no ThinkPad T470, a substituição é barata e mecanicamente simples.

Recomendação de Peça: Procure pelo FRU (Field Replaceable Unit) oficial da Lenovo para o leitor de digitais do T470:

  • FRU: 01AX011 (ou compatíveis da série T470/T480 que usem o mesmo flat).

Dica de Ouro para quando a peça nova chegar (Evite um novo Brick)

O calcanhar de Aquiles do Dual Boot nesse leitor é a disputa pelo provisionamento do chip. Para não quebrar a peça nova:

  1. Antes de escanear o dedo no Linux: Entre no Windows, vá em Opções de Entrada e remova completamente a biometria do Windows Hello.

  2. Reinicie, entre na BIOS e dê um Clear Fingerprint Data (para garantir que o chip comece totalmente limpo).

  3. Escolha um lado: Se você faz muita questão da biometria no Linux, faça o setup inicial via python3-validity com a flash limpa. Se preferir o Windows, use apenas lá e desative o serviço/driver no Linux para evitar que ele envie comandos de inicialização que possam estressar o chip em updates de kernel.

Para fazer a substituição, só encontrei ele no ebay. Na qual vai sair quase R$ 300,00 para fazer a biometria funcionar. Ainda existe alguma possibilidade de fazer ele funcionar, tentar tirar esse bloqueio do windows e deixar ele livre? sem ter que trocar o equipamento. Talvez com alguma forma de acessar o chip da biometria e fazer um “hard reset” nele, seja pelo ubuntu ou pelo windows.

Caso tenha alguma ideia do que poderíamos fazer.

Para ser bem direto e honesto com você, via software tradicional (Linux ou Windows), a resposta é não. Não existe um comando, driver ou script capaz de reverter esse estado. O motivo é físico: o barramento USB do chip está travando (o erro Timeout 110 que você viu) e a linha de código onde o driver desaba (get_flash_info()) mostra que o microcontrolador do sensor perdeu a capacidade de ler a própria tabela de partição da memória interna. Ele não aceita ordens de escrita porque não consegue se inicializar.

Dito isso, se você está disposto a ir para o “tudo ou nada” antes de descartar a peça, existem duas abordagens de Hard Reset real (físico) que se aplicam a esse tipo de componente, mas que exigem ferramentas de eletrônica ou modificação extrema. Que na minha humilde opinião, realmente não vale a pena.

Se você não quiser gastar os R$ 300,00 no eBay, a recomendação mais sensata para o seu bolso é: desative o leitor permanentemente na BIOS (para parar de gerar loops de erro e consumo desnecessário de bateria no barramento USB) e aceite a derrota para a obsolescência programada.

Mas, se você faz questão absoluta de ter biometria no Linux/Windows sem gastar muito, existe uma alternativa viável: comprar um leitor biométrico USB do tipo Dongle (aqueles que parecem um receptor de mouse sem fio). Eles custam cerca de R$ 50,00 a R$ 80,00 no mercado nacional/AliExpress, são compatíveis com o fprintd do Linux e com o Windows Hello, e resolvem seu problema sem mexer na carcaça do ThinkPad.