robinbobin ([personal profile] robinbobin) wrote2013-08-16 02:45 am

флешка  компьютер с WIFI linux и FTP

Дома появился новый компьютер...

...с которым, можно сказать, моё стремление к миниатюризации достигло предела. Выглядит он вот так:

transcend_sdwifi

Впрочем, если говорить без шуток — мне надоело вытаскивать из  фотоаппарата флэшку или втыкать в него шнурок, и потому я купил для него  карточку Transcend SD Wi-Fi  — флэшку со встроенным адаптером Wi-Fi, который может как  самостоятельно организовывать точку доступа, так и соединяться с уже  существующей (в настройках прописывается до трёх точек доступа  одновременно).

К сожалению, у этой карточки есть недостаток: софт для работы с ней  по сети существует только для смартфонов (да и то — несколько убогий), а  вот чтобы сгрузить фоточки на обычный компьютер, надо лезть в  веб-интерфейс оной карточки через браузер.

К счастью, победить это можно буквально за пять минут. В шутке про  компьютер правды была довольно изрядная доля: внутри карточки стоит  ARM-процессор (ARM926EJ-S), 32 мегабайта памяти и Linux.

Если немного поискать в интернете, то без особого труда обнаруживается руководство по взлому этого линукса, благо, ошибок в веб-интерфейсе — вагон и маленькая тележка. Интересующиеся могут почитать подробнее (а также тут и тут),  но для нас, как ищущих лёгких путей, сейчас существенен один пункт: при  загрузке (то есть при каждой подаче на карточку питания) линукс  проверяет, нет ли в корне общедоступной части карточки (той, что мы  видим в «Проводнике», когда втыкаем карточку в ридер) файла autorun.sh.  Если есть — он выполняется как обычный shell-скрипт.

Соответственно, мы можем без труда при включении карточки выполнить  любые свои команды — например, запустить на ней ftp-сервер. Правда, в  оригинальной прошивке ftp-сервера нет — но и это не беда, так как мы  можем сначала его из этого же autorun.sh поставить!

Первым делом качаем свежую сборку busybox для ARMv5.  Busybox — это программа, реализующая все основные утилиты командной  строки линукса, и специально рассчитанная на использование на маломощных  системах. Для нас, впрочем, сейчас важно лишь то, что в её состав  входит простенький ftp-сервер (полностью состав можно посмотреть тут; вообще говоря, в оригинальной прошивке тоже стоит busybox, но от него отрезано почти всё интересное).

Скачиваем, кладём в корень флэшки.

Пишем autorun.sh и кладём туда же:
cp /mnt/sd/busybox-armv5l /sbin/busybox
chmod a+x /sbin/busybox
/sbin/busybox tcpsvd -E 0.0.0.0 21 /sbin/busybox ftpd -w /mnt/sd/DCIM &

Первая строка копирует наш busybox внутрь линукса — это надо делать  при каждом старте, т.к. линукс разворачивается из образа, и все  изменения в нём погибают вместе с выключением питания. Вторая даёт права  на запуск этого файла, третья — запускает ftpd (FTP-сервер) на порту 21  и с каталогом /mnt/sd/DCIM (это каталог DCIM в корне флэшки в том виде,  в каком она видна в карт-ридере, то есть собственно каталог с  фотографиями). Параметр «-w» у ftpd даёт разрешение не только читать, но  и писать по FTP.

Внимание! Переносы строк в autorun.sh должны быть UNIX-стайл, то есть одним байтом LF. Под Windows такой файл можно сделать, например, в Notepad++, а если вы хотите в точности повторить мою схему, просто взять его тут.

Собственно, всё. Ставим флэшку в фотоаппарат, включаем, ждём  минуту-другую, пока линукс на ней прочухается и подключится к WiFi (я  предполагаю, что все логины-пароли вы уже настроили через штатный  интерфейс) — и voila:

olympus-sd

Для удобства на домашнем роутере для MAC-адреса SD-карточки у меня прописан постоянный IP и имя.

Дальше уже можно делать всё, что можно делать с FTP — например,  синхронизировать фоточки между фотоаппаратом и компьютером не руками, а с  помощью утилиты типа Allway Sync.  Или на домашнем сервере, если такой есть, запускать скриптик, который  при виде вышедшей в сеть SD-карточки будет автоматически сгребать с неё  новые фоточки.

В общем, ничего сложного и три минуты работы руками — а сколько удовольствия.

[identity profile] traum-vision.livejournal.com 2013-08-16 11:15 am (UTC)(link)
Ухтышка, я про такие карты только слышала. Надо брать.