Продвижение “таблетов” на рынке идёт полным ходом. И, порой, прогресс шагает настолько сильно, что “перешагивает” через нужды разработчиков ПО, да и просто тех, кто использует планшет не только для “Вконтактика”, скайпов, и прочей лабуды.
То есть тех, кто пытается не только потреблять контент, но и создавать оный. Windows 8, ориентированный на тачскрин частично решает проблему (если у Вас x86-совместимый процессор), но Windows RT не обладает столь богатой базой десктопных приложений (да их просто нет).
Посему, приходится изворачиваться и возвращать себе привычную рабочую среду своими силами.
Кстати, Android, в целом ушёл не сильно дальше. Ниже будет описан кое-какой опыт использования “переносного” сервера, который составит отличную компанию планшету.
Итак, суть проблемы - есть желание использовать планшет в качестве рабочей станции, но:
- База софта не позволяет развернуться
- Планшет имеет ограниченные ресурсы (малый размер SSD, предположим)
- Каждый должен заниматься своим делом
Года два назад случился “бум” так называемых Android-стиков. Маленьких компьютеров, ценой до 70 долларов, которые превращали ваш телевизор за 10000 рублей в Smart TV стоимостью, как минимум 25000 рублей.
Вот один из них.
Игрушки, порой, надоедают и пытливые умы пользователей стали думать об из “нецелевом” использовании. Ну и додумали до установки Linux на устройство, да так, что возврат в “дефлотный” Android был не нужен.
Статей на эту тему масса - делаю отсылку к двум сайтам - romanrm и picuntu.
На первом можно найти описание Debian для устройств на базе процессора AllWinner, на втором - дистрибутив Picuntu, как раз предназначенный для подобных устройств.
Вобщем, инвестировав порядка 50 долларов вы можете получить полноценный, многоядерный “серверочек”, который вполне способен “держать” Apache, samba, компилировать программы, работать с python, perl, php. Вся радость потребляет не больше 5 ватт (если без внешнего жёсткого диска).
Но и это еще не всё.
Это устройство вполне способно питаться от USB-порта Вашего планшета, то есть решается “проблема” мобильности.
Предположим, что вы успешно установили Linux (в моём случае это был Picuntu), запустили WiFi и он даже заработал…
Тут выкинут довольно большой кусок - как сделать автозагрузку Linux вместо Android, как “перепрошить”. За этим лучше обратиться в тематические форумы. Тысячи их. Тем более, что не каждое устройство “заведется” как надо.
Эти “малыши” довольно капризны и вполне может оказаться, что в вашей ревизии чип WiFi заменён на более продвинутый. Так что перед покупкой очень рекомендую ознакомиться с тематическими форумами, чтобы потом не переживать, что мол ничего не работает.
Предположим, вы успешно закончили этот quest и всё включилось.
Теперь вы в одной сети и можете сказать, например “ping”. Но стоит покинуть помещение и ваш помощник будет без связи с внешним миром. Ни достучаться до него (сети-то нет), ни изменить конфигурацию не получится.
Так что будем делать из него точку доступа, чтобы не зависеть уже ни от кого.
В Linux функционал точки доступа можно получить с использованием программы hostapd. Ставим, смотрим…
Первая неприятность - драйвер для Realtek ну никак не хотел работать с hostapd из репозитария. При этом я специально перегружался в Android и проверял - “передвижная точка доступа” работала и довольно успешно. Так что мешает запустить этот же режим в Linux ???
Google довольно быстро дал ответ. В природе сушествует “пропатченный” демон hostapd, который работает c Realtek.
Правда, его придется собирать. Но это работает =).
Не стоит достичь всего и сразу. Помимо hostapd, придется настроить как минимум еще и dhcp-сервер. Тут рекомендую использовать диапазон 10.0.0.x ну или какой-нибудь 192.168.200.х. Зачем - будет понятно дальше (надеюсь, что будет…).
С настройкой точки доступа у меня вышел интересный конфуз. Был довольно поздний вечер, как-то оно всё не очень хотело работать.
На столе лежала “кофеиновая жевательная резинка”, которую подарил “на пробу” знакомый, чьи друзья хотели открыть бизнес по торговле этим самым продуктом.
Продукт в количестве одной пластинки был употреблен. Дальше туман - очнулся, на часах 3 часа ночи, точка доступа работает, адреса раздаются по dhcp…
Как и что было именно сделано - не помню. Повторить не берусь, надеюсь помогут гайды вроде этого.
Ok, мы в собственной сети. Но позвольте, а интернет-то откуда ? Ведь требуется не просто доступ к собственному серверу, но и связь с внешним миром.
На устройстве, которое мы “окучиваем” есть USB порт, так что воткнем-ка туда второй usb wifi адаптер.
Мой был куплен на распродаже в каком-то салоне связи, обошёлся в 120 рублей. Оказался урожденным Realtek, так что модуль для ядра даже не пришлось собирать. Есть “бонус” в виде антенны, так что с приемом проблем нет. Есть проблемы со стабильностью работы через USB, но они решаются подключением не напрямую, а через usb hub.
Ок, настроили “интернеты” через второй адаптер, теперь их нужно “пробрасывать” на встроенный сетевой интерфейс.
Script time!!!
#!/bin/bash ########### echo "Usage $0 wifi_internal_(wlan1) wifi_internet(wlan2?)" #Start interface ifup $2 up sleep 3 #Enable NAT iptables --flush iptables --table nat --flush iptables --delete-chain iptables --table nat --delete-chain iptables --table nat --append POSTROUTING --out-interface $2 -j MASQUERADE iptables --append FORWARD --in-interface $1 -j ACCEPT sysctl -w net.ipv4.ip_forward=1 echo "Have you checked $2 network config ?"
Не самое лучшее решение, но работает. К сожалению, не заработал DNS, так что пришлось поставить еще и dnsmasq, который решает эту проблему.
Опять-таки, личное дело каждого, как организвать этот самый “проброс”.
Итак, на выходе имеем мобильный сервер с доступом в интернет, работающий как точка доступа.
В данный момент проверено следующее:
- Работает TOR+Privoxy
- Работает i2p 
- Работает apache, perl, python, GCC
Перспективы весьма радужны:
- Можно настроить webdav доступ и подключать нужную область файловой системы через протокол DAV (он не так плох, как кажется и поддерживается даже в Surface RT).
- Можно установить X-Server и xrdp и иметь “немного удаленный рабочий стол”.
- Можно использовать устройство для “коллективного” доступа в интернет по одному аккаунту - так, например в отеле доступ по “карточкам” - по одному подключению на один “билетик” и авторизация по мак-адресу. Не проблема - настраиваем wlan2 для этого режима и “гуляем в интернете” всей толпой.
- Мы получаем полноценный сервер, который умещается в кармане, даже не оттягивая оный.
Более того, устройство работает, как фильтрующий прокси, режет рекламу и обеспечивает какую-никакую анонимизацию через tor/privoxy/i2p. Что в наших реалиях приобретает всё большую ценность.
Теперь о недостатках.
Эти “свистки” не являются шедевром аккуратности. Два устройства из одного магазина, но разных партий дают совершенно разную картину по стабильности. Плюс, как уже говорилось - производитель способен без уведомления заменить сетевой чип на “более другой”, так что ядро Linux очень удивится и откажется поднимать WiFi.
При использовании с планшетом оно питается вовсе не “святым духом”, и “таблет” будет кормить как её, так и себя. Замеры еще предстоит сделать, но разница есть.
Устройство требовательно к питанию. Родные БП могут “рвануть” (а что, были случаи), так что лучше сразу заменить блок на более качественный, ибо разъем там всё равно microUSB.
Ну и напоследок - я провел небольшой эксперимент по работе с автономным источником питания.
На просторах китая можно спокойно приобрести устройство, которое будет генерить честные 5 вольт из четырех или двух батареек AA. Так называемый emergency charger.
Мой экземпляр может работать ещё и фонариком.
Пара слов о принципе действия - это импульсный преобразователь, который эффективно “тянет сок” из батареек и выдает достаточный для небольшой подзарядки ток и напряжение 5 вольт.
Достоинство в том, что батареи расходуются весьма эффективно. Более того - он может завестись и от 2х батарей, просто проработает менее длительное время.
Пишем простенький скрипт.
#!/bin/sh while true do uptime >timestamp.txt sync sleep 5 done
Запускаем скрипт в бэкграунде и ждем. Тем временем грузим систему - браузим через tor, включаем i2p. Ток должен быть близок к одному амперу для того, чтобы вся система, включая внешний usb wifi и хаб - работали.
Выбор батареек пал на “Космос”. Это дешевые щелочные батареи, но при этом достаточно эффективные. Конечно есть более другие бренды, но чтобы не нарваться на подделку - будем использовать среднестатистические, дешёвые и проверенные.
На заметку - хорошая технология тестирования описана тут и тут.
В сухом остатке:
22:14:26 up 39 min, 0 users, load average: 0.39, 0.33, 0.37
39 минут. Много или мало ? Для таких батареек и устройства, потребляющего ток, близкий к амперу - неплохо. Хорошо бы попробовать на очень брендовых и на очень хороших аккумуляторах вроде Sanyo.
Но и так картина ясна.
Пора закругляться. В данный момент есть идея попробвать аналогичные устройства на двухядерном процессоре Allwinner. Одно пойдет под новый домашний сервер, а второе под полноценную мобильную рабочую станцию.
Посмотрим, что получится.