Текстовый LCD экран для сервера

2012-07-07

Самодельный LCD экран

Году в 2002-2003ем установка LCD-экранов на PC была делом весьма популярным и привлекательным. Правда тогда еще можно было без проблем найти компьютер с LPT портом, да и ОС класса Win9x/Me позволяла обращаться к нему напрямую.

Подключение не требовало каких-то особых познаний в электронике, экран “цеплялся” напрямую к линиям параллельного порта, ну разве что токоограничительные резисторы имели место быть. Особо продвинутые могли врезать еще переменный резистор для регулировки контрастности.

USB версии существовали, но продавались исключительно “за бугром” а о всяких PayPal или доставке в Россию можно было только мечтать.Потом увлечение как-то “сошло на нет”, видимо надоело читать “now playing” и “current CPU load”, да и параллельные порты пропали из конфигураций.

Но общий бум различных домашних “бесшумных серверов - качалок” привел к тому, что подобная индикация опять стала востребованной.

Итак, задача - нужно оснастить домашний компьютер, работающий в автономном режиме без всяких мониторов индикатором активности.

Зачем ? - Все просто - каждый раз цепляться через SSH напряжно, а вслушиваться - шуршит или нет - не получится, ибо flash и очень тихий внешний жесткий диск.

Поиски явили не очень веселую картину - Matrix Orbital выпускает в основном навороченные модели, схемы самоделок либо утрачены, либо с ними не стоит связываться. Ну или Arduino-вариант, но гробить целую плату ради одной задачи - непродуктивно.

Таланты в рунете не перевелись и нашелся вот такой вот сайт. На “народе”, прошивка явно не доделана, и не будет. Хорошо хоть fuse-биты расписали. В идеале, эта штука поддерживает еще и клавиатуру, но такая функциональность не нужна, поэтому обойдемся лишь индикатором.

В mk90.ru был заказан необходимый минимум деталей, а именно Atmega8 в DIP, да и единственный, на тот момент экран размером 8x2 символов. Других не было, да и исход проекта был ээ… не совсем предсказуем. Сборка, прошивка… несколько вечеров было потрачено на поиск глюков, но, наконец-то первые результаты. Следующая фотография передает настроение в процессе отладки :-)

Отладка LCD

Дальше дело за малым (казалось бы) - настроить lcd4linux, да и упаковать в подобие корпуса. Со вторым полный порядок - заодно и защитим природу.

Корпус для LCD дисплея

А вот со вторым пришлось повозиться. Дело в том, что стандартный драйвер usb/serial в ядрах начиная с 2.6.23 решает работать в режиме bulk transfer, что вводит самопальные cdc-устройства в коматоз из-за программной реализации USB-протокола. Для того, чтобы этого не было, нужно применить вот этот патч к ядру.

К сожалению, операцию придется повторять в случае обновления ядра, так что имеет смысл запретить его автоматические обновления. Ну а дальше требуется небольшой шаманизм с порядком подгрузки модулей, небольшой перловый скрипт, собирающий данные о системе и складывающий в файл, ну и lcd4linux.

Дальше пишем правило для udev, чтобы lcd4linux работал только при вставленном устройстве и наблюдаем примерно следующую картину:

Ссылка на архив проекта с usb-lcd.narod.ru, чтобы не ушла в забвение.


В массы

В трубу