Всі хоч раз замислювалися як швидко зробити копію телефону або окремої теки, або файлу. Або навпаки залити файли на телефон. Зараз ми вам розповімо як легко і швидко передавати файли будь-якого виду з вашого пристрою на комп’ютер з Linux і назад.
Один з головних недоліків мобільних пристроїв полягає в тому, наскільки складно може бути передача даних з вашого пристрою на комп’ютер. Мобільні пристрої мають довгу історію цього. Ранні мобільні пристрої, такі як пристрої Pilot і Handspring PDA, вимагали спеціальне програмне забезпечення для синхронізації. Старим iPod був потрібний інтерфейс для конкретної платформи. Сучасні мобільні пристрої за замовчуванням відправляють ваші дані в обліковому записі онлайн, тому ви можете завантажити їх на свій комп’ютер.
Хороша новина – якщо ви працюєте в Linux, ви, ймовірно, можете під’єднатися до мобільного пристрою за допомогою gPhoto2. Спочатку розроблений як спосіб зв’язку з цифровими камерами, коли цифрова камера була просто камерою, gphoto2 тепер може спілкуватися з багатьма різними видами мобільних пристроїв.
- Встановити gPhoto2 на
- Fedora або RHEL
- Debian або Ubuntu
- Перевірка на сумісність gPhoto2 з вашим пристроєм
- Знайди свій мобільний пристрій
- Опитайте ваш пристрій на підтримувані функції
- Прибрати конфлікти при взаємодії gphoto2 з пристроєм
- Взаємодія з вашим пристроєм
- Файли та теки на вашому пристрої
- Отримання файлів з вашого пристрою
- Завантаження файлів на ваш пристрій
- Список файлів на вашому пристрої
- Вивчення ваших варіантів
Не дозволяйте назві програми обдурити вас – вона може обробляти усі типи файлів, а не тільки фотографії. Більш того, вона підтримує скрипти, гнучкі та набагато більш потужні, ніж більшість інтерфейсів GUI. Це найбільш зручний спосіб синхронізації даних між вашим комп’ютером і мобільним пристроєм.
Встановити gPhoto2
Швидше за все, у вашій системі Linux вже встановлена libgphoto2, тому що це ключова бібліотека для взаємодії з мобільними пристроями.
Тому вам необхідно встановити всього лише програму gPhoto2.
на Fedora або RHEL:
sudo dnf install gphoto2
на Debian або Ubuntu:
sudo apt install gphoto2
Перевірка на сумісність gPhoto2 з вашим пристроєм
Щоб переконатися, що ваш мобільний пристрій підтримується, використовуйте:--list-cameras
Щоб побачити весь список підтримуваних пристроїв введіть команду:
gphoto2 --list-cameras | less
Що б звузити коло пошуку і вибрати відразу саме ваше, ви можете використовувати додатково команду grep
. Наприклад, якщо у вас Samsung Galaxy, тоді використовуйте grep
з виключеною чутливістю до регістру за допомогою перемикача:-i
gphoto2 --list-cameras | grep -i galaxy
результат:
«Samsung Galaxy models (MTP)»
«Samsung Galaxy models (MTP+ADB)»
«Samsung Galaxy models Kies mode»
Це підтверджує, що пристрої Samsung Galaxy підтримуються через MTP і MTP з ADB.
Якщо ви не можете знайти свій пристрій в списку, ви все одно можете спробувати використовувати gphoto2 на випадок, якщо ваш пристрій насправді маскується під інший бренд.
Знайди свій мобільний пристрій
Щоб використовувати gPhoto2, спочатку необхідно під’єднати мобільний пристрій до комп’ютера, встановити режим MTP і, можливо, вам потрібно дати комп’ютеру дозвіл на взаємодію з ним. Зазвичай для цього потрібно фізична взаємодія з вашим пристроєм, зокрема натискання кнопки в інтерфейсі, щоб дозволити доступ до каталогу файлів з комп’ютера, до якого він тільки що підключений.
Якщо ви не надаєте комп’ютеру доступ до мобільного телефону, gPhoto2 виявить ваш пристрій, але не зможе з ним взаємодіяти.
Щоб переконатися, що ваш комп’ютер виявляє підключений пристрій, використовуйте параметр: --auto-detect
gphoto2 --auto-detect
Наприклад, мій Xiaomi Redmi 8 Pro визначився ось так:
Модель Порт
----------------------------------------------------------
Xiaomi Mi-2s (id2) (MTP) usb:001,005
Якщо ваш пристрій не виявлено, спочатку перевірте кабелі, а потім переконайтеся, що ваш пристрій налаштовано для взаємодії через MTP або ADB, або будь-який протокол, який підтримує gPhoto2 для вашого пристрою, як показано в вихідних даних --list-cameras
.
Опитайте ваш пристрій на підтримувані функції
У сучасних пристроях зазвичай є безліч потенційних функцій, але підтримуються не всі. Ви можете це дізнатися напевно з опцією: --abilities
.
gphoto2 --abilities
В режиме “Передача файлов” на телефоне, я получил вот такой ответ:
Функции фотоаппарата: Xiaomi Mi-2s (id2) (MTP)
Поддержка послед. порта: нет
Поддержка USB: да
Режимы съёмки: Драйвер не поддерживает режим съёмки
Поддержка настройки: нет
Удаление выбранных файлов с фотоаппарата: да
Удаление всех файлов с фотоаппарата: нет
Поддержка миниатюр: нет
Поддержка загрузки файлов: да
А ось в режимі “Передача файлів PTP” вже цікавіше результат, відповідей “так” вже більше. Правда і визначився він незрозуміло:
Функции фотоаппарата: USB PTP Class Camera
Поддержка послед. порта: нет
Поддержка USB : да
Режимы съёмки: Фото, Предв. просмотр
Поддержка настройки: да
Удаление выбранных файлов с фотоаппарата: да
Удаление всех файлов с фотоаппарата: нет
Поддержка миниатюр: да
Поддержка загрузки файлов: да
Якщо у вас під’єднано тільки один пристрій, тоді нема потреби вказувати, який саме пристрій ви запитуєте. Однак якщо ви під’єднали більше одного пристрою, з яким gPhoto2 може взаємодіяти, ви можете вказати пристрій по порту, моделі камери або usbid.
Прибрати конфлікти при взаємодії gphoto2 з пристроєм
У вас може виникнути конфлікт чинних додатків при доступі до пристрою і ви можете отримати наступне повідомлення:
*** Ошибка ***
Ошибка в библиотеке ввода-вивода (‘Could not claim the USB device’): Could not claim interface 0 (Устройство или ресурс занято). Make sure no other program (gvfs-gphoto2-volume-monitor) or kernel module (such as sdc2xx, stv680, spca50x) is using the device and you have read/write access to the device.
*** Ошибка (-53: «Could not claim the USB device») ***Для получения отладочных сообщений воспользуйтесь параметром –debug.
Отладочные сообщения могут помочь найти решение вашей проблемы.
Если вы хотите какие-либо сообщения gphoto с список рассылки авторов
программы, то запускайте
gphoto2 со следующими параметрами:env LANG=C gphoto2 –debug –debug-logfile=my-logfile.txt –list-folders
Проверьте, что аргументы надёжно экранированы.
Це усувається шляхом завершення пару процесів, які вже працюють з вашим пристроєм. На прикладі мого випадку:
$ ps aux | grep gphoto we 18618 0.0 0.0 309520 15800 ? Ssl лип03 0:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor $ kill -9 18618
$ ps aux | grep gvf | grep mtp we 18622 0.0 0.0 282812 6908 ? Ssl лип03 0:00 /usr/lib/gvfs/gvfs-mtp-volume-monitor we 27675 0.2 0.0 532868 10300 ? Sl 10:40 0:00 /usr/lib/gvfs/gvfsd-mtp --spawner :1.5 /org/gtk/gvfs/exec_spaw/17 $ kill -9 18622 $ kill -9 27675
Після цього вам нічого не повинно заважати для доступу до пристрою. Але пам’ятайте, що після перезавантаження вони знову з’являться.
Взаємодія з вашим пристроєм
Якщо ваш пристрій підтримує захоплення, то ви можете захоплювати медіа через камеру з вашого комп’ютера. Наприклад, щоб зробити знімок:
gphoto2 --capture-image
Щоб зробити знімок і відразу ж перенести його на комп’ютер, на якому ви перебуваєте:
gphoto2 --capture-image-and-download
Ви також можете захоплювати відео і звук.
Якщо у вас під’єднано більше однієї камери, ви можете вказати, який пристрій ви хочете використовувати, по порту, моделі камери або usbid:
gphoto2 --camera "Samsung Galaxy models (MTP)" --capture-image-and-download
Файли та теки на вашому пристрої
Щоб розумно взаємодіяти з файлами на вашому пристрої, вам необхідно розуміти структуру файлової системи, доступної для gPhoto2.
Ви можете подивитися доступні теки з опцією::--get-folders
$ gphoto2 --list-folders There are 2 folders in folder '/'. - store_00010001 - store_00020002 There are 0 folders in folder '/store_00010001'. There are 0 folders in folder '/store_00020002'.
Кожна з цих тек є місцем зберігання на пристрої.
В даному прикладі:
store_00010001 - це внутрішнє сховище;
store_00020002 - SD-карта.
Ваш пристрій може мати іншу структуру.
Отримання файлів з вашого пристрою
Тепер, коли ви знаєте розташування тек на вашому пристрої, ви можете завантажувати файли з вашого пристрою. Є багато різних опцій, які ви можете використовувати, в залежності від того, що ви хочете взяти з пристрою.
Ви можете отримати конкретний файл, якщо ви знаєте повний шлях:
gphoto2 --get-file IMG_0001.jpg --folder /store_00010001/myphotos
Ви можете отримати всі файли одночасно:
gphoto2 --get-all-files --folder /store_00010001/myfiles
Ви можете отримати тільки аудіо файли:
gphoto2 --get-all-audio-data --folder /store_00010001/mysounds
Існують і інші варіанти. Більшість з них залежать від того, що підтримують ваш пристрій і використовуваний протокол.
Завантаження файлів на ваш пристрій
Тепер, коли ви знаєте свої потенційні цільові теки, ви можете завантажувати файли зі свого комп’ютера на свій пристрій. Наприклад, припускаючи, що в вашому поточному каталозі є файл example.epub
, ви можете відправити його на ваш пристрій з опцією --upload-file
спільно з опцією --folder
, щоб вказати, в яке місце зберігання ви хочете завантажити:
gphoto2 --upload file example.epub --folder store_00010001
Ви можете створити каталог на своєму пристрої, якщо ви віддаєте перевагу завантажувати декілька файлів в нову теку:
gphoto2 --mkdir books --folder store_00010001 gphoto2 --upload-file *.epub --folder store_00010001/books
Список файлів на вашому пристрої
Щоб переглянути файли, завантажені на ваш пристрій, використовуйте опцію: --list-files
$ gphoto2 --list-files --folder /store_00010001 There is 1 file in folder '/store_00010001' #1 example.epub 17713 KB application/x-unknown $ gphoto2 --list-files --folder /store_00010001/books There is 1 file in folder '/store_00010001' #1 example0.epub 17713 KB application/x-unknown #2 example1.epub 12264 KB application/x-unknown [...]
Вивчення ваших варіантів
Велика частина функціоналу gPhoto2 залежить від вашого пристрою, тому ваш досвід може відрізнятися від інших.
Є багато інших опцій. вивчіть їх:
gphoto2 --help