- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF79:Киоск с Linux
Материал из Linuxformat.
Грэм Моррисон сочинил руководство по созданию интерактивного хранилища информации, подходящее для музея и Интернет-кафе, приёмной врача и выставки…
Содержание |
Киоски – не только торговля газетами и мороженым. Киоски есть и в мире высоких технологий, где вместо мороженого покупают информацию, а вместо газет – доступ в Интернет. Информационные киоски имеются во многих музеях мира – коснитесь экрана, и узнаете много нового об экспонате. Тот же киоск лежит в основе вашего Интернет-кафе: это обычный компьютер, только его внутренние капризы убраны с глаз долой, а снаружи остался удобный доступ в Интернет для забежавших попить кофейку.
Linux – превосходная система для строительства киоска: свободная, открытая и надёжная. Киоск даже дает способ заработать на вашем знании Linux. Многие музеи, библиотеки и предприятия могли бы извлечь реальную выгоду от разных видов киосков. Примечательно, что для этого не надо быть экспертом. На паре следующих страниц мы расскажем всё, что нужно знать для строительства собственной системы. Мы начнём с оборудования (процессоры, сенсорные экраны и пр.), затем обсудим тему защиты системы от случайного вторжения пользователя, а завершим полезными советами по созданию ваших собственных приложений для работы в киоске.
В качестве примера приводится киоск на основе полноэкранного Интернет-браузера, привязанного к одному сайту – такие встречаются в музеях. Почти все понятия пригодятся и для любого киоска. Если идея информационного киоска вас не манит, подумайте об Интернет-кафе, они сейчас очень популярны. Всё, что вам нужно – обычная Linux-система, несколько старых процессоров и экранов и умение ограничивать доступ к определенным частям ОС. Мотивацией служат даже не деньги: разработка проекта – прекрасный шанс побольше узнать о Linux, а конечный результат может оказаться полезен местной библиотеке. Если вас когда-либо посещала идея о создании портала на сенсорном экране – самое время собрать в кучу дешевое оборудование и заставить его поработать!
Выбор оборудования
Долой быстродействие: киоск – это медленно но верно.
Киоск никогда не выключается, и обычно расположен вдали от дома. Значит, не надейтесь на помощь эксперта – исправлять неполадки придется самим. Поэтому основные части системы – материнская плата, память и процессор – должны быть возможно более надёжными. По счастью, для большинства инсталляций не требуется сверхпроизводительности, и можно выбрать компоненты с солидной родословной, а необходимость грабить банк для покупки новейшего оборудования отпадает.
Охлаждение
Основное правило – чем лучше система охлаждается, тем стабильнее она работает. Следует выбирать процессор с невысокой рабочей частотой, а сочетание видеокарты и жесткого диска пусть обеспечивает скорее эффективность, чем быстродействие. Рискнём порекомендовать материнские платы EPIA от VIA. Температура процессора на них сравнительно низка, а низковольтные модели обходятся без вентилятора, обычно создающего неприятности.
Старая шутка системных администраторов утверждает, что для гарантированной безопасности вашей машины надо отключить её от сети. Зарыть сервер в бункер под 20 тонн бетона ещё надежнее! Ну, хоронить наш киоск мы не будем, а вот о включении его в сеть стоит поразмыслить. Конечно, сеть иногда неизбежна для поставки контента, а в случае Интернет-киоска вообще рассуждать не о чем. Вдобавок, если вы не живёте географически близко от вашего киоска, удаленный доступ – единственно возможный способ обслуживания и управления.
Это особенно касается малообслуживаемых и редко обновляемых систем, то есть большинства киосков. Как мы часто упоминали в этом журнале, SSH – единственное безопасное средство управления удалённым компьютером, и в прошлых номерах рассказывалось о безопасной работе с помощью разделяемых ключей (см. статью «Блокируем хакеров», LXF 71, стр. 46)
Если ваш киоск подключён к Интернету, важно настроить тип входящего и исходящего трафика для вашей машины. Для Интернет доступа лучше всего взять прокси-сервер, открытый только для определенного контента. Squid – вероятно, самый популярный выбор, и он включен в состав большинства дистрибутивов по умолчанию. К тому же Squid достаточно просто настроить, особенно если вы пользуетесь инструментом Webmin. Если вы не трогали настройки web-доступа, то необходимо убедиться в том, что брандмауэр защищен от неправомочного использования с других сторон, например, от P2P-сетей или FTP.
Другое преимущество плат EPIA – у них выносной блок питания, так что второй по значимости источник нагревания убран из корпуса компьютера. Третий источник – видеокарта, производящая тепло в прямой зависимости от количества выполняемой работы. Вашим приложениям едва ли потребуется объёмная графика, поэтому видеокарта будет работать далеко не в полную силу.
Исходя из этого, лучше раздобыть видеокарту без вентилятора, например, что-нибудь из линейки Nvidia FX5200 или старых Matrox. Чем меньше вентиляторов, тем меньше мороки с запчастями. И ещё, некоторые экраны могут работать только со старыми версиями X Window, имейте это в виду при выборе модели.
Другое слабое место можно укрепить, отдав предпочтение флэш-памяти перед винчестером. Это зависит от типа медиа, которое вы намерены использовать в приложениях вашего киоска. Если планируется видео и аудио, то емкости флэша может не хватить. А вот если ограничиться текстом и фотографиями, то на USB-флэш вместительностью в пару гигабайт небольшой Linux-дистрибутив и данные поместятся легко. Вообще-то и винчестеры не так уж плохи – они вместительны, недороги, и большинство из них в состоянии бесперебойно работать несколько лет.
Экран должен быть приветливым
Об использовании тачскринов и трекболов под Linux.
Пользователям необходимы средства управления системой – успех или провал в этой области равносилен успеху или провалу вашего киоска. Если вы пытаетесь завлекать случайных прохожих, ваша система обязана быть дружелюбна и гостеприимна. Вот почему большинство подобных систем оснащаются сенсорными экранами (touchscreen). Прикоснувшись к такому экрану, человек тут же получает ответную реакцию, при этом глубокие компьютерные знания совсем не обязательны. Бремя тяжкой работы переложено на создателя пользовательского интерфейса, да и физическая природа сенсорного экрана рассматривается пользователями как дружественная форма технологии.
ELO Touchscreens предлагает широкий выбор экранов – как на плоских мониторах, так и на мониторах с электронно-лучевыми трубками. Наряду с драйверами для Linux, ELO поставляет рудиментарную утилиту установки границ экрана, которая экономит время на редактировании файла настройки. www.elotouch.com
Кроме самостоятельных устройств, Magic Touch производит накладные панели, вместе с Linux-драйверами для них, и их можно пристроить на любой стандартный ЖК-монитор из тех, что вы забросили на чердак. Это наиболее дешёвый вариант для того, у кого есть пара лишних экранов. www.magictouch.com
Если вам не подходит сенсорный экран – возможны варианты, например, трекбол (trackball). Будучи неизмеримо дешевле, он к тому же работает под самыми обыкновенными «мышиными» драйверами. Ещё недавно touchscreen’ы были запредельно дороги, но за последние несколько лет здорово подешевели (15-дюймовый стоит около $750), и можно усовершенствовать вашу нынешнюю машину за $300. Появился обширный выбор технологий; каждая по-своему хороша. Не думайте, что сенсорный экран всего лишь эмулирует работу с мышью: он не просто таскает курсор. Вообще, существуют четыре вида touchscreen’ов:
- Чувствительные к нажатию
При касании экрана меняется сопротивление тонкого металлического слоя; изменение обнаруживается и используется для определения координат точки контакта. Этот метод не очень точен по сравнению с остальными, зато безразличен к контактному материалу – это может быть палец, карандаш, что угодно.
- Электрочувствительные
Электроемкость панели изменяется внутренней ёмкостью «подключенного» человеческого тела. Поэтому реакция возникает только на нечто, проводящее ток, например, палец. Тот же механизм используется в координатных площадках (touchpad) ноутбуков, и реакция получается весьма точной.
- Звукочувствительные
Ультразвуковые колебания играют ту же роль, что и электричество в двух предыдущих методах. Поверхность экрана покрыта сетью чувствительных к ультразвуку ячеек, и воздействие на них дает очень точный результат. Современные версии дают разрешение до 4096х4096.
- Фоточувствительные
Экран покрыт сеткой инфракрасных излучателей и светочувствительных датчиков, и если луч света прерывается, то точку контакта можно рассчитать очень точно. Одно из преимуществ этой технологии состоит в том, что вы можете расположить группу излучателей вокруг монитора, а не покупать пакет целиком.
Конечно, говорить будет не о чем, если мы не сумеем заставить эти технологии работать под Linux. Основная забота – это совместимость драйверов и слаженность работы экрана и системы. Большинство современных устройств соединяются через USB, а старые чаще пользуются последовательным портом.
К счастью, большинство изготовителей экранов в той или иной мере поддерживают Linux. Поддержка обычно выражается в компилируемом Xinput-драйвере, который на старых версиях X Window нуждается в настройке. Файлы конфигурации драйверов часто ориентированы на XFree86 3.3.6, но большинство из них обойдется без проблем и под XFree 4.0, и под более свежими версиями X.org.
Без мышей
Когда модуль скомпилирован, остаётся отредактировать конфигурационный файл X Window для работы с экраном вместо мыши. Необходимо также добавить скомпилированный модуль в секцию «module». В конфигурационном файле X Window необходимо указать минимальные и максимальные X- и Y-координаты дисплея, они перечисляются в отдельной секции файла вновь созданного устройства.
Ниже приведён пример типичной конфигурационной секции сенсорного устройства, подключённого к последовательному порту. Предусмотрены поля шириной в 100 точек, недоступные из-за рамки монитора.
Section «Inputdevice» Identifier «touchscreen1» Driver «elographics» Option «Device» «/dev/ttyS0» Option «AlwaysCore» Option «screenno» «0» Option «MinX» «100» Option «MaxX» «900» Option «MinY» «100» Option «MaxY» «900» EndSection
Альтернатива покупке специализированного экрана – приобретение накладной панели на плоский экран. Необходимо убедиться, что размер панели соответствует вашему экрану и что она действительно вам подходит по размеру, но в остальном это – превосходный вариант, если у вас есть лишний ЖК-монитор.
Настройка ПО
Какой дистрибутив, программы и настройки выбрать для киоска?
Теперь, когда «железо» собрано и настроено, основная забота – операционная система. Требования к ней исчерпываются двумя словами: надёжность и безопасность. Конечно, они важны для любой системы, но машине, испытывающей постоянный стресс под нажимом многочисленных посетителей, эти качества жизненно необходимы.
Идеальный дистрибутив должен быть легким и хорошо протестированным. Этому определению соответствуют немногие, и мнения о наиболее подходящем, естественно, расходятся. Мы получили неплохой результат при работе в Ubuntu, это хороший дистрибутив с приличной поддержкой. Если нужна повышенная безопасность – поищите что-нибудь вроде Fedora Core 5 с SELinux или (для любителей AppArmor) SUSE 10.1. Для работы в Интернет-киоске может понадобиться web-сервер, установите его и убедитесь в работоспособности. Большинство дистрибутивов готово для работы с Apache.
Менеджер окон
После выбора дистрибутива встает вопрос: какой рабочий стол лучше? Ответ зависит от вида вашего киоска. В большинстве случаев весь экран занят браузером, тогда лучше взять наилегчайший оконный менеджер с минимальным набором функций. Далее мы рассмотрим идеального кандидата – Filesafe из Ubuntu. А как быть, если посетитель Интернет-кафе захочет выйти за пределы браузера, обратиться к офисным приложениям или скинуть на флэш добытые сведения? Тут нужен рабочий стол, который надёжно и легко запирается.
Для безопасной работы первым делом надо создать пользовательскую учётную запись, под которой будут работать приложения киоска. Учётные записи, строго ограничивающие работу пользователей определёнными функциями – одно из главных преимуществ Linux в проектах вроде нашего. Однако при работе с некоторыми видами графического интерфейса ограничений учётной записи может оказаться недостаточно, будь то просто расширенный браузер или более изощрённый рабочий стол. Золотое правило гласит, что чем меньше вмешиваешься в работу системы, тем надёжнее она будет работать, поэтому лучший способ обезопасить графическую оболочку – не запускать её вообще. Многие дистрибутивы имеют вариант входа под названием «filesafe», что означает работу в X Window, но без оконной среды (Gnome или KDE). В Ubuntu, выбрав рабочий стол Filesafe, вы это самое и получите. Останется запустить Firefox или Konqueror.
Теперь о более развитых системах. Вы удивитесь, но при всей его тяжеловесности и избыточности лучшим выбором представляется KDE.
Раздача приоритетов
KDE может позволить пользователю как угодно много или как угодно мало, в зависимости от иерархии файлов конфигурации (в Gnome 2.14, кстати, для этого есть специальный инструмент под названием Pessulus, но говорить о нём всерьёз ещё рано). Правила, установленные администратором, имеют абсолютный приоритет перед -пользовательскими настройками. Администратор может запретить изменять фон рабочего стола или настройки прокси-сервера.
Местоположение конфигурационных файлов KDE зависит от конкретного дистрибутива. Простейший путь найти их – набрать kde-config --path config из-под root. Пользователи SUSE получат в ответ нечто вроде:
/root/.kde/share/config/:/etc/opt/kde3/share/config/:/opt/kde3/share/config/
Mandriva будет лаконичнее:
/root/.kde/share/config/:/etc/kde/
Вывод обоих дистрибутивов показывает приоритеты файлов настройки: пользовательская директория (в данном случае, root) располагается слева, а глобальное местонахождение файлов – справа. Если вы когдалибо сами редактировали файлы настройки KDE, то картина вам знакома. В вашей домашней директории находится папка ~/.kde/share/apps с файлами данных для приложений KDE, и ~/.kde/share/config с файлами настройки упомянутых приложений. Например, kdesktoprc содержит настройку фона рабочего стола.
Большинство параметров в этих файлах понятны без объяснений. Вот пара примеров из kdesktoprc:
[Desktop0] WallpaperMode=NoWallpaper [ScreenSaver] Enabled=false
Если вам лень рыться в файлах конфигурации – можно войти в рабочий стол киоска через обычную учётную запись и создать необходимое вам рабочее окружение средствами KDE (вроде KControl). Новые настройки будут сохранены в директории ~/.kde текущего пользователя (то есть вашей).
Настройка пользовательского доступа
Неизменяемые параметры защитят систему от праздношатающихся пользователей.
Рассмотренная выше настройка может быть сделана штатными средствами KDE, да и почти любого другого рабочего стола. Для киоска важно, что параметры настройки, заданные в конфигурационном файле с высшим приоритетом, автоматически передаются «нижележащим» структурам. Например, системные директории всегда имеют приоритет перед домашними директориями пользователей. Но в пределах своей учётной записи пользователь волен менять настройки по своему усмотрению, что характерно для дистрибутивов с упором на графический режим работы. Нам остро необходима возможность уберечь параметры настройки от изменений, именно для этого и предназначен режим работы KDE «kiosk mode».
Ключ к «лишению свободы» – атрибут «неизменяемо» («immutable»): знак доллара, сопровождаемый строчной «i», заключённый в квадратные скобки [$i]. Если этот символ вставить после имени какого-либо параметра в файле настройки, имеющем высший приоритет по отношению к домашней директории пользователя, то параметр становится неизменяемым. Взяв за основу вышеупомянутый файл kdesktoprc, мы можем «запереть» фон рабочего стола таким образом:
[Desktop0] WallpaperMode[$i]=NoWallpaper [ScreenSaver] Enabled[$i]=false
«Неизменными» можно назначать целые группы параметров. Группа – это список параметров под заголовком в квадратных скобках, например [Desktop0] или [ScreenSaver]. Чтобы «запереть» группу параметров, добавьте [$i] к концу строки:
[Desktop0] [$i].
Настроив отдельные приложения, можно обрезать некоторые опасные ветви KDE редактированием глобальных параметров, хранящихся в файле kdeglobals, в одной config-директории с уже отредактированными файлами. Параметры функциональности находятся под заголовком «KDE Action Restrictions» (Ограничение действий). По умолчанию, kdeglobals не содержит каких-либо ограничений.
Запустив Kiosktool, нажмите кнопку «Добавить профиль» (Add New Profile). Вам будет предложено дать профилю осмысленное название и ввести пароль суперпользователя. Чтобы копировать и редактировать файлы от имени суперпользователя, Kiosktool использует FISH (встроенный в KDE протокол SSH), отсюда его замедление по сравнению с обычным редактированием файлов, а также неожиданно возникающие непонятные прогресс-индикаторы – Kiosktool эффективно загружает и выгружает файлы. Всё это здорово для обслуживания удалённой системы, но не совсем удобно на локальной машине.
Щёлчок на вашем новом профиле откроет окно его настройки, там около12 значков, через которые легко добраться до нужной функции. Например, значок настройки меню KDE позволяет запретить изменения в меню и запуск задач от имени суперпользователя. Самое важное окно – «Общие» (General), здесь можно удалять закладки, контекстные меню, возможность выхода, команду Run (обычно доступную по F2) и историю команд. Без запрета доступа ко всем этим действиям киоску не жить.
Ограничения действий включают удаление и редактирование меню, замену значков рабочего стола и блокирование клавиатурных комбинаций. Ввод следующей строки в файл kdeglobals удалит меню закладок Konqueror:
[KDE Action Restrictions][$i] action/bookmarks=false
Полный список ограничений (а их, как нетрудно догадаться, немало) можно найти в документации по киоску KDE. Но KDE, как всегда, припас альтернативу: специальный инструмент Kiosktool. Это небольшое приложение по умолчанию включается в большинство дистрибутивов, содержащих KDE. Программу разработал Уолдо Бастьен (Waldo Bastien), и кстати, его же надо благодарить за многие удобства режима киоска KDE. Kiosktool – графическая оболочка для управления параметрами, которые мы рассматривали при изучении настроечных файлов. С помощью Kiosktool нетрудно найти нужный параметр и, что особенно важно, сгруппировать параметры в профили. Профили заметно упрощают переключение между различными уровнями функциональности или распространение конфигурации на группу машин (например, в Интернет-кафе).
Ограничение Firefox
Web-браузеры пресекают возможности пользователей киоска с солдатской прямотой. В Konqueror’е, например, достаточно просто отключить панели инструментов и меню (пометив отключение как «неизменное») в конфигурационном файле.
Большинство браузеров, включая Konqueror и Firefox, по клавише F11 переключаются в полноэкранный режим. Исчезают границы всех окон, а раз панели и меню недоступны, пользователю остаётся гулять по единственной Интернет-странице. То есть, пока он снова не нажмёт F11…
Лучший способ ограничить Firefox, превратив его в интерфейс киоска – воспользоваться расширением, которых, к счастью, существует несколько. Наиболее заметное из них – R-kiosk, его можно установить из окна расширений Firefox. Но будьте осторожны – произойдет переключение в полноэкранный режим, пропадут все панели инструментов и меню (в том числе контекстные) и отменятся клавиатурные комбинации. То есть, инструменты настройки отсутствуют, поэтому подготовьте все до запуска модуля (потренируйтесь на подходящей Интернет-странице). Для удаления модуля запустите Firefox в безопасном режиме (firefox -safe-mode) и удалите модуль R-kiosk.
Пять советов
Осталось самое приятное: сотворение интерфейса. Обратите внимание…
Информационное наполнение киоска чаще всего опирается на web-дизайн. В этой статье не место обсуждать тонкости работы с HTML и другими Интернет-средствами, дадим только некоторые общие рекомендации. Интерфейс необходимо продумать до мелочей, вложив в его создание изрядную долю таланта, иначе все ваши старания окажутся пустой тратой времени. Дизайн – основа всего. При этом совершенно неважно, насколько грамотны ваши приложения JavaScript или PHP: только дизайн привлечет людей к вашей машине.
Для примера мы создали приложение-киоск, использующее обычный HTML и смысловые изображения. Приложение «оживляет» при помощи JavaScript некоторые области экрана, на которые можно щелкнуть для получения дополнительной информации. Это у нас экспонат компьютерной графики для музея. Прикосновениями к различным частям экрана можно вызвать информационную страницу и знакомиться с интересующим предметом в своем темпе.
Если вы хотите доставлять информацию в ваш киоск из Интернет, а не из локальной сети, то понадобится свой web-сервер (чаще всего пользуются Apache). Зная доменное имя «localhost», подключить приложение к серверу нетрудно. Почти каждый дистрибутив Linux содержит в себе установленный и запущенный Apache, а если нет – инсталляция требует всего нескольких щелчков мыши в панели управления дистрибутивом.
Взглянув на снимок экрана, обратите внимание на несколько деталей, которые помогут вам при дизайне киоска.
1 Броская вывеска
Первое, что следует помнить – киоск должен приманивать людей, например, с другой стороны помещения. Значит, начальную страницу делаем простой и зазывной, ее задача – раздразнить интерес. Дизайн не должен быть перегружен, он должен притягивать, вызывать желание с ним поиграть. Задумывая дизайн киоска, неплохо почаще вспоминать о пирожном с выложенной ягодками надписью «Съешь меня» из «Алисы в стране чудес».
2 Будьте проще
Не забывайте о свободном пространстве: минимум слов – вот девиз начальной страницы. С такого экрана неподготовленному, случайному человеку проще будет начать навигацию по информационным страницам киоска.
3 Интерактивность
Пользователю необходимо видеть реакцию системы, особенно в отсутствие экранных инструкций. Можно создать интригующий интерфейс, в котором каждый последующий экран будет интереснее предыдущего. Анимация тоже способствует вовлечению пользователя в поиск очередной изюминки.
4 Четкая иерархия
Сравните изображение на общем экране с видом экрана под цифрой , куда мы попадаем по щелчку. Идея киоска основана на взаимосвязи информационных страниц, а с любой из них необходимо предусмотреть возврат к началу. На экране мы видим такое же изображение, только вид сверху; это создаёт ощущение другого угла зрения.
5 Текст для связи
На этом уровне необходимо добавить вводный текст. Пользователи не любят долго читать, стоя столбом у машины, поэтому в каждую страницу мы встроили анимацию. В нашем случае для запуска анимации нужно нажать клавишу на клавиатуре.
Что дальше?
Самая сложная работа настает на этапе дизайна. Вариантов здесь так же много, как дистрибутивов Linux. Наше приложение создано на основе web-сервера, но с тем же успехом для этой цели можно использовать язык программирования. Разумеется, дорога вам проторена, и среди открытого ПО полно готовых программ для работы в Linux-киоске. Наиболее популярный для ограниченного использования (например, в библиотеках или Интернет-кафе) проект называется OpenKiosk (openkiosk.sourseforge.net).
Пишите, нам интересно будет узнать о ваших успехах в строительстве Linux-киоска.