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

Дозволи Snap (Linux)

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

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

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

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

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

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

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

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

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

# Перегляд всіх підключень для 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

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