Linux и компьютер - в помощь школьнику



13 коммент.
Продолжение темы и окончательное развенчание мифа о том, что компьютер вообще и с Linux в частности - лишь игровая приставка и рассадник болезненных зависимостей и ухода в виртуальный мир. На очереди - самый простой и быстрый способ развернуть для школьника систему, устойчивую к вирусам и снабжённой целым арсеналом обучающих программ. Встречаем Edubuntu!


Что умеет? Чем поможет?
Есть много дистрибутивов, и часть из нацелены именно на обучение - для школьников, студентов и "лиц, занимающихся самообразованием". Среди них можно выделить разновидность Ubuntu - а именно Edubuntu. Загрузившись с этого диска, увидим что-то вроде:



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

Загрузка происходит в автоматическом режиме, ничего писать не нужно. После некоторого ожидания перед вами появится рабочий стол GNOME с кучей разных приложений в меню наверху. Смотрим и удивляемся: всё это расположено на одном-единственном диске и может быть запущено прямо сейчас, даже без установки на жёсткий диск. Просто выбираем в меню программу и ждём, пока она загрузится.



Набор приложений обычен для обучающих дистрибутивов:
TuxMath - сверху летят арифметические примеры, и правильные ответы сбиваются Туксом.
TuxPaint - растровый графический редактор для детей.
TuxType - на падающей сверху экрана рыбке для Тукса написаны буквы, и правильное нажатие на клавиатуре делает пингвина сытым.
Kturtle - вариант языка Лого для обучения азам программирования.
Kstars - интерактивная карта звёзд.
Kig - интерактивная геометрия.
Kanagram - анаграммы слов, требуется ввести правильный вариант.
Kalzium - периодическая таблица элементов с подробными сведениями о каждом из них

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

Ели возникло желание поставить на винчестер этот замечательный дистрибутив - никаких проблем. Слева вверху есть кнопка Установить (Install). Для этого нужно несколько раз нажать на кнопку Далее и один раз на Готово.

За несколько простых шагов вы подготовите систему к установке, и через некоторое время вас попросят перезагрузиться в вашу новую операционную систему.

Кроме обучающих приложений, вы получите офисный пакет OpenOffice, растровый графический редактор GiMP, броузер Firefox, почтовый клиент Thunderbird и другие приложения, являющиеся джентльменским набором в Линукс-системах.

Удачи в обучении!
Читать далее

Юмор: О формах обучения UNIX



15 коммент.
"Только познав UNIX, искатель может,
наконец,
открыть консоль своей души
 и ввести главный вопрос: whoami"...

Бхагаван Шри Константин


Мы разделяем учеников (садхак) на четыре класса:

1) Слабые ученики (мриду)
это те, кто любят графический интерфейс и контекстный хелп, они критикуют учителей, жадны, расположены к джаве, не читают Кнута, много едят, подвержены влиянию женщин, уклоняются от написания скриптов, трусливы, несамостоятельны, не пишут драйверы под собственное железо, предпочитая пользоваться готовыми, у них слабый характер, им недостает мужества. Гуру ведет таких искателей лишь по пути пользователя UNIX. Он ставит им Иксы и сносит Винду, чтобы искатель под его руководством изучал man, идя к понимаю того, как заставить работать мышь, клавиатуру, монитор и звук. Такой ученик может достичь просветления за 12 лет, если будет очень стараться. Требуется долгое время, нередко целые годы, чтобы понимание UNIX проникло в его слабый ум, и ещё дольше, чтобы оно дало плоды.


2) У среднего ученика (мадхьяма)
ум ровен, он способен выдерживать невзгоды, читает Кнута (но не делает упражнений), стремится работать лучше, любит писать скрипты, говорит деликатно, отвергает графический интерфейс, умерен во всех отношениях. Распознав эти качества, Гуру обучает его администрированию UNIX и шелл-программированию, приносящим освобождение.


3) У искателя высшего типа (адхиматра)
устойчивый ум, он способен к программированию на голом Си, мужественен, независим, благороден, милосерден, делает упражнения из Кнута, правдив, храбр, молод, почтителен, читает исходники ядра, искушен в написании скриптов, преклоняется перед своим учителем, понимает POSIX, твёрд в следовании Пути UNIX. Такой ученик может достичь просветления за шесть лет практики. Гуру обучает его программированию на Си и знакомит со священным текстом "Advanced Programming in UNIX Environment".


4) Полный великой мужественности и энтузиазма,

не пользующийся никаким другим софтом, кроме того, что написал сам, приятной наружности, отважный, знающий наизусть всего Стивенса и Таненбаума, усердный в занятиях, здравомыслящий, неунывающий, взломавший в 9 лет соседскую домашнюю сеть с помощью кнопочного телефона, размеренный в еде, предпочитающий пиво, владеющий своими чувствами, не знающий страха, сделавший все упражнения из Кнута, написавший собственный интерпретатор лиспа, чистый, искусный, щедрый, не признающий иного редактора кроме Emacs'а, с хорошим характером, с деликатной речью, преклоняющийся перед своим учителем - таков наивысший тип искателя (адхиматрама), он годен для всех форм UNIX. Он может достичь просветления за три года. Под руководством Гуру, он пишет собственный UNIX и называет его своим именем.


Взято отсюда.
Читать далее

Создание графиков в gnuplot: пример построения графика



28 коммент.
Согласно официальной документации, gnuplot имеет интерактивный и поточный режим. В интерактивном режиме вы вводите команду за командой, задавая параметры строительства графика. Для изучения возможностей или чтобы построить единственный график это, наверное, нужно, но обычно проще написать скрипт и скармливать его гнуплоту. Об этом далее.

Как в gnuplot построить график
Gnuplot использует скриптовой язык, который описывает строительство графика функции или рядов данных. В скрипте задаются параметры графика: шрифты осей, пределы по осям, расположение легенды. После этого скрипт передаётся по конвейеру гнуплоту, и он выдаст файл PostScript, который и содержит график.

Чтобы быстро посмотреть и, при необходимости, перестроить график, нужно открыть его программой просмотра PS-файлов. Например, kghostview. Её вообще хорошо держать открытой на другом виртуальном рабочем столе, а скрипт построения графика изменять - и при перестраивании график в kghostview автоматически обновится.

Небольшой пример. Имеются ряды данных в обычном текстовом файле, нужно построить график. Вот исходные данные, файл RAWSTDmeasurementresult
1.6593991e+00 1.6523134e+00 1.6407763e+00
1.8986703e+00 1.8667678e+00 1.8595763e+00
2.6304331e+00 2.5340401e+00 2.4999678e+00
4.2843754e+00 4.0227936e+00 4.0423230e+00
7.6136102e+00 7.0438436e+00 7.1057056e+00

Нужно построить цветной график, с подписями на осях по-английски, шрифт Helvetica. Вот что у меня получилось:

#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color solid
set output "~/matlab/programs/kmvdecoder/plots/1NoiseRAWSTDtoISOnoisecomparing.ps"
set xlabel "ISO number" font "Helvetica,18"
set bmargin 4
set ylabel "Pixels standard deviation" font "Helvetica,18"
set yrange [0:50]
set key top left
set xtics ("100" 0,"200" 1,"400" 2,"800" 3,"1600" 4)
set style line 1 lt 1 pt 9
set style line 2 lt 3 pt 7
set style line 3 lt 2 pt 5
plot "~/matlab/programs/kmvdecoder/plots/RAWSTDmeasurementresult" using 1 title "RAW data, Red channel" with linespoints linestyle 1,"~/matlab/programs/kmvdecoder/plots/RAWSTDmeasurementresult" using 2 title "RAW data, Green channel" with linespoints linestyle 3,"~/matlab/programs/kmvdecoder/plots/RAWSTDmeasurementresult" using 3 title "RAW data, Blue channel" with linespoints linestyle 2


Ничего сложного в этом нет, сейчас я эти иероглифы прокомментирую.

Даже беглый взгляд на текст при некотором знании английского позволяет догадаться, какие строчки что примерно делают. Понятно, что команда set что-то устанавливает - а устанавливает она параметры построения графика. А команда plot как нетрудно догадаться, что-то строит. Так что всего-то навсего две команды и немного параметров к ним. Не так страшно, как выясняется - для настоящего джигитапользователя никс-систем это не должно быть проблемой.


Пример скрипта построения графика на gnuplot с пояснениями
Итак, разбираем скрипт.

#! /usr/bin/gnuplot -persist
Это обычный заголовок скриптов, только указывает он на gnuplot а не на, скажем, perl или bash. Если вы когда-нибудь видели скрипты, то сразу почувствуете себя как дома.


set terminal postscript eps enhanced color solid
Устанавливает постскрипт-вывод, расширенный - можно использовать греческие символы, цветной - графики будут цветными.


set output "~/matlab/programs/kmvdecoder/plots/1NoiseRAWSTDtoISOnoisecomparing.ps"
Это путь к будущему графику и имя графика. Можно сваливать их в текущий каталог или куда захотите.


set xlabel "ISO number" font "Helvetica,18"
Подпись по оси Х будет "ISO number", шрифтом Helvetica и размером 18 пунктов.


set bmargin 4
Устанавливаем нижнее поле равное 4 относительным единицам, чтобы не обрезалась подпись к оси Х (этот досадный косяк имеет место быть у меня, у вас его может и не быть).


set ylabel "Pixels standard deviation" font "Helvetica,18"
Подпись по оси Y будет "Pixels standard deviation", шрифтом догадайтесь каким :-)



set yrange [0:50]
Пределы по оси Y составляют от 0 до 50.



set key top left
Легенда (обозначение рядов данных) сверху слева.



set xtics ("100" 0,"200" 1,"400" 2,"800" 3,"1600" 4)
Отсчёты по оси Х будут 100, 200, 400 800 и 1600.


set style line 1 lt 1 pt 9
set style line 2 lt 3 pt 7
set style line 3 lt 2 pt 5
Здесь задаётся номер линии (чтобы на неё сослаться при построении конкретного ряда данных), тип линии и тип точки (квадратик, кружочек, ромбик...).


plot "~/matlab/programs/kmvdecoder/plots/RAWSTDmeasurementresult" using
1 title "RAW data, Red channel" with linespoints linestyle
1,
"~/matlab/programs/kmvdecoder/plots/RAWSTDmeasurementresult" using 2
title "RAW data, Green channel" with linespoints linestyle
3,
"~/matlab/programs/kmvdecoder/plots/RAWSTDmeasurementresult" using 3
title "RAW data, Blue channel" with linespoints linestyle 2
Вся эта конструкция предписывает строить график, который будет состоять из трёх линий (типа 1, 2 и 3). График строится по данным, которые лежат в одном текстовом файле тут: ~/matlab/programs/kmvdecoder/plots/RAWSTDmeasurementresult

Заголовок у каждой ветви графика разный, он задаётся после
title, а слово using означает, что в файле несколько рядов данных: для первой ветви - первый столбик, для второй ветви - второй столбик и так далее.

Для каждой ветви графика задаётся свой стиль линии.
Вот, кстати, почему и зачем у меня появился в своё время пост о вертикальной конкатенации: мне нужно было добавить в файл данных ещё один ряд, полученный при других измерениях. После этого можно скармливать новый файл данных гнуплоту и он будет воспринимать это как новый ряд.
Ничего демонического, как видите, в гнуплоте нет. А вот и результат наших стараний:

Следует отметить, что, вопреки распространённому заблуждению, gnuplot выдаёт графики с publication-ready качеством, которые без вопросов принимаются в любом зарубежном (и уж тем более местном) научном журнале. Например, NASA с помощью gnuplot создаёт карты погоды, а некоторые математические системы (типа MATLAB) просто используют куски кода gnuplot чтобы отрисовывать графики. Так что график, который выдаст гнуплот, в любом случае на порядок краше того, на что способен ексель или Openoffice.org Calc.

Для тренировки можно немного поиграть с параметрами и посмотреть, к чему это приводит. Смотреть удобнее всего в kghostview или любой другой программе, способной открыть PostScript-файлы.
Читать далее

Построение графиков в gnuplot: о легендах



7 коммент.
Легенда - это подпись к рядам данных на графике, которая позволяет понять, к каким данным относится одна зависимость, а к каким - другая. Gnuplot называет легенды словом key, а не legend, и это нужно учитывать.

Как убрать легенду с графика?
Есть два способа. Первый: задать значение
gnuplot> set nokey
или можно указать параметр notitle при построении графика, например так:
gnuplot> plot f(x) notitle, "file.dat" title "data"
После этого в графике легенда отображаться не будет.


Как изменить положение легенды на графике?
Обычно легенда отрисовывается в правом верхнем углу графика. Изменить это можно при помощи команд:
gnuplot> set key bottom left
gnuplot> set key bottom right
gnuplot> set key top left
gnuplot> set key top right

Здесь перечислены варианты, позволяющие отрисовывать легенду в левом нижнем, правом нижнем, левом верхнем и правом верхнем углу графика соответственно. Так же можно попросить gnuplot рисовать легенду за пределами графика - для этого следует добавить параметр outside, или под графиком - для этого есть параметр bottom. Например:

gnuplot> set key outside bottom

Так же можно задать положение легенды с помощью координат, хотя это менее гибкий способ. Если хотите сдвинуть легенду в положение (X,Y)=(100,100), даём команду:

gnuplot> set key 100,100

Координата (100,100) это позиция точки между текстом и линией/символом первой линии легенды. Координаты задаются по осям X и Y.


Как избавиться от отображения погрешностей в легенде?
Когда один из рядов данных имеет погрешности, они тоже отображаются в легенде (например, на рисунке ниже). Даже тогда, когда погрешности по оси Y, они отображаются в легенде горизонтально, и это не нужно.

Например, есть ряды данных:
#  X     Y     Y-погрешность
1.0 1.2 0.2
2.0 1.8 0.3
3.0 1.6 0.2

Строим график:

gnuplot> set xrange [0:4]
gnuplot> set yrange [0:3]
gnuplot> plot "test.dat" usi 1:2:3 title "data" w yerrorbars



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

gnuplot> set xrange [0:4]
gnuplot> set yrange [0:3]
gnuplot> plot "test.dat" usi 1:2:3 notitle w yerrorbars 1,\
"test.dat" usi 1:2 title "data" w points 1
Но работает хорошо.



Как изменить межстрочный интервал в легенде?

Это можно сделать при помощи команды set key spacing.
Например, чтобы сделать полуторный межстрочный интервал в легенде, нужно:
gnuplot> set key spacing 1.5
Это увеличит расстояние между строками в легенде.


Как сделать рамку вокруг легенды?
Чтобы вокруг легенды появилась рамка, следует использовать set key box.
Тип линии рамки будет тот же, что вокруг самого графика. Изменить это можно так:
gnuplot> set style line 1 lt 2 lw 3
gnuplot> set key box linestyle 1
Таким образом, вокруг легенды появится рамка.
Читать далее

Создание графиков в gnuplot: предисловие



6 коммент.
Всё началось с того, что мне нужно было построить "график внутри графика". Немного поэкспериментировав, я справился с задачей, но обнаружил, что в различных источниках умалчиваются разные тонкие моменты. Так я начал записывать их, и постепенно пришёл к выводу о том, что хорошо бы иметь подробную документацию по графикам в гнуплоте на русском. Естестенно, что бы не забыть потом, как я лихо строил графики и в какой бубен бил, я выложу сюда.


Что есть gnuplot

Это профессиональная система построения графиков, своеобразный скриптовой язык, "программы" на котором транслируются в графики. Как и любая профессиональная вещь, гнуплот требует освоения -  потребуется определённое время и усилия, чтобы заставить его работать.

И не надо думать, что "я в екселе построю и будет не хуже и быстрее". Поверьте, в любой научной статье екселевские графики выглядят уродливо, быстро выдавая компьютерную безграмотность авторов. Мало того, что такие графики уродливо смотрятся, так ещё и строить их намного, намного дольше, тыкая по куче кнопок и пытаясь всё это затащить в (чаще всего) ворд. Особенно это относится к анализу данных, когда ещё не понятно, какие данные заслуживают внимания, а какие нет.

Один хороший график стоит тысячи слов в любой книге или публикации. Gnuplot умеет строить их очень быстро и качественно, выдавая прекрасные и удобные для восприятия графики по написанным скриптам.


Где gnuplot нужен и где без него можно обойтись
Несмотря на то, что это замечательная программа, в ряде случаев можно использовать и более простые средства. Например, в офисной деятельности он вам просто не нужен - что, в общем-то, не удивительно, если учесть, что gnuplot создавался прежде всего для обработки научных данных.

Gnuplot не стоит использовать, если нужно построить только один график и тут же о нём забыть. Вообще, если вам нужно построить меньше 3-4 графиков, не стоит выкатывать этот авианосец, чтобы просто немного порыбачить :-)

Вот где gnuplot незаменим, так это при масштабном анализе и обработке данных. Например, снято много экспериментальных данных и их нужно проанализировать и построить десятки графиков. Потом, быть может, их ещё придётся перестраивать, немного изменив оси или пределы по осям. Однажды написанные скрипты могут применяться снова и снова для построения графиков, если эксперимент проводится неоднократно.


Планируемые посты
В общих чертах дело обстоит так. Есть замечательный ресурс, который называется gnuplot tips (not so Frequently Asked Questions). Там собрана куча примеров по использованию gnuplot, что до некоторой степени заменяет чтение длиииииииииииинного и скучнейшего мануала по gnuplot (который к тому же весьма кучеряво организован). И потом, на примерах учиться намного проще, поэтому сей ресурс пользуется заслуженной славой и популярностью.

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

Вместо интерактивного стиля я предпочитаю поточный - то есть создаём скрипт для гнуплота и потом этот скрипт скармливаем программе. В ответ получаем график, если, конечно, нигде не ошиблись. Это позволяет очень быстро создавать графики скриптами. Но в текстах постов будут приводиться команды из расчёта "пошагового" выполнения - для переделки их в поточный нужно просто убрать "gnuplot>".

Переводить я буду только то, с чем сталкивался сам: легенды, подписи к графикам, метки, двухмерные графики, построение графиков по файлам данных. Графики параметрических функций и полярные координаты я трогать не буду, так как с этим по роду деятельности (обработка изображений) дела не имею.


Ссылки
Часть текста навеяна замечательной статьёй Евгения Балдина Gnuplot. Графики заказывали? 
Сравнение различных программ построения графиков можно найти здесь.
Читать далее

Knoppix Linux для школьника



7 коммент.
В продолжение темы обучающих программ в Linux - "живой дистрибутив" Knoppix 4 kids. Это разновидность хорошо известного кноппикса, наполненного замечательными программами для школьников. Многие из них на английском, что даже и хорошо: заодно язык можно подучить. Этот дистрибутив даже не нужно устанавливать на компьютер: достаточно просто загрузиться с него и через несколько мгновений можно погрузиться в мир замечательных программ.

Живой диск
Итак, вставили диск, загрузились с него - он нас поприветствует, нажимаем Enter и наблюдаем за процессом загрузки. На диске много разных обучающих программ (TuxPaint, TuxType, TuxMath и другие) и игрушек (шахматы, шашки, аркады и другие). Да, есть и игрушки - какое обучение без игры?

Собственно, и обучающие программы построены на манер игр. Вот, например, программа обучению печати TuxType. Сверху падает рыбка для Тукса, которую он ловит, если на клавиатуре нажимается правильная клавиша. Сначала они падают медленно, потом всё быстрее и быстрее. Даже я, освоивший слепую десятипальцевую печать, очень старался, чтобы вдоволь накормить Тукса.

Так же есть программы, которые позволяют научиться быстро считать - вот, к примеру, TuxMath. Летящие сверху примеры Тукс сбивает, если правильно введён результат, приводимый в примере.

Забавно, и примеры подчас не такие простые. Так что научиться быстро считать можно в прямом смысле слова "играючи".
Помимо игр и обучающих программ, есть на диске и вполне серьёзные пакеты, такие как GiMP, Povray, Blender, QCAD и InkScape. Вот, например, простейшие фигуры, которые можно создавать в Povray:

В общем, компьютер может быть полезен школьнику, и на основе этих (бесплатных и свободных) программ можно создавать специальные компьютеры для подрастающей ребятни, примеры чего уже есть. А так как Кноппикc основан на Дебиан, все перечисленные программы вы без труда найдёте в репозитории текущего стабильного релиза Debian GNU/Linux.
Читать далее

Настройка веб-камеры Logitech QuickCam Messenger в Linux



42 коммент.
Давно хотел приобрести подобное устройство (webcam), но было лень и не доходили руки. Пока мой давний друг не подарил мне сие чудо на день рожденья. О том, как с полпинка настроить веб камеру в Linux, будет говориться здесь.

Подготовка
Несколько предварительных замечаний - если вы не собирали сами, можно пропустить эту часть.
Нужно учесть, что видеокамера в Linux - такое же точно видеоустройство, как и TV-Tuner. Поэтому все замечания о настройке TV-Tuner в силе. Если у вас дистрибутивное ядро - там всё уже включено, а для любителей самосборных ядер нужно включить:
  • v4l и все его протоколы (само v4l монолитом, протоколы - модулями)
  • i2c и его протоколы (так же, фактически как при установке ТВ-тюнеров)
Если это в ядре есть, дальнейшее не составит проблем.


Установка
На коробке пишут: установка проста, как раз-два-три. В общем, у меня так и получилось:

1. Устанавливаем программное обеспечение.
Запускаем с балкона два прилагающихся диска и вместо этого ставим из репозитория:
sudo aptitude install gspca-source camorama
В каталоге /usr/src появится архив с исходниками gspca-source.tar.bz2 - распаковываем его прямо там. После этого переходим в каталог /usr/src/modules/gspca и там выполняем команду:
make
Модуль должен собраться без ошибок. Далее пишем:
sudo make install
Это установит наш модуль в каталог к другим модулям ядра. На всякий случай, можно после этого написать:
sudo depmod -a
Всё, время загрузить модуль ядра для вебкамеры:
sudo modprobe gspca
Теперь всё готово. Врубаем камеру и запускаем софт.


2. Подключаем камеру
Подключаем USBшный штекер камеры, она мигнёт зелёным светодиодом. На всякий случай смотрим выводы dmesg, появится что-то вроде:

usb 4-1: new full speed USB device using uhci_hcd and address 6
usb 4-1: configuration #1 chosen from 1 choice
/usr/src/modules/gspca/gspca_core.c: USB SPCA5XX camera found.(ZC3XX)
/usr/src/modules/gspca/gspca_core.c: [spca5xx_probe:3887] Camera type JPEG
/usr/src/modules/gspca/Vimicro/zc3xx.h: [zc3xx_config:515] Sensor ID:7
/usr/src/modules/gspca/Vimicro/zc3xx.h: [zc3xx_config:597] Find Sensor HV7131R(c)
/usr/src/modules/gspca/gspca_core.c: [spca5xx_getcapability:1165] maxw 640 maxh 480 minw 176 minh 144
usbcore: registered new interface driver gspca
/usr/src/modules/gspca/gspca_core.c: gspca driver 01.00.04 registered

Диагностические выводы показывают, что чип опознан. Теперь должен появиться файл устройства /dev/video0 - это и есть наша вебкамера. После этого запускаем программу по работе с камерами (её мы устанановили на предыдущем шаге):
$ camorama
Если всё было сделано верно, вы увидите видеоизображение в окошке программы и простой интерфейс управления изображением (яркость\контраст, насыщенность, фильтры и прочее). Вот что увидел я:


3. Общаемся
Свежеподключённое устройство теперь можно использовать в Wengophone для видеоконференций с друзьями и коллегами. Надо сказать, что процессор грузит обработка изображений с видеокамеры очень слабо, не более 4-5% (во всяком случае у меня на ноутбуке).

Помимо общения в системах VoIP, можно напрячь фантазию и найти много интересных применений вебкамерам. Можно это устройство использовать как охранную камеру или телеметрическую: streamer будет обращаться с ней, как с обычным тюнером, и дёргать оттуда изображения через задаваемые промежутки времени. В общем, много применений.


Итоги
Несмотря на то, что на коробке говорится только об Единственой На Планете Земля Операционной Системе, Logitech QuickCam Messenger отлично работает и в Линукс - и настраивается за те же три шага. Минус сотни мегабайт бесполезного проприетарного мусора.

В процессе настройки я пользовался вот этим замечательным и кратким руководством, так как у меня самосборное ядро. У тех, кто пользуется дистрибутивным, может быть полезно вот это руководство. Это руководство проверялось в следующих условиях: ядро 2.6.22, компилятор gcc 3.4, Debian GNU/Linux Etch v4.0, gspca-source 01.00.04-2.
Читать далее