Debian Squeeze firmware telepítés

Alap esetben az ember berakja a gépbe a telepítő lemezt, minden feltelepül és használatba beveheti a rendszert.

Egy optimális világban biztosan így is történne, de mi nem ott élünk.

Mit tehet az ember ha már a telepítő firmware-ekért kiabál? szépen elkezdi keresni a hivatalos oldalon a firmware-t. [link] Mivel a telepítő nem találta, így valószínűleg a main-ben nem lesz, hanem inkább a non-free csomagok között lesz megtalálható. Előfordulhat, hogy ez se jön be, de akkor még a backports-on lehet tenni egy próbát.

Ha megadatott az a nagy szerencse, hogy megtaláltuk az összes hiányzó firmware fájlunkat, akkor letölthetjük és beadhatjuk pl pendrive-on a telepítőnek. Ha a rendszerünk már fut, akkor beállíthatjuk a csomaglistát. Amit az /etc/apt/sources.list fájlban tehető meg.

Innentől telepíteni már egészen egyszerűen megy a következő paranccsal.
apt-get install csomagnév

Anno még a Lenny esetében egy Broadcom NetXtreme II 5709 dualportos kártyának a firmware-re csak backports-on volt megtalálható.
Itt volt a megfelelő fájl:[link] firmware-bnx2 0.27~bpo50+1_all.deb

Ezután a sources.list-be bevéstem ezt a sort:
http://www.backports.org/debian lenny-backports main contrib non-free

Frissítsük a csomaglistát:
apt-get update

Kiadtam a következő parancsot:
apt-get install firmware-bnx2

Talán egy restartot még nyomtam a gépnek és máris működött :)

Igen ám, de mi a helyzet, ha egy olyan hálókártyánk van aminek a firmware-jeinek csak egy részét találjuk meg?
Fogjunk egy HP NC375T négy portos hálókártyát és rögtön bele is futunk ebbe a problémába. A Debian Squeeze következő két fájlt fogja hiányolni: nx3fwct.bin, phanfw.bin. Amíg az előbbit nem lehet a csomagok között megtalálni, addig az utóbbi a non-free csomagok között ott van. Azt mondják, hogy az előbbit csak különleges esetekben használja általában inkább az utóbbit használja. Ettől függetlenül mi szeretnénk ha minden firmwareünk fent lenne.

Mit lehet tenni? A gyártó oldalán is csak a red hat és a suse van támogatva. Ha azon a logika mentén indulunk el, hogy a linux kernel egységes, minden disztribúcióban, akkor a firmwareknek is illő volna.
Ezen az oldalon találunk egy firmware-t amiben benne vannak a nekünk megfelelő fájlok: [link] ebben a csomagban: hp-nx_nic-tools-4.0.520-5.noarch.rpm.

Igen, de ez még rpm és nekünk deb kiterjesztésű csomagra volna szükségünk.

Az alien nevezetű programra van szükségünk ami áttudja alakítani a csomagokat rpm-ről - deb -re.
Program telepítése: apt-get install alien

Átalakítás: alien hp-nx_nic-tools-4.0.520-5.noarch.rpm

Csomag feltelepítése: dpkg -i hp-nx-nic-tools_4.0.520-6_all.deb

A firmware-eket a /lib/firmware mappába csomagolja ki: nx3fwct.bin, nx3fwmn.bin, nxromimg.bin, phanfw.bin. (ezek a műveletek egy másik számítógépen/virtuális gépen történnek mivel, az éles gépen ugye a telepítés elején elakadtunk )

Innentől pendrive-al beadhatjuk a telepítőnek a hiányzó fájlokat innen kimásolva. Vagy ha már futó rendszerünk van akkor a /lib/firmware mappába másolhatjuk őket. Egy újraindítás után működni is fog a hálókártyánk.

Ezeket a műveleteket egy virtualizált gépen/vagy egy másik gépen végezzük lehetőleg ne az éles rendszeren kavarjunk össze mindent. Persze aki bátor az telepítse a gépére és nem kell utólag másolgatnia a fájlokat. De egy szerver esetén az ember inkább csak biztos megoldásokat próbáljon ki az éles vason :)

Előfordulhat még az az anomália a hálókártyák telepítése után, hogy azt szeretnénk, hogy más legyen a hálókártya azonosítója(ethX).
/etc/udev/rules.d/70-persistent-net.rules -fájlban tárolja a debian a hálókártyák azonosítóit a sorok végén.

Például az alábbi formában:

# PCI device 0x8086:0x109a (e1000)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:1b:56:da:5c:f2", NAME="eth0"

# PCI device 0x8086:0x4222 (ipw3945)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:a9:d2:43:45:7d", NAME="eth1"

Egyszerűen a sor végén kell átírni eth1-ről eth0-ra.

2013.02.23.