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

Впрочем, если говорить без шуток — мне надоело вытаскивать из фотоаппарата флэшку или втыкать в него шнурок, и потому я купил для него карточку 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:

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