Tablet little helper

2014-06-01

Santa's little helper

Продвижение “таблетов” на рынке идёт полным ходом. И, порой, прогресс шагает настолько сильно, что “перешагивает” через нужды разработчиков ПО, да и просто тех, кто использует планшет не только для “Вконтактика”, скайпов, и прочей лабуды.

То есть тех, кто пытается не только потреблять контент, но и создавать оный. Windows 8, ориентированный на тачскрин частично решает проблему (если у Вас x86-совместимый процессор), но Windows RT не обладает столь богатой базой десктопных приложений (да их просто нет).

Посему, приходится изворачиваться и возвращать себе привычную рабочую среду своими силами.

Кстати, Android, в целом ушёл не сильно дальше. Ниже будет описан кое-какой опыт использования “переносного” сервера, который составит отличную компанию планшету.

Итак, суть проблемы - есть желание использовать планшет в качестве рабочей станции, но:

  • База софта не позволяет развернуться
  • Планшет имеет ограниченные ресурсы (малый размер SSD, предположим)
  • Каждый должен заниматься своим делом

Года два назад случился “бум” так называемых Android-стиков. Маленьких компьютеров, ценой до 70 долларов, которые превращали ваш телевизор за 10000 рублей в Smart TV стоимостью, как минимум 25000 рублей.

Вот один из них.

UG802

Игрушки, порой, надоедают и пытливые умы пользователей стали думать об из “нецелевом” использовании. Ну и додумали до установки 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 адаптер.

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&nbsp
  • Работает apache, perl, python, GCC

Перспективы весьма радужны:

  • Можно настроить webdav доступ и подключать нужную область файловой системы через протокол DAV (он не так плох, как кажется и поддерживается даже в Surface RT).
  • Можно установить X-Server и xrdp и иметь “немного удаленный рабочий стол”.
  • Можно использовать устройство для “коллективного” доступа в интернет по одному аккаунту - так, например в отеле доступ по “карточкам” - по одному подключению на один “билетик” и авторизация по мак-адресу. Не проблема - настраиваем wlan2 для этого режима и “гуляем в интернете” всей толпой.
  • Мы получаем полноценный сервер, который умещается в кармане, даже не оттягивая оный.

Более того, устройство работает, как фильтрующий прокси, режет рекламу и обеспечивает какую-никакую анонимизацию через tor/privoxy/i2p. Что в наших реалиях приобретает всё большую ценность.

Теперь о недостатках.

Эти “свистки” не являются шедевром аккуратности. Два устройства из одного магазина, но разных партий дают совершенно разную картину по стабильности. Плюс, как уже говорилось - производитель способен без уведомления заменить сетевой чип на “более другой”, так что ядро Linux очень удивится и откажется поднимать WiFi.

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

Устройство требовательно к питанию. Родные БП могут “рвануть” (а что, были случаи), так что лучше сразу заменить блок на более качественный, ибо разъем там всё равно microUSB.

Ну и напоследок - я провел небольшой эксперимент по работе с автономным источником питания.

На просторах китая можно спокойно приобрести устройство, которое будет генерить честные 5 вольт из четырех или двух батареек AA. Так называемый emergency charger.

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. Одно пойдет под новый домашний сервер, а второе под полноценную мобильную рабочую станцию.

Посмотрим, что получится.


В массы

В трубу