Перейти до основного вмісту

Дозволи Snap (Linux)

Ця сторінка пояснює, як налаштувати дозволи для Rayforge, коли він встановлений як Snap-пакет на Linux.

Що таке дозволи Snap?​

Snap-пакети - це контейнеризовані програми, які працюють у пісочниці для безпеки. За замовчуванням вони мають обмежений доступ до системних ресурсів. Щоб використовувати певні функції (як послідовні порти для лазерних контролерів), ви повинні явно надати дозволи.

Необхідні дозволи​

Rayforge потребує підключення цих інтерфейс Snap для повної функціональності:

ІнтерфейсПризначенняОбов'язково?
serial-portДоступ до USB послідовних пристроїв (лазерні контролери)Так (для керування машиною)
homeЧитання/запис файлів у вашій домашній директоріїАвто-підключення
removable-mediaДоступ до зовнішніх дисків та USB-накопичувачівОпціонально
networkМережеве підключення (для оновлень тощо.)Авто-підключення

Надання доступу до послідовного порту​

Це найважливіший дозвіл для Rayforge.

Передумова: членство в групі dialout​

На дистрибутивах на основі Debian ваш користувач повинен бути членом групи dialout, навіть при використанні Snap-пакету. Без цього членства в групі ви можете отримувати повідомлення AppArmor DENIED при спробі доступу до послідовних портів.

# Додайте свого користувача до групи dialout
sudo usermod -a -G dialout $USER

Важливо: Ви повинні вийти з системи та зайти знову (або перезавантажити) щоб зміни групи набрали чинності.

Перевірка поточних дозволів​

# Перегляд всіх підключень для Rayforge
snap connections rayforge

Шукайте інтерфейс serial-port. Якщо він показує "disconnected" або "-", вам потрібно підключити його.

Підключення інтерфейсу послідовного порту​

# Надати доступ до послідовного порту
sudo snap connect rayforge:serial-port

Вам потрібно зробити це лише один раз. Дозвіл зберігається між оновленнями програми та перезавантаженнями.

Перевірка підключення​

# Перевірити, чи serial-port тепер підключено
snap connections rayforge | grep serial-port

Очікуваний вивід:

serial-port rayforge:serial-port :serial-port -

Якщо бачите індикатор plug/slot, з'єднання активне.


Надання доступу до змінних носіїв​

Якщо ви хочете імпортувати/експортувати файли з USB-накопичувачів або зовнішнього сховища:

# Надати доступ до змінних носіїв
sudo snap connect rayforge:removable-media

Тепер ви можете отримати доступ до файлів у /media та /mnt.


Усунення неполадок з дозволами Snap​

Послідовний порт все ще не працює​

Після підключення інтерфейсу:

  1. Перепідключіть USB-пристрій:

    • Відключіть ваш лазерний контролер
    • Зачекайте 5 секунд
    • Підключіть його знову
  2. Перезапустіть Rayforge:

    • Повністю закрийте Rayforge
    • Запустіть знову з меню програм або:
      snap run rayforge
  3. Перевірте, що порт з'являється:

    • Відкрийте Rayforge Налаштування Машина
    • Шукайте послідовні порти у випадаючому списку
    • Маєте бачити /dev/ttyUSB0, /dev/ttyACM0 або подібні
  4. Перевірте, що пристрій існує:

    # Список USB послідовних пристроїв
    ls -l /dev/ttyUSB* /dev/ttyACM*

"Відмовлено в дозволі" незважаючи на підключений інтерфейс​

Це рідкість, але може статися якщо:

  1. Встановлення Snap пошкоджено:

    # Перевстановіть snap
    sudo snap refresh rayforge --devmode
    # Або якщо це не вдалося:
    sudo snap remove rayforge
    sudo snap install rayforge
    # Перепідключіть інтерфейси
    sudo snap connect rayforge:serial-port
  2. Конфліктуючі правила udev:

    • Перевірте /etc/udev/rules.d/ на наявність власних правил послідовного порту
    • Вони можуть конфліктувати з доступом Snap до пристроїв
  3. Відмови AppArmor:

    # Перевірте на відмови AppArmor
    sudo journalctl -xe | grep DENIED | grep rayforge

    Якщо бачите відмови для послідовних портів, може бути конфлікт профілю AppArmor.

Неможливість доступу до файлів поза домашньою директорією​

За дизайном, Snap-пакети не можуть отримати доступ до файлів поза вашою домашньою директорією, якщо ви не надасте removable-media.

Варіанти обходу:

  1. Перемістіть файли до вашої домашньої директорії:

    # Скопіюйте SVG файли до ~/Documents
    cp /some/other/location/*.svg ~/Documents/
  2. Надайте доступ removable-media:

    sudo snap connect rayforge:removable-media
  3. Використовуйте файловий вибірник Snap:

    • Вбудований вибірник файлів має ширший доступ
    • Відкривайте файли через Файл Відкрити замість аргументів командного рядка

Ручне керування інтерфейсами​

Список всіх доступних інтерфейсів​

# Побачити всі інтерфейси Snap у вашій системі
snap interface

Відключення інтерфейсу​

# Відключити serial-port (якщо потрібно)
sudo snap disconnect rayforge:serial-port

Повторне підключення після відключення​

sudo snap connect rayforge:serial-port

Альтернатива: Встановлення з вихідних кодів​

Якщо дозволи Snap занадто обмежувальні для вашого робочого процесу:

Варіант 1: Збірка з вихідних кодів

# Клонуйте репозиторій
git clone https://github.com/kylemartin57/rayforge.git
cd rayforge

# Встановіть залежності використовуючи pixi
pixi install

# Запустіть Rayforge
pixi run rayforge

Переваги:

  • Немає обмежень дозволів
  • Повний системний доступ
  • Легше налагодження
  • Остання версія розробки

Недоліки:

  • Ручні оновлення (git pull)
  • Більше залежностей для керування
  • Немає автоматичних оновлень

Варіант 2: Використання Flatpak (якщо доступно)

Flatpak має подібну пісочницю, але іноді з іншою моделлю дозволів. Перевірте, чи Rayforge пропонує Flatpak-пакет.


Найкращі практики дозволів Snap​

Підключайте лише те, що вам потрібно​

Не підключайте інтерфейси, які ви не використовуєте:

  •  Підключіть serial-port якщо використовуєте лазерний контролер
  •  Підключіть removable-media якщо імпортуєте з USB-накопичувачів
  • L Не підключайте все "про всяк випадок" - це нівелює мету безпеки

Перевіряйте джерело Snap​

Завжди встановлюйте з офіційного Snap Store:

# Перевірте видавця
snap info rayforge

Шукайте:

  • Верифікований видавець
  • Офіційне джерело репозиторію
  • Регулярні оновлення

Розуміння пісочниці Snap​

Що Snap-пакети можуть отримати доступ за замовчуванням?​

Дозволено:

  • Файли у вашій домашній директорії
  • Мережеві з'єднання
  • Дисплей/аудіо

Не дозволено без явного дозволу:

  • Послідовні порти (USB-пристрої)
  • Змінні носії
  • Системні файли
  • Домашні директорії інших користувачів

Чому це важливо для Rayforge​

Rayforge потребує:

  1. Доступ до домашньої директорії (авто-надається)

    • Для збереження файлів проекту
    • Для читання імпортованих SVG/DXF файлів
    • Для зберігання налаштувань
  2. Доступ до послідовного порту (має бути надано)

    • Для комунікації з лазерними контролерами
    • Це критичний дозвіл
  3. Змінні носії (опціонально)

    • Для імпорту файлів з USB-накопичувачів
    • Для експорту G-code на зовнішнє сховище

Налагодження проблем Snap​

Увімкнути детальне логування Snap​

# Запустіть Snap з debug-виводом
snap run --shell rayforge
# Всередині snap shell:
export RAYFORGE_LOG_LEVEL=DEBUG
exec rayforge

Перевірте логи Snap​

# Перегляд логів Rayforge
snap logs rayforge

# Слідкуйте за логами в реальному часі
snap logs -f rayforge

Перевірте системний журнал на відмови​

# Шукайте відмови AppArmor
sudo journalctl -xe | grep DENIED | grep rayforge

# Шукайте події USB-пристроїв
sudo journalctl -f -u snapd
# Потім підключіть ваш лазерний контролер

Отримання допомоги​

Якщо у вас все ще є проблеми, пов'язані з Snap:

  1. Спочатку перевірте дозволи:

    snap connections rayforge
  2. Спробуйте тест послідовного порту:

    # Якщо у вас встановлено screen або minicom
    sudo snap connect rayforge:serial-port
    # Потім протестуйте в Rayforge
  3. Повідомте про проблему з:

    • Виводом snap connections rayforge
    • Виводом snap version
    • Виводом snap info rayforge
    • Вашою версією Ubuntu/Linux дистрибутива
    • Точними повідомленнями про помилки
  4. Розгляньте альтернативи:

    • Встановлення з вихідних кодів (див. вище)
    • Використання іншого формату пакету (AppImage, Flatpak)

Швидкий довідник команд​

# Надати доступ до послідовного порту (найважливіше)
sudo snap connect rayforge:serial-port

# Надати доступ до змінних носіїв
sudo snap connect rayforge:removable-media

# Перевірити поточні підключення
snap connections rayforge

# Переглянути логи Rayforge
snap logs rayforge

# Оновити Rayforge
sudo snap refresh rayforge

# Видалити та перевстановити (останній засіб)
sudo snap remove rayforge
sudo snap install rayforge
sudo snap connect rayforge:serial-port

Пов'язані сторінки​