Установка и настройка Octoprint под Ubuntu на Intel Compute Stick

Поделиться:
В результате всевозможных приключений с принтером, закономерно пришёл к необходимости ставить Octoprint

Прошерстил интернеты и удивился тому, что несмотря на все недостатки малиноподобных решений (вопросы к качеству реализации USB и сети, недостаточная производительность и стабильность), как-то мало рассматриваются альтернативы.

Я не фанат специализированных дистрибутивов и решений на ARM/MIPS и т.п., но хотелось чего-то простого, стандартного и недорогого

А если более формально:


цена в пределах стоимости комплекта Raspberry Pi 3 Model B+ плюс Official Raspberry Pi 3 Universal Power Supply - многие проблемы из описанных в интернетах как раз решаются качественным питанием

x86

нормальный USB

нормальный WiFi

небольшое
По старой памяти на треть ниже бюджета купил на ebay б/у Acer Veriton N281G (Atom D425@1.8GHz, RAM 2GB, HDD 320GB, COM порт, 5xUSB портов, Gigabit Ethernet, Wireless 802.11n адаптер).
Установка и настройка Octoprint под Ubuntu на Intel Compute Stick

Полностью поддерживается Ubuntu 18.04 - вместе с Octoprint всё встало и завертелось без проблем.

И так мне это всё понравилось, что сил нет Но был один недостаток - WiFi только 2.4GHz (и неудовлетворённое чувство прекрасного, как следствие).

В итоге я продолжил свои изыскания и натолкнулся на явление, совершенно прошедшее мимо моего внимания - Intel Compute Stick. Естественно, не новый - лимит по бюджету никуда не делся.

После изучения новой ниши, выбор пал на Intel Compute Stick STK1A32SC и STK1AW32SC. По железу - одинаковые, просто второй идёт с Win10 Home в комплекте, что для моих целей роли не играет.

Потратив пару недель на охоту, купил практически новый Intel Compute Stick STK1AW32SC. На треть превысил бюджет, но у меня есть оправдание - я его очень хотел.

Конфигурация:


Intel Atom x5-Z8300 Processor (2M Cache, up to 1.84 GHz)

32GB eMMC

2GB DDR3L-1600

Intel Wireless-AC 7265 + Bluetooth 4.2
Собственно, с этого момента будет немного пользы по установке Ubuntu 18.04 и настройке Octoprint.

Первое, что нужно сделать - обновить всё встроенное ПО, что несложно:


идём на страницу поддержки

качаем последний BIOS Update

кладём BIOS (.BIO) файл на флешку

подключаем Intel Compute Stick в HDMI порт монитора

подключаем USB клавиатуру в один порт

вставляем флешку в другой USB порт на Intel Compute Stick

перезагружаем или включаем Intel Compute Stick

во время загрузки жмём F7 и входим в меню BIOS Flash Update



выбираем там нашу флешку (жмём Enter) и .BIO файл на ней (жмём Enter)



подтвеждаем, что осознанно решили обновить BIOS (жмём Enter)



ждём 2-5 минут до сообщения, что всё прошло прекрасно, и вынимаем флешку

перезагружаем Intel Compute Stick

Теперь было бы неплохо поставить Ubuntu. Так как железо на Intel Compute Stick не очень стандартное, оно не совсем знакомо установщику Ubuntu Server 18.04 - а именно, WiFi адаптер найден не будет.

Но это ничего - стандартный установщик Ubuntu Server 18.04 как раз имеет баг, который не позволяет продолжить установку без настройки сети

Так что смело качаем Alternative Ubuntu Server installer с оф.сайта.

Любым удобным способом переносим дистрибутив на флешку. Я использовал

Втсавляем флешку в Intel Compute Stick.

Т.к. STK1AW32SC поставляется с предустановленной 32-битной Win10 Home, а ставить мы будем 64-битную Ubuntu, необходимо отразить это в настройках BIOS.

Перезагружаем Intel Compute Stick, жмём F2 и идём на вкладку "Configuration". Там заботливо выбираем "Windows 64-bit" в пункте "Select Operating System" (я ещё выключил Bluetooth - не нужен он мне) и жмём F10, чтобы сохранить настройки и перезагрузиться.

При перезагрузке жмём F10 и выбираем нашу флешку с Ubuntu в качестве загрузочного устройства.

В установке Ubuntu ничего военного нет. Со всем соглашаемся отвечаем на задаваемые вопросы - и всё. При разбивке диска выбираем "Use An Entire Disk", а вот в списке устанавливаемого ПО не выбираем ничего, иначе установка без сети не пройдёт.

Ждём, пока всё станет хорошо и выбираем "Reboot Now", когда предложат.

После загрузки Ubuntu вводим свой логин и пароль и исправляем ситуацию с WiFi.

Добавляем нашу флекшу в список репозиториев



sudo mount /dev/sda1 /media/cdrom sudo apt-cdrom --cdrom /media/cdrom -m add sudo apt update



Устанавливаем пакеты, необходимые для настройки WiFi



sudo apt install wpasupplicant lshw



Ищем имя нашего WiFi адаптера (wlp1s0)



sudo lshw -short -class network H/W path Device Class Description ============================================= /0/100/1c/0 wlp1s0 network Wireless 7265



Настраиваем netplan ("network_ssid_name" меняем на имя своей сети, "**********" - на пароль от неё)



sudo cp /usr/share/doc/netplan.io/examples/wireless.yaml /etc/netplan/01-netcfg.yaml sudo nano /etc/netplan/01-netcfg.yaml network: version: 2 renderer: networkd wifis: wlp1s0: dhcp4: yes dhcp6: no access-points: "network_ssid_name": password: "**********"



Применяем netplan и поднимаем сетевой интерфейс



sudo netplan apply sudo ip link set wlp1s0 up



Проверяем полученый ip адрес и что интернеты есть



ip addr show wlp1s0 | grep inet ping ya.ru PING ya.ru (87.250.250.242) 56(84) bytes of data. 64 bytes from ya.ru (87.250.250.242): icmp_seq=1 ttl=46 time=50.1 ms



Если всё ОК - можно убирать флешку из списка репозиториев и обновить установленные пакеты из интернетов



sudo sed -ie '/cdrom\:/ s/^#*/# /g' /etc/apt/sources.list sudo apt update sudo apt upgrade



После завершения обновления - ставим SSH сервер



sudo apt install openssh-server



И запрещаем выключение системы по короткому нажатию кнопки питания - уж больно легко жмётся ("-" - как было, "+" - как стало)



sudo nano /etc/systemd/logind.conf - #HandlePowerKey=poweroff + HandlePowerKey=ignore



Перезагружаем систему и убеждаемся, что можем подключиться через SSH по найденому ранее ip адресу.

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

Устанавливаем зависимости



sudo apt install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential



Добавляем пользователя octoprint, от которого будет запущен сервис, с домашней директорией в /opt/octoprint



sudo useradd -m -d /opt/octoprint -s /bin/bash octoprint



И на всяикй случай выдаём ему права на использование последователных портов



sudo usermod -a -G tty octoprint sudo usermod -a -G dialout octoprint



Входим под пользователем octoprint



sudo su - octoprint



Устанавливаем Octoprint под пользователем octoprint и выходим



virtualenv venv source venv/bin/activate pip install pip --upgrade pip install https://get.octoprint.org/latest exit



Теперь нужно разрешить пользователю octoprint выключать компьютер



sudo visudo -f /etc/sudoers.d/octoprint-shutdown octoprint ALL=NOPASSWD: /sbin/shutdown



и перезагружать сервис octoprint (к примеру, чтобы активировать плагин)



sudo visudo -f /etc/sudoers.d/octoprint-service octoprint ALL=NOPASSWD: /usr/sbin/service octoprint restart



Теперь добудем init-скрипт, уоторый будет автоматически запускать octoprint при загрузке, и файл общих настроек



wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.init && sudo mv octoprint.init /etc/init.d/octoprint wget https://github.com/foosel/OctoPrint/raw/master/scripts/octoprint.default && sudo mv octoprint.default /etc/default/octoprint



Т.к. octoprint мы поставили не в папку по-умолчанию, поправим настройки ("-" - как было, "+" - как стало)



sudo nano /etc/default/octoprint # The init.d script will only run if this variable non-empty. -OCTOPRINT_USER=pi +OCTOPRINT_USER=octoprint # base directory to use -#BASEDIR=/home/pi/.octoprint +BASEDIR=/opt/octoprint/.octoprint # configuration file to use -#CONFIGFILE=/home/pi/.octoprint/config.yaml +CONFIGFILE=/opt/octoprint/.octoprint/config.yaml # Path to the OctoPrint executable, you need to set this to match your installation! -#DAEMON=/home/pi/OctoPrint/venv/bin/octoprint +DAEMON=/opt/octoprint/venv/bin/octoprint



Делаем init-скрипт исполняемым и разрешаем автоматический запуск после загрузки



sudo chmod +x /etc/init.d/octoprint sudo update-rc.d octoprint defaults



И таки запускаем octoprint



sudo service octoprint start
Источник: 3dtoday.ru
2018 3dtrands.ru - самые последние тренды в 3D мире.