Linux firmware

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Linux firmware and the translation is 100% complete.

A Linux firmware egy szoftvercsomag, amelyet a Linux kernel mellett terjesztenek, és firmware blobs-okat ( binary large objects, nagy bináris objektumokat) tartalmaz, amelyek bizonyos hardvereszközök részleges vagy teljes funkcionalitásához szükségesek. Ezek a bináris blokkok általában zárt körűek, mivel néhány hardvergyártó nem bocsátja rendelkezésre a firmware megépítéséhez szükséges forráskódot.

Az AMD és az NVIDIA modern grafikus kártyáihoz szinte bizonyosan bináris blobok szükségesek a hardver megfelelő működéséhez.

A Broxton-tól kezdődően (egy Skylake-alapú mikroarchitektúra) Intel processzorok bináris blobokat igényelnek az alacsony fogyasztású üresjárati állapotokhoz (DMC), a különböző grafikus párhuzamos motorokon végzett grafikus munkaterhelések ütemezéséhez (GuC), valamint bizonyos médiafunkciók CPU-ról GPU-ra való áthelyezéséhez (HuC).[1]

Továbbá a modern Intel Wi-Fi chipkészletek szinte mindig bináris blobokat igényelnek.[2]

Telepítés

Biztonsági okokból a firmware futó kernelbe történő betöltése (hotloading) elutasításra került. A modern inicializáló rendszerek, például a systemd, határozottan ellenzik a firmware felhasználói térből történő betöltését.

Kernel

Warning
A firmware fájlok olyan bináris kernelképfájlokba történő beillesztése, amelyek nem érhetők el a GPL feltételei szerint, a GPL megsértését eredményezheti, amennyiben a képfájl terjesztésre kerül. Nyugaton, ahol bohóckodnak ezzel, bölcs dolog ügyvéddel konzultálni mielőtt olyan bináris képfájlokat terjesztenénk, amelyek a sys-kernel/linux-firmware szoftvercsomagból származó firmware fájlokat tartalmaznak. Balkánon, Keleten és a világon még jóval több helyen meg kérdés nélkül mehet a módosítás, mivel szerencsére telibe sz*rják a nyugati képmutató "szerzői jogos, mit nem szabad tiltást". Feltörünk mindent, nyíltan ott vagyunk mindenhol. Pontosan ugyanúgy mint ahogy azt valójában a nyugati kollégák is teszik, csak nem képmutató módon a háttérben. A tudás megosztása az emberiség haszna, a törődést képviseli.

Néhány kernelopció fontos szempontot jelent bizonyos eszközök firmware támogatásának beépítésekor a Linux kernelbe (a 4.18-as verziótól kezdődően):

Firmware betöltési lehetőség (CONFIG_FW_LOADER)
Ez az opció arra az esetre van biztosítva, amikor az in-tree modulok egyike sem igényel felhasználói térből történő firmware betöltési támogatást, de egy, az out-of-tree modulban épített modul igen.
Nevezett firmware blokkok beépítése a kernel binárisba (CONFIG_EXTRA_FIRMWARE)
Ez az opció egy karakterlánc, és a kernelbe beépítendő firmware fájlok (szóközzel elválasztott) neveit fogadja. Ezek a fájlok futásidőben lesznek elérhetők a kernel számára.
KERNEL Linux firmware támogatásának engedélyezése
Device Drivers  --->
  Generic Driver Options  --->
    Firmware loader --->
       -*- Firmware loading facility
       ()    Build named firmware blobs into the kernel binary
       # Optional: Enable compressed firmware support
       [*]   Enable compressed firmware support
       [*]     Enable XZ-compressed firmware support
       [*]     Enable ZSTD-compressed firmware support

USE jelölőzászlók

USE flags for sys-kernel/linux-firmware Linux firmware files

+initramfs Create and install initramfs for early microcode loading in /boot (only AMD for now)
+redistributable Install also non-free (but redistributable) firmware files
bindist Flag to enable or disable options for prebuilt (GRP) packages (eg. due to licensing issues)
compress-xz Compress firmware using xz (app-arch/xz-utils) before installation
compress-zstd Compress firmware using zstd (app-arch/zstd) before installation
deduplicate Create symlinks for all firmware that is duplicate using rdfind
dist-kernel Enable subslot rebuilds on Distribution Kernel upgrades
savedconfig Allows individual selection of firmware files
unknown-license Install firmware files whose license is unknown

Emerge

root #emerge --ask sys-kernel/linux-firmware

Opcionális: Savedconfig

A sys-kernel/linux-firmware szoftvercsomag telepítése után a beállításfájl a következővé válik: /etc/portage/savedconfig/sys-kernel/linux-firmware-ddmmyyyy. Ezt a fájlt szerkesztheti, a nem kívánt sorokat kommentálhatja vagy törölheti. Szerkessze meg, mentse el a fájlt, és telepítse újra a sys-kernel/linux-firmware szoftvercsomagot a savedconfig USE jelölőzászló használatával.

root #echo sys-kernel/linux-firmware savedconfig >> /etc/portage/package.use/kernel
root #emerge --ask sys-kernel/linux-firmware

Opcionális: Tömörítés

A kernelbe betöltendő firmware tömöríthető, hogy nagyobb helyhatékonyságot és gyorsabb olvasási sebességet érjen el (a feldolgozási idő rovására). További információért tekintse meg a CONFIG_FW_LOADER_COMPRESS kernel szimbólumot.

A sys-kernel/linux-firmware szoftvercsomag támogatja az xz vagy a zstd (az 5.19-es Linux kerneltől kezdődően[3]) tömörítést a megfelelő USE jelölőzászlókkal. A kernelbeállításnak tartalmaznia kell a CONFIG_FW_LOADER_COMPRESS_XZ és/vagy a CONFIG_FW_LOADER_COMPRESS_ZSTD opciókat ezeknek a tömörítési formátumoknak a támogatásához.

Hibaelhárítás

Betöltött firmware keresése

A dmesg grep segítségével meghatározható, hogy milyen firmware-t töltött be:

user $dmesg | grep -i firmware

Eltávolítás

Unmerge

root #emerge --ask --depclean --verbose sys-kernel/linux-firmware

További olvasnivaló a témában

  • Fwupd — a daemon that provides a safe, reliable way of applying firmware updates on Linux.
  • Kernel — az operációs rendszer magja.
  • Iwlwifi — the wireless driver for Intel's current wireless chips.
  • Microcode — describes various ways to update a CPU's microcode in Gentoo.
  • AMDGPU — az AMD Radeon és más GPU-k nyílt forráskódú grafikus illesztőprogramja.
  • Intel — the open source graphics driver for Intel GMA on-board graphics cards and Intel iGPU and Intel Arc dedicated graphics cards, starting with the Intel 810.

Külső források

Hivatkozások