2009-04-20

Деньги делают деньги или Free Software

К вопросу о бесплатности. со времён 2007 года много воды утекло: BZR диплом как никак получил.

Free Software!

Затраты системы linux vs windows серьёзно перераспределены. Если windows требует от фирмы
содержание системного администратора(-ов) (желательно лицензированного и с регулярным обучением), затраты на сопровождение лицензий и собственно самой оплаты лицензий, то в линуксе всё немного проще и сложнее одновременно.
И специалисты могут быть дороже, и пользователи не избалованы "бесплатными наркотиками" windows в школах и дома. И "бесплатная" система может потребовать оутсурсинга сторонних организаций для доработки напильником под конкретные нужды. К сожалению рынок таких услуг в России не особо развит - все подсели на "пилюли" к ворованному софту - и не видят теперь ему альтернативы.
Платя microsoft tax и другие "взносы" в американскую экономику..
Бесплатный сыр в мышеловке которая уже почти захлопнулась. Но сыр то пока на радость мышам всё никак не кончается. И невдомёк мышам - что ловцы так и будут наживку подкидывать, чтобы сохранять контроль над мышеловкой. Печально. Надеюсь, в моей стране смогут это понять.

Предварительная версия multiseat

(Так и некогда было поправить - публикую в неотредактированном виде - давно писалось (осень 2007), может кому пригодится).

Введение

Вместо морально устаревших машинок и операционок для офисной работы - решил попробовать настроить рабочие места на более или менее стандартизованном железе и свободном ПО.

Рано или поздно надоедает этот разношёрстный парк из пары десятков штук различного рода целеронов, 1-4 пней, древних атлонов, постепенно покупавшихся от случая случая и по мере появления денег/надобности или сгорания предыдущих. В основном бегающих на 95, 98 и последующих операционках - из-за того что другого вроде как никто использовать не умел да и не было особой надобности.

Ворд-Эксель-Косынка - пределы мечтаний большинства офисных работников.

Серьёзного железа на офисную работу брать не хотелось, жалобы появлялись в основном на нехватку памяти (32-64 метра - в лучшем случае до 128-256 - сейчас несколько маловато). Зоопарк же работал на памяти начиная от симов заканчивая простыми димами (причём в большинстве случаев двусторонними) - расширение памяти уже во многих случаях становилось невозможным.

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

Идея поставить всем линукса и успокоиться тоже несколько не удалась.

Имеющееся железо в большинстве своём несколько устарело - и не подходит под минимальные требования большинства современных дистрибутивов. Даже на терминал-клиенты оно не годилось. Можно было конечно запустить что-то вроде (DSL) - но.. Идея не нравилась. Старое железо оживлять и настраивать..

Как хобби - может и интересно. Как работа..
А нравилась меня идея настройки мультитерминала.


Мультисит

Уже и не помню когда идею multiseat/multiterminal нашёл :)
Один компьютер-несколько рабочих мест.
Современные компьютеры в офисном применении кушают очень мало..
Процессора и памяти уже много.. Почему бы не поделиться??

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

Есть наработки multiseat или мультитерминалов в Windows. Не особо стабильные патчи и надстройки над стандартными remote terminal serivces Windows XP. Астер, BeTwin например. Из недавних проект http://www.wmprogram.ru/. Довольно интересно. Довольно недорого (но денег стоят). Но на практике. Потаённый камушек прячется в лицензиях. Нет, в принципе то ваша система будет считать себя лицензионной (если купить коробку или ОЕМ). Всякие там GenuineAdvantage прокатят. Однако в случаях спора с правообладателем (придут ребята на службе микрософта и 1С) - мультисит будет вне закона. Хотя прецедентов насколько я пока знаю не было - по причине малой распространённости мультиситов - но когда придут ребятки - будет сложно объяснить что вы не верблюд. Особенно им являясь на деле.

Чтобы этого избежать - Вам потребуется по одной лицензии (КОРОБКЕ) на каждого пользователя. Если это windows XP Prof (никакой не ОЕМ) - это ~300$ на нос. Это не смотря на то, что написано на сайте астера. Это было сказано на форумах поддержки microsoft.

А держать нескольких пользователей на Home.. Ах, да - и ешё никакой Висты.
И если офис у вас не опен - то опять же на каждого по коробке ещё и офиса.
Да и стабильность.. Мягко говоря немного ниже самой операционки.

Также стоит уточнить, что Астер использует защиту Starforce pro (да ещё и с активацией через интернет). Чего лично я очень не люблю. И платить за ЭТО чудо не намерен.

А вот проблем с линуксом вроде лицензий я не вижу. И с настройкой как оказалось тоже не настолько всё сложно. Хотя и не на столько и просто, что кликнул пару раз мышкой - получил мультисит. По крайней мере пока - или только для меня :)

Так что Линукс - только Линукс. (Или кому что ближе/проще юзеров обучить).

Железо

Вариантов много.

Двухголовая видеокарта - это два монитора. Возможно два рабочих места.
Интегрированное видео = ещё один монитор (только не на интеловских чипсетах).
Две двухголовых видеокарты (SLI мамка) + интегрированное видео - 5 рабочих мест.

Или 3 рабочих места (два с одним монитором - и одно с двумя мониторами).

В свободной продаже есть на 3 и даже на 4 разъёма PCI-Express 16х (достаточно недорогие). Хоть там и не по 16 линий PCI-e однако 4-8 за глаза хватит на 2d графику - и даже немного на 3d останется :)

В принципе есть и 1х видеокарты (что было бы очень уж здорово) - и есть даже многоголовые - но вот цена таких поделок - зашкаливает за 100$ на устаревших чипах (тот же Matrox G550 - 250$). Ибо - пока не ширпотреб.

Двухголовость в линуксе заставить работать - не столь уж простая задача.. Однако разрешимая. Ибо используют. Хоть и с проприетарными драйверами. Что не совсем здорово с точки зрения опенсурса - однако проблем тут с лицензионностью нет :) И опять же - пусть за это совесть мучает производителей железок а не законных приобретателей..

Вот AMD пошла на встречу линуксоидам всех стран - открыла хоть частично лишь СПЕЦИФИКАЦИИ на своё новое железо - и появились дрова xorg-radeonhd. Пока ещё сыроватые - им месяц от роду пока на момент написание сего опуса - но прогресс то виден :) За что ей респект. И пожелание не разоряться как можно дольше..

Хотя, к сожалению, пока все мои предложения будут относиться к её несравнимому по масштабам конкуренту.. Ибо для AMD я материнок более чем с 2 PCI-E 16х не встречал..
Итак. Посчитаем что-нибудь реальное на осень 2007 года.

Берём материнку с 4 разъёмами PCI-Express 16х P5W64-WS (~250$) - втыкаем туда современное недорогое двухголовое видео Radeon HD2400Pro ~50$ х4.

nVidia что-то не проявляет особого интереса к linux - или мне только так кажется? Хотя 7900 только сегодня поднял без особых проблем - порадовался красивостям compiz..

Взять core2duo минимум 150$ (E4500 BOX) + 2х1G памяти 60$ + винчестер 50$ + корпус/бп - ещё 60$.
Итого 8 рабочих мест ~800$.. Получается по 100$ на одно рабочее место.

Не считая мониторов, usb-хабов, usb-переходников на ps/2 клавиатуры/мыши или usb-клавиатур/мышей. Слава usb - что этого hid теперь можно наподключать к каждому компу хоть сотнями штук.

Современное железо. Хорошие цены. Однако страшновато за стабильность такой системы. То что оно потянет 8 пользователей - даже не вопрос.

Возможно это дело недалёкого будущего - такое чудо железячное собрать :)
Кстати - неспроста там 8-канальный аудио :)

Интересно, в линуксе удастся это аудио раскидать по пользователям - чтобы были у всех свои колонки? Но это потом. Наверняка можно :)

А пока экспериментируем с более дешёвыми железками.
Наткнулся я в прайсах как-то на материнки со впаянным процессором.

Цены у них мягко говоря весьма низкие. Вот производитель у них был очень подозрительный. Да и процессор VIA C3 - всего 800-1000 МГц. Мало того что этот C3 по моему опыту не отличался высокими скоростными показателями.. Да ещё частоты.. А уж производитель всё окончательно портил. Цена в 60$ хоть и привлекательна.. Вплоть до того что наш региональный дилер московской фирмы в итоге отказался их везти - из-за проблем с гарантией которые он наверняка на это железо ждал. И DDR2 тогда стоило заоблочно.

И тут появилось очередное чудо: Intel D201GLY. 3 года гарантии. Производитель просто идеальный - не откажешь :) Первые три пробных карточки и вуаля..

Процессор лишь 1.3 ГГц - но этого вполне хватает для офиса если не жать видео :)
PS: И не смотреть HD..

Что потребовало покупки:
*** INTEL D201GLY (~70$ - Celeron 215 onboard)
*** DDR2 PC-5300 512 Mb (~13$)
*** БП ATX (20+4) (~25$)

Мощности 230 Вт хватит - важно наличие дополнительного 4-х пинного разъёма питания процессора. В принципе там лишь 12 вольт и земля.. Можно наверно использовать и старый ATX - изуродовав один из разъёмов питания винчестеров?
PS: Есть такие китайские переходники molex. Реальное потребление материнки + винчестера ~40 Вт.
Измерялось собственноручно.

Памяти 512 ибо пользователей будет 2.
Да и современные дистрибутивы требуют уже по 256 минимум. Не будем мелочиться.

Можно и расщедриться на 1G - ибо дырка там под DDR2 одна - и расширить потом придётся лишь заменой. По моему опыту пока 512 более чем достаточно.
Для убунты и опенофиса :)

Что остаётся для рабочих мест?

Оборудование оставшееся от старых машин:
*** ps/2 клавиатура х2
*** usb mouse х2
*** DSUB монитор х2
*** IDE HDD > 3 Gb
*** PCI VGA (самое сложное ибо древнее)
*** Корпус ATX (mini, micro?)

Клавиатуры ps2 пока дешевле USB аналогов - да и usb портов у нас маловато.
Вторая клава замечательно влезает в мышиный разъём материнки.

В качестве vga карты использовалась древняя
Matrox Millenium - наследие апгрейдов.

Проблем с ней особо нет - только вот 4 Mb на большие разрешения уже не хватает. 800х600х24. Может и можно найти что-нибудь по-лучше?
Можно ещё использовать Trident 3D. Cyrrix тоже..
Благо железа много остаётся.. Старое железо линукс любит :)
Минус - то что единственный слот PCI займёт эта видеокарта.

Винчестер - остатки апгрейдов.. Лучше конечно новый - но зачем если есть останки апгрейдов. Старые винчестеры только медленные - и очень шумные. Но многие из них пережили многих своих детей - и переживут ещё многих внуков :) Рано или поздно и они откажут. Но у нас же будут типовые настройки. И бекапы на серверах пользовательских каталогов. Восстановление - дело нескольких минут..

Корпус можно использовать почти любой - габариты материнки 17х17 см - устанавливается без проблем в ATX корпуса. Желательно наличие внешних usb разъёмов (или переходника за 1$) - ибо те что на задней части материнки будут заняты мышками. Можно купить за 30-50$ новый корпус с бп на борту.

А старые куда??? Помойка очень страшное слово - а утилизировать бу железо у нас не умеют :)

Итого с такой материнкой (и небогатым но довольно быстрым для нашего офиса железом) ~55$ на одно место.. Это с учётом использования старых комплектующих.

Если покупать корпус, БП, винт - обойдётся всё это в те же 100$ на место..

Установка операционки

Ставить будем Ubuntu. В последнее время что-то я к ней питаю тёплые чувства :)
Федора здорово - но как то.. Сервера у меня на ней.. пока.. На старых ноутах она.. Ладно.

Ubuntu 7.10 Gutsy Gibbon.

Поставить можно по сети, с LiveCD, и кучей других способов. Как это делать - вам решать. Я её ставил - из давно настроенного pexeboot в федоре. Всего то надо настроенный DHCP и tftp службы.
Как из настраивать - тонны статей. Любое упоминание о netboot тут же требует от автора детального описания настроек и скаченных пакетов для tftp и т.д.

У меня всё настроено. Осталось включить в биосе материнки загрузку по сети (благо встроенные в мамки сетевушки уже умеют грузиться по сети - с проектом rom-o-matic сколько не пытался не смог подружить свои сетевушки). Ну и скачать пару файликов.

Что я делал:
*** загрузил minicd образ
*** вытащил оттуда файлы linux и initrd.gz в папку tftp/ubuntu
*** прописал в свой конфиг в загрузчике по умолчанию (pxelinux.cfg/default) строчки из конфига isolinux.cfg:


LABEL ubuntu
kernel ubuntu/linux
append vga=normal initrd=ubuntu/initrd.gz --


Можно записать скаченный minicd образ на CD (что в общем то и планировалось при его создании) - и пользоваться им для установки. Я не особо надеялся на успешность загрузки по сети и решил подстраховаться - чтобы не качать образы netboot два раза - но обошлось. По сети куда быстрее и надёжнее.

Перед установкой системы на D201GLY - собираем "компьютер".

PS: Всё сказанное ниже требует от вас квалификации профессионального сборщика компьютеров. Или электромонтажника :) Ладно. Если вы ещё не втыкали ни одной платы в свой или чужой компьютер, не знаете как это выжечь мамку одним пальцем или одним винтиком под платой - позовите кого нибудь, кто это уже делал :)

А именно (опционально) устанавливаем в корпус, устанавливем планку памяти, подключаем через шлейф винчестер (и, если требуется для загрузки, CDROM).

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

Для ATX корпуса ещё пару-тройку разъёмов по схемке приложеной нам Intel в комплекте :) В общем то сборка окончена.

Включаем - наслаждаемся начавшейся загрузкой. Следуем инструкциям.

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

В качестве репозитория - локальный сервер с apt-proxy (apt-cacher или что-то в этом роде). Можно просто грамотный кеширующий прокси сервер с большим доступным местом в кеше. Если трафик совсем халявный - можно ставить всё вживую из интернета. Потребуется скачать где-то 600 метров.. С прокси-сервером только один раз.

Мною были поставлены флажки на установку "ubuntu-desktop" и "openssh server".

В моём случае ~15 минут на сети 100 Мбит со всеми репозиториями в apt-cache (при второй установке)..

Решение проблемы с sis видеодрайвером.

Не могло быть всё настолько просто на таком железе :) Вот и первый подводный камушек.

Драйвер sis идущий в поставке festy/gutsy некорректно работает с интегрированным видео SiS 662 (Mirage1) вызывая артефакты на экране в виде дрожащих вертикальных полос. Как корабль назовёте - так миражи и получите :)

На некоторых разрешениях это явление считается менее заметным. Но для повседневной работы это не годится.

Возможные решения - использовать драйвер vesa вместо sis подправив его ручками в файле /etc/X11/xorg.conf. Однако появляются проблемы с выбором кадровой развёртки (максимум 60 Гц) актуальной на CRT мониторах. Для LCD это простейшее решение. Я даже не заметил в начале тут подвоха - пока не поставил CRT..

Найденное решение - использовать другой драйвер sis - выложенный на форуме ubuntuforums.org.

Кстати - запомните ссылку http://ubuntuforums.org/ если вы собираетесь пользоваться ubuntu :) Там есть все вопросы которые вы встретите - и почти на все из них уже есть ответы..

Вот готовый файл драйвера для i386 gutsy (286 кБ).

Надо его распаковать и поместить поверх того что есть:
/usr/lib/xorg/modules/drivers/sis_drv.so

Возможно рано или поздно патчи из этот файла появятся и в официальном репозитории :)
Вариант - выкачать драйвер под линукс с самого сайта intel. Он там есть и вроде работает.

Перезапускаем из консоли gdm:
sudo /etc/init.d/gdm restart
Все разрешения - и все развёртки доступны нам без артефактов.


Настраиваем Multiseat.

Использовались данные из:
http://gentoo-wiki.com/HOWTO_Multiseat_X

В биосе материнки следует поставить опцию "использовать встроенное видео" иначе при флажке "авто" - встроенная видеокарта исчезает с pci шины при установленной PCI VGA. Это не баг - это фича. Чтобы интегрировання видюха память не ела.

Выключаем компьютер. Желательно отключить и блок питания от сети.
Тепрь самое время установить всё в корпус - если не сделали этого раньше :)

Втыкаем вторую мышку во второй usb порт.
Втыкаем вторую клавиатуру в мышиный порт материнки.
Втыкаем PCI видеокатру с вторым монитором.

Загружаемся. По идее всё должно и так работать. Кроме нового монитора. Две мышки - две клавы. Все управляют одним экраном.
Идём в текстовую консоль. Щёлкнул-сделал способа я пока не нашёл :)

lspci
Ищем PCI карту. У меня она оказалась 00:01.05. А у вас?

less /proc/bus/input/devices
Ищем наши мышки и клавиатуры.
Правим файлы: (предваряя команду gksudo gedit или sudo nano или sudo mcedit - что вам удобнее)

/etc/X11/xorg.conf - полная версия по ссылке:


### General Sections ###

Section "DRI"
Mode 0666
EndSection

Section "ServerFlags"
Option "DefaultServerLayout" "alltogether"
Option "AllowMouseOpenFail" "true"
# Option "DontVTSwitch" "true"
EndSection

Section "ServerLayout"
Identifier "alltogether"

Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"

InputDevice "Mouse0" "CorePointer"
InputDevice "Mouse1" "SendCoreEvents"

InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Keyboard1" "SendCoreEvents"

EndSection


Section "Module"
Load "dbe"
Load "freetype"
Load "extmod"
Load "fbdevhw"
EndSection


File: /etc/X11/gdm/custom.conf

### Server settings ###
[servers]
0=Standard0
1=Standard1
...

### per seat - these sections will need to be created ###
[server-Standard0]
name=Standard server
command=/usr/X11R6/bin/X -novtswitch -sharevts -isolateDevice PCI:x:y:z -layout seat0
flexible=false
[server-Standard1]
name=Standard server
command=/usr/X11R6/bin/X -novtswitch -sharevts -isolateDevice PCI:x:y:z -layout seat1
flexible=false
...