Кремень FMZ Реклама
Kremen FMHM Реклама

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

megamih
Идет загрузка
Загрузка
11.05.2019
11921
33
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

17
В результате всевозможных приключений с принтером, закономерно пришёл к необходимости ставить 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. На треть превысил бюджет, но у меня есть оправдание - я его очень хотел.
Установка и настройка Octoprint под Ubuntu на Intel Compute Stick
Конфигурация:
  • 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

Установка и настройка Octoprint под Ubuntu на Intel Compute Stick
  • выбираем там нашу флешку (жмём Enter) и .BIO файл на ней (жмём Enter)

Установка и настройка Octoprint под Ubuntu на Intel Compute Stick
  • подтвеждаем, что осознанно решили обновить BIOS (жмём Enter)

Установка и настройка Octoprint под Ubuntu на Intel Compute Stick
  • ждём 2-5 минут до сообщения, что всё прошло прекрасно, и вынимаем флешку
  • перезагружаем Intel Compute Stick

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

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

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

Любым удобным способом переносим дистрибутив на флешку. Я использовал Rufus.
Установка и настройка Octoprint под Ubuntu на Intel Compute Stick
Втсавляем флешку в Intel Compute Stick.

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

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

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

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

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

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

[CODE]sudo mount /dev/sda1 /media/cdrom

sudo apt-cdrom --cdrom /media/cdrom -m add

sudo apt update[/CODE]Устанавливаем пакеты, необходимые для настройки WiFi

[CODE]sudo apt install wpasupplicant lshw[/CODE]Ищем имя нашего WiFi адаптера (wlp1s0)

[CODE]sudo lshw -short -class network

H/W path Device Class Description

=============================================

/0/100/1c/0 wlp1s0 network Wireless 7265[/CODE]Настраиваем netplan ('network_ssid_name' меняем на имя своей сети, '**********' - на пароль от неё)

[CODE]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: '**********'

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

[CODE]sudo netplan apply

sudo ip link set wlp1s0 up

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

[CODE]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

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

[CODE]sudo sed -ie '/cdrom:/ s/^#*/# /g' /etc/apt/sources.list

sudo apt update

sudo apt upgrade

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

[CODE]sudo apt install openssh-server

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

[CODE]sudo nano /etc/systemd/logind.conf

- #HandlePowerKey=poweroff

+ HandlePowerKey=ignore

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

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

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

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

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

[CODE]sudo useradd -m -d /opt/octoprint -s /bin/bash octoprint

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

[CODE]sudo usermod -a -G tty octoprint

sudo usermod -a -G dialout octoprint

[/CODE]Входим под пользователем octoprint

[CODE]sudo su - octoprint

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

[CODE]virtualenv venv

source venv/bin/activate

pip install pip --upgrade

pip install https://get.octoprint.org/latest

exit

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

[CODE]sudo visudo -f /etc/sudoers.d/octoprint-shutdown

octoprint ALL=NOPASSWD: /sbin/shutdown

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

[CODE]sudo visudo -f /etc/sudoers.d/octoprint-service

octoprint ALL=NOPASSWD: /usr/sbin/service octoprint restart

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

[CODE]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

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

[CODE]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

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

[CODE]sudo chmod +x /etc/init.d/octoprint

sudo update-rc.d octoprint defaults

[/CODE]И таки запускаем octoprint :)

[CODE]sudo service octoprint start[/CODE]

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

17
Комментарии к статье