Установка и настройка Octoprint под Ubuntu на Intel Compute Stick
Прошерстил интернеты и удивился тому, что несмотря на все недостатки малиноподобных решений (вопросы к качеству реализации USB и сети, недостаточная производительность и стабильность), как-то мало рассматриваются альтернативы.
Я не фанат специализированных дистрибутивов и решений на ARM/MIPS и т.п., но хотелось чего-то простого, стандартного и недорогого :)
А если более формально:
- цена в пределах стоимости комплекта Raspberry Pi 3 Model B+ плюс Official Raspberry Pi 3 Universal Power Supply - многие проблемы из описанных в интернетах как раз решаются качественным питанием
- x86
- нормальный USB
- нормальный WiFi
- небольшое
И так мне это всё понравилось, что сил нет :) Но был один недостаток - 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
Первое, что нужно сделать - обновить всё встроенное ПО, что несложно:
- идём на страницу поддержки
- качаем последний 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 Server 18.04 как раз имеет баг, который не позволяет продолжить установку без настройки сети :)
Так что смело качаем Alternative Ubuntu Server installer с оф.сайта.
Любым удобным способом переносим дистрибутив на флешку. Я использовал Rufus.Втсавляем флешку в 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.
Добавляем нашу флекшу в список репозиториев
[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]
Еще больше интересных статей
Апгрейды для Sprite Extruder Ender 3: обдув K3D, азотированные шестерни FYSETC Sprite Extruder Gear, сопло 0.6. Печать композитами.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Всем привет! )
Я знаю, что сейчас не 202...
Охлаждение мотора директа
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
приводы хотя бы в блокноте рас...
корпус лодки не может быть кру...
а вы внимательно прочтите там....
Всем добра! Подскажите п...
Столкнулся с проблемой. Не зна...
Не подскажите куда подключить...
Посоветуйте хотенд с гладким т...