[Из песочницы] Из ноутбука — домашний сервер с резервированным питанием роутера Микротик
Статья для любителей самим паять несложные схемы и разбираться, почему они именно так сделаны.
А также для тех, кому реально понадобится такой сервер.
Никаких супер-достижений тут нет, а есть дешевое, компактное и экономичное решение, которое в некоторых случаях заменяет громоздкую кучу оборудования:
- сделан домашний сервер из старого ноутбука и устройство питания роутера,
- объяснена схема питания роутера от зарядки и аккумулятора ноутбука,
- объяснена схема для включения ноутбука при появлении сетевого питания.
Мне нужен был маленький файловый сервер, который к тому же должен выдерживать перерывы в питании до 15 минут.
Я решил сделать его из старого ноутбука.
Ноутбук (Asus A8J) специально для эксперимента купил с разбитой матрицей, но с живым аккумулятором и вентилятором.
(Примечание. Если у Вас уже есть ноутбук, то, как в известной задаче про чайник, разбивать матрицу не обязательно. Однако если у Вас роутер, как у меня, работает с 4G модемом, то матрицу лучше отключить, дальше объясню почему.
Работа без матрицы никакого дискомфорта не создает, сначала пользовался внешним монитором, а потом SSH.)
В процессе я обратил внимание на то, что роутер Микротик (у меня RB-951G) может питаться напряжением от 9 до 30 В, и возникла идея питать его от ноутбука.
Получилось очень удачное сочетание: при наличии сетевого напряжения роутер питается от зарядного устройства ноутбука (19–20 В), а при пропадании сетевого питания — от аккумулятора этого же ноутбука (от 12 до 9 В по мере разряда), т.е. все в пределах нормы.
Если точнее, то напряжение на роутере будет на 0.2–0.4 В ниже из-за падения на диодах, но все равно в пределах допустимого (кроме нижнего предела разряда аккумулятора, который мы точно не знаем, но в моем случае до него вряд ли дойдет дело.
А если и дойдет, то ничего страшного с роутером не случится).
Так как здесь имеет приоритет более высокое напряжение (20В), то переключающая схема получается очень простой, из двух диодов.
Еще удобно, что никакой защиты по напряжению делать не надо.
В случае долгого отсутствия сети аккумулятор разрядится до предела, при котором его встроенный контроллер отключит нагрузку и таким образом переразряда не случится.
Затем при подаче сетевого питания начнется заряд аккумулятора, а роутер будет питаться от зарядного устройства.
Теоретически в неудачном случае мы можем превысить допустимый ток зарядного устройства и/или аккумулятора (так как забираем лишние 0.4–0.8А на роутер при 20В), но на практике превышения тока не случится, и вот почему: я удалил из ноутбука привод DVD, контроллер WI-FI, а также матрицу. Соответственно потребляемый ток уменьшился.
Для снижения потерь напряжения выбираем диоды Шоттки, а конкретно — я взял сборку из двух диодов (не помню тип), которая есть в компьютерных блоках питания и выглядит как мощный транзистор.
Ток потребления роутера вместе со включенным в него 4G-модемом может быть до 1.7А в наихудшем случае — при питании от 9В.
(Импульсный блок питания внутри роутера потребляет постоянную мощность, поэтому чем ниже входное напряжение, тем больше потребляемый ток).
Диоды сборки выдерживают длительный ток 20А, и это тоже удобно.
Не придется делать защиту от короткого замыкания на выходе. Эту роль, если что, сыграют внутренние схемы защиты зарядки и аккумулятора.
Если кто-то захочет использовать отдельные диоды Шоттки — надо брать их на ток не меньше 5А и хоть немного охлаждать, например через дорожки на плате.
Но была еще одна проблема: ноутбук сам не включается при появлении сетевого напряжения. В Биосе такой опции нет. (Почему-то у многих ноутбуков нет ряда полезных функций, например, еще у них нет загрузки с карты памяти).
Хотя таких перерывов, чтобы полностью разрядить аккумулятор, у нас практически не бывает, но уже захотелось и этот вопрос «добить».
У моего ноутбука кнопка включения замыкает вход схемы на минус питания (у Вашего, скорее всего, тоже).
На этот же вход я припаял провод от разъема моего устройства.
В устройстве этот вход замыкается на минус транзистором, ноутбук включается.
Для защиты транзистора на случай неправильного подключения добавлен резистор R8 в коллекторную цепь.
Проверено, что ноутбук устойчиво включается и при 3-х кратном увеличении этого резистора. (Это Вам на Вашем ноутбуке тоже лучше проверить, т.к. параметры входа кнопки могут различаться).
Для управления транзистором сделан RC-генератор импульсов на микросхеме CD4093 с триггерами Шмитта, и элементах R4, R5, С3. Длительность импульса и паузы примерно по 1 с, точность не важна.
Важно, что работа генератора начинается с паузы.
И вот зачем я сделал генератор импульсов: у меня ноутбук иногда не включался при первом нажатии кнопки, а включался при втором, уж не знаю почему. В любом случае, получилось универсальное и надежное решение.
Когда ноутбук включился, то «нажимать» кнопку больше не нужно, и мы прекращаем работу генератора.
Схема узнает о включении ноутбука с помощью еще одного провода, припаянного к +5В любого USB разъема.
Мой ноутбук подает +5В на USB только когда он включен.
(Если у Вас напряжение на USB присутствует постоянно при питании от сети, то надо выключить соответствующую опцию в Биосе, либо искать другую точку подключения этого сигнала).
Микросхема питается от входа +20В через простейший стабилизатор из R1 и VD3, а C2 на всякий случай для защиты от импульсов по питанию.
Также сделано питание этой схемы от +5В USB, чтобы при пропадании сетевого питания не садилось питание генератора и не формировалось ложных импульсов, которые могут выключить ноутбук.
Оба питания поданы на микросхему через простейшую схему на двух диодах VD1, VD2, такую же как на роутер, только совсем маломощную.
Разъем выбран 10-контактный: PLD-10 + PBD-10, на провода питания задействованы по 2 контакта параллельно.
Из оставшихся 4-х два заняты под вход кнопки и +5В USB, еще 2 не используются.
Расположение контактов выбрано такое, что при если включить разъем в перевернутом положении, то ничего не сгорит, роутер будет питаться, а функция включения ноутбука работать не будет.
Устройство собрано на макетной плате и помещено в термоусадочную трубку.
Дополнительного охлаждения не требуется.
Разместить его можно в отсеке, где был привод DVD.
Детали можно заменять на аналоги в очень широких пределах.
Общее фото не привожу, т.к. разломанные ноутбуки и так все видели.
Работает уже месяц.
Потребление минимум 13 Вт (измерено электросчетчиком), при активной работе возрастает до 25 Вт.
Были обнаружены 2 глюка аппаратной части:
Глюк №1: если выключить разъем зарядки из ноутбука, то иногда при этом ноутбук мгновенно выключается.
Скорее всего, это из-за того, что я провод от зарядки к устройству провел прямо по плате, да еще и вместе с +5В USB и проводом от кнопки.
При отключении разъема зарядки на проводе возникает серия довольно «крутых» импульсных перепадов с +19 до +12В и обратно, да еще и с «дребезгом», и это через емкости проводов может давать помеху на другие цепи ноутбука.
Но зато, если не отключать этот разъем, а отключить зарядку от сети, то ничего плохого не происходит. Видимо, тогда напряжение на проводе садится медленно из-за конденсаторов в зарядке, и помех не возникает.
Исправлять монтаж не стал, но вообще, конечно, так прокладывать провода по плате, как я сделал, не стоит. Их надо как-то экранировать или проводить снаружи ноутбука или хотя бы подальше от платы. (Немного спасает то, что тут все мои провода с постоянным напряжением).
Добавил конденсатор С1 между минусом и плюсом зарядки, вроде бы глюк №1 исчез.
Глюк №2: Ноутбук не получалось выключить кнопкой.
Для корректного выключения ноутбука сначала отключаем сетевое питание (на всякий случай — отключаем зарядку от сети, а не от ноутбука, как мы уже знаем из предыдущего опыта).
И затем нажимаем кнопку выключения. ОС завершает работу и выключает ноутбук.
НО. В этот момент на конденсаторах питания USB (при отсутствии потребляющих устройств) в ноутбуке еще остается напряжение, оно медленно садится, и в какой-то момент схема выдает ложный импульс на кнопку и ноутбук опять включается!
Чтобы этого не происходило, добавлен резистор R2, который успевает разрядить конденсаторы за секунду, и все стало нормально. Если у Вас будет появляться такая проблема — то сопротивление надо уменьшить раза в 2. Слишком малое сопротивление резистора делать не стоит, т.к. он будет греться.
Энергопотребления это практически не добавляет.
Я установил Убунту-сервер 14.04 и настроил самбу, все работает и этого пока достаточно.
Были следующие недостатки:
1) Вентилятор ноутбука сильно шумел независимо от нагрузки процессора.
Пробовал программу fancontrol, но она не нашла доступ к управлению вентилятором.
В процессе копания интернета найдена другая программа: asusfan, которую добрые люди когда-то сделали специально для моей модели ноутбука. Она заработала сразу после компиляции и установки, и сейчас вентилятор регулируется автоматически и шумит несильно, да и ресурс экономится.
2) Не получается останавливать на ночь винчестер командой hdparm -S 241 /dev/sda.
Его каждые 5–10 минут «дергает» программа журналирования jbd2, даже когда уже час никаких действий не производится.
На форумах пишут, что это неустранимая проблема файловой системы ext4 либо ее реализации в Убунту.
Потом попробую перейти на xfs (а может быть — на SSD), но пока — «И так сойдет!» ©.
- Сделать на каком-то устройстве типа «GSM-реле» независимую схему для перезагрузки системы.
- Сделать на том же GSM устройстве схему для дистанционного подключения флешки с «резервной» системой, чтобы можно было загрузиться с нее и что-то поправить в конфигурации, если основная система не грузится.
Почему через GSM, а не Ethernet?
Во-первых, из-за возможных уязвимостей Ethernet-контроллеров, про которые я где-то слышал.
Во-вторых, может понадобиться перезагрузить и роутер, т.е. нужна независимая схема.
Но роутеры Микротик в этом плане довольно надежны и поэтому это все на самом деле не нужно, а сервер тоже вроде бы пока работает без вопросов.
Роутер мне помог (на 99%) настроить товарищ @rifei, за что ему огромное спасибо.
А также всем тем, кто написал инструкции в интернете типа «как на убунту 14.04 запустить программу» и т.д., так как сам я полнейший чайник в этом, но путем чтения 100500 таких инструкций удалось все настроить.
И отдельно — тем, кто сделал и выложил всякие полезные программки, упомянутые и не упомянутые здесь.