Quantcast
Channel: Linux — Winreview.ru
Viewing all articles
Browse latest Browse all 34

Пробуем использовать Debian Wheezy, MTP и Nook HD+ в одной упряжке

$
0
0

Как-то совершенно незаметно для меня Linux практически вытеснил изделия Редмонда на моем домашнем компьютере. Не могу сказать, что именно сподвигло меня на этот шаг, непревзойденная скорость работы LXDE/Openbox, либо же агрессивное навязывание мне дурацких кирпичей в качестве интерфейса взаимодействия с ОС, но как бы там ни было, в Windows я теперь - гость.

Несколько дней назад я разжился устройством Nook HD+, этакая 16гиговая читалка с шикарным экраном и шикарным аккумулятором:

NOOK HD+

Картинка с wired.com

Девайс был приобретен в качестве планшета по халявной цене 150$, непосредственно читалка мне не требовалась, ибо для этих целей трудится Kindle 4.
Это стало причиной, по которой стоковая прошивка была повыпилена, а на её место был водружен CyanogenMod на базе Android 4.2.2.
И всё бы ничего, но девайс не желает монтироваться в виде USB - накопителя, вместо этого предлагается использовать протокол MTP.

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

Для работы с протоколом MTP в линуксе используются библиотеки fuse, libmtp и набор утилит mtp-tools и mtpfs.

В Debian Wheezy имелось всё, кроме пакета mtpfs, который пришлось собрать. Дело нехитрое, но результат оказался досадным: я смог подключить устройство, смог прочитать его файлы, но вот записать на него ничего не смог. Поиски альтернатив через Wiki Арча привели меня к решению  - jmtpfs.

Jmtpfs - это альтернатива mtpfs, основная на FUSE и libmtp файловая система, призванная сделать обмен файлами с MTP-устройством прозрачным и простым, буквально такой же как c обычным USB накопителем.

И я должен отметить, что эту цель jmtpfs достигла.

Приготовления

  • Во-первых, надо скачать исходники jtmpfs.
  • Во-вторых, надо доставить необходимые пакеты для сборки, мне пришлось ставить такие:
    Код: Выделить всё
    #apt-get install mtp-tools libmtp-dev fuse libmtp9 pkg-config libfuse-dev libglib2.0-dev libmagic1 libmagic-dev checkinstall

    Соглашаемся на доустановку зависимостей, если потребуется.

Собираем jmtpfs

Перед сборкой следует открыть файл src\jtmpfs.cpp и дописать включение заголовочного файла:

Код: Выделить всё
#include <unistd.h>

Почему она там отсутствует, я не знаю, без неё ничего не соберется.

Код: Выделить всё
#./configure

Внимательно смотрим вывод команды, нет ли ошибок.
Код: Выделить всё
#make
#checkinstall

Checkinstall соберет *.deb пакет, который можно поставить любым удобным способом, например, dpkg -i /путь/к-пакету-deb.

Настраиваем FUSE

  • В /etc/fuse.conf раскомментируем строчку user_allow_over. Это даст права монтировать FUSE файловые системы обычным пользователям
  • Подключаем Nook HD+, запускаем утилиту mtp-detect из состава пакета mtp-tools, она подскажет VendorID и ProductID, которые нам сейчас понадобятся. В моем случае это 2080 и 0005 соответственно.Получив идентификаторы, создаем файл с правилами udev, ну например, /etc/udev/rules.d/50-mtp.rules.
    Перезапускаем udev:
    Код: Выделить всё
    service udev restart
  • Добавляем текущего пользователя в группу fuse:
    Код: Выделить всё
    adduser user_login fuse
  • создаем папку, в которую будем монтировать устройство, и выставляем на её права. Можно использовать папку в своем домашнем каталоге, я предпочитаю иметь папку в /media
    Код: Выделить всё
    #mkdir /media/nook
    #chmod 777 /media/nook

Вот теперь всё. Подключив кабелем Nook HD+, мне остается ввести команду

Код: Выделить всё
$jmtpfs /media/nook

чтобы получить доступ к файлам. Чтобы отключить доступ, понадобится команда

Код: Выделить всё
fusermount -u /media/nook

 

UPD: Залил готовый пакет jtmpfs 0.4.0 для Debian Wheezy amd64.


Viewing all articles
Browse latest Browse all 34

Trending Articles