“W: Possível firmware ausente para o módulo i915_bpo” ao atualizar o initramfs

75

Quando executo uma atualização de kernel ou driver da NVIDIA no meu 16.04, isso aciona uma reconstrução do initramfs que gera o aviso abaixo:

Processing triggers for initramfs-tools (0.122ubuntu8.1) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-34-generic
W: Possible missing firmware /lib/firmware/i915/skl_guc_ver6.bin for module i915_bpo

Eu tenho um notebook com dois chips gráficos, uma NVIDIA GeForce 940M e os gráficos integrados da Intel i5-6200U.

O dispositivo em uso é o meu cartão NVIDIA:

$ inxi -G
Graphics:  Card-1: Intel Sky Lake Integrated Graphics
           Card-2: NVIDIA GM108M [GeForce 940M]
           Display Server: X.Org 1.18.3 driver: nvidia Resolution: [email protected]
           GLX Renderer: GeForce 940M/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 367.35

Aqui está a saída de lshw -c video, correspondente ao meu chip gráfico da Intel, que deve usar esse driver:

    *-display         
         description: VGA compatible controller
         product: Sky Lake Integrated Graphics
         vendor: Intel Corporation
         physical id: 2
         bus info: pci@0000:00:02.0
         version: 07
         width: 64 bits
         clock: 33MHz
         capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
         configuration: driver=i915_bpo latency=0
         resources: irq:125 memory:a2000000-a2ffffff memory:b0000000-bfffffff ioport:5000(size=64)

O arquivo no aviso não existe, apenas aqueles:

$ ll /lib/firmware/i915/
total 336
drwxr-xr-x  2 root root   4096 Aug 11 13:24 ./
drwxr-xr-x 74 root root  32768 Aug 11 13:24 ../
-rw-r--r--  1 root root   5872 Jul 21 17:03 bxt_dmc_ver1_04.bin
-rw-r--r--  1 root root   5872 Jul 21 17:03 bxt_dmc_ver1_05.bin
-rw-r--r--  1 root root   8380 Jul 21 17:03 bxt_dmc_ver1_06.bin
-rw-r--r--  1 root root   8380 Jul 21 17:05 bxt_dmc_ver1_07.bin
lrwxrwxrwx  1 root root     19 Jul 21 17:05 bxt_dmc_ver1.bin -> bxt_dmc_ver1_07.bin
-rw-r--r--  1 root root   8824 Jul 21 17:03 skl_dmc_ver1_23.bin
-rw-r--r--  1 root root   8928 Jul 12 21:33 skl_dmc_ver1_26.bin
lrwxrwxrwx  1 root root     19 Jul 12 21:33 skl_dmc_ver1.bin -> skl_dmc_ver1_26.bin
-rw-r--r--  1 root root 109636 Jul 21 17:03 skl_guc_ver1_1059.bin
lrwxrwxrwx  1 root root     21 Jul 21 17:03 skl_guc_ver1.bin -> skl_guc_ver1_1059.bin
-rw-r--r--  1 root root 128320 Jul 21 17:03 skl_guc_ver4_3.bin
lrwxrwxrwx  1 root root     18 Jul 21 17:03 skl_guc_ver4.bin -> skl_guc_ver4_3.bin

O último pacote de drivers parece estar instalado:

$ apt-cache policy xserver-xorg-video-intel
xserver-xorg-video-intel:
  Installed: 2:2.99.917+git20160325-1ubuntu1
  Candidate: 2:2.99.917+git20160325-1ubuntu1
  Version table:
 *** 2:2.99.917+git20160325-1ubuntu1 500
        500 http://ftp.uni-stuttgart.de/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status

O que esse aviso significa exatamente e como posso corrigi-lo?

Byte Commander
fonte
3
Eu peguei W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1.bin for module i915_bpoe minha CPU é SKylake com Intel HD nela.
Csaba Toth #
Além disso, estou usando a 1.158versão do linux-firmwarepacote em vez da linha principal, 1.157porque somente isso forneceu firmware de trabalho para o meu wifi (killer wireless).
Csaba Toth
3
@CsabaToth kblsignifica Kabylake, que é o sucessor da Skylake. Como você não possui uma CPU, pode ignorar o aviso ou simplesmente instalar o driver Kabylake a partir do mesmo link fornecido na resposta de Doug Smythies.
Byte Commander
Correta, 6820hk i7 é apenas Skylake, Kaby Lake é a próxima geração
Csaba Toth

Respostas:

62

O pacote de driver está um pouco atrasado no kernel. No meu caso, o firmware ausente não importa, porque eu não tenho um processador SkyLake, mas no seu caso, isso pode importar. Você pode obter o firmware mais recente aqui .

EDIT 1: Observe que o link foi alterado, mas os leitores ainda devem encontrar o que precisam no novo link, embora às vezes seja difícil saber exatamente o que você está procurando.

EDIT 2: Esta resposta deve ser aplicável a alguns outros novos requisitos de firmware que surgiram desde que a resposta foi originalmente escrita. Por exemplo:

W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_01.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

EDIT 3: Para usuários que usam git, esta resposta também funciona bem.

Doug Smythies
fonte
3
Eu instalei os drivers GuC e DMC para o Skylake com êxito e acho que o aviso deve ter desaparecido agora. Obrigado.
Byte Commander
4
Ah, eu encontrei. Parece que a nova atualização do kernel adicionou suporte aos novos processadores Kabylake Intel e agora também gostaria de ter um driver de módulo para eles. Provavelmente é supérfluo, já que não tenho uma CPU Kabylake, mas, para afastar o aviso, também baixei e instalei o driver kbl DMC do site que você vinculou. Parece bom novamente agora.
Byte Commander
2
O que significa "importa"? O novo kernel não poderá inicializar ou não há nenhum impacto real visível além de algumas mensagens de aviso?
musiKk 2/16
3
@musiKk: Se o seu processador não é aquele que precisa de um dos arquivos de firmware ausentes, isso não "importa", o que significa que não haverá conseqüências por estar faltando. Por exemplo, apenas um processador Skylake precisaria do firmware "skl".
Doug Smythies
1
@FeryArdiant: Sim, os avisos não estão relacionados a qual processador você está realmente usando, apenas se você possui o firmware ou não.
Doug Smythies
18

20 de maio de 2019 Atualização

Para responder sua pergunta, você não precisa atualizar os drivers de um processador que não está executando, mas é bom ver os avisos desaparecerem quando você o faz.

Hoje recebi este aviso:

update-initramfs: Generating /boot/initrd.img-5.0.1-050001-generic
W: Possible missing firmware /lib/firmware/i915/skl_dmc_ver1_27.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_04.bin for module i915
W: Possible missing firmware /lib/firmware/i915/cnl_dmc_ver1_07.bin for module i915
W: Possible missing firmware /lib/firmware/i915/icl_dmc_ver1_07.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_39.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver9_29.bin for module i915
W: Possible missing firmware /lib/firmware/i915/skl_guc_ver9_33.bin for module i915

Eu baixei os blobs (descritos na próxima seção) e usei:

$ sudo cp ~/Downloads/*.bin /lib/firmware/i915/

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.0.1-050001-generic

Agora meus drivers Sky Lake ( skl) estão atualizados e posso experimentar os parâmetros mais recentes do kernel recomendados na Internet. As mensagens de aviso para os futuros processadores Kaby Lake ( kbl), Cannon Lake ( cnl) e Ice Lake ( icl) desaparecem, tornando a vida menos estressante.


26 de maio de 2018 Atualização

Revisão secundária 6 de agosto de 2018.

Nova tela de download de "blobs"

Recentemente, a Intel criou uma nova página de download e um novo layout de página da web:

Blobs de firmware Intel i915

Os arquivos de download agora são chamados de blobs de firmware, que são novos para os drivers de firmware . Fica para B inary L arge OB ject (BLOB).

Os drivers são classificados por processador:

  • bxt Broxton, cancelado em 2016, sucessor dos processadores Cherry Trail
  • kbl Kabylake, 7a geração, por exemplo, i7-7700
  • skl Skylake, 6a geração, por exemplo, i7-6700

Em seguida, os drivers são organizados por subgrupo (explicação completa aqui ):

  • O GUC -GuC foi projetado para executar o agendamento da carga de trabalho gráfica nos vários mecanismos paralelos gráficos.
  • DMC - DMC fornece gráficos adicionais de estados ociosos de baixa potência.
  • O HUC - HuC foi projetado para descarregar algumas das funções de mídia da CPU para a GPU.

Corresponder a mensagem de erro ao driver necessário

Compare a mensagem de erro que você está recebendo update-initramfsou update-grubencontre o driver ausente. No seu exemplo, a mensagem era " /lib/firmware/i915/kbl_guc_ver9_14.bin", então você está faltando o Kabylake GuC chamado: kbl_guc_ver9_14.binna página da web mostrada acima. Você não quer o mais novo:kbl_guc_ver9_39.bin

Driver de download necessário

Não há mais script de instalação como nas versões anteriores. Simplesmente destaque o driver ausente (blob) e clique nele. Esta tela aparece:

Intel i915 drivers download.png

Inicialmente, você vê apenas o "hex dump", mas depois de clicar no link simples, uma janela de download aparece como ilustrado acima.

Clique em "Salvar arquivo"

Instale o driver com simples sudo cp(comando copy)

Após o download, a instalação é simples sudo cp(comando de cópia) e não há tarcomandos complicados ou ./script_nameetapas de instalação.

Instalação rápida

cd ~/Downloads
sudo cp kbl_guc_ver9_14.bin /lib/firmware/i915
sudo cp bxt_guc_ver8_7.bin /lib/firmware/i915

IMPORTANTE: Substitua kbl_guc_ver9_14.bine bxt_guc_ver8_7.binacima pelos nomes de drivers ausentes que você baixou.

VOILA! Novo driver está instalado. Muito mais simples que os métodos de instalação anteriores para drivers Intel i915 ausentes!

Instalação Exploratória TL; DR

Eu já tinha o driver instalado. Este longo método de instalação fornece uma idéia dos efeitos antes e depois da cópia do BLOB :

$ sudo updatedb
$ llocate kbl_guc_ver9_14.bin
ACCESS      OWNER  GROUP  SIZE    MODIFIED    NAME (updatdb last ran: 2018-05-26 12:07:57)
-rw-rw-r--  rick   rick   142656  2018-05-26  /home/rick/Downloads/kbl_guc_ver9_14.bin
-rw-rw-r--  rick   rick   142656  2017-02-24  /home/rick/Downloads/kbl_guc_ver9_14/kbl_guc_ver9_14.bin
-rw-r--r--  root   root   142656  2017-10-26  /lib/firmware/i915/kbl_guc_ver9_14.bin
$ diff /home/rick/Downloads/kbl_guc_ver9_14/kbl_guc_ver9_14.bin /lib/firmware/i915/kbl_guc_ver9_14.bin
# Blank line appears here signifying no differences from previous version
$ sudo cp /home/rick/Downloads/kbl_guc_ver9_14/kbl_guc_ver9_14.bin /lib/firmware/i915
$ llocate kbl_guc_ver9_14.bin
ACCESS      OWNER  GROUP  SIZE    MODIFIED    NAME (updatdb last ran: 2018-05-26 12:07:57)
-rw-rw-r--  rick   rick   142656  2018-05-26  /home/rick/Downloads/kbl_guc_ver9_14.bin
-rw-rw-r--  rick   rick   142656  2017-02-24  /home/rick/Downloads/kbl_guc_ver9_14/kbl_guc_ver9_14.bin
-rw-r--r--  root   root   142656  2018-05-26  /lib/firmware/i915/kbl_guc_ver9_14.bin

Use o comando localizar abaixo no lugar de llocate .


14 de fevereiro de 2017 - Intel lançou drivers

De acordo com este relatório de bug hoje ( W: possível firmware ausente /lib/firmware/i915/kbl_guc_ver9_14.bin para o módulo i915 ) A Intel lançou os drivers Kabylake e Broxton necessários em seus ( https:////01.org/linuxgraphics/downloads/ firmware ):

Gráficos Intel para drivers Linux

Faça o download dos drivers ausentes para o Kabylake ( GuC - Ver 9.14 ) e ( DMC - Ver 1.01 ) e Broxton ( GuC - Ver 8.7 ). Estes estão em .tar.gze .tar.bz2formato.

Instale drivers no formato "tar"

Embora você possa executar os install.shscripts, essas instruções são as mais fáceis.

Vá para o diretório de download e verifique se há arquivos:

:~$ cd Downloads

:~/Downloads$ ll *tar*
-rw-rw-r-- 1 rick rick 69329 Feb 14 21:05 bxtgucver87.tar.gz
-rw-rw-r-- 1 rick rick  4338 Feb 14 21:06 kbldmcver101.tar.bz2
-rw-rw-r-- 1 rick rick 70402 Feb 14 21:06 kblgucver914.tar.gz

Extraia os arquivos tar compactados:

:~/Downloads$ tar -zxvf bxtgucver87.tar.gz
firmware/bxt/guc/bxt_guc_ver8_7/
firmware/bxt/guc/bxt_guc_ver8_7/install.sh
firmware/bxt/guc/bxt_guc_ver8_7/ReleaseNotes.txt
firmware/bxt/guc/bxt_guc_ver8_7/bxt_guc_ver8_7.bin

:~/Downloads$ tar -xjvf kbldmcver101.tar.bz2
kbl_dmc_ver1_01/
kbl_dmc_ver1_01/kbl_dmc_ver1_01.bin
kbl_dmc_ver1_01/install.sh
kbl_dmc_ver1_01/ReleaseNotes.txt

:~/Downloads$ tar -zxvf kblgucver914.tar.gz
firmware/kbl/guc/kbl_guc_ver9_14/
firmware/kbl/guc/kbl_guc_ver9_14/install.sh
firmware/kbl/guc/kbl_guc_ver9_14/kbl_guc_ver9_14.bin
firmware/kbl/guc/kbl_guc_ver9_14/ReleaseNotes.txt

Copie os arquivos e atualize o initramfs

:~/Downloads$ sudo cp -t /lib/firmware/i915/ firmware/bxt/guc/bxt_guc_ver8_7/bxt_guc_ver8_7.bin kbl_dmc_ver1_01/kbl_dmc_ver1_01.bin firmware/kbl/guc/kbl_guc_ver9_14/kbl_guc_ver9_14.bin
:~/Downloads$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.9.9-040909-generic

Observe que as mensagens de erro (aviso) desapareceram!

Remover arquivos de trabalho

:~/Downloads$ rm -r firmware kbl_dmc_ver1_01 *.tar.*

Post histórico (original) para referência

Recebi duas mensagens de aviso sobre os drivers i915 ausentes para os 4.6.3, 4.7.1, 4.7.2, 4.7.3 e 4.7.5 do Kernel. Eu os ignorei e as coisas estão bem com meus gráficos integrados Intel HD4000. Eu gostaria que o mesmo pudesse ser dito sobre a Nvidia e o Nouvaeu.

Como uma resposta do seu link afirmou, você pode ir ao site da Intel para obter os drivers mais atualizados de Linux Graphics em: intel-linux-graphics-firmwares . No entanto, quando li o site há algumas semanas, fiquei preocupado com todas as coisas possíveis que podem dar errado em diferentes cenários, então optei por não participar.

Você instalou o 4.8 release candidate 6 a partir de 24 de setembro? Essa é a mais atual no Ubuntu, eu acredito. Você não precisa responder, mas estou curioso para saber por que você optou pelo 4.8 em vez do 4.7.5, ou seja, quais são as diferenças necessárias para corrigir as coisas.

Editar - 19 de outubro de 2016

Agora, usando a versão 4.8.1 do kernel (versão real e não lançando candidato) por mais de uma semana e as coisas estão funcionando bem. Isso está no Ubuntu 16.04. O Ubuntu 16.10 foi lançado em 13 de outubro e está usando a versão 4.8.0 do Kernel, acredito.

Não é meu plano continuar atualizando esta resposta, mas eu queria descansar a inferência de que os candidatos à liberação 4.8 podem ter problemas. A versão real não.

Editar - 2 de fevereiro de 2017

Agora executando a versão principal do Kernel versão 4.9.5, que no momento o Ubuntu 16.04 atualizou seu kernel para 4.4.0-59. A Intel mudou o link para os drivers da Intel Graphics para Linux e atualizei o novo link acima.

Ainda restam dúvidas sobre as mensagens de aviso geradas sudo update-initramfs -uquando o Kernel versão> 4.8 (Ubuntu 16.10 e Ubuntu 17.04):

W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_01.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

Conforme declarado no relatório de bug ( bugs.launchpad.net - bug do firmware linux ), os drivers simplesmente não existem e não existirão até que um chip futuro chamado "kaby lake" seja lançado.

Faça as mensagens de aviso desaparecerem

Para fazer a mensagem de aviso desaparecer, fiz o seguinte:

$ sudo cp assembly/hello /lib/firmware/i915/kbl_dmc_ver1_01.bin
$ sudo cp assembly/hello /lib/firmware/i915/kbl_guc_ver9_14.bin
$ sudo cp assembly/hello /lib/firmware/i915/bxt_guc_ver8_7.bin
$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.9.5-040905-generic

Voila! Não há mais mensagens de aviso.

O programa "hello" é um programa de montagem de 504 bytes que diz "Hello World!". Você pode copiar qualquer pequeno executável para os binários de firmware fornecidos nas mensagens de erro. Quando a Intel finalmente os liberar, o atualizador de software os substituirá pelas versões reais.

Como navegar no site da Intel Graphics for Linux

Por meio de comentários, foi perguntado como navegar no novo site da Intel ( 01.org - Linux Graphics Downloads ), que apresenta esta tela:

Gráficos Intel para Linux 1

Digite Ubuntu 16.04no campo de pesquisa e clique no Filterbotão

Para o Ubuntu 16.10, selecione o primeiro resultado. No nosso caso, o Ubuntu 16.04, selecione o segundo resultado INTEL GRAPHICS UPDATE TOOL FOR LINUX* OS V2.0.2e esta tela aparecerá:

Gráficos Intel para Linux 2

No meu caso, selecionei o Ubuntu 16.04 de 64 bits que baixou o arquivo intel-graphics-update-tool_2.0.2_amd64.debno meu ~/Downloadsdiretório.

O próximo passo é abrir o terminal e usar:

cd Downloads
sudo dpkg -i intel*.deb

NOTA: Intel usa os antigos TTF fonte e sua instalação falhará se não é no seu sistema. Neste ponto, você precisa usar:

sudo apt -f install
sudo apt update
sudo apt upgrade

Agora você pode executar a Intel Graphics for Linux Updaterferramenta como esta tela mostra:

Gráficos Intel para Linux 3

Adicionar assinaturas Intel para Ubuntu

Durante apt-get updatevocê pode ver mensagens de aviso / erro como este:

W: GPG error: https://download.01.org/gfx/ubuntu/16.04/main xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 56A3DEF863961D39
E: The repository 'https://download.01.org/gfx/ubuntu/16.04/main xenial InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Você precisará adicionar assinaturas da Intel usando:

wget --no-check-certificate https://download.01.org/gfx/RPM-GPG-KEY-ilg-4 -O - | \
sudo apt-key add -

Então atualize no Ubuntu:

sudo apt update
sudo apt upgrade
WinEunuuchs2Unix
fonte
2

Também enfrentei um problema semelhante porque atualizei o kernel do aplicativo "Software" do Ubuntu Gnome 16.04 (gerenciador de pacotes nativo) e ele travou durante a atualização.

Então, fui impedido de inicializar o Ubuntu novamente porque a imagem linux foi gerada sem êxito.

Para resolvê-lo a partir desse ponto, fiz o seguinte:

  1. Reinicie o linux e logo após a tela da placa-mãe pressione Shiftpara entrar no menu do grub;
  2. Selecione sua versão linux anterior no menu. No meu caso *4.4.0-21-generice pressione Enter;
  3. Quando o Ubuntu estiver novamente instalado, desinstale a imagem linux quebrada. No meu caso, o *4.4.0-59-generic(eu usei o gerenciador de pacotes Synaptic);
  4. Baixe e instale o firmware ausente na página da Intel (o mesmo que Doug Smythies) . No meu caso, eu peguei o KabyLake kbl DMC - Ver 1.01;
  5. E, finalmente, instale novamente o kernel linux *4.4.0-59-generic(no meu caso) ou apenas linux-generico kernel Linux genérico completo mais recente.

Sucesso! O kernel está atualizado e todos os firmwares estão funcionando bem!

Cumprimentos!

Matt Mello
fonte
O link para firmwares gráficos não funciona mais. Alguém sabe onde se pode obter firmwares agora?
Nickolai Leschov
Realmente? Ainda posso abri-lo aqui. No entanto, tente também o seguinte link: git.kernel.org/cgit/linux/kernel/git/firmware/…
Matt Mello
1

Se você estiver executando o debian (eu tenho o Debian GNU / Linux buster), siga estas etapas:

  1. crie a pasta:

    sudo mkdir -p /lib/firmware/i915
    
  2. copie todos os arquivos de https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 para esta pasta

  3. Reconfigure o pacote initramfs-tools:

    sudo dpkg-reconfigure initramfs-tools
    
Christian Noack
fonte
O comando para o Ubuntu é algo como, sudo update-initramfs -umas eu estou no telefone, então não posso confirmar. As perguntas do Debian estão fora do tópico aqui, então é improvável que sua resposta influencie muitas pessoas.
WinEunuuchs2Unix