_the_elf_
Однажды я присмотрелся к своему ноутбуку. Точнее - к одному из разъемов. Он довольно примечательный - это комбинированный USB+eSATA, т.е. туда можно подключить и USB, и eSATA. Красота! Однако почти 5 лет я пользовался им исключительно в качестве USB-разъема и был вполне доволен. Однако как-то раз мне стало интересно, что же это за мифический eSATA такой. Гугл раскрыл мне эту тайну. Оказывается eSATA - это external SATA, то бишь внешний SATA. Причем это оказался даже не просто eSATA, а eSATAp. "p" тут значит power, т.е. разъем еще и питание дает (что неудивительно, учитывая, что он еще и USB). Сразу же возникла идея подключить туда жесткий диск - родных 500 ГБ в условиях двух ОСей мне всегда было маловато, а в родительском компе практически без дела сидел диск на 1,5 ТБ. Прикинув, какой провод мне нужен, я заказал его на aliexpress.
И вот прошел месяц, провод благополучно добрался до меня. В предвкушении огромных объемов памяти я подключил жесткий диск к ноуту и... ничего не произошло. Неужели провод паленый? Я решил проверить на каком-нибудь другом диске, но его нужно было вытаскивать из родительского компа. Поэтому я воспользовался мелким жестким диском для ноутбуков (остался после замены жесткого диска на ноуте, который мне отдали на ремонт). Подключаю - все работает. Подключаю большой жесткий диск - ничего. Я в недоумении. Гугл снова пришел мне на помощь, и я выяснил, что мелкий жесткий диск для ноута (2,5'') требует для работы 5В, в то время, как большой (3,5'') - 12В. Вот и разгадка - разъем выдает всего 5В, и их не хватает для работы 3,5'' жесткого диска.
Казалось бы, тут и сказочке конец, однако я вспомнил про старый блок питания от компьютера, который уже пару лет лежит без дела, а там есть те самые 12В. Я хотел тут же все подключить, но понял, что провод, который я заказал, все портит - он подключается сразу и к SATA, и к питанию на жестком диске. Пришлось заказывать новый провод на aliexpress.
Прошло еще 1,5 месяца. Очередной провод доехал до меня. В этот раз все прошло хорошо: подключил БП, поставил перемычку, чтобы он включался, подключил жесткий диск к БП и ноуту, включил БП - все работает, я доволен. Однако доволен я был недолго, ибо вся конструкция выглядела вот так



Даже спрятав все это дело за ноутбук, я понял, что теперь мне придется каждый раз либо нажимать кнопку на БП, либо втыкать перемычку для включения этой шайтан-машины. Ни один из этих вариантов меня не устраивал - мне нужно было автоматизировать процесс.
Я вспомнил про arduino - диплом прервал мои первые шаги в изучении этого чуда, к которому я успел накупить кучу разных примочек. Пришло время снова достать все это и применить.
Сначала я думал воспользоваться кнопкой, чтобы проверить саму возможность подобных манипуляций - все работало, но плохо, т.к. неприпаянная кнопка шаталась, в следствие чего контакты постоянно отходили. Потом я решил сделать все максимально просто: управляющий сигнал (PS_ON) с БП идет на один из пинов arduino, а земля - к другому (6 и 7 пины соответственно). Настраиваю 6 пин на вход, а 7 - на выход. Прописываю в программе единственную команду, которая "открывает" седьмой пин на выход. Загрузил скетч на arduino - все работает. Даже комп специально перезагрузил, чтобы проверить - все отлично. Однако я замечаю, что провод от жесткого диска не подключен к ноуту. Подключаю, и в тот же момент отключается блок питания. Вытаскиваю - БП включается. ЧТО ЗА МАГИЯ?! Этого я так и не понял, к сожалению.
На форуме народ тоже недоумевал. Мне посоветовали воспользоваться реле, что я и сделал. Программа там простейшая - все работает. Перезагружаю ноутбук для проверки и замечаю, что в самом начале загрузки ОСи напряжение на arduino падает, и реле выключается. Всего на миг, но мне это не понравилось - постоянное включение-выключение БП может плохо на нем сказаться, да и этот звук будет раздражать (реле замыкается с щелчком). Поэтому пришлось искать способ замыкать реле непосредственно при загрузке ОСи. Для этого я несколько изменил программу, добавил пару условий (если на вход подается 1 - замкнуть реле, 0 - разомкнуть). Дальше я нашел утилиту для передачи информации на arduino по USB (ее можно найти тут). Загнал ее в автозагрузку с нужными данными и перезагрузил ноутбук. Вот теперь все работает идеально: БП начинает работать практически одновременно с загрузкой ОСи и выключается вместе с ним. Правда, все это работает только в линуксе - на винде я еще не пробовал, но, думаю, там тоже можно загнать эту команду в автозагрузку. В крайнем случае напишу простой bat-ник и закину в автозагруку уже его.
Теперь осталось заставить линукс автоматически монтировать этот диск, но об этом в другой раз.