Серверы из старых смартфонов
Новые модели смартфонов и планшетов с новыми версиями операционной системы Android сменяют друг друга так быстро, что у многих скопилась приличная коллекция вполне работоспособных и полностью исправных смартфонов и планшетов, которые, к сожалению, уже морально устарели.
Конечно, их можно по дешёвке продать или кому-то подарить, но есть и другой вариант дать всем этим устройствам вторую жизнь. Их все можно превратить в серверы! Не удивляйтесь этому, ведь по производительности практически любые смартфоны и планшеты на базе операционной системы Android могут легко поспорить с самыми настоящими «взрослыми» серверами всего лишь 15-летней давности.
Я уже про это писал в материале «Веб-сервер на Андроиде» — но сейчас мы об этом поговорим в несколько более широком ключе, о реализации на старых аппаратах не Веб-сервера, а файловых и медиа-серверов.
Если у вас устройство на Андроиде версии 4 или выше, проще всего будет поставить на него приложение Servers Ultimate Pro. Это, пожалуй, наиболее универсальная и гибкая программа по настройке серверов в Android: она может похвастаться встроенной поддержкой более 60 типов серверов и более 70 сетевых протоколов.
К сожалению, Servers Ultimate Pro платная — но мы ведь живем в России, поэтому в интернете можно без особых проблем найти взломанную версию 8.112.28 этой программы, которая позволит вам спокойно скачать пакеты серверов из магазина Google. Да-да — программа Servers Ultimate Pro это просто интерфейс для конфигурирования и запуска серверов, а сами сервера идут в виде пакетов расширения, загружаемых из сети по мере того, как вам требуются сервера нужного типа. Так сделано для того, чтобы не занимать слишком много места и не загружать ваш аппарат лишним кодом.
Интерфейс Servers Ultimate Pro достаточно простецкий:
Важно запомнить, что сконфигурировать сервер можно только тогда, когда он остановлен. Иначе вас просто не пустят в меню его конфигурации.
В зависимости от ваших целей Servers Ultimate может предложить исчерпывающий набор возможностей — от HTTP/веб-серверов и FTP/файловых серверов до медиасерверов с поддержкой DLNA, причём для каждого сервера предлагается масса специфических настроек.
Наверное, самый полезный и интересный тип сервера, в который можно превратить устройство на основе Android, это медиасервер. Такой сервер обеспечит потоковую трансляцию звука и видео на домашнюю аудиовидеосистему, компьютер, игровую приставку или другие планшеты и смартфтоны. Это более функциональный, но и более сложный вариант файлового сервера, который может использовать множество различных протоколов (например, DLNA) для соединения и передачи файлов.
Для простоты конфигурирования выбираем DLNA Native Server. Он входит в пакет серверов А. Загружаем его, добавляем в консоль управления, но не запускаем. Долгим нажатием на иконку этого сервера в разделе Servers вызываем выпадающее меню, в нем выбираем пункт Edit. Это и есть редактирование настроек.
Ставим чекбоксы в пуунктах:
Start on tile clicked (разрешить запуск по кнопке)
Enable Wi-Fi lock (чтобы не отваливался вайфай)
Enable partial wake lock (CPU) (чтобы не слишком засыпал процессор)
В закладке Roots выбираем хранилища, из которых будут выбираться медиафайлы.
В закладке Start/Stop добавляем правило, по которому будет автоматически запускаться этот сервер. Я обычно ставлю запуск при соединении с нужной мне точкой WiFi. Это более правильно, чем запускать сервер при старте телефона — он стартует тогда, когда телефон уже соединиться с вайфаем и получит сетевую конфигурацию.
Примерно так же ставятся и конфигурируются файловые серверы (например, Simple SMB server — если вы хотите отдавать файлы компьютерам в локальной сети Windows) и WEB-серверы. Причем на телефоне можно поднять целый WEB-хостинг с MySQL и PHP подсистемами, поставить туда WordPress и радоваться.
Медиасервер DLNA не умеет загружать файлы — он умеет только отдавать потоковое видео и аудио. Поэтому чтобы загружать файлы — проще всего будет поднять FTP-сервер.
Посольку на телефоне мало места для хранения файлов — место следует расширить при помощи Micro-SD карты памяти или внешней USB-флэшки, подключенной через OTG-шнур. Но с USB-подключениями есть неприятный нюанс — большинство телефонов и планшетов, кроме самых старых, получают внешнее питание через этот же USB-порт. Однако выход есть — во-первых, существуют OTG-выкидыши с отдельным шнуром питания, а во-вторых есть еще более элегантный способ в виде мобильного USB-хаба, умеющего одновременно подавать питание на телефон от блока питания (зарядника) и раздавать USB на несколько внешних устройств памяти. Наиболее классный китайский хаб такого типа выглядит вот так:
Видите — у него сбоку имеется переключатель, который задает три разных способа работы с телефоном.
Поскольку у него 4 порта — в них можно напихать аж 4 штуки флэшек. Не все телефоны поддерживают столько, вдобавок у них есть и ограничение на максимальный объем памяти флэшки — но в целом так можно набрать достаточно приличный объем.
Наконец, к телефону или планшету можно подключить через USB и внешний винчестер. Разумеется, питание на него придется подать от дополнительного блока питания, но в целом такая конфигурация вполне рабочая.
К сожалению, Servers Ultimate Pro работает только начиная с Андроида 4 версии.
Формально существует Servers Ultimate Pro версии 7.1.16, последний работающий под Андроидом 2.1 — но для него нет возможности скачать модули серверов.
Поэтому для Андроида версии 2.1 нам придется извращаться.
К счастью, существует вполне рабочий Pixel Media Server — это простой в настройке и использовании медиасервер для смартфонов и планшетов под управлением Android, работающий с протоколами UPNP/DLNA. Сервер поддерживает массу форматов, включая аудиофайлы MP3, WAVE, FLAC, видеофайлы AVI, MP4, 3GP, MPEG, MPG, MKV, FLV, TS и MOV, а также цифровые изображения JPEG и PNG.
Ну а для дистанционной закачки файлов на устройство мы поставим MyFTPserver версии 2.1 — он тоже работает на таком старом Андроиде.
В этой связке, разумеется, не обошлось без ложки дегтя — хотя Pixel Media Server имеет опцию автостарта, он может загрузиться раньше, чем успеет подняться WiFi соединение и устройство получит IP-адрес. В этом случае сервер не заработает, выкинув ошибку — мол, нет соединения с сетью. И он будет таким же образом стопориться каждый раз, когда будет пропадать связь с сетью. Автоматического рестарта у него нет.
Я ищу выходы из этого положения, но всё же лучшим вариантом была бы перешивка устройства на более свежую версию Линукса. Например, у меня есть планшет DFP7005, который штатно шел с андроидом 2.1, но под него существуют как родные прошивки на версию 4 (они так и остались в статусе беты, но вполне рабочие), так и всякого рода любительские моды, включая Cyanogen.
Кроме того, есть вариант перешить такие устройства непосредственно на Linux. Это, вообще говоря, весьма правильный подход к делу — у вас за сущие копейки получится устройство с экраном, куда более мощное, чем популярные у самодельщиков Raspberry Pi. Но это занятие для настоящих гиков и фриков.