A Linux kernel firmware-ei és a tervezett elavulás

 ( hajbazer | 2017. április 24., hétfő - 14:49 )

Régóta foglalkoztat a téma, hogy vajon miért kell Linuxéknak mindig újra és újra feltalálni a kereket, miért nem inkább a meglévő megoldásokra építkeznek.

Így van ez a kernelhez járó (főleg wifi kártya) firmware-ekkel is, amik nyilván minen betöltéskor feltöltődnek az eszközbe, újra és újra felülírva a korábban benne lévő, eredeti firmware-t.

Kérdés azonban az, hogy ez nem eredményezheti-e végül azt, hogy a firmware tárolására szolgáló memóriahely, a wifi kártyán belül, túllépi aa P/E ciklusait és ez által tönkremegy?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Szerinted másik OS hogy oldja meg az ilyen hw-ek kezelését? :)

Windows XP 64-biten biztosan úgy oldja meg, hogy van egy fix, gyártó által készített firmware, amit a gyártó által készített driver használ. A firmware pedig nem kerül minden esetben felülírásra, minden indításnál, vagy minden USB wifi stick bedugásnál. Linuxon pedig igen. Ami előbb-utóbb tervezett elavuláshoz vezet.

Ha egyszer megtervezték azt az elavulást, akkor meg van tervezve! Nem "vezet" hozzá semmi.
Az eredeti gyári Windows-hoz tervezett drivert miért használná a linux?
Talán nincs joga bárkinek saját drivert írni?
A flash eszközöknek általában 10.000 körüli a minimális E/P ciklusszáma. Ez napi egyszeri írás esetén több mint 25 évet jelent, ami nem is olyan rossz. Bár lehetne fram is és akkor 2500 év.
Persze írhatok bármit, mert sokkal jobban tudnánk beszélgetni, ha a marhaságokat valamilyen konkrét típussal, adatlappal és kódrészlettel is alátámasztanád. Addig marad az a tényszerű dolog, hogy gőzöd sincs miről írkálsz.

Nem a driver-ről van szó hanem a custom firmware-ről, amit betölt az eszközbe!

Let driver = driver és/vagy firmware.
És ebben az esetben érted-e?
És mit is válaszoltál?

Pótkérdés: Azt tudtad, hogy egyes (windows) driverek (dll!!) a bios-ból (ami firmware) töltődnek be az XP esetén is?

Idézet:
On many older devices which require firmware to work, the firmware file was permanently placed in an EEPROM/Flash chip on the device itself by the manufacturer. Nowadays most new devices do not have the firmware embedded this way anymore, so the firmware file must be uploaded into the device by the host operating system every time the system boots.

Drága a flash chip. :P

Na és mi van a device-ban, amibe ez feltöltésre kerül? RAM?

Rögtön megtudod a választ, ha kideríted a következőt:
A pc alaplapon a bios általában egy 8 lábú soros (azaz 1 bites) flash-ben van. Hogyan futtatja az 1 bites buszon megjelenő programot a 64 bit széles busszal rendelkező cpu?
Sőt, az usb is 1 bites!
Ráadásul a diszk is sorosan olvassa saját magáról a firmware-t, miközben nem soros cpu dolgozik benne.

Sőt, a firewire külső "hangkártyám" is bootol.
XP alatt, mert nincs linux drivere! :(
Szóval nem csak a linux kernelt szúrták el ezek az elavulástervezők. ;)

Mit kell ahhoz tenni, hogy ne nyiss minden héten legalább egy semmitmondó, felesleges (akár bloat-nak is mondhatnám) topic-ot? Komolyan kérdezem, csak nevezd meg!

Újraindított support, Windows XP 64-bitre.

Chromium 49-ből LTS, ami támogatja az XP-t.

XP-t gyalázó cikkek letiltása a netről.

gabu taktikat valtott

https://hup.hu/visszajelzes címen ban kérést tömegével trey-nek :)

Szerintem pont elég nagy a hup mindannyiunk számára. Alapvetően mindig csak ugyanazt mantrázza, de nem közveszélyes, szóval egy Hupper trollszűrő pont elég ellene.

Mi lenne, ha "trollszűrés" helyett inkább válaszolnátok a témaindítóban tárgyaltakra.

Például, hogy lehetséges-e a P/E ciklusok kimaxolása a folyton feltöltögetett firmware-ekkel.

És ha igen, miért nem...

Egyébként mielőtt megnyitottad ezt a témát próbáltál egyáltalán utánanézni a mai modern eszközökbe milyen típusú flash tárolja a firmware-t és átlagban hány írási ciklust visel el ?

szerk:
Amúgy rövid utánajárás után úgy gondolom 100,000 írási ciklust tuti elbír, az 273 év ha minden nap 1* bekapcsolod. Elég lesz ?

mellesleg esteleg még érdekesség:
https://hackaday.com/2011/05/16/destroying-an-arduinos-eeprom/

Mikor megnyitottam a témát, pont azt szerettem volna tudni, hogy ezek az eszközök milyen típusú flash-ben tárolják a firmware-t és hány írási ciklust viselnek el. Ugyanis nem találtam semmi erre vonatkozót.

Olyan érdekes kérdések foglalkoztatnak, minthogy miért kell EEPROM-ba tárolni egy firmware-t, ha azt minden indításkor be kell tölteni definíció szerint?

Miért nem tüntetik fel sehol az egyes perifériák firmware-einek P/E ciklusait?

273 év talán elég. :P

Érdekesség: elolvastam, de nem jöttem rá, mi értelme annak, hogy tönkreteszik az Arduino EEPROM-ját. Egy Arduinonak muszáj mindent EEPROM-ba írnia, ezért azt akarták tesztelni, hogy ha valamilyen adatrögzítési célra használják, akkor 47 nap után hogy baszódik el "magától"?

A firmware-t nem EEPROM-ban tárolják.
Talán azért sem, mert
- kicsi a mérete
- a Harvard processzorokon nem igazán futna EEPROM-ból a program :)

Mikor megnyitottam a témát, pont azt szerettem volna tudni, hogy ezek az eszközök milyen típusú flash-ben tárolják a firmware-t ...
Eszköze válogatja: ki ilyenben, ki olyanban, de van aki semilyenben. Pontos kérdésre pontos válasz!

... hány írási ciklust viselnek el.
Ennek a minimumát megtalálod a felhasznált flash eszköz adatlapjában. Ezt az adatot a szerkezet tervezéskor úgy használják fel, hogy üzemszerű használat mellett meg se közelítse az írások száma a garantált minimumot. Ettől kezdve felesleges foglalkozni vele!

Miért nem tüntetik fel sehol az egyes perifériák firmware-einek P/E ciklusait?
Azért, hogy az abszolút laikusok (mint pl. Te is) ne köthessenek bele minden olyan paraméterbe, amiről lila fingjuk sincsen. :-D

A választ többen több helyen leírtuk. El kellene olvasnod!

Az "érdekesség-ről".
Tényleg okos gondolat ilyesmit tesztelni. Vegyél egy kötelet, aminek el kell bírnia egy ember súlyát és vizsgáld meg hány megrakott teherautót lehet megemelni vele! Roppant hasznos teszt!

Bizony, ez van amikor a hozzád hasonló laikusok - semmihez nem értve - okoskodnak.
Persze el lehet olvasni az adatlapot is, de ahhoz legalább olvasni kellene tudni.
Íme az ATmega48A/PA/88A/PA/168A/PA/328/P adatlapjából némi ízelítő.
1. oldal: Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
17. oldal: The Flash memory has an endurance of at least 10,000 write/erase cycles.
20. oldal: The EEPROM has an endurance of at least 100,000 write/erase cycles.
311.oldal: tWLRH 3.7 4.5ms

Ezekből az adatokból 1 byte EEPROM írása 0,0037*100000=370 másodperc alatt végezhető el, amikor eléri a gyártó által garantált minimális írás mennyiségét. Az adattárolás időtartama az
- írás gyakoriságából
- az írt adatok mennyiségéből
már tervezhető. Mégegyszer: Nem érdekesség, hanem tervezhető.

Köszönöm az összefoglalót, ez hasznos.

Mit értünk üzemszerű használat alatt? Mert hardvergyártóék szeretik garanciaidőre tervezni az eszközt, mikor az egyébként kibírna ötször annyit is, de pont az ilyen elavulások teszik tönkre egy-egy kulcsfontosságú részét, amikor a gép 99%-a még ép és működőképes.

Idézet:
Nem érdekesség, hanem tervezhető.

Magyarul, hardvergyártóék itt is tervezik az elavulást, az extraprofitjuk érdekében?

Üzemszerű használat, ha egy alaplap BIOS-át frissíted, akár 10-20x. Nyilvánvalóan ez a szám elég messze van a flash minimáls 100.000x írási ciklus számától. Magyarul tök felesleges foglalkozni vele!

A tervezett elavulás egyrészt összeesküvés-elmélet, másrészt igaz is. Csak nem érted. ;)
Ha nem ilyen összeesüvős módon fogalmazol, akkor a "műszaki igazság" annyi, hogy egyes eszközök élettartamát megtervezik.

Azért leírom a kedvenc példámat: kapcsolóüzemű tápegység. Ebben a hálózati és a kimeneti elektrolit kondenzátor (az utóbbi, ha van egyáltalán) élettartamát kell méretezni a terhelés (áram, feszültség, hőmérséklet) függvényében. Ha túlméretezik, akkor drágább lesz és csillió évig működik, ellenkező esetben meg hamar elhasználódik.
Nyilvánvalóan sem a gyártónak, sem a felhasználónak nem érdeke, hogy a Nokia telefon töltője 30 évig hibátlanul működjön, de jó drága és nagy legyen, vagy két hónap után tönkremenjen. Ezért a zárt házba épített dugasztápokat 20.000 óra élettartamra méretezik. Számolj utána: Ezzel több, mint 2 évig folyamatosan töltheted a telefonodat.
Ha ugyanezt a tápot jól szellőző fémdobozba építik, akkor az élettartamot 60.000 órára tervezik. Ezt már "ipari tápnak" hívjuk. Ez a méretezés lehetővé teszi, hogy 5 éven keresztül, folyamatosan névleges terhelés mellett működjön a szerkezet. (Nem úgy, mint a töltő, ami nem megy folyamatosan.)
Belátható, hogy mindkét szerkezet üzemszerű használat mellett minimum 5 évet kibír. Ez több, mint egy átlagos elektronikai cikk 3 éves élettartama. Hol a hiba?

Ha kedvenced a villanykörtés tervezett avulás film, akkor még ott vannak a nyomtatók. A szemét gyártó számlálót épít a nyomtatóba, és csak adott mennyiségű oldalt enged nyomtatni! Bezzeg a jóságos orosz hacker megoldja a problémát! Sajnos ez is a laikusok ostobasága. A gyártó megtervezi a nyomtatót és garantálja a nyomtatás minőségét. A nyomtatókat, ha egy adott számú papír áthalad rajtuk karbantartani kell! Ellenkező esetben nem lehet garantálni az eredeti, specifikált minőséget.
Választhatsz:
a) Olyan nyomtatót szeretnél - mondjuk a 100eFt+ árkategóriában - amelynél 15-25eFt karbantartásra van szükség egy adott lapszám után.
vagy
b) A 6-30eFt kategóriát kedveled és adott lapszám után kidobod és veszel másikat.
Az utóbbinál kicsi, - rövidebb élettartamú compact xerografikus egység van - általában egybeépítve. A fotovezető henger átmérője kisebb, élettartama emiatt rövidebb. Karbantartani nem lehet, hanem egyszerre kell cserélni. Ha kiszámolod, általában a tonert sem érdemes pótolni, mert ugyanannyiba kerül egy új nyomtató.
Szóval az orosz hacker csak annyit tett, hogy a kopott futófelűletű autógumit engedte tovább futni. :)

Tényleg elment az eszed.

OFF:

Ennél mondjuk sokkal gyakorlatiasabb vagyok, esetleg, ha a lakcímed megadnád..

ennek azért utána kellene olvasnod még egy kicsit.
vagy jó sokat :)

sub