Дешевый домашний Linux сервер на mini ITX плате

Author / Автор: Сергей Сацкий
NCBI
Publication date / Опубликовано: 19.03.2009
Version / Версия текста: 1.1

Обновление

19 марта 2009. Вместо написания скриптов для обновления динамического IP адреса можно воспользоваться готовым клиентом: http://ddclient.wiki.sourceforge.net/ (спасибо Денису Куриленко за совет).

Введение

Мои интересы во многом концентрируются вокруг разработки программного обеспечения, поэтому домашний Linux сервер, постоянно включенный и доступный в любое время, был бы удобен для большого количества ситуаций, включая следующие:

  • Возможность эксперементировать с разработкой модулей ядра Linux без боязни испортить соседствующие на ноутбуке операционные системы.
  • Постоянно доступная система контроля версий исходных текстов моих проектов, не зависящая от того, какая операционная система загружена в данный момент на ноутбуке.
  • Постоянно доступная система учета ошибок в моих мини проектах, не зависящая от того, какая операционная система загружена в данный момент на ноутбуке.
  • Автоматическая система изготовления резервных копий исходных текстов моих проектов на внешние носители.
  • Возможность экспериментировать с WEB сервером перед выкладыванием на общедоступное место.
  • Возможность быстро попробовать C/C++/Python/Shell фрагмент кода или получить удобную справку независимо от того, какая операционная система загружена в данный момент на ноутбуке.
  • Файловое хранилище для домашних ноутбуков.
  • Возможность подключиться к серверу будучи не дома через интернет.

К такому серверу я предъявляю еще несколько важных для меня требований:

  • Аппаратура должна быть дешевой. Возможность для экономии есть - не нужен постоянно подключенный монитор, постоянная мышь и постоянная клавиатура. Для большей части работ достаточно SSH консоли, а для остального годится X Server под текущей операционной системой.
  • Аппаратура должна быть малошумящей. Идеальный вариант, когда работающая аппаратура не мешает спать в той же комнате.
  • Беспроводной сетевой интерфейс для возможности быстро перенести аппаратуру в другое место.
  • Малый габарит и приличный внешний вид, чтобы можно было поставить сервер в гостиной без риска навлечь на себя гнев супруги.
  • Очевидное требование - старт/рестарт системы, к которой не подключены монитор, клавиатура и мышь.

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

Долгое время текущее состояние технического прогресса не позволяло реализовать описанное выше в железе. Однако момент, когда это стало возможным, настал, и остаток статьи посвящен описанию того, что у меня получилось.

Аппаратура

Свое внимание я остановил на форм факторе mini ITX. Материнская плата имеет размер 17 на 17 сантиметров и такой габарит мне подходит. Чтобы избежать проблем с шумным охлаждением, я ориентировался на плату, поддерживающую процессор Intel Atom.

В таблице ниже приведены сведения о компонентах системы.

Компонент Цена и место покупки
Материнская плата Intel D945GCLF2 allstarshop.com, $91.50
Память Kingston 2GB KVR533D2N4 с CAS latency 4 newegg.com, $20.99
Корпус APEX MW-100 newegg.com, $85.99
WiFi карта 802.11 b/g Gigabyte GN-WP01GS newegg.com, $16.99
Клавиатура Inland mini USB 89 keys microcenter.com, $9.99

Итого вместе с доставкой и налогами получилось $256.61.

Характеристики материнской платы:

  • Dual Core Intel Atom N330 processor 1.6 Ghz
  • one 240 pin DIMM socket supporting 533/667MHz single channel DDR2 up to 2GB in size
  • Intel 945GC chipset: 82945GC Northbridge with integrated graphics, 82801GB ICH7 Southbridge
  • GMA 950 integrated graphics
  • S-Video output via Chrontel CH7021A SDTV/HDTV encoder
  • RealTek ALC662 codec with HDA and 6 channel audio
  • SPDIFF header on motherboard
  • one PCI slot
  • 8 USB2.0 ports (4 on back panel, 4 on two headers)
  • one IDE interface
  • two SATA2 interfaces
  • one VGA connector
  • one S-Video port
  • one parallel port
  • one serial port
  • PS/2 keyboard and mouse ports
  • Gigabit Ethernet

Жесткий диск я не покупал. У меня был диск 2.5 дюйма, купленный года два назад, с интерфейсом IDE. Диск производства Fujitsu . Без оптического привода я тоже решил обойтись. Он добавляет около 45 долларов к цене, а используется только один раз в момент установки системы. Кроме того, он добавляет нагрузку к блоку питания и занимает место внутри маленького корпуса. Установку я решил делать по сети, установив загрузочный образ на уже имевшийся у меня flash накопитель Transcend. Без клавиатуры на этапе установки не обойтись, поэтому была куплена самая дешевая из клавиатур маленького размера под стать корпусу. Клавиатура просто отвратительная, но с задачей ответа на несколько вопросов справляется. В качестве временного монитора работал телевизор Sharp LC-46D64U - у него есть VGA вход, с которого телевизор поддерживает максимальное разрешение 1600 на 1200 точек. А в качестве временной мыши послужила Logitech Nano V450, отключенная от ноутбука.

Рисунок 1. Компоненты системы

WiFi карта

Здесь обнаружилась первая проблема. На материнской плате есть один PCI слот, а вот корпус совершенно не рассчитан на установку плат расширения. На задней стенке нет прорези для разъемов платы расширения. Более того, примерно в этом месте расположен разъем внешнего питания, так что элементы платы расширения, расположенные близко к планке, упираются прямо в него.

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

Рисунок 2. WiFi карта

С этим я справился следующим образом. Планка была снята, благо для это требуется открутить всего два винта. Два светодиода, собранные в виде одного монтажного элемента, были выпаяны маломощным паяльником. А разъем антенны ему не поддался. Разъем имеет пять точек пайки и довольно массивный, так что нагреть все выводы одновременно до нужной температуры не удается никак. К тому же надо умудриться не сжечь пальцы - нужного оборудования у меня здесь совсем нет.

Паяльник помощнее - простой, но с регулировкой мощности от 0 до 50 ватт - был заказан через amazon.com на parts express. Плюс подставка для паяльника и доставка добавили $32.75. Эти затраты можно было бы и не считать, потому что паяльник с подставкой вещь многоразовая, но для полноты картины привожу и эти расходы.

С мощным паяльником поддался и разъем антенны. Перенести его оказалось удобным на боковую стенку корпуса. Одно из имеющихся отверстий нужно только немного увеличить и найти две шайбы подходящего размера для компенсации толщины стенки корпуса. Провод для подключения разъема потребовал еще $7 в radio shack.

С такими доработками WiFi плата встала в корпус. Светодиоды я не стал никуда выводить.

Материнская плата

От идеальной эту материнскую плату отделяют несколько мелочей и один серьезный недостаток. Мелочи таковы:

  • Отсутствие выхода HDMI
  • Отсутствие встроенного WiFi адаптера
  • Отсутствие встроенного Bluetooth адаптера. Это скорее придирка, но было бы удобно.
  • Отсутствие ограничения на объем RAM в 2 GB. Место под разъем помогло бы съэкономить применение модулей памяти SO DIMM, однако этого почему-то не сделано. При нынешних ценах на память я бы поставил и 4 GB, но Intel, видимо, хочет искусственно ограничить область применения систем на базе Atom.
  • Ненадежное крепление радиаторов

Рисунок 3. Материнская плата

Серьезный недостаток платы кроется в северном мосте.

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

А северный мост настолько горячий, что на его алюминиевом радиаторе, тоже закрепленном ненадежной клипсой, стоит вентиллятор T&T 4010H12S NF1. Вентиллятор имеет размер 40х40х10 мм и очень сильно шумит, чем на корню убивает мечту о бесшумном компьютере. Разъемов для питания вентилляторов на материнской плате два. Первый CPU fan не регулируемый. Именно к нему Intel настаивает подключать вентиллятор северного моста. Второй System fan - регулируемый через BIOS от 50% до 100% с шагом 10%.

Сначала я попробовал просто заменить вентиллятор на более качественный. Был куплен Evercool EC4010M12CA. Стало тише, но все равно слишком шумно. Подключение 50 мм вентиллятора сбоку проблему так же не решает.

Детальный осмотр собранного корпуса дал результат. Свободное место есть только там, где должен был бы стоять привод для оптических дисков. И оно практически прямо над северным мостом. По высоте места совсем немного, около 12 миллиметров, а по ширине около 120. Низкопрофильных низкооборотных вентилляторов большого диаметра выпускают не так много. Нашелся только один - Kaze Jyu Slim 100mm 1,000RPM. Прибавляем еще $10.50.

В направляющих оптического привода были высверлены дырки, а сам вентиллятор закреплен пластиковыми стяжками и подключен к разъему CPU fan. Это помогло. Шум исчез. COMCAST оборудование для кабельного телевидения, которое стоит у меня рядом, производит больше шума.

Рисунок 4. Материнская плата, смонтированная в корпусе

Рисунок 5. Корпус без верхней крышки и без большого вентиллятора

Рисунок 6. Корпус без верхней крышки с установленным большим вентиллятором

Установка Linux

Линукс я устанавливал из сети с помощью имевшийся у меня USB Flash производства Transcend емкостью 4 GB и пережившей одну стирку в кармане брюк. Для моего варианта подошел бы и накопитель гораздо меньшего объема.

Сначала на flash был установлен Fedora 10 Net Install с помощью программы Unetbootin на одном из домашних ноутбуков.

Рисунок 7. UNetbootin

Потом в BIOS материнской платы изменен порядок загрузки системы и выставлен правильный тип эмуляции flash устройств на этапе загрузки. Без правильного типа загрузчик на flash не будет найден.

У меня были сомнения, что WiFi плата будет работать во время установки, поэтому я временно подключил компьютер к своему WiFi роутеру Westell 7500 от Verizon обычным Ethernet кабелем.

После запуска инсталлятора указываем URL, с которой должны грузиться пакеты. Список активных зеркал можно посмотреть здесь: http://mirrors.fedoraproject.org/publiclist. Дальше ничего интересного - разметка диска, выбор пакетов и длительная установка.

После окончания установки в BIOS имеет смысл убрать flash накопители из списка загрузочных устройств.

Работа оборудования

Оборудование Описание
WiFi Заработал сразу после установки
VGA Заработал сразу после установки. Проверено два разрешения: 1024x768 и 1600x1200.
S-Video output Не пробовал
USB Заработал сразу после установки
SPDIFF Не пробовал
IDE interface Заработал сразу после установки
SATA2 Не пробовал
Parallel port Не пробовал
RS232 Не пробовал
Ethernet Заработал сразу после установки
PS/2 keyboard and mouse ports Не пробовал
Audio Не пробовал
Mic Не пробовал

Из того, что не опробовано, сомнения вызывает только S Video выход. Все остальное почти наверняка работает.

LSPCI

Динамический DNS

Мне хотелось иметь доступ к своему серверу из интернет. Это получилось сделать с помощью бесплатного сетевого сервиса динамического DNS. Я зарегистрировался на сервере dyndns.com и получил доменное имя. Было бы удобным, чтобы WiFi роутер сам обновлял IP адрес, как только он сменился. Мой Westell 7500 от Verizon имеет такую поддержку, но для обмена с сервером динамических доменных имен использует схему обмена с ключами, а схему обмена с именем пользователя и паролем не поддерживает. dyndns.com поддерживает обе схемы, но сервис с ключами предоставляет за деньги, а обмен с пользователем и паролем бесплатно.

Выход из этой ситуации состоит в регулярной проверке своего текущкего IP адреса. Я использовал вот такой скрипт для получения текущего IP адреса:

#!/bin/bash
/usr/bin/curl -s http://checkip.dyndns.org | /bin/awk '{print $6}' | \
/bin/awk ' BEGIN { FS = "<" } { print $1 } '

Если адрес поменялся, то с помощью запуска утилиты inadyn адрес надо обновить на dyndns. Эта функциональность оформлена в виде python скрипта, который запускается каждый час. Надо еще помнить о том, что если обновлений не было в течении месяца, то dyndns.com удаляет учетную запись. Чтобы этого не случилось, надо раз в месяц безусловно запустить inadyn. Слишком частое безусловное обновление тоже не подойдет, потому что dyndns.com заблокирует учетную запись.

В результате описанных выше действий за выбранным именем будет закреплен IP адрес внешнего интерфейса домашнего роутера. Чтобы получить доступ к домашнему серверу, нужно еще сделать форвардинг портов на роутере до сервера и обратно. Я сделал форвардинг портов ssh.

Стоит сказать, что особенно усердствовать с открытием портов не стоит. Как только ssh был открыт, так сразу многочисленные неизвестно кто стали пытаться подобрать пароль рута на моей машинке. Этот процесс не прекращается и идет с разных машин.

Температурный режим

Температурный режим оставляет желать лучшего. lmsensors успешно работает на этой материнской плате и вот что они рапортуют:

[swift@sanki ~]$ sensors
smsc47m192-i2c-0-2d
Adapter: SMBus I801 adapter at 2000
+2.5V:       +2.53 V  (min =  +0.00 V, max =  +3.32 V)
VCore:       +1.15 V  (min =  +0.00 V, max =  +2.99 V)
+3.3V:       +3.32 V  (min =  +0.00 V, max =  +4.38 V)
+5V:         +5.05 V  (min =  +0.00 V, max =  +6.64 V)
+12V:       +12.06 V  (min =  +0.00 V, max = +15.94 V)
VCC:         +3.32 V  (min =  +0.00 V, max =  +4.38 V)
+1.5V:       +1.57 V  (min =  +0.00 V, max =  +1.99 V)
+1.8V:       +1.77 V  (min =  +0.00 V, max =  +2.39 V)
Chip Temp:   +44.0?C  (low  = -127.0?C, high = +127.0?C)
CPU Temp:    +64.0?C  (low  = -127.0?C, high = +127.0?C)
Sys Temp:    +55.0?C  (low  = -127.0?C, high = +127.0?C)
cpu0_vid:   +2.050 V

smsc47m1-isa-0680
Adapter: ISA adapter
fan1:          0 RPM  (min = 1280 RPM, div = 4)  ALARM
fan2:       1153 RPM  (min = 1280 RPM, div = 4)  ALARM

Процессор самый горячий. У меня нет большой уверенности, что температура CPU не спутана с температурой северного моста. На ощупь мост горячее.

Температура велика, но система работает стабильно, никаких сбоев не замечено. Согласно документации Intel предельная температура процессора 82.5 градусов. У меня максимум был 70 градусов. Приличный запас еще есть, но было бы неплохо над этим подумать. Тем более, что сейчас февраль, а летом будет определенно теплее в квартире.

Можно попробовать заменить алюминиевые радиаторы на CPU и северном мосте на приличные медные. Подходящие есть у Enzotech: CNB-R1 на мост и CNB-S1 на CPU. Должно стать лучше, но деньги тратить не очень хочется и не очень хочется возиться. У радиатора для процессора лишние уши. Их может быть надо будет спилить, потому что на материнской плате нет отверстий для крепления радиатора. Интересно, большая ли это экономия для Intel?

Выводы

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

Опасения у меня вызывает надежность винчестера. Он самый обычный, от ноутбука и может быть не рассчитан на круглосуточную работу. Когда он выйдет из строя, тогда и заменю. Хорошим кандидатом выглядит серия винчестеров cinema star производства Hitachi. Пока же flash накопитель, использовавшийся для установки системы, будет работать как устройство для хранения резервных копий SVN репозитория.

Однако, если бы я знал, сколько придется возиться, то начинать бы не стал, а подождал бы выхода других чипсетов для Intel Atom. Например чипсет NVidia на бумаге смотрится хорошо. Он еще не вышел, поэтому сравнивать не с чем. Да и анонсирован он был после того, как я заказал компоненты для своего компьютера.

Ссылки

  1. Обзор материнской платы с анализом потребляемой мощности
  2. Обсуждение, как сделать материнскую плату тише
  3. Intel Atom WiKi страница
  4. Документ с указанием температурного режима процессора

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Разрешается копирование и распространение этой статьи любым способом без внесения изменений, при условии, что это разрешение сохраняется.
Last Updated: March 1, 2009