LINUX.ORG.RU

Из ядра Linux удалена поддержка web-камер Philips


0

0

Причина - код был открыт только наполовину (закрыты исходники декомпрессора). Разрабочик трудился над драйвером в течение 5 лет и страшно разочарован таким решением kernel maintainers team. Главная пострадавшая сторона - простые пользователи.

>>> Подробности

★★★☆

Проверено: Demetrio ()

Ну и что, что убрали, всех драйверов в ядро не пихнешь... Да и вообще, мое личное мнение, драйвера должны развиваться отдельно от ядра, а иначе застой в развитии драйверов обеспечен...

McMCC ★★★
()

Обиженный программист назвал майнтайнеров ядра говнюками-фундаменталистами :)

chucha ★★★☆
() автор топика

Я, конечно, понимаю разработчика, ему обидно, но вынос в сторонний модуль - вполне нормальное решение.

apt-get install pwc-modules-2.4.25-1-686 :)

И никаких проблем.

WFrag ★★★★
()
Ответ на: комментарий от chucha

Я вообще не понимаю его обиды, что изменится, если он будет делать выпуск обновленных драйверов вне основной ветки ядра? Или это просто бъет по его престижу и занчимости? Не нужно же из-за этого так убиваться, полюбому его работа оценивается людьми, для которых он ее проделывал и значение его вклада от этого не измениться... Может всетаки переборет обиду и будет работать дальше...

McMCC ★★★
()
Ответ на: комментарий от McMCC

Как я понял, из ядра убраны нужные хуки, и теперь для установки драйвера ядро нужно патчить. Это нормально ???

chucha ★★★☆
() автор топика

Всё равно vanilla-sources в чистом виде в дистрах не присутствует (разве что в слаке наверное). Всегда какие-нибудь патчи наложат.

Selecter ★★★★
()
Ответ на: комментарий от chucha

>Как я понял, из ядра убраны нужные хуки, и теперь для установки драйвера ядро нужно патчить. Это нормально ???

Если действительно так, то это не нормально.

>>PWC exports a function outside of the kernel, a so-called hook

Я так понял, хук в его части и, соответственно, никаких проблем вроде нет - в случае с модулем будет тот же самый хук. А может даже можно сделать как с NVidia-ей - просто слинковать с закрытым бинарником и все.

WFrag ★★★★
()
Ответ на: комментарий от chucha

>Как я понял, из ядра убраны нужные хуки, и теперь для установки
>драйвера ядро нужно патчить. Это нормально ???

Что же это за драйвер такой, что требует изменения в самом ядре?

McMCC ★★★
()
Ответ на: комментарий от McMCC

>Ну и что, что убрали, всех драйверов в ядро не пихнешь... Да и вообще, мое личное мнение, драйвера должны развиваться отдельно от ядра

Абсолютно согласен. Учитывая что ядро модульное с ним должны идти только базовые драйверы необходимые для запуска системы. А всякие там принтеры, камеры, сканеры развиваться отдельно, пускай и теми же девелоперами ядра.

svyatogor ★★★★★
()
Ответ на: комментарий от WFrag

там же, далее:

The kernel maintainers simply do not want to allow any kind of hook or function or mechanism, specifically written to make it possible to load a binary-only module. So this week Greg Kroah, the USB maintainer, decided to remove that hook from PWC, making it impossible to load PWCX on a standard kernel; you'd have to patch your kernel first, and only then would it start working again.

вроде хук находился в открытой части драйвера так что патчить надо именно PWC-драйвер

посмотрите что ли кто-нибудь в cvs что за хук такой, а?

anonymous
()
Ответ на: комментарий от svyatogor

Это было бы замечательно, если бы разработчики ядра не ломали соместимость с каждой новой версией.

chucha ★★★☆
() автор топика

Ой, какие мы обиженные, ептыть! Щас слезами зальёмся - наш троян из ядра выдрали... Когда закрываешь - значит, есть что скрывать. А если что-то скрыто, то цели могут быть самыми разными. Я бы на месте ядровых девелоперов просто не потерпел бы такого мусора в сердце системы.

stimpack80
()
Ответ на: комментарий от McMCC

> Я вообще не понимаю его обиды, что изменится, если он будет делать выпуск обновленных драйверов вне основной ветки ядра?

Oн не сможет больше сказать: "В ядре Линукса есть мой код!" ;)

ansi ★★★★
()

г-но это а не вебкам

настоящая tru webcam должна подключаца к ЛВС и вещать по http

иначе какой это web

anonymous
()
Ответ на: комментарий от stimpack80

>если что-то скрыто, то цели могут быть самыми разными.

Ну дык, вот например поставишь ты сервачок с веб-камерами, а через день

тебя арестуют как педофила.

В наше время верить никому нельзя.

Sun-ch
()

Я так понял все из-за этих хуков:
pwc-uncompress.h:67


#ifdef CONFIG_USB_PWCX
/* If the decompressor is compiled in, we must call these manually */
extern int usb_pwcx_init(void);
extern void usb_pwcx_exit(void);
#endif

Dead ★★★★
()
Ответ на: комментарий от McMCC

а ты напиши ему :) подбодри... я в свое время писал мужику который ov511 делает :)

petrosha ★★★★★
()
Ответ на: комментарий от Dead

так кого патчить придется чтобы обратно PWCX воткнуть -- ядро или модуль PWC?

в смысле после такого патча надо делать make bzImage или make modules?

anonymous
()
Ответ на: комментарий от anonymous

So this week Greg Kroah, the USB maintainer, decided to remove that hook from PWC, making it impossible to load PWCX on a standard kernel; you'd have to patch your kernel first, and only then would it start working again.

То есть the USB maintainer удалил эти хуки из PWC, который идет с ядром и сделал невозможной загрузку закрытого PWCX.
Поэтому, чтобы включить PWCX, нужно патчить ядро.

P.S.
По логике вещей надо было выкинуть весь PWC из ядра. Или ничего не трогать вобще.

Dead ★★★★
()

Реально все поцапались...

Эх не могут люди просто делом заниматься, обязательно скандальчик устроить.

morge ★★
()

Безусловно, драйвер камер филипс сделан криво до безобразия. Есть же закрытые драйвера нвидии и тому подобные, которые тем не менее можно собрать с нужным ядром. А с этой дрянью сначало компилишь открытый модуль pwc, а потом еще пытаешься загрузить отдельный модуль pwcx, который собран с другим ядром другим компилятором. Как минимум имеем кучу ворнингов и невозможность использовать modprobe.

Так что драйвер филипса написан из рук вон плохо. К сожалению я это понял уже после покупки гениуса, так что приходится терпеть...

AVL2 ★★★★★
()
Ответ на: комментарий от anonymous

ага. Работает кстати неплохо. 24 часа в сутки, аптайм специально не замерял, но неделями/месяцы свободно.

AVL2 ★★★★★
()
Ответ на: комментарий от anonymous

genius == *
он сам мало что производит, в основном на ОЕМ свои логотипы клепает.

anonymous
()
Ответ на: комментарий от svyatogor

> Учитывая что ядро модульное с ним должны идти только базовые драйверы необходимые для запуска системы.

Это в тебя ядро модульное, а у нас ядра монолитные!

anonymous
()

Вполне понятная политика kernelщиков - делаем код под GPL,
соответственно наживатся на этом коде всяким кампаниям разрешаем
только в соответствии с GPL (что часто побуждает отдавать что-либо
в замен).

Когда же эти компании пытаются обойти рамки, чтобы нажится не
отдавая ничего в замен и при этом делают то что официально
kernelщиками НЕодобряется - то нарываются быть посланными из
mainline kernel. (Хотя при этом могут продолжать делать патчи сами)

Кстати такие hook'i могут быть признаны нарушением GPL, просто вопрос тонкий и разбирательствами по таким тонким вопросам еще не пахло.

szh ★★★★
()

нафик проприетарщиков, ядро должно быть открытым и точка, какая нахрен гарантия надёжности и дебаггинг ядра при обнаружении ошибки если есть закрытый код?

anonymous
()
Ответ на: комментарий от anonymous

>Умный да, а как я буду монолитное ядро делать?

Да мне покласть. :) Я имел ввиду заморочки при установке. Кто собирает ядра сам может сам и патчик наложить. :)

WFrag ★★★★
()

Ну блин козлы! У меня такая камера дома и зачем спрашивается было удалять ее драйвер из ядра?? Несмотря на то, что был закрытыый модуль (скачивался дополнительно), открытый модуль из ядра все равно позволял камере хоть как-то работать, так что смысла в таком наглом поступке нет никакого. То, что драйверы нужно отделять от ядра -- разговор вообще другой. Однако они просто взяли и выкинули вещь, нужную очень многим, которая занимала в ядре сущие байты! Руки чесались чтоли??? >8-{

anonymous
()
Ответ на: комментарий от anonymous

А разве можно удалить что-то из ядра, уже опубликованное под GPL? (открытую часть драйвера). Кто может к примеру мне запретить обратно этот код вставить?

anonymous
()
Ответ на: комментарий от anonymous

Открытый модуль убрали потому что так захотел (разозлившийся) maintain'ер модуля. Но если кто-нибудь вызовется стать ментейнером
то открытую часть могут вставить обратно (без совместимости с hookами для закрытой).

> Однако они просто взяли и выкинули вещь, нужную очень многим,
> которая занимала в ядре сущие байты! Руки чесались чтоли??? >8-{
Кратко говоря - этим нужным многим пожертвовали ради развития Linux, которое нужно гораздо более многим. Концепция развития и свободы не позволяет держать.

> А разве можно удалить что-то из ядра, уже опубликованное под GPL? >(открытую часть драйвера). Кто может к примеру мне запретить обратно этот код вставить?
Никто и не думал запрещать.
Любой может взять код модуля (у которого лицензия GPL)
и пропатчить свое ядро, и при желании maintainить его для след. релизов ядра.

From: Greg KH <greg-AT-kroah.com>
To: linux-kernel-AT-vger.kernel.org, linux-usb-devel-AT-lists.sourceforge.net
Subject: Summarizing the PWC driver questions/answers

Date:
Fri, 27 Aug 2004 09:26:13 -0700

So, I've gotten a lot of emails about this topic, so I'll just answer
them all here in public, and point people at them when they ask them
again:

First off, here's Nemosoft's big post about the driver, please read that
first, and the responses to that thread:
http://thread.gmane.org/gmane.linux.usb.devel/26310

And here's Linus's response after I removed the driver, when Nemosoft
asked me to:
http://thread.gmane.org/gmane.linux.kernel/229968

Oh, and there's now a lwn.net thread too:
http://lwn.net/Articles/99615/

Ok, on to the questions:

Q: Why did you remove the hook from the pwc driver?
A: It was there for the explicit purpose to support a binary only
module. That goes against the kernel's documented procedures, so I
had to take it out.

Q: That hook had been in there for years! Why did you suddenly decide
to remove it now?
A: I was really not aware of the hook, and the fact that it was only
good for a binary module to use. I'm sorry, I should have realized
this years ago, but I didn't. Recently someone pointed this hook out
to me, and the fact that it really didn't belong in there due to the
kernel's policy of such hooks. So, once I became aware of it, I had
no choice but to remove it.

Q: Why did you delete the whole pwc driver from the tree?
A: That is what the original author (Nemosoft) wanted to happen. It was
his request, and I honored it. Go ask him why he wanted it out if
you are upset about this, I merely accepted his decision as he was
the current maintainer and author of the code.

Q: But you took away my freedom! Isn't Linux about freedom?
A: Again, it was Nemosoft's decision. The kernel also has to abide by
it's documented procedures, so that is why the hook had to go.
Remember, the original driver was released under the GPL, so you are
free to take that code and maintain it if you so desire. I'd gladly
support someone taking the GPL code and agreeing to maintain it, and
resubmitting it for inclusion in the main kernel tree. That's the
freedom that Linux provides, no closed source OS would allow you to
do that, if a company pulled support for a product (which happens all
the time.)

Q: You jerk, I had invested lots of money in this camera, you are
costing me money by ripping it out. You should be ashamed of
yourself!
A: See the above question about freedom. If it means that much to you,
then offer to maintain the code, it's that simple.

Q: You are keeping companies from wanting to write binary drivers for
Linux.
A: Duh! What do you think all of the kernel developers have been
stating for years, in public. Binary drivers only take from Linux,
they do not give back anything. See Andrew Morton's OLS 2004 keynote
address for more information and background on this topic.

Q: You are a fundamentalist turd / jerk / pompous ass /
GNU-freebeer-biased-idiot-fundamentalist fucktard / ignorant slut!
A: I've been called worse by better people, get over yourself.

szh ★★★★
()
Ответ на: комментарий от anonymous

> А разве можно удалить что-то из ядра, уже опубликованное под GPL?
Это было сделано по желанию автора. Автор, узнав об удалении
хука, попросил немедленно удалить и весь драйвер тоже. В
принципе это правельное решение, как мне кажется.

> Кто может к примеру мне запретить обратно этот код вставить?
В LKML большой тред на эту тему, этот вопрос тоже обсуждался.
Вставить её не дадут так как:
1. Пользователи высказались и было решено что без закрытой
части эта открытая часть нафиг никому не нужна - слишком
много ограничений в ней.
2. Авторской поддержки всё равно больше не будет, так что
толку мало.

Мне только вот интересно, а кто такой, вообще говоря,
этот Greg K-H, чтобы решать, какой драйвер удалить, а
какой оставить? Если бы это Линус решил, я бы ещё понял,
а так - что за самоуправство? Хук ему не понравился...
Ну так раньше надо было думать, а теперь, спустя 5 лет,
в стабильной серии, взять вот так и убрать?

McMCC:
> Что же это за драйвер такой, что требует изменения в самом ядре?
А что, бывают такие. Вот например я недавно драйвер
PC-Speaker'а ставил. Он идёт двумя патчами: сам драйвер
и ядрёный интерфейс к нему, который кучу файлов по всему
ядру изменяет... И это всего лишь спикер какой-то:)

anonymous
()
Ответ на: комментарий от anonymous

> Мне только вот интересно, а кто такой, вообще говоря,
> этот Greg K-H, чтобы решать, какой драйвер удалить, а
> какой оставить? Если бы это Линус решил, я бы ещё понял,

Он по-видимому maintain'ер какай-то(USB?) подсистемы ядра.
Линус уже высказался на эту тему. Он согласен.

> Хук ему не понравился...
Такие хуки запрещены официальной политикой ядра Линукса.
Такие хуки по видимому нарушают GPL, хотя на сегодняшний день
судебных разборок на эту тонкую тему еще не было и точно сказать
нельзя.

> Ну так раньше надо было думать, а теперь, спустя 5 лет,
> в стабильной серии, взять вот так и убрать?
В своем письме он сказал что раньше не знал про этот хук
Извинился что раньше не заметил и не убрал его.

szh ★★★★
()

У меня этой камеры нет. Что не может не радовать.

Но политика, при которой пользователи вынуждены использовать в ядре модули мне не нравится. Мне гораздо более интересно иметь монолитное ядро, в котором есть все драйверы используемого железа и нет возможности цеплять модули. Да и с точки зрения безовасности как-то кошернее... а то от modprobe всяких одни разочарования.

R00T
()
Ответ на: комментарий от anonymous

Нет, надо посылать в один славный город-герой...
Вот этот город, полюбуйся: http://www.calle.com/world/PE/8/Nahui.html

Кстати, заодно узнаешь ГДЕ находится то самое место с названием из 3-х букв...

R00T
()
Ответ на: комментарий от szh

Действительно, весь код ядра должен быть под GPL. Более того, любой другой код, производный от кода ядра (derivative work), тоже должен быть под GPL. Другое дело, что есть из этого исключения. Некоторые мне понятны, т.к. их разъяснил сам Линус, к примеру, а некоторые -- нет. Например, код AFS существовала до появления линукс и сама по себе не является derivative work по отношению к ядру, поэтому допустимо включение ее кода не на условиях GPL, насколько я понимаю. Почитать, что пишел сам Линус по этому поводу можно здесь: http://kerneltrap.org/node/view/1735 . А также есть еще один документ по теме, а вернее -- e-mail Линуса: http://www.atnf.csiro.au/people/rgooch/linux/docs/licensing.txt . В общем, я согласен, нехрен этому драйверу делать в ядре в бинарной форме.

ooptimum
()
Ответ на: комментарий от szh

> Концепция развития и свободы не позволяет держать.

Правильно, так держать, молодцы. Во имя свободы назад в пещеры, а дядя билли пусть лонгхорн доделывает...

int19h ★★★★
()
Ответ на: комментарий от int19h

Не ссыте, молодой человек. Лонгхорн хотели в 2005, потом в 2006... Прозрачность в иксах есть? УЖЕ Есть. OpenGL подключим? Подключим, не вопрос. Драйверы за это время зарюхаем? Несомненно. Нас много - пусть не все умеют писать программы. Но часть умеет проверять и писать багрепорты.

jackill ★★★★★
()
Ответ на: комментарий от ooptimum

>В общем, я согласен, нехрен этому драйверу делать в ядре в бинарной форме.

Помимо "закрытости" pwc-шный декомпрессор весьма убогая вещь.Вставляемая в ядро костылями, и при попытке force unload'а уносящая за собой ядро в "страну вечной охоты". При том, что автор в упор не желает отвечать на письма с багрепортами. Да и аргумент типа "я 5 лет над ним работал" весьма странноват. Ибо если настолько цениш свой труд, что не хочешь отдавать исходники - пиши коммерческие дрова, а то вроде как сырцы не покажу, и "за базар" отвечать не буду.

r00tKIT
()
Ответ на: комментарий от R00T

>Мне гораздо более интересно иметь монолитное ядро

А как же быть с масштабируемостью ? Да и монолитное ядро ОПЕНСОРС не одолеет, поскольку тут нужна очень строгая дисциплина и неукоснительное соблюдение некоторых правил. И дисциплину эту можно поддерживать только деньгами или насилием. Ни то не другое с опенсорсом несовместимо. Ну или если предположить, что опенсорс будет опен только для ооооочень идейных кодеров и они добровольно будут писать по правилам, то так или иначе понадобится "координатор" всего этого хаоса, но это уже слишком большая власть в слишком одних руках и кончится это очередным лонгхером. Так что монолит не для опенсорса (само собой ИМХО)

r00tKIT
()
Ответ на: комментарий от jackill

2jackill (*) (29.08.2004 3:05:37): Ну если этот модуль не поддерживает append - тогда не передам, конечно.

R00T
()
Ответ на: комментарий от r00tKIT

2r00tKIT (*) (29.08.2004 8:19:00): Да уж какая на PC-шке масштабируемость??? :-) Ты где такую травку берешь? :-)

Я, наверное, не очень четко выразился: я хочу, чтобы (по крайней мере) OpenSource драйвера можно было компилировать в ядро, то есть, без модулей.

Понятно, что для использования проприетарных драйверов (типа NVidia) придется использовать модули... Но для тех, что есть непосредственно в ядре - на кой фиг?

R00T
()

Ну чтож, обе стороны и правы и не правы одновременно. Виновата в этом только компания Philips, не желающая открывать исходники. В общем, до того как я куплю новую вебкамеру, обновлять дома ядро не буду.

Может кто посоветует какая камера сейчас лучше всего работает под Linux (желательно со свободным драйвером, чтобы опять на подобные грабли не наступить ;-)))? Был бы очень признателен.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.