Gemenskapslösning

Så lägger du säkert till saknad enhetsfirmware i ZimaOS

A DVB-S2 tuner needed a Hauppauge firmware blob; IceWhale said users could not add host firmware directly and agreed to integrate the requested file into a release.

ZimaOS har inte stöd för att på måfå installera kärnans firmware på värden med Ubuntu-liknande apt install linux-firmware-...-kommandon. ZimaOS är ett system i apparatstil, och IceWhale meddelade uttryckligen användarna att värdens firmware bör integreras i operativsystemsversionen i stället för att kopieras in manuellt.

Det aktuella fallet gällde en Hauppauge WinTV-NOVA-S2 USB DVB-S2-mottagare som behövde en firmware-blob innan Tvheadend eller Plex kunde använda den. IceWhale gick med på att integrera firmware i en framtida version och bad användaren att testa den.

Varför Ubuntu-kommandon inte kan översättas direkt

Ubuntus pakethanterare kan skriva firmware till ett skrivbart värdfilsystem. ZimaOS är inte en generell Debian-installation med samma paketeringsflöde.

Kärnans firmware måste vara tillgänglig för värden

Många DVB-, Wi-Fi- och andra enheter begär firmware från värdens kärna under initieringen. En Docker-container kan inte åtgärda detta om värden aldrig initierar maskinvaran.

Steg 1: Identifiera den exakta enheten och den saknade blobben

lsusb
dmesg | grep -i -E 'firmware|dvb|usb'

Notera USB-/PCI-ID:n, drivrutinens namn och det exakta namnet på den saknade filen.

Steg 2: Bekräfta firmwarekälla och licens

Ange den officiella källan för leverantörens firmware/kärnans firmware samt information om vidare distribution när du ber IceWhale paketera den.

Steg 3: Begär integrering i operativsystemet

IceWhale uppgav att användare av säkerhetsskäl inte kunde lägga till värd-firmware själva och att teamet kunde integrera en specifik blob när det fanns ett tydligt användningsfall.

Steg 4: Testa efter en version som innehåller den

Anslut enheten igen och kontrollera dmesg. Du vill att drivrutinen ska initieras utan meddelandet ”firmwarefilen hittades inte” innan du konfigurerar Tvheadend eller Plex.

Skicka enheten till appen separat

När värden har identifierat en DVB-mottagare kan en Docker-app fortfarande behöva den relevanta /dev/dvb enheter som mappats in i containern. Värdens firmware och containerns åtkomst är separata lager.

Blanda inte ihop användarutrymmets och kärnans firmware

Vissa appar läser in egna modell- och datafiler, och dessa kan monteras i en container. Firmware som begärs av en kärndrivrutin är något annat.

felsökningsguiden för maskinvara hjälper till att strukturera rapporten.

Så fungerar laddning av Linux-firmware

När en kärndrivrutin initierar maskinvara kan den anropa Linux-laddaren för fast programvara och begära en namngiven binärfil från värdens sökvägar för fast programvara. Om filen saknas kan drivrutinen endast binda delvis eller vägra exponera den slutliga enhetsnoden.

Den uppströms {A("https://docs.kernel.org/driver-api/firmware/request_firmware.html","dokumentationen om Linux-kärnans laddare för fast programvara","Förstå hur kärndrivrutiner begär fast programvara från värdoperativsystemet")} förklarar denna mekanism på värdnivå.

Bekräfta att drivrutinen finns innan du endast efterfrågar fast programvara

En binärfil med fast programvara kan inte hjälpa om ZimaOS saknar kärndrivrutinen för enheten. Kontrollera dmesg och modulinformation för att avgöra om drivrutinen laddas och sedan begär fast programvara, eller om maskinvaran saknar stöd tidigare i stacken.

Containergenomkoppling sker efter identifiering på värden

För Tvheadend, Plex eller en annan app ska du först se till att värden exponerar tunern under /dev/dvb. Konfigurera först därefter Docker-enhetsmappningar och programbehörigheter.

Testa igen efter varje ZimaOS-uppgradering

Om IceWhale integrerar den fasta programvaran i en version, bekräfta att tunern fortfarande initieras efter senare större uppdateringar. Spara de exakta maskinvaru-ID:na i dina anteckningar så att regressionsrapporter kan återskapas.

Förstå Linux-laddaren för fast programvara

Kärndrivrutiner begär ofta en namngiven binärfil med fast programvara när enheten initieras. Den uppströms dokumentationen om Linux-kärnans laddare för fast programvara förklarar att detta sker på värdkärnans nivå, innan de flesta programcontainrar kan använda enheten.

Om drivrutinen finns men den efterfrågade binärfilen saknas, är en operativsystemsintegrerad uppdatering av den fasta programvaran den rena lösningen. Om själva drivrutinen saknas gör det inte att maskinvaran fungerar att bara lägga till binärfilen.

Vanliga frågor

Kan jag installera linux-firmware med apt på ZimaOS?

Behandla inte ZimaOS som Ubuntu; IceWhales supportlinje var att integrera den nödvändiga fasta programvaran i värdsystemet.

Kan Docker inkludera den saknade fasta programvaran?

Inte om värdkärnan behöver den innan enheten finns för containern.

Vad bör jag kontrollera efter integreringen?

Använd dmesg och maskinvaruidentifiering för att bekräfta en felfri initiering.

Kräver den fasta programvaran ett grafiskt skrivbordsgränssnitt?

Nej. Kärnans/enhetens fasta programvara fungerar på en server utan skärm.