30 мая 2009 г.

Linux-класс на K12LTSP 6.0

Давно собирался развернуть UNIX-подобную среду в учебной локальной сети. Назначение такого класса обычное: обучение прикладной информатике. Выбор операционной системы практически безальтернативно и естественно пал на Linux.

Единственная и довольно большая сложность была в том, что компьютерный класс использовали также арендаторы из заочного университета. Ну а для их преподавателей (и конечно студентов) безальтернативным был, увы, Виндоус (на компьютерах установлен Виндоус-2000). Учитывая не первую свежесть «железа» студенческих компьютеров (малый объем диска, оперативной памяти и процессора), задача объединения желательного, полезного и требуемого казалась неразрешимой.

Но «голь на выдумки хитра», точнее на выдумки подталкивает сама многообразная операционная система Linux.

Первый вариант был паллиативный, с использованием Сygwin. Сygwin – это эмуляция работы UNIX-системы в среде Виндоус. В принципе все заработало, но не лежала душа к такому соединению «бульдога и носорога». Хотелось разорвать психологическую связь студентов понятий компьютер и Виндоус, что в случае с Сygwin никак не получалось. Ведь при включении и загрузке появлялась все та же «любимая» Виндоус и фактически работа проводилась в «окошках», да и много полезных Linux-овых программ в такой среде не работает. Что делать, куда деваться?..

В нашей локальной сети есть один более-менее современный компьютер, способный хоть немного быть похожим на сервер, потому само просилось серверно-терминальное решение. Хотя странным и обидным было бы использовать полноценные компьютеры в качестве терминалов, в данном случае ничего другого толкового на ум не приходило. До этого мне хорошо был знаком (правда только теоретически) вариант терминального сервера под Linux - LTSP, что означает соответственно Linux терминал сервер проект. Естественно выбор пал на LTSP.

При ближайшем рассмотрении оказалось, что действительно LTSP – это целый проект с кучей программных пакетов и скриптов. Все это можно «прикрутить» в принципе к любому Linux дистрибутиву и я уже собрался так делать. Но неожиданно, заглянув на K12.org, а потом K12ltsp.org прочитал анонс выхода нового дистрибутива K12-LTSP-6.0 на основе Fedora 6.0 с интегрированным LTSP. И конечно пошел по пути наименьшего сопротивления , правда, долго пришлось качать 6 дисков, т.к. этого дистрибутива не нашлось в магазинах по продаже свободного софта (надеюсь пока).

Итак, образы дисков скачаны, «заболванены», и пошла уже привычная работа по установке дистрибутива K12-LTSP, которая ничем практически не отличается от установки обычного дистрибутива Fedora 6.0, за исключением появления в списке выбора пакетов комплекта образовательных программ K12 и LTSP.

Можно было бы ставить все «по умолчанию», но я добавил к списку пакетов KDE, некоторые системные (среди них любимый Midnight Commander, который ввел в учебную программу), пакеты разработки, на всякий случай кроме русского еще поддержку украинского языка. Перестраховался и отключил файервол и SELinux заодно, что, вообще, не очень хорошо, и при подключении локалки к Интернету, нужно побеспокоиться о включении и отладке файервола и прокси-сервера.

Сервер заработал! Но пока как сервер он себя никак не проявил – терминалы-то не подключены. Здесь пришлось решать очередную проблему: загрузки и подключения терминалов к серверу. Физически все было подключено и работало, а вот с загрузкой пришлось пока решать самым примитивным способом – при помощи специальной загрузочной дискеты. Преимущество такого способа, во-первых, в простоте, а во-вторых, в «незаметности» – напомню, приходится считаться с коллегами, предпочитающими исключительно Виндоус. И потом, не было абсолютной уверенности, что весь этот проект как надо заработает.

Образ загрузочной дискеты я взял здесь http://heanet.dl.sourceforge.net/sourceforge/thinstation/BootDisk522b.zip , быстро сделал дискету и вуаля, загрузка пошла и привела к благополучному исходу. Появилось симпатичная табличка с меню и полем ввода логина и пароля. Ну конечно, нужно ведь создать пользователей, благо до сервера недалеко идти :) . После создания пользователей, количество которых совпадало с количеством терминалов, меня ожидало небольшое огорчение: мышка на терминале не работала. На одном терминале работала, а на всех остальных нет. Оказалось, что почти на всех компьютерах сети стоят сериальные мыши, а на одном (работающем как терминал нормально) – PS/2. Кроме того, на двух терминалах не работали мониторы (марка их отличалась от остальных), демонстрировалась только характерная предупреждающая заставка о превышении частоты развертки.

Эти проблемы, как видите, не решены полностью «из коробки». Пришлось (а как не хотелось, ну вы понимаете) читать документацию, а потом еще раз более внимательно. Есть довольно подробная документация на русском – ltsp.ru. Но я обратился к странице с решением проблем на оригинальном сайте ltsp.org. Решение проблемы потребовало правки конфигурационного файла /opt/ltsp/i386/etc/lts.conf

Закомментированы были все строки с указанием на устройства мыши и добавлены следующие: X_MOUSE_DEVICE = “/dev/ttyS0″ и X_MOUSE_PROTOCOL = “Intellimouse” – для тех, у кого мышки с колесом. И хотя была закомментирована строка с устройством PS/2, мышка в этом терминале все равно работала нормально. Конечно заработали и все остальные сериальные мыши.

Для решения проблемы с «нестандартными» мониторами необходимо добавить в тот же конфигурационный файл строки с МАС- адресами сетевых карт этих терминалов и соответствующую строку из примерной для разрешения 800х600 и частотой развертки 85 Гц. МАС-адреса узнаются простой командой в среде виндоус-2000/ХР “ipconfig /all”, для виндоус-98 – “winipcfg”, а можно посмотреть при загрузке терминала. Примеры конфигурационных строк приведены в самом конфиг-файле, поэтому основной «проблемой» было просто до него добраться.

Т.о., после некоторых треволнений и копаний в конфигах (без этого в Linux совсем было бы скучно) все заработало. И не просто, а неожиданно хорошо. С дискеты загрузка идет секунд 30, далее еще столько же на загрузку терминальной системы. Если вдруг загрузка происходит одновременно на всех 13 терминалах, тогда немного дольше. Абсолютно никаких следов не остается по окончании работы в Linux на компьютере, выполняющем роль терминала, потому никаких претензий со стороны консервативных, скажем так, коллег нет.

Работа идет в среде Gnome, поскольку прилагаемый «в комплекте» с LTSP IceWM мне не понравился слишком примитивной функциональностью. Для учебных целей такой оконный менеджер, мне кажется, не очень подходит. При инсталляции была выбрана поддержка русского и для клавиатурной раскладки, поэтому осталось только настроить привычную комбинацию клавиш для переключения и установить индикатор раскладок. В Gnom все подобные манипуляции проходят быстро и просто. Хорошо русифицированы многие учебно-игровые программы проекта К12, они даже «разговаривают» по-русски. Для школьников, в том числе младших, это именно то, что нужно. У нас студенты повзрослее и основные программы, которые мы используем – комплект Open Office 2.1. При одновременной работе со сложными функциями в электронных таблицах бывают небольшие задержки (торможения), которые почти не заметны и никак не влияют на производительность учебной работы. Было бы побольше памяти на сервере, таких подтормаживаний, я думаю, не было бы, но, как говорят, имеем то, что имеем.

Итак, мы имеем практически полностью «из коробки» настроенный терминальный сервер, имеющий в составе неплохие игровые и образовательные программы, многие из которых отлично русифицированы. Оставалось только обычным образом инсталлировать этот дистрибутив и подготовить загрузку терминалов.

«Железо» используется такое: 13 компьютеров Celeron-400 & 64-128M ОЗУ с видеокартами S3-Trio без звуковых карт и один Celeron-2.7Ггц & 1024M ОЗУ с интегрированным видео в качестве сервера. На жестком диске сервера выделено под установку дистрибутива и домашние каталоги пользователей 20 Гбайт (формат Ext3) и 1 Гбайт под swap; жесткий диск обычный – Samsung АТА100 - 160 Гбайт. Испытывался также в качестве терминала Р-200ММХ и отлично себя проявил. К сожалению другого, более древнего, компьютера под рукой не было, но думаю, что в случае с Р-486DX100 и памятью хотя бы 32Мбайт отличий особых не было бы.

Ник Камнев (c)