AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 455137
Accepted
David Tonhofer
David Tonhofer
Asked: 2018-07-14 08:18:50 +0800 CST2018-07-14 08:18:50 +0800 CST 2018-07-14 08:18:50 +0800 CST

Pacotes de firmware: o que eles realmente fazem?

  • 772

No meu CentOS, a yum updatetraz o seguinte:

(6/38): iwl1000-firmware-39.31.5.1-62.el7_39.31.5.1-62.2.el7_5.noarch.drpm                                                                                                                                            
(7/38): iwl105-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm                                                                             
(8/38): iwl135-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm                                                                             
(9/38): iwl2000-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm                                                                            
(10/38): iwl2030-firmware-18.168.6.1-62.el7_18.168.6.1-62.2.el7_5.noarch.drpm                                                                           
(11/38): iwl3160-firmware-22.0.7.0-62.el7_22.0.7.0-62.2.el7_5.noarch.drpm                                                                                                                                             

etc.

Estes são os chamados "pacotes de firmware". Por exemplo, vamos encontrar alguns deles que estão instalados:

rpm --query --all | grep firmware

e, em seguida, consulte suas informações:

rpm --query --info iwl105-firmware-18.168.6.1-62.2.el7_5.noarch

e obtemos:

Summary     : Firmware for Intel(R) Centrino Wireless-N 105 Series Adapters
Description :
This package contains the firmware required by the iwlagn driver
for Linux to support the iwl105 hardware.  Usage of the firmware
is subject to the terms and conditions contained inside the provided
LICENSE file. Please read it carefully.

OK, bem.

Eu nem tenho esse tipo de hardware, pois esta é uma VM.

Então, pergunta:

O que os pacotes de firmware realmente fazem?

São instalações "one-shot" que executam um executável opaco (imediatamente? na próxima inicialização?) pelo menos, o flashing de hardware está sempre repleto de janelas do DOS que aparecem, EULAs que precisam ser clicados e barras de progresso que precisam ser suportadas) e, em seguida, marca o pacote como "instalado".

Eles modificam o initramfs para que um blob binário seja carregado por um módulo do kernel ou algo aconteça na próxima inicialização?

centos virtual-machine
  • 4 4 respostas
  • 4293 Views

4 respostas

  • Voted
  1. Stephen Kitt
    2018-07-14T11:08:04+08:002018-07-14T11:08:04+08:00

    Como Anthony Geoghegan menciona , O que é "firmware" na terminologia do Linux? e Por que alguns drivers ainda requerem firmware? fornecer antecedentes úteis.

    Pacotes de firmware são pacotes que contêm arquivos de firmware, ou seja , arquivos que contêm código destinado a ser executado em dispositivos ou conectados ao seu sistema — exemplos comuns incluem chipsets wifi, como no seu caso. Eles não são instaladores únicos e não se importam se o hardware está disponível. Os arquivos que eles disponibilizam são usados ​​pelos drivers de kernel correspondentes, se o hardware relevante estiver presente: os drivers carregam o firmware na memória conectada ao hardware de destino, que então executa o firmware para operar.

    Esses pacotes de firmware não estão relacionados aos instaladores de firmware que você está pensando, que carregam atualizações de firmware na memória flash (o que só precisa ser feito quando uma atualização é necessária). Esse processo é realmente demorado, muitas vezes complexo e aparentemente repleto de perigos (pelo menos, se você basear suas impressões nos avisos do fabricante). Os pacotes de firmware incluídos nas distribuições Linux contêm firmware que é necessário sempre que o sistema é inicializado, pois é carregado na memória volátil.

    • 7
  2. Best Answer
    Johan Myréen
    2018-07-14T11:07:09+08:002018-07-14T11:07:09+08:00

    O firmware carregável normalmente não é uma instalação "one-shot" gravada para flash no dispositivo. O firmware é carregado no armazenamento volátil no dispositivo e precisa ser feito sempre que o computador host for ligado. O dispositivo não funciona antes de o firmware ser carregado. O firmware pode ser escrito na RAM do dispositivo, nesse caso ele contém código e dados para o processador no dispositivo, mas também pode ser um fluxo de bits definindo a lógica de um array lógico programável em campo (FPGA) ou algum combinação de ambos.

    Por outro lado, o firmware na memória flash normalmente é pré-programado nos dispositivos e só precisa ser reescrito se houver uma atualização do firmware do fabricante. Isso normalmente é feito por meio de outros mecanismos, como um executável separado que é executado pelo usuário.

    Existem algumas razões pelas quais os fabricantes querem usar RAM em vez de memória flash. Em primeiro lugar, permite projetar uma única versão do hardware, mas ao mesmo tempo entregar várias versões do produto (para diferentes áreas de mercado, por exemplo). Se for esperado que o produto seja atualizado em campo com frequência, pode ser mais fácil lidar com as atualizações de firmware dessa maneira do que criar um programa para atualizar a memória flash no dispositivo. Este programa deve ter uma interface de usuário agradável e ser projetado para ser o mais amigável possível, uma vez que normalmente é executado pelo usuário final do produto. Alguns dispositivos com armazenamento flash geralmente executam o código da RAM de qualquer maneira e apenas copiam o conteúdo do flash para a RAM quando o dispositivo é iniciado,

    • 6
  3. Rui F Ribeiro
    2018-07-14T13:45:02+08:002018-07-14T13:45:02+08:00

    Adicionando às respostas já excelentes.

    Os arquivos de firmware, também conhecidos como blobs binários proprietários, são carregados em seu firmware pelo menos no momento da (re) inicialização a frio do dispositivo.

    O dispositivo foi projetado para obter firmware na RAM em vez de ter uma ROM + RAM para reduzir os custos de produção. Como exemplo, você tem alguns chipsets wifi Broadcom e chipsets de switch internos que funcionam dessa maneira.

    Abordando o outro ponto da sua pergunta de usar arquivos de firmware em uma VM.

    Como você está lidando com uma VM, você não precisa de arquivos de firmware. Eles não serão carregados em nenhum lugar; muito menos arquivos de "firmware" ethernet ou wifi.

    Da mesma forma, considerando que o firmware não é necessário em um ambiente de VM, é uma grande idiossincrasia ter no Debian as dependências de um pacote de arquivo de firmware genérico no kernel Linux.

    • 3
  4. yurenchen
    2022-05-13T02:32:44+08:002022-05-13T02:32:44+08:00

    consulte as respostas de outras pessoas, e os documentos on-line
    tentam compará-lo com coisas relacionadas que os usuários do Linux podem ver com frequência.

    //Pode não ser completamente preciso, melhorias são bem-vindas


    linux-firmware

    Descrição: Firmware para drivers de kernel Linux Este pacote fornece o firmware usado por drivers de kernel Linux.

    // kernel (talvez) empurra o binário para a RAM de outro SoC (wifi, placa gráfica ..) a cada inicialização do sistema

    // executa em outro (talvez um periférico) cpu/mcu (RAM)

    https://wiki.gentoo.org/wiki/Linux_firmware

    linux-image-genérico

    Depende: linux-image-5.4.0-110-generic, linux-modules-extra-5.4.0-110-generic, linux-firmware, intel-microcode, amd64-microcode

    Descrição: Imagem genérica do kernel Linux Este pacote sempre dependerá da última imagem genérica do kernel disponível.

    // kernel e drivers, AVISO: kernel/driver pode corresponder com a versão especificada do linux-firmware

    //executa no processador

    firmware do dispositivo

    $ fwupdmgr get-devices
    ...
    ├─Prometheus:
    │ │   Device ID:          d432baa2162a...
    │ │   Summary:            Fingerprint reader
    │ │   Current version:    10.01.3273255
    │ │   Vendor:             Synaptics (USB:0x06CB)
    │ │   Install Duration:   2 seconds
    │ │   Device Flags:       • Updatable
    │ │                       • Supported on remote server
    │ │                       • Cryptographic hash verification is available
    ...
    

    // flash para o flash do periférico (ROM), por exemplo, atualização do BIOS.

    flash no espaço do usuário,

    • fwupdmgrou
    • snap-store(chamado "software ubuntu") guia de atualizações

    loja instantânea



    resumo

    • CPU:
      // roda na CPU: kernel, driver
    • SoC
      • carregar na RAM: binário linux-firmware
      • flash para ROM: firmware do dispositivo
    • 0

relate perguntas

  • comando systemctl não funciona no RHEL 6

  • Por que meu switch não está obtendo um endereço do pool especificado

  • Criando menus personalizados na guia do menu Aplicativos no CentOS7 GNOME

  • Linux do zero dentro de um contêiner LXC

  • Roteador estranho funciona com centos 6 [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve