OctoPrint на X96 Mini — различия между версиями
Avp (обсуждение | вклад) |
Avp (обсуждение | вклад) (→OctoPrint) |
||
| (не показано 8 промежуточных версий этого же участника) | |||
| Строка 5: | Строка 5: | ||
Необходимо скачать <code>Armbian_20.10_Arm-64_focal_current_5.9.0.img.xz</code> (или более новую версию). Ссылка: https://androidfilehost.com/?fid=10763459528675575689 | Необходимо скачать <code>Armbian_20.10_Arm-64_focal_current_5.9.0.img.xz</code> (или более новую версию). Ссылка: https://androidfilehost.com/?fid=10763459528675575689 | ||
| − | Качается долго и нестабильно -- копия архива у нас в Syncthing. | + | Качается долго и нестабильно -- копия архива у нас в [[сервис::Syncthing]]. |
== Распаковка образа и запись на MicroSD == | == Распаковка образа и запись на MicroSD == | ||
| Строка 74: | Строка 74: | ||
pip install pip --upgrade | pip install pip --upgrade | ||
pip install octoprint | pip install octoprint | ||
| − | useradd octoprint | + | useradd -m octoprint |
usermod -a -G tty octoprint | usermod -a -G tty octoprint | ||
| − | usermod -a -G dialout | + | usermod -a -G dialout octoprint |
== Автозапуск == | == Автозапуск == | ||
| Строка 105: | Строка 105: | ||
systemctl enable octoprint.service | systemctl enable octoprint.service | ||
| + | |||
| + | = Видео-вещание = | ||
| + | |||
| + | == Установка "mjpg-streamer" == | ||
| + | |||
| + | Установка зависимостей: | ||
| + | |||
| + | apt install libjpeg8-dev imagemagick libv4l-dev cmake | ||
| + | ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h | ||
| + | |||
| + | Скачивание и сборка "mjpg-streamer": | ||
| + | |||
| + | cd /opt/ | ||
| + | wget https://github.com/jacksonliam/mjpg-streamer/archive/refs/heads/master.zip | ||
| + | unzip master.zip | ||
| + | cd mjpg-streamer-master/mjpg-streamer-experimental/ | ||
| + | make -j$(nproc) | ||
| + | make install | ||
| + | |||
| + | == Скрипт запуска == | ||
| + | |||
| + | Скрипт запуска видео-вещания на порту 8080 и всех доступных сетевых интерфейсах: | ||
| + | |||
| + | #!/bin/bash | ||
| + | |||
| + | LD_LIBRARY_PATH=/usr/local/lib/mjpg-streamer/ mjpg_streamer \ | ||
| + | -i "input_uvc.so -y -n -d /dev/video2" \ | ||
| + | -o "output_http.so -n -w /var/www/" | ||
| + | |||
| + | == SystemD Сервис == | ||
| + | |||
| + | Содержимое файла <code>/lib/systemd/system/webcam.service</code>: | ||
| + | |||
| + | [Unit] | ||
| + | Description=Webcam Streaming Service | ||
| + | |||
| + | [Service] | ||
| + | ExecStart=/opt/mjpg_streamer_start.sh | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | |||
| + | Добавление в автозапуск: | ||
| + | |||
| + | systemctl enable --now webcam | ||
| + | |||
| + | == Источники == | ||
| + | * [https://blog.miguelgrinberg.com/post/how-to-build-and-run-mjpg-streamer-on-the-raspberry-pi How to build and run MJPG-Streamer on the Raspberry Pi] | ||
| + | |||
| + | = Опционально: firewall + доступ по [[сервис::Yggdrasil]] = | ||
| + | |||
| + | == <code>firewalld</code> == | ||
| + | |||
| + | Поскольку [[сервис::Yggdrasil]] делает хост публичным внутри своей сети, настройка firewall является необходимостью. | ||
| + | |||
| + | === Установка и запуск === | ||
| + | |||
| + | apt install firewalld | ||
| + | systemctl enable --now firewalld | ||
| + | |||
| + | === Настройка правил === | ||
| + | |||
| + | firewall-cmd --zone=public --add-port=5000/tcp --permanent | ||
| + | firewall-cmd --zone=public --add-interface=tun0 --permanent | ||
| + | |||
| + | == [[сервис::Yggdrasil]] == | ||
| + | |||
| + | === Установка === | ||
| + | |||
| + | sudo mkdir -p /usr/local/apt-keys | ||
| + | gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt | ||
| + | gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo tee /usr/local/apt-keys/yggdrasil-keyring.gpg > /dev/null | ||
| + | echo 'deb [signed-by=/usr/local/apt-keys/yggdrasil-keyring.gpg] http://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list | ||
| + | apt update | ||
| + | apt install yggdrasil | ||
| + | |||
| + | === Настройка === | ||
| + | |||
| + | В файл <code>/etc/yggdrasil.conf</code> необходимо добавить [https://github.com/yggdrasil-network/public-peers публичных пиров] в раздел <code>Peers</code>. | ||
= Источники = | = Источники = | ||
* Статья по установке Armbian GNU/Linux: https://github.com/kdrapel/x96mini_linux | * Статья по установке Armbian GNU/Linux: https://github.com/kdrapel/x96mini_linux | ||
* "Install Octoprint on Linux – Complete Guide!" -- https://3dprintscape.com/install-octoprint-on-linux/ | * "Install Octoprint on Linux – Complete Guide!" -- https://3dprintscape.com/install-octoprint-on-linux/ | ||
| + | |||
| + | [[Категория:База знаний]] | ||
Текущая версия на 15:46, 27 июля 2023
Содержание
Введение
Данная статья показывает, как развернуть OctoPrint на X96 Mini.
Установка Armbian GNU/Linux
Необходимо скачать Armbian_20.10_Arm-64_focal_current_5.9.0.img.xz (или более новую версию). Ссылка: https://androidfilehost.com/?fid=10763459528675575689
Качается долго и нестабильно -- копия архива у нас в Syncthing.
Распаковка образа и запись на MicroSD
Далее необходимо распаковать архив и записать на флешку (минимум 8ГБ объём должен быть):
xz -d Armbian_20.10_Arm-64_focal_current_5.9.0.img.xz dd if=Armbian_20.10_Arm-64_focal_current_5.9.0.img of=/dev/mmcblk0
Переименование u-boot-s905x-s912
Далее нужно подмонтировать загрузочный раздел с флешки и переименовать там один файл:
cd /boot/ mv 'u-boot-s905x-s912' 'u-boot.ext'
Редактирование extlinux.conf
Нужно ещё отредактировать файл /extlinux/extlinux.conf, раскомментировав часть строк в разделе "aml s9xxx" и закомментировав подобные строки выше этого раздела. Должно получиться следующее:
LABEL Armbian LINUX /zImage INITRD /uInitrd # rk-3399 #FDT /dtb/rockchip/rk3399-rock-pi-4.dtb #FDT /dtb/rockchip/rk3399-nanopc-t4.dtb #FDT /dtb/rockchip/rk3399-roc-pc-mezzanine.dtb #APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=uart8250,mmio32,0xff1a0000 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 # rk-3328 #FDT /dtb/rockchip/rk3328-roc-pc.dtb #FDT /dtb/rockchip/rk3328-box-trn9.dtb #FDT /dtb/rockchip/rk3328-box.dtb #APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=uart8250,mmio32,0xff130000 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 # aw h6 #FDT /dtb/allwinner/sun50i-h6-tanix-tx6.dtb #APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyS0,115200 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 video=HDMI-A-1:e #APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyS0,115200 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 mem=2048M video=HDMI-A-1:e # aml s9xxx #FDT /dtb/amlogic/meson-gxbb-p200.dtb FDT /dtb/amlogic/meson-gxl-s905x-p212.dtb #FDT /dtb/amlogic/meson-gxm-q200.dtb #FDT /dtb/amlogic/meson-g12a-x96-max.dtb #FDT /dtb/amlogic/meson-g12b-odroid-n2.dtb APPEND root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0
Установка флешки и перезагрузка
- Отключаем X96 Mini
- Вставляем MicroSD
- Используя зубочистку или что-то подобное, аккуратно нажимаем на кнопку "сброс" внутри разъёма AV под аудио-джек.
- Подключаем питание, удерживая кнопку "сброс".
- На подключённом HDMI-экране должен быть виден процесс загрузки GNU/Linux.
- После загрузки система сама должна предложить настроить все параметры. По-умолчанию она доступна по SSH на порту 22 и с логином
rootи паролем "1234" (рекомендуется поменять.)
OctoPrint
apt install python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential cd /opt/ mkdir OctoPrint python3 -m venv OctoPrint cd OctoPrint source bin/activate pip install pip --upgrade pip install octoprint useradd -m octoprint usermod -a -G tty octoprint usermod -a -G dialout octoprint
Автозапуск
wget https://github.com/OctoPrint/OctoPrint/raw/master/scripts/octoprint.service mv octoprint.service /etc/systemd/system/octoprint.service
Отредактировать octoprint.service:
[Unit] Description=The snappy web interface for your 3D printer After=network-online.target Wants=network-online.target [Service] Environment="LC_ALL=C.UTF-8" Environment="LANG=C.UTF-8" Type=exec User=octoprint ExecStart=/opt/OctoPrint/bin/octoprint [Install] WantedBy=multi-user.target
Добавление автозапуска:
systemctl enable octoprint.service
Видео-вещание
Установка "mjpg-streamer"
Установка зависимостей:
apt install libjpeg8-dev imagemagick libv4l-dev cmake ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h
Скачивание и сборка "mjpg-streamer":
cd /opt/ wget https://github.com/jacksonliam/mjpg-streamer/archive/refs/heads/master.zip unzip master.zip cd mjpg-streamer-master/mjpg-streamer-experimental/ make -j$(nproc) make install
Скрипт запуска
Скрипт запуска видео-вещания на порту 8080 и всех доступных сетевых интерфейсах:
#!/bin/bash
LD_LIBRARY_PATH=/usr/local/lib/mjpg-streamer/ mjpg_streamer \
-i "input_uvc.so -y -n -d /dev/video2" \
-o "output_http.so -n -w /var/www/"
SystemD Сервис
Содержимое файла /lib/systemd/system/webcam.service:
[Unit] Description=Webcam Streaming Service [Service] ExecStart=/opt/mjpg_streamer_start.sh [Install] WantedBy=multi-user.target
Добавление в автозапуск:
systemctl enable --now webcam
Источники
Опционально: firewall + доступ по Yggdrasil
firewalld
Поскольку Yggdrasil делает хост публичным внутри своей сети, настройка firewall является необходимостью.
Установка и запуск
apt install firewalld systemctl enable --now firewalld
Настройка правил
firewall-cmd --zone=public --add-port=5000/tcp --permanent firewall-cmd --zone=public --add-interface=tun0 --permanent
Yggdrasil
Установка
sudo mkdir -p /usr/local/apt-keys gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo tee /usr/local/apt-keys/yggdrasil-keyring.gpg > /dev/null echo 'deb [signed-by=/usr/local/apt-keys/yggdrasil-keyring.gpg] http://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list apt update apt install yggdrasil
Настройка
В файл /etc/yggdrasil.conf необходимо добавить публичных пиров в раздел Peers.
Источники
- Статья по установке Armbian GNU/Linux: https://github.com/kdrapel/x96mini_linux
- "Install Octoprint on Linux – Complete Guide!" -- https://3dprintscape.com/install-octoprint-on-linux/