Bugos firmwarek margójára

Januárban sikeresen átállítottam apám vállalkozását Linux alapúra. Nem kell nagyra gondolni, napi szállítólevelezés és kétheti számlázásban merül ki a fő informatika. Nem volt erre alkalmas offline szoftver eddig (vagy csak nem tudtam róla), de végül lett. A foshalom asztali PC-t kicseréltem egy fullinteles Dell D630-ra SSD-vel. Öröm. Aztán hív valamelyik hajnalban, hogy "nem nyomtat ez a szar". Nézem az lsusb-t nyomtató sehol. Be van dugva? Be. Kihúz bedug. Innetől elkerült a nyomtató valami olyan állapotba, amitől az lsusb ilyen ~10 mp-ig futott, dmesg teleszarva USB timeout errorokkal. Egy HP 1020-as lézernyomtatóról van szó amit az Ubuntu OOTB felismert foo2zjs driverrel. Akkor nem jöttem rá a nyitjára, telepítettem a HP saját driverét meg kínlódtam csomót aztán jó lett. Annyi konklúziót vontunk le, hogy a nyomtató volt leválasztva a gépről probléma előtt menet közben (nem nyomtatás alatt, hanem a nyomtat idle volt). Na ma reggel megint telefon, de most először hardveresen próbáltuk megoldani: kihúz kikapcsol visszadug -> és működik. Annyit tudok még a stuffról, hogy valami firmwaret on the fly tölt rá rendszer. Valószínűleg ebben sikerült valamit fostalicska módon implementálni amitől néha beáll mint a gerely.

Másik napi kedvenc: került a kezem közé pár TUSB5052 alapú USB-RS485 kábel, mondom hegesztek hozzá Linuxos drivert just for fun. Az IC-hez van Linuxos kernelmodul, csak az nem játszik számomra*, mert kell böködni GPIO-kat is. (*Egy ismerősöm rávilágított, hogy lehet, hogy van hozzáférés a GPIO regiszterekhez is, mert az implementáció regiszter alapú. Ha nagyon nem jutok előrébb, majd áthekkázom PoC jelleggel és meglátjuk. ) Ez a cucc egy 4 portos USB HUB 2 UART-al, benne egy 8051-es MCU-val. Van doksim/kódom a gyári firmwarehez, kódom a windowsos driverhez, szóval adott minden. A dolog faék egyszerűségű, 1 endpoint konfig, 1 endpoint soros data. Ebből van kettő mert egy kompozit eszköz (két portos). A dolog alapvetően működik, azonban néha a portnyitáskor lehal az eszköz (get baud/CTS/RTS command malformed). És ezt így random. A windowsos / saját USB dumpot egymás mellé lehet tenni a két endpointon, egyeformák. Vannak config requestek amik csak a Linuxon jelentkezne (a modulomtól függetlenül gondolom a hub miatt). Valószínűleg a szarul megírt firmware ennek is az okozója, amit egyelőre ötletem sincs hogyan debugoljak, mert a kód valami 1000 éves Keil-ben fordul csak, illetve az alkatrészen nincs effektív debug lehetőség a LED-eken meg az egyik soroson kívül.

Szóval a firmware mindig a móka és kacagás forrása!

Hozzászólások

A nem nyomtat dolgoktól a falra tudnék mászni néha én is. Minden szart lehet csinálni ezekkel a készülékkel, csak nyomtatni nem. Az itthoni tud leszedni sudokut meg naptárat a netről, kifestőt a gyerekeknek, de ha komoly dolgot kell nyomtatni, akkor nem akar. Leginkább windows környezetben tapasztalok hasonlókat HP nyomtatókkal.
A másik tuti dolog, windows 7 hálózati nyomtató kezelés. Kihelyezett iroda, van egy fájlszerver, azon egy HP LaserJet CUPS-al megosztva, minden szép és jó. Ahogy a kolléga VPN-en csatlakozik a vállalati hálóhoz, a windows elveszti a fonalat, és a helyi hálózati nyomtatót.

A gép és a nyomtató egy hálózaton van. Ha a gépen csatlakozik a vállalati hálózathoz (PPTP, hagyjuk is), akkor nem tud nyomtatni. A VPN kapcsolat IP beállításoknál nincs beállítva az "Alapértelmezett átjáró használata a távoli hálózaton", mielőtt valaki nekimenne izomból :)

Én az elmúlt 10 évben nem tudtam a HP 1020 nyomtatómat megbízhatóan üzemeltetni linux alól. :D
Időnként poénból megnézem de ahogy írtad mindig rossz.

HP meg a nyomtatói....kedvencem az a LJ 3055 nyomtató amihez rendes driver csak XP-hez van (ill linuxhoz)...win7 és újabbhoz max nyomtatás, scannelés nincs...HP egyszerűen le is írta hogy nem is lesz hozzá win7 vagy újabb driver.
Szerveren, virtuális gép, sane...win7-en sanetwain-el megy a szkennelés. (+CUPS ha nem menne a nyomtatás...van hogy felakad direktbe küldve). (Azt mondjuk halkan jegyzem meg hogy legújabb sane-el (debian 8+9) bugos...de Debian 7.9-ben levővel jó. Ráment egy napom mire rendbe tettem. De működik!)

Lekopogom, de a ~ $70 HP nyomtatóm az egyetlen informatikai cucc, ami a lakásban eddig mindig megbízhatóan tette a dolgát (pedig wifis, pedig e-documentes, pedig minden szart használunk rajta).

Próbáld meg a hplip driverrel, amit innen töltesz le, és végigjátszod a next-next-finish installt. Hátha segít.

Mindenki ekézi a HP nyomtatót... Lehet, hogy a drót másik végén van valójában a sz@rkupac?

Mármint mire gondolsz? Az, hogy egy ilyen eszköz tartósan elmegy olyan állapotba -- mindenfajta nyomtatási művelet nélkül --, hogy USB descriptor requestekre ne válaszoljon az egyértelműen device oldali firmware hanyag implementációjára utal (vagy ha valami ASIC van benne akkor HW issue is lehet). Az RS-485-ös sztori dettó.

Pontosan ugyanilyen baja van ismerősnek is a HP LJ 1020-as nyomtatóval. A vicc az egészben, hogy nála a Wi-Fi adapter is USB-s. Mikor a nyomtató görénykedik, akkor úgy kb. meghal minden, ami USB-n működik.

(Feliratkozom, hátha lesz valakinek megoldása.)