Расширение памяти на Orange Pi 3 LTS (и не только) посредством установки SD карты
Viktor CherepanovПриветствую, друзья!
Все мы любим делать таймлапсы для... А зачем?
Впрочем, каждый найдет ответ на этот вопрос сам. Суть данной статьи - научить вас использовать внешнюю SD карту (по идее, аналогичный алгоритм уместен и для обычных накопителей, будь то обычная флешка, или HDD. Далее по тексту я буду мешать флешка/sd карта - это абсолютно равноценные в нашей ситуации вещи) для того, чтобы хранить G-code и те самые таймлапсы, что нещадно забивают куцые 8 гигабайт ЕММС нашего одноплатника.
__________________________________________________________________Важное предисловие, друзья! В статье описан метод подключения флешки в формате NTFS. В ходе прочтения этой статьи, Вы сможете хранить файлы таймлапса на флешке/носителе, но вот Gcode будут по прежнему сохраняться во внутреннюю память одноплатника! Если Вы хотите хранить на флешке и файлы Gcode, вам в мою следующую статью. Есть несколько немаловажных нюансов, в которые я посвящу Вас.
Подробнее по ссылке
__________________________________________________________________
Давайте начнем с начала.
- В качестве софта рекомендую использовать mobaXterm. Вообще, крайне рекомендую данное ПО за обширный функционал, наличие GUI, что упрощает работу в разы. Поэтому можете смело советовать приложение друзьям, родным и близким, а также подкидывать прохожим в карманы. Есть бесплатная версия, так что совесть остается чиста.

- Непосредственно одноплатник и SD карта.
Что ж, приступим!
Как ни странно, от нас требуется вставить флешку в одноплатник, дать питание и подключиться к нему по SSH.
Далее нам требуется узнать UUID и имя нашего носителя.
UUID - это уникальный идентификатор, используемый для идентификации устройства. Как понятно из определения, у каждого устройства свой UUID (а также, он может меняться)
- Вводим в консоль команду:
sudo fdisk -l
Опционально, может потребоваться ввести пароль юзера.

В моем случае флешка имеет объем 64 гигабайта, имеет один раздел и называется /dev/mmcblk0p1
- Далее, нам нужно узнать UUID. Вводим команду:
sudo blkid
Видим следующее:

Так, мы узнали название, UUID. Считайте, сделали бОльшую часть дела.
Далее, нам требуется создать директорию, куда будем монтировать флешку.
У нас два варианта:
- Вариант 1 (он же легкий):
Просто проваливаемся в директорию /mnt/ через mobaXterm и правой кнопкой мыши создаем.

- Вариант 2 (классический):
sudo mkdir /mnt/(ваше название)
После проверяем факт создания файлов командой ls /mnt/ либо через любимый нами GUI.
- Далее от нас требуется сделать непосредственно маунт:
sudo mount /dev/(название вашего устройства) /mnt/(папка, что вы создали шагом ранее)
- Затем размонтируем и отформатируем флешку:
umount /dev/(название вашего устройства)
- Обязательный шаг: форматирование
mkfs.ntfs /dev/(название вашего устройства)
Процесс займет некоторое время, пугаться не стоит. Но вот сделать нормальное охлаждение микрокомпьютеру очень советую - он прилично греется в процессе.

Подведем промежуточные итоги:
- У нас есть флешка, отформатированная под читаемый микрокомпьютером формат
- У нас есть папка, куда нужно "крепить" флешку.
Далее, мы можем действовать вручную, каждый раз прописывая
sudo mount /dev/(название вашего устройства) /mnt/(папка)
Либо действовать по-другому :
С автоматизацией этого процесса нам поможет файл fstab:
Файл fstab - это текстовый файл, который содержит информацию о различных файловых системах и устройствах хранения информации в вашем компьютере. Это всего лишь один файл, определяющий, как диск и/или раздел будут использоваться и как будут встроены в остальную систему. Полный путь к файлу - /etc/fstab. Этот файл можно открыть в любом текстовом редакторе, но редактировать его возможно только от имени суперпользователя, т.к. файл является важной, неотъемлемой частью системы, без него система не загрузится.
// Перепроверьте UUID носителя перед следующими действиями!
Если что-то будет неправильно прописано, система не будет грузиться до тех пор, пока вручную, через экран, не потрете строки в файле fstab!//
## Как выяснилось, не у всех пользователей GID и UID равны 1000, проверьте это командой id! По дефолту значения равны 1000, но могут изменяться!##
Проваливаемся в нужную директорию /etc/, если пользуемся mobaXterm, то жмем ПКМ -> open with default text editor
Либо прописываем в терминале команду
nano etc/fstab
Вот что мы увидим

Так или иначе, независимо от выбранного способа, интерфейс будет +- одинаковым.
Нам требуется прописать в самый низ следующее:
UUID=(UUID нашего носителя) /mnt/(имя папки) ntfs-3g defaults,nls=utf8,umask=000,dmask=027,fmask=137,uid=(ВАШ UID),gid=(ВАШ GID),windows_names 0 0
Должно получиться так:

После чего сохраняем файл (если делали через nano, то ctrl+x, затем Y и enter), либо через значок дискеты слева вверху. Соглашаемся с заменой файла.
Что ж, Вы бесподобны! Можете порадовать себя чем-то вкусным. Как бонус, прикладываю пример моих настроек для таймлапса из файла moonraker.conf:
[timelapse]
snapshoturl: http://ваш IP:8081/?action=snapshot
output_path: /mnt/ваша папка/video/
frame_path: /mnt/ваша папка/tmp/
ffmpeg_binary_path: /usr/bin/ffmpeg
Для этого создаем директории:
sudo mkdir /mnt/ваша папка/video
sudo mkdir /mnt/ваша папка/tmp
Соответственно, файлы таймлапса - в папке видео, скриншоты - в папке tmp.
Ранее я писал, что moonraker не подхватывает носитель. Что ж, я был не прав.

Что ж, друзья, на этом все - до новых встреч!