Keserű fejlesztő: befejeződött egy driver fejlesztése

Címkék

Az egyik core Linux kernel fejlesztő, Greg Kroah-Hartman eltávolított a Linux kernelből egy olyan hook-nak nevezett funkciót, amely lehetővé tette, hogy bizonyos, a Philips által gyártott webkamerák működhessenek Linux alatt.

A PWC névre hallgató kamera driver karbantartója ezen annyira feldühödött, hogy kijelentette, hogy 5 év munka után befejezi a driver fejlesztését, kéri a Linux kernelből való eltávolítását, és megszünteti a driver honlapját is.A driver egy félig nyílt, félig zárt forrású megoldás. Két részből áll, egy PWC névre hallgató nyílt forrású kódból, és egy PWCX névre hallgató bináris dekompresszorból. A PWC magában is működik, de a jó működéshez, és ahhoz, hogy a kamera tulajdonosai minden funkciót szépen ki tudjanak használni elengedhetetlen a Philips által nyújtott bináris dekompresszor is.

Ahhoz, hogy a bináris PWCX működni tudjon, együtt kell működnie a PWC kóddal. Ehhez a PWC modul kiexportál egy funkciót a kernelen kívülre, amelyet hook-nak hívnak. A kernel fejlesztők azon az állásponton vannak, hogy nem akarnak látni semmilyen hook-ot, funkciót vagy mechanizmust a kernelben, amely lehetővé teszi az ilyen modulok működését. Ennek érdekében Greg Kroah, a Linux kernel USB alrendszerének karnabtartója eltávolította a PWC-ből azt a hook-ot, amely lehetővé tette a PWCX betöltését a kernelbe. Ezzel azt okozta, hogy a mainline kernelbe nem lehet a PWCX modult betölteni, előtte patchelni kell a kernelt.

A driver fejlesztője ezt az eljárást több okból is elfogadhatatlannak tartja:

- a hook mechanizmus 3 éve része a kernelnek, szerinte kicsit későn döntöttek arról, hogy el kéne távolítani

- a döntés megnehezíti a karbantartó és a felhasználók életét is (pláne a kezdő felhasználókét, akik nem tudnak kernelt patchelni)

- az utolsó pedig a saját sérelme, hiszen ezzel a döntéssel megfosztják a felhasználót attól a lehetőségtől, hogy bináris modult használhasson

A fejlesztő ezért úgy döntött, hogy nem hajlandó a kernelben egy gyengén működő driverhez a nevét adni (a bináris modul nélkül csak nagyon csökkentett támogatást ad a driver a kamerákhoz), ezért kéri a driver teljes eltávolítását a Linux kernel forrásából. Emellett befejezi a fejlesztést, törli a bug tracking rendszert, megszünteti a weboldalt, törli a letöltéseket, a dokumentációt, a FAQ-t, stb. Ahogy ő fogalmaz ``teljesen kihúzza a konnektort''.

Ahogy írja ezen a döntésen mindenki veszít:

- a felhasználók a drivert

- a fejlesztő a kis népszerűséget, amit szerzett magának a driverrel

- a Philips a támogatottságot

- a Linux kernel is, mert neki a népszerűséghez szüksége van arra, hogy jó hardver támogatást adjon

A fejlesztő döntését és az egész ügy hátterét elolvashatod itt.

Hozzászólások

Azt nem ertem, mi a "kernelfejlesztok" valodi gondja.

Az rossz dontes, hogy ha pl. adnak egy plugin interface-t amire barki azt ir amit akar, ok az interface-t szupportaljak, ami hasznalja azt azt meg nem es kesz.

Ertelmezesem szerint ez a hook dolog ua. Mi ezzel a gond. Teljesen jogosan sok hw gyarto nem adja/adhatja ki a hardverek _teljes_ specifikaciojat, mert akkor a konkurrencianak feldobna a labdat.

Az OpenBSD nem a széleskörü drivertámogatottságról ismert. Pl USB2 támogatás csak pár hónapja került bele, még a webcamerák egzotikus tvkártyák gamepad-ek, stb támogatottsága igencsak hiányos. Természetesen scsi, hálókártya esetében jó a driverellatottsága az OBSD-nek, elsösorban ez a celterülete is.

Az OpenBSD inkább server mint desktop OS. Poénnak szántam a megjegyzést nem akartam flamet inditani vele. (Az OpenBSD kevés webkamerát támogat, és ha igy folytatódik a linux sem fog sokat támogatni).

A hivatalos oldalról újra letölthetővé vált a driver.

bra@k2[/usr/src/sys/dev]$ find . -name "*.c" | wc -l && uname -a

584

OpenBSD k2 3.4 K2#12 sparc

bra@japan[/usr/src/sys/dev]$ find . -name "*.c" | wc -l && uname -a

653

FreeBSD japan.axelero.private 5.3-BETA1 FreeBSD 5.3-BETA1 #12: Tue Aug 24 16:09:14 CEST 2004 root@japan.axelero.private:/usr/obj/usr/src/sys/JAPAN i386

Garantáltan semmi értelme nincs :)

Ugyanez persze nem elmondható a FreeBSD-ről, tehát szerencsére van alternatíva :)

Sőt, FreeBSD-hez kapsz ingyen egy NDIS emulátort, így ha még senki nem adott volna a fejlesztőknek az adott wifi cuccból, akkor is nagy eséllyel fogod tudni használni a windowsos driverével.

Sajnos -remélem rosszul tudom- ugyanezért Linuxon fizetni kell... [www.linuxant.com]

Megjegyzés: A file-t még pár napja töltöttem le, és szándékos módosítások nélkül töltöttem fel az mbaron.uw.hu-ra. Ennek ellenére előfordulhat, hogy történt átviteli hiba. Ebből kifolyólag a file esetleges hibáiért semmiféle felelősséget nem tudok vállalni.

Egyetértek.

Mi a szabadság? Az hogy 100% szabad dologból épül fel egy program/rendszer vagy az hogy sok mindent megtudsz csinálni vele? A rendszer nyújtotta szabadság.

Jobb lenne a bináris (closed source) programokat visszaszorítani de akkor legyen alternatíva.

Vagy mégjobb legyen egy nyílt API ami alapján lehet az eszközzel komunikálni.

És az OpenBSD pf + Ntpd + ssh

mind működik FreeBSD alatt. (*nagyrészt* átjárható)

És a BSD-k release/fejlesztési ütemterve is logikus.

Na ez a szabadság.

(Hmm, ma elég sokszor használom ezt a szót.)

Nem tudom, de meg vagyok róla győződve hogy nem release alatt hipp-hopp távolították el a tűzfalat. (erre való a snapshot, linux alatt valamikor develnek hívták)

Az Adaptec 7902 SCSI 320 PCI-X driverét (ahd) úgy látszik nem támogatja az OpenBSD. Ezért FreeBSD-t raktam rá és ennek az újrafordított kernelére raktam rá a pf portolt változatát. Úgy láttam a CVS alapján hogy kb fél éve portolták a FreeBSD-s drivert, ezért nem értettem miért nem működik. Közben írtam egy levelet az openbsd-misc listára ahol egy fejlesztő elmondta hogy támogatott ez a SCSI adapter, de nincs bekapcsolva a floppy-s változaton.

Mire Theo felhívtam a figyelmem hogy a holnapi snapshot buildjében már be lesz kapcsolva a ahd driver és mást törölt ennek érdekében.

(reményeim szerint ez lesz a PPKE-ITK tűzfala/routere)

Greg K-H egy LKML-re érkezett levelében [thread.gmane.org] summázta a hook eltávolításának okait (nyilván a magánba kapott anyázások miatt).

Jó GPL-es szokás szerint az idióta, és csak Linus által szóban megfogalmazott szabályokhoz történő vallásos-fundamentalista ragaszkodás vezetett idáig.

(Greg rögtönzött FAQ-jában az utolsó bejegyzésben említett kedves szavakat természetesen tőlem kapta :)

Itt egyaltalan nem GPL-fundamentalizmusrol van szo.



Nagyon roviden a tortenet:

1. a pwc (opensource) driver csak azert letezik, es csak azert van benne egy hook, hogy a pwcx (closed source) driver mukodni tudjon. Ennek egyreszt semmi ertelme (legyen akkor az egesz driver closed source, binariskent terjesztett mint pl az nvidia), masreszt kernel policy hogy nem csinalunk ilyet, tobbek kozott (de csak) azert, mert ez jogilag (a gpl miatt) zavaros terulet.



2. Tehat gregkh es linus azt mondtak, hogy marpedig ilyen hook ne legyen a kernellel szallitott driverekben, ugyhogy kiszedtek. Ettol meg lehet kulon terjeszteni, ettol meg lehet kulon teljesen binaris drivert szallitani stbstb, szoval nem dolt ossze a vilag egyaltalan!



3. a drivert a kernelbol a fejleszto sajat keresere szedtek ki, mert azt mondta hogy ha nincs hook, nincs driver...



4. mint utobbi kiderult, a pwcx driver azert zart forraskodu, mert a philips a kamerat ugy reklamozza mint egy valodi 640x480 felbontasu kamera, mikozben a valos felbontasa csak 160x120, es ezt a tenyt takargatja a kerdeses driver, illetve interpolal.

>1. a pwc (opensource) driver csak azert letezik, es csak azert van benne egy hook, hogy a pwcx (closed source) driver mukodni tudjon.

Nem igaz, az opensource is működik, de így csak kisebb felbontást tud produkálni (vagy kisebb framerate-t)

>2. hogy marpedig ilyen hook ne legyen a kernellel szallitott driverekben, ugyhogy kiszedtek

Én nem veszem be ezt a kamu szöveget hogy most vettük észre.

>3. fejleszto sajat keresere szedtek ki

Ez igaz.

>4. mint utobbi kiderult, a pwcx driver azert zart forraskodu

A closed driver tömörítést csinál és így képes átvinni megfelelő mennyiségű adatot az USB-n keresztül (USB1).

Ezt a részt meg nem akarják kiadni PONT

4. mint utobbi kiderult, a pwcx driver azert zart forraskodu, mert a philips a kamerat ugy reklamozza mint egy valodi 640x480 felbontasu kamera, mikozben a valos felbontasa csak 160x120, es ezt a tenyt takargatja a kerdeses driver, illetve interpolal.

Mindenesetre 640x480 -as felbontást tudok leszedni róla méghozzá (egy webcamerához mérve) elég jó minőségben.

Megszereztem a "pwcx-9.0.tar.gz" fájlt!!! Össze is tákoltam, nem volt egyszerű (nekem), de műxik! Ha valaki dob egy mail-t, annak elküldöm.

Lenne egy kérdésem az okosokhoz. Az, hogy kiveszik a pwc-t a kernelből az azt jelenti, hogy az új kernelekkel ezeknek a driverek birtokában sem fog menni a kamera?

Ezt a F@SZT!!!! bakker nekem ilyen kamerám van és eddig tökéletesen működött.....

Marha boldog vagyok hogy most volt nincs......

ha valakinek megvan esetleg letöltve a legújabb driver (nekem nincs) küldje már el! vagy írja ide honnan szedhetem le.....

1. a pwc (opensource) driver csak azert letezik, es csak azert van benne egy hook, hogy a pwcx (closed source) driver mukodni tudjon. Ennek egyreszt semmi ertelme (legyen akkor az egesz driver closed source, binariskent terjesztett mint pl az nvidia), masreszt kernel policy hogy nem csinalunk ilyet, tobbek kozott (de csak) azert, mert ez jogilag (a gpl miatt) zavaros terulet.

Rendben, ha ez a policy akkor ez a policy. Nem mintha bárki is mutatott volna erről vmi írásos bizonyítékot. DE ez az eljárás hogy csak úgy egyik napról a másikra kibasszuk, ez tarthatatlan és felháborító!

2. Tehat gregkh es linus azt mondtak, hogy marpedig ilyen hook ne legyen

Nagyszerű, akkor ez a két ember megmondta hogy márpedig az összes Philips tulajdonos keressen alternatív megoldást. Van ám a világon felelősség is. Egyrészt egy ilyen jelentőségteljes döntés meghozatala előtt erősen illene szólni a népeknek hogy remove lesz, ki mit szól. Másrészt majd akkor lehet kivenni, ha van rá alternatív megoldás. Ez egy k i b a s z o t t Unix kernel, nem kéne csak így egyik napról a másikra ukmukfukk beletrancsírozni!

És bár nem vagyok Philips webcam tulajdonos, de igenis elmondom LKML-en is a véleményemet, remélve hogy legközelebb tanulnak a reakciókból.

3. a drivert a kernelbol a fejleszto sajat keresere szedtek ki, mert azt mondta hogy ha nincs hook, nincs driver...

Jah, ez Linus kedvenc kifogása is, hogy "dehát neménvótam teccikérteni". Elég ROTFL szöveg, tekintve hogy hook nelkul nincs értelme a drivernek.

4. mint utobbi kiderult, a pwcx driver azert zart forraskodu, mert a philips a kamerat ugy reklamozza mint egy valodi 640x480 felbontasu kamera, mikozben a valos felbontasa csak 160x120, es ezt a tenyt takargatja a kerdeses driver, illetve interpolal.

Biztosan, de ennek a témához semmi köze.

Fogadjunk egy naugyeba, hogy a Philips lepni fog az ugyeben, es minden jora fordul.;-)

Jol az ilyen kavarasok/sertodesek, mert hirt generalnak, amit a a Tekintetes Cegvezetok is megertenek.;-)

Az is igaz ugyanakkor, hogy nem kellene ilyen jelentős változtatásokat csinálni a hivatalos kernelfában. Erre, és az ezzel kapcsolatos ideológiai vitákra a fejlesztői kernel való. Amég az nincs megnyitva addig imho várni kell.

Látom nagyszerüen müködik az Linus féle új kernelfejlesztési rendszer, a driverek száma most igy csak csökken, nem nő. A végén az openBSD driver támogatottsága is jobb lesz :-)))

4. mint utobbi kiderult, a pwcx driver azert zart forraskodu, mert a philips a kamerat ugy reklamozza mint egy valodi 640x480 felbontasu kamera, mikozben a valos felbontasa csak 160x120, es ezt a tenyt takargatja a kerdeses driver, illetve interpolal.

BTW ez teljesen elkepzelhetetlen, 160x120 egy nagy darab ***** lenne. Senki se venne ilyen kamerat. A legolcsobb 9 ezer forintos (spca5xx chipes) QuickCam is 352x288-at visz, ez az abszolut minimum az összes webcamnál! És ezek is JPEG vagy ahhoz hasonló tömörítéssel nyomják át a cuccot a buszon - az enyémnél ez pl csak Windows alatt támogatott, Linux alatt csodás 352x288 6 fps van. Amugy itt egy idézet attól a vojkovics gyerektől az LKML-en:

> > The suggestion of a 4x4 JPEG-like transform seems

> > pretty reasonable. I'd like to see that whitepaper.

> >

>

> This still can't be called 'True 640 x 480' by any reasonable standard.

> Philips' marketing claims exactly this.

If the sensor has 640x480 Bayer half-cells (640x480 green subpixels),

then that's considered as 'true 640x480' by the industry. Green

resolution is 640x480, red and blue resolution is 640x240. A full

640x480 RGB image can be reconstructed in good quality.

Alan Cox is az én véleményemen van:

On Gwe, 2004-08-27 at 20:29, Linus Torvalds wrote:

> So stop whining about it. The driver got removed because the author asked

> for it.

Please put it back, minus the hooks so the rest of the world can use it.

If not please remove every line of code I've even written because I

don't like the new attitude .. so ner..

Fogadjunk, hogy nem!

Simán el tudom képzelni, hogy a Philips azért nem adja ki nyílt forrással a drivert mert nem adhatja ki. Valami 3-adik résztvevővel kötött szerződés vagy valami szabadalmi ügy miatt meg van kötve a kezük.

Nemtudom ki emlékszik a winmodemekre? Az nem pont ugyanez a téma? (Jelenti-e ez a kernelfejlesztői döntés, hogy a winmodemeknek is vége? Szerintem igen.) Ugye ott sem a gyártók smutzigsága (mondjuk kivéve a Conexantot, ami tényleg smutzig) miatt nincs nyílt forrású driver, hanem azért, mert a V90 szabadalom tulajdonosai megtiltották!

A winmodem persze nem jó példa, mert ezek idővel ki fognak kopni a használatból, de a WLAN kártyák például csak most kezdenek igazán terjedni. És a WLAN kártyáknál sem lehet teljesen nyílt forrású a driver (vagy firmware, mert azzal azért lehet trükközni), mégpedig azért, mert törvény írja elő, hogy a gyártónak lehetetlenné kell tennie a készülék módosítását, nehogy a user módosítása által megsértse a rádiókommunikációs előírásokat.

Mi mast is varhattunk ettol az idiota kerneldev bandatol?

2.6 kiadasa ota ***** az egesz. Lassan tenyleg atterek vmi BSD-re az osszes gepemen.

100%-osan egyetértek veled.

(Énis lehet hogy ezt teszem, legalábbis a tűzfal az biztos)

Tudom hogy az Nvidia téma téged nem érdekel, de ideírom hátha van akit igen:

Szerintem arra is érdemes lenne egy API-t bevezetni ami megakadályozza az NVIDIA bináris driverek betöltését, utána lehetne folytatni és WI-FI kártyákkal majd a végén kiírhatjuk hogy: "Mi vagyunk aztán a FREE!"

ez erdekes kerdes. nincs keznel OBSD-m, de nalad hany db .c file van a OBSD drivers-eben?

andrej@opata:/usr/src/linux-2.6.8.1/drivers$ find . -name "*.c"|wc -l

2622

(a meres nem tokeletes, mert nem minden driver 1db, .c file, es a .c jo resze nem egy eszkoz, hanem egy eszkoz csalad drivere, de talan erdemes osszehasonlitani.)

Remek, en is ezt a pwc/pwcx-et hasznaltam.

Thanks.

Bocs, csak kicsit berágtam... végre valami müködik akkor miért megszüntetni...?

Mellesleg a pf és a Ntp meg hasonló dolgok miatt kacsintgatok abba az irányba.

csak egyszerüen annyi hogy nem fogok kernelt frissíteni... minden müködni fog.

Nem értem hogy miért most kell cleanup-ot csinálni.

meg hogy miért nem lehet azt mondani hogy vége, ezt most nem túrjuk szét, azt egy másik ágon csináljuk, ezt meg kiadjuk.

Most komolyan ti mit csinálnátok a helyemben??

PS: az előző FREE -t ironikusan értettem hiszen így pont nem lesz szabadság.. (IMHO)